摘要

本文充分利用立体图像中的稀疏、密集、语义和几何信息,提出了一种用于自动驾驶的三维目标检测方法。我们的方法,称为 Stereo R-CNN,扩展了 Faster R-CNN 用于立体输入,以同时检测和关联左右图像中的目标。我们在立体区域建议网络(RPN)之后增加额外的分支来预测稀疏的关键点、视点和对象尺寸,并结合左右图像中的2D边界框来计算粗略的3D目标边界框。然后,我们通过使用左右感兴趣区域的基于区域的光度对齐来恢复准确的3D边界框。我们的方法不需要深度depth输入和3D位置监督,但是,它的性能优于所有现有的基于完全监督的图像方法。在具有挑战性的Kitti数据集上的实验表明,我们的方法在3D检测和3D定位任务上都比最先进的基于立体的方法高出约30%的AP。

一、引言

三维物体检测是自动驾驶的视觉感知、运动预测和规划的重要基础。目前,大多数3D目标检测方法[5,23,31,13,18]严重依赖激光雷达数据在自动驾驶场景中提供准确的深度信息。然而,激光雷达的缺点是成本高,感知范围相对较短(∼为100m),信息稀疏。另一方面,单目摄像机为3D对象检测提供了替代的低成本解决方案[3,21,27]。深度信息可以通过场景中的语义属性和对象大小等信息来预测,但是,推断的深度不能保证预测的准确性,特别是对于看不见的场景。为此,我们提出了一种基于立体视觉的三维目标检测方法。与单目摄像机相比,通过左右光度学对齐立体摄像机提供了更精确的深度信息。与LiDAR相比,立体相机的成本较低,而对于具有非平凡差异的目标,可以获得与之相当的深度精度。立体摄像机的感知范围取决于焦距和基线。因此,立体视觉通过组合具有不同焦距和基线的不同立体模块,具有提供更大范围感知的潜在能力。

网络体系结构可以在图1中进行概述,它可以分为三个主要部分。第一个是 Stereo RPN 模块,它输出相应的左右ROI建议区域。在分别对左和右特征地图应用RoIAlign[8]之后,我们连接左、右ROI特征来对对象类别进行分类,并在立体回归分支中回归精确的2D立体框、视点和尺寸关键点分支被用来仅使用左ROI特征来预测对象关键点。这些输出形成了3D盒估计的稀疏约束(2D盒、关键点),其中我们用2D左右盒和关键点来表示3D盒角点之间的投影关系。

确保我们3D定位性能的关键组件是密集的3D框对齐。我们认为三维物体定位是一个学习辅助几何问题,而不是一个端到端的回归问题。我们将对象ROI视为一个整体而不是独立的像素,而不是直接使用没有显式利用对象属性的深度输入[4,27]。对于规则形状的物体,在给定粗略的3D边界框的情况下,可以推断出每个像素与3D中心之间的深度关系。我们根据其与3D对象中心的深度关系将左侧ROI中的密集像素扭曲到右侧图像,以找到使整个测光误差最小的最佳中心深度。因此,整个目标RoI构成了三维目标深度估计的密集约束。根据对齐深度和2D测量结果,使用3D边界框估计器进一步校正3D边界框。

本文的主要贡献如下:

  • 提出了一种同时检测和关联立体图像中目标的Stereo R-CNN方法。
  • 提出了利用关键点和立体边界框约束的3D边界框估计器。
  • 提出了基于密集区域的光度对准方法,确保了3D目标定位的精度。
  • 对KITTI数据集的评估表明,Stereo R-CNN 优于所有最先进的基于图像的方法,甚至可以与基于激光雷达的方法相媲美。

二、Stereo R-CNN 架构

在本节中,我们将描述 Stereo R-CNN 网络架构。与 Faster R-CNN 等单帧检测器相比,Stereo R-CNN 可以同时检测和关联左、右图像的2D边界框,只需稍加修改。我们使用权重共享的ResNet-101和FPN作为骨干网络,提取左右图像的一致特征。受益于我们的训练目标设计图2,没有额外的数据关联计算。

2.1 Stereo RPN

区域提议网络是一种基于滑动窗口的前景检测器。在特征提取之后,使用3×3卷积层来减少通道,然后使用两个兄弟全连接层对每个输入位置进行目标分类和回归边界框的偏移量,每个输入位置用预定义的多尺度边界框锚定。与FPN类似,我们通过在多尺度特征图上评估锚点来修改金字塔特征的原始RPN。不同的是,我们在每个比例尺连接左右特征图,然后我们将连接的特征输入到立体RPN网络。

如图2所示,我们将左右GT盒的并集作为目标分类的目标。如果锚点与其中一个合并GT盒的IoU比率高于0.7,则被分配为正标签;如果锚点与任何一个合并GT盒的IoU比率低于0.3,则被分配为负标签。这种设计的好处是,积极锚往往包含左右对象区域。我们计算正锚点对目标并集GT盒中包含的左右GT盒的偏移量,然后将偏移量分别赋给左右回归。有六个回归条款立体回归量:[∆u,∆w,∆u‘,∆w’,∆v,∆h],我们用u, v来表示2d的水平和垂直坐标框中心在图像空间中的位置, w h表示边界框的宽度和高度,上标(·)'的相应字母表示对应右图中的图像。

因此,我们有6个输出通道用于立体RPN回归器,而不是原始RPN实现中的4个。因为左右提案是由同一个锚生成的,并且共享对象评分,所以它们可以自然地逐个关联起来。我们分别对左右rois进行非极大抑制(Non-Maximum Suppression, NMS)来减少冗余,然后从左右NMS中保留的条目中选择前2000名的候选框进行训练。对于测试,我们只选择前300名的候选框。

2.2 Stereo R-CNN

Stereo Regression

经过立体RPN后,我们得到相应的左右提议对。我们将RoI Align[8]应用于适当的金字塔水平的左边和右边的特征图。左右RoI特征被连接并输入两个顺序的全连接层(每个层后面都有一个ReLU层)来提取语义信息。我们使用四个子分支分别预测对象类别、立体包围盒、维数和视点角度。注意,视点角度不等于从裁剪图像ROI观察不到的对象方向。图3中说明了一个例子,其中我们使用θ表示相对于相机帧的车辆方向,使用β表示相对于相机中心的对象方位。三辆车有不同的方向,但它们在裁剪后的ROI图像上的投影是完全相同的。因此,我们将视点角度α定义为:

为了避免不连续,训练目标是[sinα,cosα]对,而不是原始角度值。利用立体框和物体尺寸,可以直观地恢复深度信息,并通过解耦视点角度和三维位置之间的关系来求解车辆的方位。

在对RoI进行采样时,如果左RoI与左GT盒子之间的最大IoU高于0.5,并且右侧RoI与相应的右侧GT框之间的IoU也高于0.5,我们就将左-右RoI对视为前景。如果左侧RoI或右侧RoI的最大IoU处于[0.1, 0.5]的区间内,左-右RoI对则视为背景。对于前景RoI对,我们通过计算左RoI与左GT盒之间的偏移量,以及右RoI与相应的右GT盒之间的偏移量来指定回归目标。 我们仍然对左和右ROI使用相同的∆v,∆h。对于维度预测,我们只需将ground truth维度与预先设置的维度之间的偏移量进行回归。

Keypoint Prediction

除了立体边界框和视点角度外,我们还注意到投射在边界框中间的3D边界框角点可以为3D边界框估计提供更严格的约束。如图4所示,我们定义了四个3D语义关键点,它们指示3D边界框底部的四个角。只有一个3D语义关键点可以明显地投影到长方体中间(而不是左边缘或右边缘)。我们将这个语义关键点的投影定义为透视关键点。我们在第4节和表中展示了透视关键点如何对3D长方体估计做出贡献。5.我们还预测了两个边界关键点,它们可以作为规则形状物体实例掩码的简单替代。只有两个边界关键点之间的区域属于当前对象,并将用于进一步的密集对齐。

我们预测了Mask R-CNN[8]中提出的关键点。只有左侧的要素地图用于关键点预测。如图1所示,我们将14×14感兴趣区域对齐的特征映射馈送到6个顺序的256维 3×3 卷积层,每个卷积层后面跟着一个RELU层。使用 2×2 反褶积层对输出尺度进行上采样,使其达到 28×28。我们注意到,除了2D框之外,只有关键点的u坐标提供了附加信息。为了轻便任务,我们将6×28×28输出中的高度通道相加,以产生6×28的预测。因此,ROI特征中的每一列都将被聚合,并对关键点预测做出贡献。

最开始的四个通道代表着四个语义关键点中的每一个都投射到相应的u位置的可能性。另外两个通道分别表示每个u位于左右边界的概率。请注意,四个3D关键点中只有一个可以明显投影到2D框的中间,因此将softmax应用于4×28输出,以鼓励将一个单独的语义关键点投影到单个位置。这种策略避免了透视图关键点类型(对应于语义关键点)的混淆。对于左右边界关键点,我们分别对1 × 28的输出应用softmax。

在训练过程中,我们将交叉熵损失最小化到4 × 28 softmax输出的角度关键点预测。4×28输出中只有一个位置被标记为透视图关键点目标。我们忽略了在方框中间没有可见的3D语义关键点的情况(例如,截断和正投影情况)。对于边界关键点,我们分别最小化两个1 × 28 softmax输出的交叉熵损失。根据GT盒之间的遮挡关系,为每个前景RoI分配左右边界关键点。

三、3D 边界框估计

在本节中,我们利用稀疏的关键点和二维盒信息求解一个粗糙的三维包围盒。三维边界盒的状态可以用x = {x, y, z, θ}表示,分别表示三维中心位置和水平方向。给定左右二维方框、透视关键点和回归尺寸,通过最小化二维方框和关键点的再投影误差,可以求解三维方框。如图5所示,我们从立体盒和透视关键点中提取了七个测量值: z = {ul, vt, ur, vb, u′ l, u′ r, up},代表左2D盒的左、上、右、下边缘,右2D盒的左、右边缘,以及透视关键点的u坐标。为简化表示,每个测量值都由相机内参进行归一化。给定透视关键点,可以推断出三维盒角与二维盒边之间的对应关系(见图5中的虚线)。受[17]的启发,我们通过投影变换建立了三维-二维关系。如图5所示:

我们用b表示立体相机的基线长度,w, h, l表示回归尺寸。以上的7个式子中,w/2, l/2 应根据相应的3D框角进行适当的更改。截短的边被丢弃在以上七个方程上。用高斯-牛顿法求解这些多元方程。不同于[17]使用单一的二维方框和尺寸来求解三维位置和方向,我们通过联合使用立体方框和回归尺寸来更稳健地恢复三维深度信息。在一些情况下,少于两个侧面可以完全观察,没有透视关键点上(例如。如截断、正射影),其方向和尺寸从纯几何约束中是不可观测的。我们使用视点角度α来补偿不可观测状态(如图3所示):


通过2D方框和透视关键点来解决,粗糙的3D方框具有精确的投影,并且与图像对齐良好,这使我们能够进一步密集对齐。

四、密集 3D 边界框对齐

左右边界框提供了对象级的视差信息,我们可以粗略地求解三维边界框。然而,立体边界框是通过在一个7 × 7 RoI特征图中聚合高层次的信息来回归的。由于多重卷积滤波器,原始图像中包含的像素级信息(如角、边)会丢失。为了达到亚像素匹配的精度,我们检索原始图像,利用像素级的高分辨率信息。注意,我们的任务与像素级视差估计问题不同,在这个问题中,结果可能会遇到不适定区域的不连续(SGM[10]),或边缘区域的过平滑(基于CNN的方法[29,12,2])。当我们使用密集的对象patch时,我们只解决了三维边界盒中心的视差,也就是说,我们使用了大量的像素测量去解决一个变量。将物体作为一个规则形状的立方体,我们知道每个像素与第4节求解的三维包围盒中心的深度关系。为了排除属于背景或其他物体的像素,我们定义一个有效的RoI,该区域位于左右边界关键点之间,并且位于3D盒的下半部,因为车辆的下半部与3D盒的贴合更紧密(见图1)。

将物体作为一个规则形状的立方体,我们知道每个像素与第4节求解的三维包围盒中心的深度关系。排除像素属于背景或其他对象,我们定义一个有效的RoI左右边界之间的地区是重点和位于底部的部分3 d盒自底部部分车辆适合3 d盒子更紧密(见图1)。一个像素位于规范化协调(ui,vi)在左图像的有效RoI内,光度误差可定义为:

Il和Ir分别表示3通道RGB向量,∆zi= zi−z像素i与3D框中心的深度差;b是基线长度。Z是我们要解的唯一客观变量。我们使用双线性插值来获得右侧图像的亚像素值。总匹配成本被定义为:

中心深度z可以通过最小化总匹配代价E来求解,我们可以有效地枚举深度来找到最小匹配代价的深度。我们首先在初始值周围以0.5米的间隔枚举50个深度值,得到一个粗略的深度,最后在粗略深度周围以0.05米的间隔枚举20个深度值,得到精确对齐的深度。然后,我们使用我们的3D盒估计器通过固定对齐深度来校正整个3D盒(见表6)。将目标RoI视为一个几何约束整体,我们的密集对齐方法自然避免了立体声深度估计中的不连续和不适定问题。有效RoI中的每个像素都对目标深度估计有贡献,对强度变化和亮度占主导地位具有鲁棒性。注意,这种方法是有效的,可以作为一个轻量级的插件模块,用于任何基于图像的3D检测,以实现深度校正。虽然三维物体与三维立方体的拟合并不严格,但形状变化引起的相对深度误差比全局深度误差要小得多。因此,我们的几何约束密集对准提供了准确的目标中心深度估计。

五、实验细节

网络
就像在[25]中实现的那样,我们使用了{32,64,128,126,512}的五个比例锚,三个比例是{0.5, 1, 2}。原始图像在较短的一侧被调整为600像素。对于Stereo RPN,我们在最终分类和回归层中有1024个输入通道,而在实现[19]中由于左右特征图的拼接,有512个通道。同样,我们在R-CNN回归头中有512个输入通道。在 Titan Xp GPU上,Stereo R-CNN对一对立体声的推理时间约为0.28s

训练
我们将多任务损失定义为:


其中,我们用上标p,r分别表示RPN和R-CNN,下标box,α, dim, key分别表示立体边界框、视点、维数和键点的丢失。[11]之后,每个损失都由不确定性加权。我们对左右图像进行翻转和交换,同时分别对视点角度和关键点进行镜像,形成新的立体图像。因此,不同的训练目标会使原始数据集翻倍。在训练过程中,我们在每个小批中保留1个立体对和512个采样的roi。我们使用SGD训练网络,权值衰减为0.0005,动量为0.9。学习率最初设置为0.001,每5个纪元降低0.1。我们训练了20个epoch,共计2天。

六、实验

我们在具有挑战性的KITTI目标检测基准[7]上评估我们的方法。在[4]之后,我们将7481幅训练图像分割为大致相同数量的训练集和验证集。为了充分评估我们基于Stereo R-CNN的方法的性能,我们进行了实验,使用了2D立体回忆、2D检测、立体关联、3D检测和3D定位指标,并与最先进的和自消融进行了比较。根据2D盒子的高度、咬合和截断水平,物体被分为三种难度模式:容易、适中和困难。

Stereo Recall and Stereo Detection
我们的Stereo R-CNN旨在同时检测和关联左右图像的目标。除了评估左右图像的2D平均召回率(AR)和2D平均精度(AP2d)外,我们还定义了立体AR和立体AP指标,其中只有查询满足以下条件的立体盒才能被认为是真值:

  • 具有左侧GT盒的左侧盒的最大IoU高于给定的阈值;
  • 右GT盒的最大IoU高于给定的阈值;
  • 选中的左右GT框属于同一个对象。

如表1所示,通道连接显示了更好的性能,因为它保留了所有的信息。准确的立体检测和关联为三维盒估计提供了足够的盒级约束(第4节)。

三维检测和三维定位
我们使用平均精度鸟瞰图(Average Precision for birds 's view, APbv)和3D盒(3D box, AP3d)来评估我们的3D检测和3D定位性能。结果如表2所示,其中我们的方法优于最先进的单目方法[3,21,27]和立体方法[4]。

七、总结

本文提出了一种基于Stereo R-CNN的自动驾驶场景三维目标检测方法。将三维物体定位作为一个辅助学习的几何问题,我们的方法利用了物体的语义属性和密集约束。在没有三维监督的情况下,我们在三维检测和三维定位任务上比所有现有的基于图像的方法有很大的优势,甚至比基线激光雷达方法更好。

我们的3D目标检测框架是灵活和实用的,每个模块可以扩展和进一步改进。例如,Stereo R-CNN可以扩展为多目标检测和跟踪。我们可以用实例分割代替边界关键点,提供更精确有效的RoI选择。通过对物体形状的学习,我们的三维检测方法可以进一步应用到一般物体上。

【Stereo R-CNN 解读】基于立体R-CNN的自动驾驶三维目标检测相关推荐

  1. 目标检测YOLO实战应用案例100讲-基于单目的自动驾驶三维目标检测系统研究

    目录 前言 (1)改变输出变量定义的方法 (2)改变输入数据的表达形式 (3)改变特征提取方式

  2. 自动驾驶系统进阶与项目实战(三)基于全卷积神经网络的点云三维目标检测和ROS实战

    自动驾驶系统进阶与项目实战(三)基于全卷积神经网络的点云三维目标检测和ROS实战 前面入门系列的文章中我介绍了几种点云三维分割/目标检测模型,在做点云预处理上,有通过球面投射(SqueezeNet)得 ...

  3. 【ZoomNet 解读】局部感知自适应缩放神经网络的三维目标检测

    摘要 三维目标检测是自动驾驶和机器人技术中的一项重要任务.虽然已经取得了很大的进展,但在估计远处和遮挡物体的三维姿态方面仍然存在挑战.本文提出了一种新的基于立体图像的三维检测框架 ZoomNet. Z ...

  4. 综述:基于点云的自动驾驶3D目标检测和分类方法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 参考论文:Point-Cloud based 3D Object ...

  5. 【自动驾驶-3D目标检测】3DSSD:基于点的3D单级目标检测器

    3DSSD:基于点的3D单级目标检测器2020^{2020}2020 摘要 目前,基于体素的3D单级检测器已经有很多种,而基于点的单级方法仍处于探索阶段.在本文中,我们首先提出了一种轻量级且有效的基于 ...

  6. 基于深度连续融合的多传感器三维目标检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 单眼视觉系统以低成本高性能实现令人满意的效果,但无法提供可靠的3D ...

  7. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  8. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  9. 【论文速读】基于图像的伪激光雷达三维目标检测

    点云PCL免费知识星球,点云论文速读. 标题:End-to-End Pseudo-LiDAR for Image-Based 3D Object Detection 作者:Rui Qian, Divy ...

最新文章

  1. 又一所双一流大学明确:发表论文数量不再作为博士毕业的限制性条件
  2. 病毒在网络上传播的基本途径分析
  3. 依赖注入底层反射原理_Spring中反射与反射的原理(转载)
  4. jdk的安装与环境变量的配置
  5. CSS清除默认样式,聪明人已经收藏了!
  6. ECMAScript 6:更好的 Unicode 支持
  7. Netty工作笔记0031---NIO零拷贝应用案例
  8. 【转】 delphi --- WinSocket应用
  9. android 正五边形图表,Android自定义View-蜘蛛网属性图(五边形图)
  10. 工业相机与镜头选型方法(含实例)
  11. 如何解决“数据错误,循环冗余检查”
  12. git报错unsafe repository xxx is owned by someone else
  13. 编译akm小车底盘控制节点
  14. mediasoup中nack的调用机制
  15. Market1501数据集介绍及相关代码
  16. 7-298 sdut-C语言实验-众数7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和
  17. 【读点论文】PP-ShiTu: A Practical Lightweight Image Recognition System,百度推出的强大人工智能产品
  18. LeetCode HOT 100 --- 2021/7/30
  19. 社会要去温暖每一个打工人
  20. 日常可以实践的节省开销方法(愿望清单、记账和预算)

热门文章

  1. 生鲜订单管理系统能给目前的生鲜水果超市带来哪些好处?
  2. Python 从 pyc 中获取编译 pyc 的 python 版本
  3. php 大量数导出表格 打包成zip
  4. autocad.net将Geometry对象转换为Database对象
  5. 浅谈高大上的微信小程序中渲染html内容—技术分享
  6. 单个实体内部和三个实体内部之间的关系
  7. java指针压缩临界值
  8. jmeter接口测试3-正则表达式提取器的使用
  9. 何谓三十而立 四十不惑 五十知天命 六十知耳顺?
  10. Three.js基本元素使用