PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images

news2024/11/17 8:41:10

PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images

作者单位

旷视

目的

本文的目标是 通过扩展 PETR,使其有时序建模和多任务学习的能力 以此建立一个 强有力且统一的框架。

本文主要贡献:

  1. 将 位置 embedding 转换到 时序表示学习,时序的对齐 是在 3D PE 上做 姿态变换实现的。提出了 feature-guided 位置编码,可以通过 2D 图像特征 reweigth 3D PE
  2. 提出了一个简单但有效的方法(引入了基于特定任务的 queries),让 PETR 支持 多任务学习,包括 BEV 分割 和 3D lane 检测
  3. 本文提出的框架想,在 3D 目标检测,BEV 分割 和 3D lane 检测 上达到了 sota 的性能。

方法

网络结构

![[attachments/Pasted image 20230715171751.png]]

时序建模

时序建模:
3D 坐标对齐:
目的是将 t-1 帧的 3D 坐标 变换到 t 帧的 3D 坐标系统。
为了清楚的描述,这里定义一些符号:

  • c(t): 相机坐标
  • l(t) : lidar 坐标
  • e(t) : 自车坐标
  • g: 全局坐标
  • T_dst^src : 原坐标系 到 目标坐标系的 变换矩阵

首先将 t-1 帧 和 t 帧 的 相机坐标系下的3D点集 投影到 雷达坐标系,然后 使用全局坐标系 作为桥梁 ,将 t-1帧雷达坐标系下的 3D点集 投影到 t 帧的 雷达坐标系下
对其之后的 t 帧 和 t-1帧的 点集 会被用于 生成 3D PE

Multi-task Learning

为了让 PETR 支持多任务学习,设计了不同的 queries,包括 BEV segmentation 和 3D lane detection

  • BEV segmentation

刚开始在 BEV空间中 初始化一些 anchor points, 然后将这些 points 送入两层的 MLP 生成 seg queries
使用 CVT 中相同的 head 生成最后预测的分割结果

  • 3D Lane Detection

3D anchor lanes 作为 query
每一个 lane 都是由 一个有序的 3d 坐标点集(n 个)组成的。这些点集都是沿着 Y轴 均匀采样的,这些 anchor 是与 Y轴 平行的。
3D 的 Lane head 会预测 lane 的 类别 以及 相对于 x 轴 和 Z 轴的偏移量。 同时由于每个车道线的长度是不固定的,所以也会预测 一个可见 向量 T (sizn n),用于控制 lane 的起始点

Feature-guided Position Encoder

PETR 中的 3D 坐标 到 3D 位置编码的 过程是 数据无关的。本文认为 3D PE 应该由 2D features 驱动,因为 图像特征 可以提供 一些信息的指导,比如深度信息。
因此在 PETRv2 中 将 2D features 经过两层 1x1 的卷积,然后最后经过一层 sigmoid 获得 attention weights,
3D 坐标 通过另一个 mlp 并与 attention weight 相乘生成 3D PE。3D PE 毁于 2D features 相加,作为 key 输入到 transformer decoder 中。

鲁棒性分析

虽然有很多关于自动驾驶系统的工作,但是只有极少数的工作 探究了 自动驾驶方法的 鲁棒性。本文针对几种 传感器的误差 对 算法的影响 进行了 探究。

  • 外参噪声
    外参噪声是很常见的,比如相机抖动 导致 外参的不准。
  • 相机丢失
  • 相机时延
    相机曝光的时间过长(比如在晚上),输入系统的图像可能是之前的图像,会对输出造成影响

鲁棒性分析结果

  1. 外参噪声
    噪声越大,性能下降越多,FPE 可以提升 对 外参噪声的鲁棒性
  2. 相机丢失:front (5.05% mAP 下降) 和 back(13.19% mAP下降) 相机丢失带来的影响最大,其它的相机丢失噪声的性能下降要小一些。back的视角大一些 (120°),所以影响最大。(在 nuScenes 上的实验)
  3. 使用一些未标注的 frame 来代替 关键帧,来模拟时延,下降了 3.19% mAP 和 8.4% NDS(delay 0.083s),26.08 mAP 和 36.54% NDS (delay 0.3s)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/757078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

漏洞复现 || Bitrix cms文件上传

免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此…

Go语言之流程控制语句,for循环

程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。 其流程控制方式有 顺序结构,分支结构,循环结构 1、switch比if el…

javaWeb之文件上传和下载

文件上传下载(场景): * 文件上传 * 客户端 * 文件上传页面(form) * 请求方式一定是POST. * 文件上传域(<input typefile>)必须具有name属性. * 表单的enctype属性值设置为"multipart/form-data". * 扩展:浏览器内核产品不同(不建…

剖析C语言字符串函数(超全)

目录 前言&#xff1a; 一、strlen函数 功能&#xff1a; 参数和返回值&#xff1a; 注意事项&#xff1a; 返回值是无符号的易错点&#xff1a; strlen函数的模拟实现 1、计数器算法 2、递归算法 3、指针减去指针 二、strcpy函数 功能&#xff1a; 参数和返回值 …

git使用代码

git init //生成一个.git的子目录&#xff0c;产生一个仓库。 git status //查看当前目录下所有文件的状态。 git aad . //将该目录下所有的文件提交到暂存区 git add文件名/将该目录下指定的文件提交到暂存区 git commit -m v1.0//将暂存区的文件提交到版本库 git log //…

网络协议与攻击模拟-21-HTTP协议

HTTP 协议 1、 HTTP 协议结构 2、在 Windows server 去搭建 web 服务器 3、分析 HTTP 协议流量 一、 HTTP 协议 1、概念 HTTP &#xff08;超文本传输协议&#xff09;是用于在万维网服务器上传输超文本&#xff08; HTML &#xff09;到本地浏览器的传输协议 属于 TCP / …

树与图的(深度 + 广度)优先遍历

目录 一、树与图的存储1.树的特性2.图的分类3.有向图的储存结构 二、树与图的深度优先遍历的运用树的重心题意分析代码实现 三、树与图的广度优先遍历的运用图中点的层次题意分析代码实现 一、树与图的存储 1.树的特性 树是一种特殊的图,具有以下两个重要特性: 无环 树是一个…

Redis数据类型 — Set

目录 Set内部实现 源码片段 Set 类型是一个无序并唯一的键值集合&#xff0c;它的存储顺序不会按照插入的先后顺序进行存储。一个集合最多可以存储 2^32-1 个元素。 Set 类型除了支持集合内的增删改查&#xff0c;同时还支持多个集合取交集、并集、差集。Set 的差集、并集和…

Bean 的作用域和生命周期

目录 一、 Bean 的作用域 1. 安装Lombok插件 1.1 Lombok 简介 1.2 Lombok 安装 2. 创建一个 User 对象&#xff0c;然后将 User 对象 存储到 Spring 容器中 2.1 创建User 对象 2.2 将User 对象存储到 Spring 中 2.3 修改 User 对象中的属性&#xff0c;然后看结果&#…

概率论的学习和整理--番外12:2个概率选择比较的题目

目录 1 题目 2 结论 3 算法 3.1 错误算法 3.2 算法1&#xff0c;用期望的方式解方式 3.3 算法2&#xff0c;直接解方程 3.4 算法3&#xff0c;用递归--等比数列求和来算 4 上述比较的意义-回到问题本身 1 题目 题目 3个A合成1个B 方案1&#xff1a;1/4 几率返还一个A…

【ONE·Linux || 地址空间与进程控制(二)】

总言 进程地址空间和进程控制相关介绍。 文章目录 总言2、进程控制续2.3、进程等待2.3.1、为什么需要进程等待2.3.2、阻塞式等待2.3.2.1、使用wait2.3.2.2、使用waitpid2.3.2.3、参数status基本介绍 2.3.3、一些细节与问题</font>2.3.3.1、进程独立性说明2.3.3.1、父进程…

【网络安全带你练爬虫-100练】第13练:文件的创建、写入

目录 目标&#xff1a;将数据写入到文件中 网络安全O 目标&#xff1a;将数据写入到文件中 开干 &#xff08;始于颜值&#xff09;打开一个&#xff0c;没有就会创建 with open(data.csv, modew, newline) as file: &#xff08;忠于才华&#xff09;开始写入数据 writer cs…

LinuxC/C++开发工具——make/makefile和gdb

linux开发工具 前言Linux项目自动化构建工具&#xff08;make/makefile&#xff09;makefile文件的组成如何使用make.PHONY关键字 项目清理 gdb调试器背景使用list&#xff08;l&#xff09;调试命令break&#xff08;b&#xff09;&#xff1a;设置断点info break&#xff1a;…

[STL] vector 模拟实现详解

目录 一&#xff0c;准备工作 二&#xff0c;push_back 1&#xff0c; 关于引用 2. 参数const 的修饰 补充 三&#xff0c;迭代器实现 四&#xff0c;Pop_back 五&#xff0c;insert 1. 补充——迭代器失效 六&#xff0c; erase 七&#xff0c;构造函数 1. 迭代…

合并当天Log

1.原因&#xff0c; 我们程序运行Log很多时&#xff0c;如果因为要写Log话费很多时间&#xff0c;这时我们可以把log保存按照更短的时间保存&#xff0c;比如一分钟一个Log,一个小时一个log&#xff0c;。。。。但我们查看Log时很麻烦&#xff0c;需要把分散的Log合并起来的工…

移动端深度学习部署:TFlite

1.TFlite介绍 &#xff08;1&#xff09;TFlite概念 tflite是谷歌自己的一个轻量级推理库。主要用于移动端。 tflite使用的思路主要是从预训练的模型转换为tflite模型文件&#xff0c;拿到移动端部署。 tflite的源模型可以来自tensorflow的saved model或者frozen model,也可…

ylb-定时任务task

总览&#xff1a; 在api模块service包&#xff0c;创建IncomeService类&#xff1a;&#xff08;收益计划 和 收益返还&#xff09; package com.bjpowernode.api.service;public interface IncomeService {/*收益计划*/void generateIncomePlan();/*收益返还*/void generate…

基于mysql+java+springboot的福州大学生就业求职系统(含源码+系统演示视频)

1、系统演示视频&#xff1a;基于JavaMySQLspringboot的福州大学生就业求职系统演示视频 2、系统源码&#xff1a;系统源码链接 文章目录 一、需求分析1、公司招聘2、简历管理3、交流咨询 二、福州大学就业求职服务平台简介1.福州大学就业求职服务平台主要功能1.1.个人求职功能…

小黑子—JavaWeb:第一章 - JDBC

JavaWeb入门1.0 1. javaweb介绍2. 数据库设计2.1 约束2.2 表关系2.3 多表查询2.3.1 内连接&#xff08;连接查询&#xff09;2.3.2 外连接&#xff08;连接查询&#xff09;2.3.3 子查询 2.4 事务 3. JDBC3.1 JDBC 快速入门 4 JDBC API详解4.1 DriverManager4.2 Conncetion4.3 …