旷视提出PETRv2:统一的多摄像头3D感知框架

2023-10-15 05:10

本文主要是介绍旷视提出PETRv2:统一的多摄像头3D感知框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接:https://www.techbeat.net/article-info?id=3698
作者:刘迎飞、wangeniusky

本文提出了一个统一的纯视觉3D感知框架PETRv2。基于PETR,PETRv2探究了利用历史帧的信息来进行时序建模,大幅度地提升了3D物体检测的性能。具体来说,我们扩展了PETR中所提出的3D position embedding (3D PE)来进行时序建模,证明3D PE能够实现不同帧物体空间位置的对齐。进一步地,我们引入了一个特征引导的位置编码器,来改善3D PE对于不同输入数据的适应性。为使PETR框架能够同时进行高质量的BEV分割,PETRv2提供了一个简单而又高效的解决方案。我们引入了一些分割查询向量,每个分割查询变量用于分割BEV图像中特定的块区域。PETRv2在3D物体检测BEV分割任务上均有着先进的性能表现。基于PETR系列框架,本文也进行了详细的鲁棒性分析,我们希望PETRv2能够作为一个简单而又强大的基线框架。

1.png

:::

论文名称:
PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images
论文链接:
https://arxiv.org/pdf/2206.01256.pdf
代码链接:
https://github.com/megvii-research/PETR,支持2080ti等低端显卡训练

一、研究动机

近期,基于纯视觉(多个摄像头图像)的3D感知受到广泛关注。如何结合输入数据流的时序信息,并将3D检测、BEV分割等多项感知任务整合到一个统一的框架中具有重大意义。BEVFormer1和BEVDet4D2是近期比较有代表性的两个方法,通过结合时序建模实现了出色的检测性能。然而,这些方法大都选择bird-eye-view(BEV)空间进行时序的特征对齐,并利用BEV特征进行分割。考虑到重建得到的BEV特征相比于range view(RV)特征可能有信息损失,且特征之间的对齐往往需要自定义算子不利于硬件部署。于是,我们考虑是否可以不依赖于BEV特征来实现时序对齐并支持BEV分割。

2.png

图一 DETR和PETR对比示意图,图来源于PETR。

:::


我们的方法主要启发于近期提出的PETR3框架。如图一所示,PETR基于DETR4框架,引入了3D position embeding(3D PE)的概念,将3D coordinates信息编码进2D RV特征使其对3D空间位置敏感,如此一来,query可以和RV特征直接在decoder中交互并预测3D检测结果,无需显式的空间变换。本文中,我们对PETR框架进行如下的几项改进:

  1. 我们将PETR中的3D PE扩展到时序版本,通过对生成的3D coordinates进行变换,实现了时序对齐。

  2. PETR中,3D PE的生成是data-independent的,我们引入了一个特征引导的位置编码器,使得3D PE的生成和输入数据相关,隐式地从特征中获取到深度等信息。

  3. 我们引入了一个简单高效的方案来支持BEV分割。受SOLQ5启发,DETR框架中一个query足以表征一块区域内的掩码,为此我们定义若干个分割查询向量实现高质量的BEV分割。

二、方法

3g.png

图二 PETRv2结构图。'A’表示时序对齐,'C’表示拼接操作。

:::


2.1 整体框架

如图二所示,PETRv2的框架主要基于PETR,其输入为前后两帧( t − 1 t-1 t1 帧与 t t t 帧)的2D features和视锥空间中3D points所对应的3D coordinates。首先, t − 1 t-1 t1 帧与 t t t 帧的3D Coordinates进行时序对齐(2.2节描述)并拼接到一起,两帧的特征则直接进行拼接。然后,2D features和3D coordinates输入到特征引导的位置编码器(2.3节描述)中,将对齐后的3D Coordinates转换为3D position embeding (3D PE),并与2D features相结合,生成后续Transformer解码器(2.4节描述)的key、value元素。之后,seg query、det query与前述生成的key、value在Transformer decoder中进行交互。最后,交互更新后的两类query送入两个任务的head,输出检测和分割结果。

2.2 时序对齐

4.png

图三 PETR中3D Coordinates生成,图来源于PETR。

:::


我们选择Lidar坐标系 l ( t ) {l(t)} l(t) 作为3D检测空间,并使用 T s r c d s t T^{dst}_{src} Tsrcdst 表示从源坐标系到目的坐标系的变换。如图三所示,和PETR中类似,我们首先在视锥空间定义一组meshgrid点集 P m ( t ) {P^{m}(t)} Pm(t) , 并使用下面的公式将meshgrid点集根据每个视角的相机内外参转换到3D空间,得到对应的3D Coordinates。

P i l ( t ) ( t ) = T c i ( t ) l ( t ) K i − 1 P m ( t ) P^{l(t)}_i(t) = T^{l(t)}_{c_i(t)} K^{-1}_{i} P^{m}(t) Pil(t)(t)=Tci(t)l(t)Ki1Pm(t)

其中 K i − 1 {K^{-1}_{i}} Ki1 是第 i i i 个视角的相机内参, T c i ( t ) l ( t ) {T^{l(t)}_{c_i(t)}} Tci(t)l(t) 是第 i i i 个相机到3D空间 l ( t ) {l(t)} l(t) 的变换矩阵。考虑到由于自车的运动,前后两帧的坐标原点并不统一,因此需要将 t − 1 t-1 t1 帧的3D Coordinates对齐到 t t t 帧的坐标系下,具体变换如下面公式所示:

P i l ( t ) ( t − 1 ) = T l ( t − 1 ) l ( t ) P i l ( t − 1 ) ( t − 1 ) P^{l(t)}_i(t-1) = T^{l(t)}_{l(t-1)} P^{l(t-1)}_i(t-1) Pil(t)(t1)=Tl(t1)l(t)Pil(t1)(t1)

其中 T l ( t − 1 ) l ( t ) {T^{l(t)}_{l(t-1)}} Tl(t1)l(t) 是两帧之间坐标系的变换公式,由下式计算得到:

T l ( t − 1 ) l ( t ) = T e ( t ) l ( t ) T g e ( t ) T g e ( t − 1 ) − 1 T e ( t − 1 ) l ( t − 1 ) − 1 T^{l(t)}_{l(t-1)} = T^{l(t)}_{e(t)} T^{e(t)}_{g} {T^{e(t-1)}_{g}}^{-1} {T^{l(t-1)}_{e(t-1)}}^{-1} Tl(t1)l(t)=Te(t)l(t)Tge(t)Tge(t1)1Te(t1)l(t1)1

e ( t ) {e(t)} e(t) e ( t − 1 ) {e(t-1)} e(t1) 表示不同时刻的自车坐标系, g {g} g 表示全局的世界坐标系。

2.3 特征引导的位置编码器

5.png

图四 特征引导的位置编码器

:::


在PETR中,所获得的3D Coordinates经过一个简单的多层感知机MLP映射得到位置特征,直接作为3D PE。如图四所示,我们对3D PE的生成方式进行了一个简单的改进。RV视角的2D feature经过一个多层感知机MLP和一个sigmoid层生成一组权重,对PETR中MLP转换后的位置特征加权,从而得到了data-dependent的3D PE。关于这一点改进,主要源于我们对3D PE的两点思考:

  • 2D feature本身包含许多先验信息,比如depth信息等,有助于为RV的不同空间位置生成更有区分度的3D PE。

  • 3D Coordinates的生成可能受到内外参噪声的影响,采用data-dependent的形式,在一定程度上是对3D PE的隐式修正,有助于提升网络对内外参扰动的鲁棒性。

2.4 Transformer解码器

为了便于部署,我们使用DETR中最原始的Transformer解码器。解码器的检测分支和PETR4类似,我们在3D空间下定义一组可学习的anchor points,通过MLP网络生成det queries,然后与前述的位置编码器生成的key、value元素进行交互。

6g.png

图五 分割分支

:::


分割分支的结构如图五所示。不同于检测分支,我们首先在BEV空间下定义一组固定的anchor points,每个anchor point负责 16 × 16 {16\times16} 16×16 大小patch的mask预测。anchor points的总数为 16 × 16 = 256 {16\times16=256} 16×16=256 ,通过一个MLP网络生成256个seg queries,并在Transformer解码器中和K、V元素进行交互。交互更新后的seg queries,输入到分割头网络(一个MLP网络),之后通过reshape和拼接操作,最终输出一个 256 × 256 {256\times256} 256×256 的分割结果。

2.5 鲁棒性分析

7g.png

图六 典型的系统误差

:::


如上图所示,我们对以下几种典型的误差场景进行鲁棒性分析:(a)由路面不平整带来的外参扰动。(b)行驶过程中,摄像头被意外遮挡的情况。(c)相机曝光时间不准确导致的时延现象。

三、实验结果

3.1 SOTA比较

我们在广泛使用的nuScenes6数据集上测试了PETRv2的3D检测和BEV分割性能,并与其他方法进行了对比。具体结果如下:

8.png

表一 nuScenes 纯视觉3D检测榜单

9.png

表二 nuScenes验证集的BEV分割结果

:::


可以看到PETRv2在3D检测、BEV分割任务上都取得了SOTA的性能。在纯视觉3D检测榜单上,在没有使用TTA的情况下,PETRv2超过了此前时序建模的BEVDet4D和BEVFormer。而在BEV分割任务上的性能也高于其他方法,尤其是在车道线分割方面取得了大幅领先。

3.2 Ablation 实验

10.png

表三 时序对齐(CA)和特征引导的位置编码器(FPE)

:::


如表三所示,我们首先进行了时序对齐(CA)和特征引导的位置编码器(FPE)的对比实验。我们可以看到,PETRv2在不进行时序对齐的情况下,mAVE只能达到0.605,而在时序对齐之后,mAVE可以大幅度地减少到0.429。关于FPE,我们在PETRv1和PETRv2上均进行了对比实验,实验结果表明其在单帧和多帧的情况下,均可以取得性能的提升。

11.png

表四 seg query生成

:::


之后,我们对seg query的数量以及每个seg query所负责patch区域大小进行对比实验。如表四所示,实验发现当使用256个seg queries时,即每个query负责的patch大小为 16 × 16 {16\times16} 16×16 时效果最好。

12.png

表五 检测和分割权重

:::


最后,对于检测和分割分支的权重,我们也进行了一定的分析(如表五所示)。实验表明,当两者权重都为1.0时,检测分支相比于只有检测分支来说几乎不掉点。当分割权重为2.0时,分割效果有一定的提高,但检测会轻微掉点。这说明3D检测和BEV分割两项任务存在一定的表征差距。在实际应用时,作为权衡,我们将两者权重设为1:1。

3.3 鲁棒性分析

13.png

表六 外参鲁棒性

:::


我们首先对外参鲁棒性进行分析,其中R表示测试时外参上旋转的度数,当旋转2度时PETRv2只会掉1%左右,当旋转角度达到8度时PETRv2会掉4.12%mAP和2.85%NDS,掉点幅度并不是很大。此外单帧的鲁棒性上,我们发现FPE模块可以增强模型的鲁棒性。

14.png

表七 摄像头鲁棒性

:::


我们对camera遮挡的情况也进行了分析,如上表所示。我们发现Back摄像头对结果的影响最大,这应该和Back摄像头FOV较大有关。

15.png

表八 时延鲁棒性

:::


对于时延,我们随机将一个摄像头当前帧的数据替换为sweep的数据,来模拟实验的结果。其中,一个T约表示0.083秒。我们发现,当发生1T的延时时,PETRv2掉点3.19%mAP。

四、结语

我们提出了PETRv2,一个统一的纯视觉3D感知框架。通过3D position embedding的对齐,实现多帧之间的时序对齐,不需要自定义的算子,大幅提升3D检测的性能;为实现3D检测与BEV分割的统一,我们仅添加少量的query便可实现高精度的分割性能。在3D目标检测和BEV分割上的实验验证了PETRv2的显著效果,超过了以往的先进方法。在未来的工作中,我们期待将PETRv2扩展到更多的3D感知任务。

五、参考文献

  • [1] Zhiqi Li, Wenhai Wang, Hongyang Li, Enze Xie, Chonghao Sima, Tong Lu, Qiao Yu, andJifeng Dai. Bevformer: Learning bird’s-eye-view representation from multi-camera images via spatiotemporal transformers. arXiv preprint arXiv:2203.17270, 2022.
  • [2] Junjie Huang and Guan Huang. Bevdet4d: Exploit temporal cues in multi-camera 3d object detection. arXiv preprint arXiv:/2203.17054, 2021.
  • [3] Yingfei Liu, Tiancai Wang, Xiangyu Zhang, and Jian Sun. Petr: Position embedding transformation for multi-view 3d object detection. arXiv preprint arXiv:2203.05625, 2022.
  • [4] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko. End-to-End Object Detection with Transformers. arXiv preprint arXiv:2005.12872, 2020.
  • [5] Bin Dong, Fangao Zeng, Tiancai Wang, Xiangyu Zhang, and Yichen Wei. Solq: Segmenting objects by learning queries. Advances in Neural Information Processing Systems, 34, 2021.
  • [6] Holger Caesar, Varun Bankiti, Alex H Lang, Sourabh Vora, Venice Erin Liong, Qiang Xu, Anush Krishnan, Yu Pan, Giancarlo Baldan, and Oscar Beijbom. nuscenes: A multimodal dataset for autonomous driving. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 11621–11631, 2020.

-The End-

关于我“门”

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门-TechBeat技术社区以及将门创投基金。

将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。

如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:

bp@thejiangmen.com

这篇关于旷视提出PETRv2:统一的多摄像头3D感知框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215536

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX