2
BEV感知任务实践
1、如何在BEV空间内做3D目标检测?
在自动驾驶感知中,目标检测是非常重要的任务。
所有下游跟踪、预测、规划、控制等任务都需要目标检测“打好基础”,而下游任务都是在3D空间内完成的。因此,强大的 3D 检测能力是自动驾驶安全的保证。
在实际应用中,纯视觉方案面临从 2D 推测 3D“少一个维度” 的挑战。一般传统方案做3D检测时(如FCOS3D),先做2D的目标检测,再通过以激光雷达测的真值训练的神经网络去对2D目标预测深度,以此来得到3D目标的检测。
在BEV空间内可以直接进行3D目标检测,省去预测深度的过程,实现起来更简单。如把2D检测算法DETR稍加改造用于做3D目标检测的DETER3D,算法复杂度大大降低,也在NuScenes数据集上取得了当前最优水平(SOTA)的检测效果。

DETR3D算法架构(其损失函数的借鉴了DETR的设计)
注:DETR3D由麻省理工学院(MIT)和清华大学、理想汽车和丰田研究所团队共同合作提出的,目前代码已经开源。
DETR3D论文中的感知结果显示,由于在BEV空间里的跨摄像头的融合效果更好,DETR3D对于相机附近超大的、被截断目标物(如大货车)的检出率有了明显的提升(在关键检出指标NDS上,FCOS3D:0.317,DETR3D:0.356)。
此外,BEV空间内的目标检测更容易做到“不重不漏”。
鉴智机器人朱政介绍道:“目标检测最重要是做到‘不重不漏’。在2D图像空间内,由于透视效应,遮挡严重,很容易重合和漏检;在BEV空间内,做到不重合很容易,只需要按照物理世界的规则,把重合的感知目标去掉即可;要做到不漏检,如果单帧图像下被完全遮挡,那的确没办法——不过,加上时序信息,即使在某几帧下被遮挡,只要不是一直被遮挡住,就可以在BEV空间‘脑补’出来。就像人开车一样,前几秒看到旁边车道有辆车, 中间有几秒被大车挡住了,但我们知道再过几秒它还会出现。”
2、传统2D感知任务和BEV空间如何结合?
笔者有个疑问:在BEV空间内检测有这么多好处,那是不是所有的感知任务都可以在BEV空间内完成,传统的那些2D检测和语义分割等感知任务还有“用武之地”吗?
目前看下来,2D感知任务并不会完全被“弃用”,还是会与BEV空间内的检测任务结合进行使用。
鉴智机器人科学家朱政认为,一般的检测任务,如动态车辆、行人和静态车道线等,当然更适合在BEV空间内做,但也有些是在BEV空间内做不了或者更合适在2D空间内做的感知任务,比如红绿灯检测。
纽劢也认为,传统的2D检测和图像分割任务,其实是可以作为辅助来提升BEV感知任务的性能,可以根据下游的不同需求,来做不同的安排。
那么,2D感知的结果怎么对应到 BEV空间呢?