一文读懂深度学习在摄像头和激光雷达融合的3-D目标检测中的应用

文章来源:智车行家 点击数:19 发布时间:2020-01-13
看一下近期双目立体视觉实现3D目标检测的深度学习论文,显然立体视觉天然可以提供深度估计,这样给采用2-DRGB图像的3-D目标检测方法提供了更鲁棒的解法,同时也有了更多的技术路线选择。
一文读懂深度学习在摄像头和激光雷达融合的3-D目标检测中的应用

1.引言

看一下近期双目立体视觉实现3D目标检测的深度学习论文,显然立体视觉天然可以提供深度估计,这样给采用2-DRGB图像的3-D目标检测方法提供了更鲁棒的解法,同时也有了更多的技术路线选择。

2.以对象为中心的

立体匹配用于三维对象检测

“Object-Centric Stereo Matching for 3D Object Detection”, 2019,9

当前用于立体3D目标检测的方法,无需修改就可以用PSMNet立体匹配网络,估计的视差转换为3D点云,然后馈入基于激光雷达的3D目标检测器。现有立体匹配网络的问题在于,它们是为视差估计而不是3D目标检测而设计的,目标点云的形状和准确性不是重点。

由于背景和前景的点云是联合估计的,立体匹配网络通常会在目标边界处的深度估计不准确,该估计被称为条纹(streaking),而且现有网络在其损失函数中还计算视差而不是估计的目标点云位置的惩罚。在这里提出了一种二维边框关联(association)和以目标为中心的立体匹配方法,仅估计感兴趣目标的视差。

如图所示是整个算法的流程图:首先,一个2D检测器(ECCV’16发表的方法MS-CNN)在立体图像Il和Ir中生成2D边框。 接下来,边框关联算法会在两个图像之间的目标检测进行匹配,比如结构相似索引(Structural SIMilarity index,SSIM)测度。每个匹配的检测对都传递到以目标为中心的立体网络中,该网络将为每个目标生成视差图和实例分割掩码(基准的视差估计算法是PSMNet)。它们一起形成仅包含感兴趣目标的视差图。最后,视差图转换为点云,任何基于激光雷达的3D对目标检测网络(比如IROS‘18分布的方法AVOD)都可以用该点云来预测3D边框。

微信图片_20200113162422.jpg

KITTI的定性实验结果见下图:真实和预测数据分别为红色和绿色。 彩色点是由立体匹配网络预测的,而激光雷达点则以黑色显示。

微信图片_20200113162424.jpg

3.三角学习网络:

从单眼到立体的三维目标检测

“Triangulation Learning Network: from Monocular to Stereo 3D Object Detection”,2019,6

从立体图像检测3D目标的关键挑战是如何有效利用立体视觉信息。与以前像素级深度图的估计方法不同,此方法采用3D锚框(anchors)来显式构造立体图像ROI之间的目标级对应关系,而深度神经网络会学习检测3D空间的目标,并三角化其结构。

它引入了一种信道重加权(channel reweighting)策略,可增强表示特征并减弱噪声信号从而促进学习过程。而这些灵活地集成到一个扎实的基准单目图像检测器中。结果表明,在KITTI数据集3D目标检测和定位任务中,这个单目基准方法和立体视觉三角化学习网络(Triangulation Learning Network,TLNet)均优于先前的系统。

如图所示,是该3D检测的流水线概述。基线单目网络以蓝色背景表示,复制基准网络并与TLNet进一步集成,可轻松扩展为立体输入。

微信图片_20200113162427.jpg

遵循降维原理,在2D前视图中减少搜索空间。输入图像I分为Gx×Gy网格,每个格预测其目标度(objectness)。输出的目标度表示目标2D投影可能环绕在单格的置信度。置信图(confidence map)的一个示例如下图。

在训练中,首先计算真实3D框的2D投影中心,然后计算其到Gx×Gy网格中所有单元的最小欧式距离。距离小于其宽度的1.8倍的单元被视为前景(foreground)。为了推断,选择前景单元生成潜在的锚框。下图也是前视图锚点生成的示意图。在前视图,潜在的锚具有很高的目标度。只有潜在的锚点才送入RPN减少搜索空间,并节省计算成本。

微信图片_20200113162512.jpg

基准网络中的多阶段3D提议和细化(proposal and refinement)机制类似于Faster-RCNN。在3D RPN,来自前视图生成的潜在锚点投影到图像平面获得RoI。RoIAlign裁剪和调整特征图的RoI特征。每个RoI特征裁剪都馈入任务特定的全连接层,预测3D目标度得分,并回归位置的偏移∆C =(∆cx,∆cy,∆cz)和尺寸偏移∆S =(∆h, ∆w,∆l)。采用非最大抑制(NMS)保留前K个提议,这里取K = 1024。

立体3D检测就是将三角测量学习网络集成到基线模型。三角化(triangulation)是从经典几何多视图中定位3D点,估计其位置、尺寸和朝向。该方法用3D锚框作为参考对目标(targets)进行三角化。如图是锚三角化示意图:通过将3D锚框投影到立体图像,可以获得一对RoI;左RoI通过锚点框与右RoI建立几何对应关系。两个RoI中都存在附近的目标(target),但位置略有不同;TLNet将RoI对作为输入,并利用3D锚作为参考来定位目标。

微信图片_20200113162515.jpg

如图所示是TLNet的架构图:TLNet输入一对有Roi通道和大小Hroi×Wroi的左右RoI特征Fl和Fr,它们通过RoIAlign将相同的3D锚点投影到左右框架而得;然后,用左右相关分(left-right coherence scores)重新加权每个通道;重新加权的特征用逐元求和融合在一起,并传递到任务特定的全连接层预测目标度和3D边框偏移量,即锚框和目标之间的3D几何差异。

微信图片_20200113162517.jpg

最后,下图是结果例子:橙色边框是检测结果,而绿色边框是真实值;对主要方法,可视化图像中投影的3D边框,即第一行和第四行;激光雷达点云仅是可视化参考,在训练和评估中均未使用;结果表明,三角化学习方法减少漏检提高远处区域的深度预测性能。

微信图片_20200113162519.jpg

4.来自视觉深度估计的伪激光雷达:

填补自动驾驶三维目标检测的空白

“Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving”, 2019, 6

迄今为止,基于便宜的单目或立体图像数据的方法精度较低,而这种性能下降通常归因于基于图像的深度估计不佳。但是,造成差异最大的不是数据质量,而是其表示形式。考虑到CNN的内部工作原理,本文提出将基于图像的深度图转换为伪激光雷达(pseudo- LiDAR)表示形式-基本上模仿激光雷达的信号。通过这种表示,可以应用现有不同的基于激光雷达的检测算法。

如图是基于图像的3D目标检测流水线。给定立体或单目图像,首先预测深度图,然后将其反投影到激光雷达坐标系的3D点云,这种表示形式称为pseudo-LiDAR。

微信图片_20200113162522.jpg

关于表示形式的问题,如图所示:将均匀内核的单个2D卷积应用于前视图深度图(左上图),反投影到伪激光雷达空间中并在鸟瞰图显示(右下图),生成的深度图(右上图)与原始伪激光雷达表示相比有较大的深度失真(左下图),尤其是对遥远的物体。这里用颜色标记每个汽车实例的点。这些边框叠加在一起,分别包含绿色和青色汽车的所有点。

微信图片_20200113162525.jpg

最后,看一下实验结果例子:比较AVOD与LiDAR,pseudo-LiDAR和前视图(立体图像)。目标真实边框为红色,预测框为绿色;pseudo-LiDAR图(下边图)中的观察者,站在最左侧向右看。前视图方法(右图)错误地计算了附近目标的深度,并完全错过远处的目标。

微信图片_20200113162527.jpg

5.基于立体R-CNN的

自动驾驶三维目标检测

“Stereo R-CNN based 3D Object Detection for Autonomous Driving”,2019,4

本文充分用立体图像的稀疏和密集、语义和几何信息来实现自动驾驶的3D目标检测方法。这种称为立体视觉R-CNN的方法扩展Faster R-CNN到立体视觉输入,同时检测和关联左右图像的目标。在立体视觉区域提议网络(RPN)之后,该方法添加额外的分支预测稀疏的关键点、视点和目标尺寸,将其与2D左右框组合计算出粗略的3D目标边框。然后,左右RoI通过基于区域的光度对齐来恢复准确的3D边框。该方法不需要输入深度和3D位置来监督学习,但好过所有现有的完全基于图像的监督学习方法。

注:代码发布在github.com/HKUST-Aerial。 

如图所示,立体视觉R-CNN输出立体边框、关键点、目标尺寸和视角,然后进入3D边框估计模块和密集3D边框对齐模块。

微信图片_20200113162530.jpg

本文用分享权重的ResNet-101 和FPN 作为骨干网络,提取左右图像的一致性特征。 如图所示,由于不同训练目标的设计,根本没有做数据关联的计算。具体讲,在立体视觉RPN,分别将左右真实边框的并集(union GT box)指定为目标分类的目标(target);如果一个锚框与union GT box中一个边框的联合与交叉比率(Intersection-over-Union,IoU)大于0.7,则设锚框为正标签;如果锚框与union box任何一个边框的IoU小于0.3,则设负标签。那么,正锚框倾向于同时包含左右目标区域;分别计算union GT box中包含的左右真实框对应的正锚框偏移量,然后将偏移量分别分配给左右回归目标。 

微信图片_20200113162532.jpg

注意,视点角度不等于裁剪图像RoI无法观察到的目标朝向。如图所示,用θ表示相对于摄像机框架的车辆朝向,用β表示相对于摄像机中心的目标方位(azimuth)

微信图片_20200113162535.jpg

除了立体边框和视点角度,投影到2D边框中间的3D边框角点可以为3D边框估计提供更严格的约束。 如图所示,定义四个3D语义关键点,这些关键点指示3D边框底部的四个角点。只能将一个3D语义关键点可见地投影到2D边框的中间(而不是左侧边或右侧边)

微信图片_20200113162537.jpg

如下图所示,从立体边框和透视关键点中提取了七个测量值,分别代表左2D边框的左、上、右和底边,右2D边框的左和右边,以及透视关键点的u坐标。 注:u,v表示图像空间中2D边框中心的水平和垂直坐标,w,h代表边框的宽度和高度。为简化表示,每次测量都通过相机内参标准化。 给定透视关键点,可以推断出3D边框角点和2D边框之间的对应关系(参见图中虚线)。

微信图片_20200113162540.jpg

左右边框提供了目标级的视差信息,因此可以大致解决3D边框。不过,立体边框回归实现是汇聚7×7 RoI特征图的高级信息。 由于有多个卷积滤波器,原始图像的像素级信息(例如,角点和边缘)已经丢失。为达到亚像素匹配的精度,采用像素级的高分辨率信息。这里用密集目标补丁仅计算3D边框中心的视差,即用大量像素测量值求解一个变量。

最后,看一下结果例子,如图所示是从上到下分别说在左图、右图和鸟瞰图进行目标检测的结果。

微信图片_20200113162543.jpg