首篇!MonoDETR:用于单目3D检测的深度引导Transformer(港中文)

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

今天自动驾驶之心很荣幸邀请到港中文的在读博士生张仁瑞,分享首篇探索如何将基于Transformer的DETR模型用于3D单目检测的算法——MonoDETR,如果您有相关工作需要分享,请在文末联系我们!

>>点击进入→自动驾驶之心【3D目标检测】技术交流群

PS.上海人工智能实验室(Shanghai AI Lab),通用视觉模型组招收科研实习生,主要研究多模态预训练,图像生成,和基础模型等相关方向,有一篇及以上顶会经历的优先,感兴趣的同学请发email到 gaopeng@pjlab.org.cn

大家好,我是张仁瑞,是香港中文大学MMLab的在读博士生。在本文中,我将为大家介绍我们的一篇工作:「MonoDETR: Depth-guided Transformer for Monocular 3D Object Detection」。MonoDETR是第一篇探索如何将基于transformer的DETR模型用于3D单目图像的检测任务,我们从输入的图像中提取到有效的深度信息,并将其作为一种引导来进行自适应的特征提取,实现先进的3D检测性能,在KITTI和nuScenes上取得了SOTA的结果。

文章链接:https://arxiv.org/pdf/2203.13310.pdf

开源代码:https://github.com/ZrrSkywalker/MonoDETR

一、引言

1、什么是3D单目图像目标检测?

不同于2D目标检测,3D单目图像目标检测(M3D)以一张2D图像作为输入,网络需要输出其对应3D空间中的物体检测结果,即物体的三维坐标、三维尺寸、旋转方向和分类,如下图所示。由于仅仅输入了2D信息,M3D的难点在于如何从图像中解析缺失的3D空间信息,并准备的预测出不同物体的3D空间坐标。

a4a6593ae9a9fa179c290fb804949dd6.png

2、现有方法存在的问题?

现有方法的性能瓶颈主要有两个方面。

  1. 现有的M3D检测器大多数沿用了2D目标检测的流程和框架,即先定位出物体在图像中的2D中心点坐标,之后采用卷积神经网络来提取2D中心点周围的局部视觉特征,来预测物体的3D属性。我们称这种方法为center-guided(中心引导),它们受限于中心点周围的视觉特征,无法从全局感受野来理解场景的空间语义信息。

  2. 现有的M3D检测器在特征聚合的过程中缺少深度信息的引导信号。M3D的检测准确率很大程度上依赖于物体3D空间坐标的预测,即相对于相机的深度预测,现有center-guided的方法不会自适应的去深度几何信息更加丰富的区域来提取特征,从而不能很好的感知物体和背景,以及物体之间的相对深度关系。

3、我们的方法:

针对以上两点问题,我们提出了MonoDETR,是第一个将DETR模型引入3D单目检测领域的工作。如下图所示,区别于现有center-guided的方法,MonoDETR采用了一种独特的depth-guided的框架(深度引导),即先预测一个输入图像对应的前景深度图,并将前景深度作为引导信号,去帮助后续的特征提取和3D检测。我们和现有center-guided方法的比较如下所示:

489bd332907f47d40960c5855c221c33.png

4、我们的优势:

  1. 基于DETR的transformer框架,MonoDETR不需要先进行2D中心点的预测,而是从全局感受野去对于每个问题提取特征,可以对场景空间有更好的全局理解,不再局限于中心点周围的局部特征。

  2. 我们采用了一种独特的depth-guided机制,通过图像中隐含的深度信号,利用attention机制去引导每个物体自适应的提取自己感兴趣的区域特征,能够更好的解析物体的深度几何特性。

  3. 对于3D单目检测,我们可以在KITTI上实现了SOTA的性能,并且拥有不错的计算效率;同时,我们的方法也可以推广到多视角的3D检测,在nuScenes上取得领先的检测准确率。

二、方法

1、方法概览:

下图我们提出的MonoDETR和一些现有DETR方案的比较。如(b)所示,我们提出了一种Depth-guided Transformer(深度引导的transformer),相比于原始的2D DETR(a),我们配备了一个Depth Encoder(深度编码器)专门进行深度特征的编码,并且设计了Depth-guided Decoder(深度引导解码器)使得物体能够在深度引导下自适应的提取2D和深度特征。相比于在我们之后的基于多视角3D目标检测的工作,例如PETR(c)和BEVFormer(d),我们专注于M3D的任务,即仅仅以一张图像作为输入,并且独特的以深度信息作为引导,实现单目图像的3D目标检测。

9ee2444299d3262840fd587c47ea95b6.png

2、方法细节:

MonoDETR的实现细节如下图所示,并主要分为4个步骤。首先,对于输入的单张2D图像,我们分别进行2D和深度特征的提取;其次,我们基于其深度特征预测一个前景深度图,该前景深度图不需要额外的深度标注进行监督;之后,我们采用并行的两个encoder,分别对2D和深度特征进行编码;最后,我们采用一个depth-guided decoder来引导物体自适应的提取2D和深度特征,进行3D属性的预测。
接下来,我们详细的从4个步骤来介绍我们的方法流程。

33ba02456940b99db1322c56dc55bbe3.png
(1)2D和深度特征的提取

对于输入的单张2D图片,我们首先采用主干网络去提取它的2D特征,默认的主干网络为ResNet-50。同时,我们也设计了一个轻量级的Depth Predictor(深度预测器)来提取输入图像的深度特征,其流程如下图所示:

a9bfbea067423887ed1f2d2a2e044182.png

为了预测图像的深度特征,我们从主干网络中提取到改图像对应的多尺度视觉特征,并将它们统一分辨率后进行逐元素的相加合并。基于此多尺度的视觉特征,我们使用2层卷积网络,来得到该图像的深度特征。

(2)前景深度图的预测

为了让上述深度特征更好的编码有效的场景深度信息,我们对深度特征使用一层卷积网络,来预测一张前景深度图。该图中,我们只预测前景物体的深度值,而将背景部分的像素值设为0。为了不引入额外的深度监督信号,例如由LiDAR点云投影得到的逐像素的深度,我们仅仅使用物体级别的深度标签,来监督前景深度图的预测。对于落在一个物体2D框区域内的所有像素,我们均使其预测该同一物体的深度值。为了更好的编码深度信息,我们参考CaDDN的方法,对连续的深度值进行量化,并采用LID的方法,将深度值划分为线性增长的分类区间进行预测。
通过监督前景深度图的生成,我们不但不依赖于额外的深度标注,并且可以将有效的深度信息嵌入图像对应的深度特征,使网络更关注于前景物体的几何深度关系。

(3)2D和深度的encoder

在得到输入图像的2D和深度特征后,我们设计了并行的两个encoder结构,visual encoder和depth encoder,分别对两种特征进行全局编码。在encoder中,我们采用了基于自注意力的transformer结构,来交互两种特征内的远距离语义信息。对于visual encoder,我们堆叠了3层block来解析更加丰富的RGB表征信息,而对于depth encoder,我们只使用一层block来理解单通道的深度信息。通过并行的设置,两种encoder可以互不干扰、各司其职,即分别专注于编码图像的2D表征视觉信息,以及3D的深度几何信息。

(4)深度引导的decoder

在经过2D和深度特征的全局编码后,我们参考DETR将物体检测的候选定义为一组queries,并设计了depth-guided decoder来引导每一个物体自适应的提取2D和深度的特征。我们的decoder采用了3个block的transformer结构,在每一个block中,我们使物体queries依次经过“深度 交互注意力”、“query间 自注意力”、“2D 交互注意力”。它们三者分别是为了交互“物体-深度特征”、“物体间特征”、“物体-2D特征”。通过将“物体-深度特征”的交互放在第一位,使得物体queries可以优先的整合全局的深度特征,并将该深度信息作为引导,帮助后续的特征提取。
在下图中,我们可视化了“深度 交互注意力”的注意力图,其中的白点代表了可视化的目标物体query,注意力值由高到低被表示为由红到蓝,更高的注意力值代表了该物体query更加关注并提取这个区域的深度特征。可以看出,通过我们的机制,每个物体可以灵活的在全局范围内整合特征,并且关注到其他物体以及背景的深度信息,不再局限于中心点的局部视觉特征。

9d48ecf685f5b5b17635e909be29ce1c.png

最终,在经过深度引导的decoder后,我们使用一系列检测头,去预测每一个物体query的2D以及3D属性,并最终转化为3D空间中的检测结果进行输出。同DETR一样,MonoDETR不需要任何复杂的后处理操作,例如NMS等。

三、性能

1、KITTI上的3D单目图像检测:

对于3D单目目标检测,MonoDETR在KITTI的test和validation set上,均取得了SOTA的性能,如下图所示:

3e2b21e1d51aac42013fd1708d89e4f1.png

相比于其他大部分方法需要在训练时引入额外数据,例如深度图、视频帧、LiDAR点云、以及CAD模型,MonoDETR不需要任何其他监督,并且在各个难度等级上取得了大幅度领先。同时,比较运行时间以及运算量GFlops,MonoDETR也在性能金额效率间,取得了很好的权衡:

2b3fe529b79edf423d84c2a435df5d74.png

2、nuScenes上的3D多视角图像检测:

不仅仅局限于3D单目目标检测,MonoDETR也可以拓展到相似的其他任务,例如多视角图像的3D目标检测,即输入多张2D图片。我们可以简单的将MonoDETR并行的作用在多个输入的视角图像,拓展为多视角版本MonoDETR-MV,来进行nuScenes数据集上的多视角3D检测。性能如下图所示,在两种不同的图像分辨率下,我们的方法均可以取得比PETR和BEVFromer更好的检测性能,体现了深度引导对于图像3D检测的意义。

01dc16a6cb8ac545fd3035da65572219.png

四、结论

作为自动驾驶中3D点云检测的一个轻量级替代方案,基于图像的3D检测(单目或多视角)势必会在未来的实际应用中取得更大的作用和关注,我们的未来方向会专注于如何提取更有效的提取2D图像中隐含的3D深度信号,来提升检测器的准确率和时间效率。

d2dcf219019071dc552c552d65fb7dd9.png

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

1f877764a4f78b2406449437869a5c86.jpeg

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;

5f27bdcd250c5fe7cf35f44cfb01e749.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值