最近在自动驾驶的圈子里掀起了一股在BEV(Bird’s Eye View, 鸟瞰图)下对相机做目标检测的风潮,而掀起这股风潮的工作之一就是MARS Lab与MIT、TRI以及理想汽车合作的CORL2021论文DETR3D。

在自动驾驶的环视相机图像中做3D目标检测是一个棘手的问题,比如怎么去从单目相机2D的信息中预测3D的物体、物体形状大小随离相机远近而变化、怎么融合各个不同相机之间的信息、怎么去处理被相邻相机截断的物体等等。

将Perspective View转化为BEV表征是一个很好的解决方案,主要体现在以下几个方面:

1. BEV是一个统一完整的全局场景的表示,物体的大小和朝向都能直接得到表达;

2. BEV的形式更容易去做时序多帧融合和多传感器融合;

3. BEV更有利于目标跟踪、轨迹预测等下游任务。

论文链接: https://arxiv.org/abs/2110.06922 代码链接: https://github.com/WangYueFt/detr3d

一、DETR3D方案

DETR3D模型的设计主要包括三部分:Encoder,Decoder和Loss。

Encoder

在nuScenes数据集中,每个样本含有6张环视相机图片。我们用ResNet去对每张图片进行encode来提取特征,然后再接一个FPN输出4层multi-scale features。

Decoder

Detection head共含有6层transformer decoder layer。类似于DETR,我们预先设置300/600/900个object query,每个query是256维的embedding。所有的object query由一个全连接网络预测出在BEV空间中的3D reference point坐标(x, y, z),坐标经过sigmoid函数归一化后表示在空间中的相对位置。

在每层layer之中,所有的object query之间做self-attention来相互交互获取全局信息并避免多个query收敛到同个物体。object query再和图像特征之间做cross-attention:将每个query对应的3D reference point通过相机的内参外参投影到图片坐标,利用线性插值来采样对应的multi-scale image features,如果投影坐标落在图片范围之外就补零,之后再用sampled image features去更新object queries。

经过attention更新后的object query通过两个MLP网络来分别预测对应物体的class和bounding box的参数。为了让网络更好的学习,我们每次都预测bounding box的中心坐标相对于reference points的offset ( )来更新reference points的坐标。

每层更新的object queries和reference points作为下一层decoder layer的输入,再次进行计算更新,总共迭代6次。

Loss

损失函数的设计也主要受DETR的启发,我们在所有object queries预测出来的检测框和所有的ground-truth bounding box之间利用匈牙利算法进行二分图匹配,找到使得loss最小的最优匹配,并计算classification focal loss和L1 regression loss。

二、实验结果

我们基于FCOS3D预训练的backbone进行训练,在没有使用NMS和test-time augmentation的情况下超过了FCOS3D的结果。

我们基于DD3D预训练的backbone进行训练,在nuScenes test set上得到了最好的结果。

对相邻环视相机重叠部分中被截断物体的的检测一直以来是一个难点,DETR3D通过直接在BEV下做检测的方法避免了相机之间的后处理过程,有效地缓解了这一问题。我们在重叠部分的mAP超过FCOS3D约4个点。

三、近期相关工作

DETR3D在去年10月在nuScenes上达到了第一的成绩。最近几个月在nuScenes的榜单上涌现了很多在BEV下做视觉3D目标检测的工作,看来我们的工作启发了很多领域内的同行,大家都在这个方向上面努力探索。

我们接下来对比一下DETR3D和最近的几篇工作并思考以下几个问题,希望能给大家带来一些启发。

如何将环视图像转化为BEV?

在DETR3D、BEVFormer[2]中,是通过reference points和相机参数的物理意义进行投影来获取图像features,这样的优点在于计算量较小,通过FPN的mutli-scale结构和deformable detr的learned offset,即使只有一个或几个reference points也可以得到足够的感受野信息。缺点在于BEV的同个polar ray上的reference point通过投影采样到的图像特征都是一样的,图像缺少了深度信息,网络需要在后续特征聚合的时候去判别采样到的信息和当前位置的reference points是否match。

在BEVDet[3]里,转化过程follow了lift-splat-shoot[4]的方法,也就是对image feature map的每个位置预测一个depth distribution,再将feature的值乘以深度概率lift到BEV下。这么做需要很大的计算量和显存,由于没有真实的深度标签,所以实际预测的是一个没有确切物理意义的概率。而且图片中相当一部分内容是不含有物体的,将全部feature参与计算可能略显冗余。

如何选择BEV的表现形式?

在DETR3D里,我们并没有完整显式地表示出了整个BEV,而且由sparse的object query来进行表示。最显著的好处就是节省了内存和计算量。而在BEVDet和BEVFormer里,他们生成了一个dense的BEV feature,虽然增加了显存,不过一来更容易去做BEV space下的data augmentation,二来像BEVDet一样可以另外增加对BEV features 的encoding,三来可以适应于各种3D detection head(BEVDet用了centerpoint,BEVFormer用了deformable detr)。

参考

1. DETR3D

https://arxiv.org/abs/2110.06922

2. BEVFormer

https://arxiv.org/abs/2203.17270

3. BEVDet

https://arxiv.org/abs/2112.11790

4. lift, splat, shoot

https://arxiv.org/abs/2008.05711

作者:赵行

Illustration b y Fruzka f rom i cons8

-The End-

想了解更多关于自动驾驶场景下

BEV感知技术方案么?

详情请查看今日三条文章

6.22晚19点,上海人工智能实验室青年科学家李弘扬、资深算法研究员卢乐炜将为大家带来主题为《智能驾驶感知新时代:BEV 环视感知》的Talk分享!

点击下方视频号卡片进行预约

扫码观看!

本周上新!

“AI技术流”原创投稿计划

TechBeat是由将门创投建立的AI学习社区(www.techbeat.net)。社区上线330+期talk视频,900+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。

投稿内容

// 最新技术解读/系统性知识分享 //

// 前沿资讯解说/心得经历讲述 //

投稿须知

稿件需要为原创文章,并标明作者信息。

我们会选择部分在深度技术解析及科研心得方向,对用户启发更大的文章,做原创性内容奖励

投稿方式

发送邮件到

chenhongyuan@thejiangmen.com

或添加工作人员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。

>> 投稿请添加工作人员微信!

关于我“门”

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

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

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

bp@thejiangmen.com

点击右上角,把文章分享到朋友圈

⤵一键送你进入TechBeat快乐星球