将3D对象检测方法分为三类:单目图像,点云以及基于融合的方法。基于单目图像的方法。

      尽管2D对象的检测已解决,并已在多个数据集中得到成功应用。但KITTI数据集对对象检测,提出了挑战的特定设置。而这些设置,对于大多数驾驶环境都是常见的,包括小的、被遮挡的或被截断的物体,以及高度饱和的区域或阴影。此外,图像平面上的2D检测,还不足以提供可靠的驱动系统。此类应用需要更精确的3D空间定位和尺寸估算。本节将重点介绍单眼图像估算3D边界框的方法。然而,由于没有可用的深度信息,故大多数方法首先使用神经网络,几何约束或3D模型匹配,在对象3D边界框预测之前,先检测2D候选对象。Chen等 [11] 提出了Mono3D,利用上下文、语义、手工设计的形状特征和位置先验,来设计简单的区域提议。对于任何给定的区域提议,这些特征都可以通过模型,进行有效计算和评分。通过在3D空间上,进行穷举搜索生成区域提议,并使用Non-Maxima Suppression(NMS)进行过滤。通过回归3D边界框的Fast R-CNN [12] 模型,进一步完善结果。这个工作,以作者先前的工作3DOP [13] 为基础,提出了深度图像在类似的框架中生成区域提议。尽管仅使用单眼图像,但是Mono3D模型还是略微提高了所获得的性能,该方法使用了深度图像。

     表1概述了这些方法的方法,优点和局限性。以下小节分别讨论每个类别。

1. 基于单目标图像的方法

   尽管2D对象的检测已解决,并已在多个数据集中得到成功应用。但KITTI数据集对对象检测,提出了挑战的特定设置。而这些设置,对于大多数驾驶环境都是常见的,包括小的、被遮挡的或被截断的物体,以及高度饱和的区域或阴影。此外,图像平面上的2D检测,还不足以提供可靠的驱动系统。此类应用需要更精确的3D空间定位和尺寸估算。本节将重点介绍单眼图像估算3D边界框的方法。然而,由于没有可用的深度信息,故大多数方法首先使用神经网络,几何约束或3D模型匹配,在对象3D边界框预测之前,先检测2D候选对象。Chen等 [11] 提出了Mono3D,利用上下文、语义、手工设计的形状特征和位置先验,来设计简单的区域提议。对于任何给定的区域提议,这些特征都可以通过模型,进行有效计算和评分。通过在3D空间上,进行穷举搜索生成区域提议,并使用Non-Maxima Suppression(NMS)进行过滤。通过回归3D边界框的Fast R-CNN [12] 模型,进一步完善结果。这个工作,以作者先前的工作3DOP [13] 为基础,提出了深度图像在类似的框架中生成区域提议。尽管仅使用单眼图像,但是Mono3D模型还是略微提高了所获得的性能,该方法使用了深度图像。

3D物体检测方法--文末送书_3d

      应当指出,驾驶环境的一个重要特征,是在拥挤的场景中存在严重的遮挡。在这种情况下,车辆可能会挡住自身的视线。Xiang等[14]将可见性模式引入模型,并通过对象推理减轻遮挡效应。他们提出了3D体素模式(3DVP)表示形式,该模型通过RGB强度,对外观进行3D建模。这种表示方式,可以恢复对象的部分可见,被遮挡或被截断。他们通过对数据所观察到的模式进行聚类,并在给定了车辆的2D图像片段的情况下,训练每种特定模式的分类器,从而获得了3DVP的字典。在测试阶段,通过分类获得的模式,用于遮挡推理以及3D姿态和定位估计。该文作者通过最小化投影到图像平面的3D边界框和2D检测之间的重投影误差,来实现3D检测,但其性能,仍取决于区域提议网(RPN, Region Proposal network)的性能。

      尽管一些RPN能够改进传统的提议方法,但它们仍然无法处理遮挡、截断和不同的对象比例。扩展了先前的3DVP框架,上述作者提出了一种SubCNN [15]。因这是一种CNN,故可探索类信息在RPN级别进行对象检测。其中使用子类别的概念,子类别是共享相似属性(例如3D姿势或形状)的对象类别。使用卷积层提取候选区域,以预测RPN级别上每个子类别的热图。在感兴趣区域(ROI)提议之后,网络将输出类别分类,以及精确的2D边界框估计值。使用3DVP [14]作为行人,骑车人和车辆类别的子类别,模型可以恢复3D形状、姿势和遮挡模式。外推层通过引入多尺度图像金字塔,来改善小物体检测。因此,无法概括为不同于现有模式的任意车辆姿态。为了克服这个问题,Deep MANTA [16]使用多任务网络,对单眼图像估计车辆位置、零件定位和形状等。车辆形状由一组关键点组成,这些关键点代表了车辆3维边界,例如车辆的外部顶点。他们首先通过两级细化区域建议网络获得2D边界回归和零件定位。其次,基于推断的形状,执行3D模型匹配以获得3D姿势。

     先前的尝试在3D边界框空间上,进行了详尽搜索,通过外观模式的集群或3D模板估计了3D姿势。Mousavian [17] 首先扩展了具有3D方向(偏航)和边界框尺寸回归的标准2D对象检测器。大多数模型使用L2回归进行定向角预测。相反,作者提出了一种多仓方法来回归取向。该角度被视为属于个重叠仓位之一,而网络便会估计属于每个仓位的角度的置信度,以及要添加到仓位中心,以恢复输出角度的残差角。

      首先,根据网络预测,确定3D框的尺寸和方向,然后再恢复3D对象的姿态,通过求解平移矩阵,使3D边界框的重投影误差最小。以往所有的单目图像方法,只能由前置摄像头检测物体,忽略了车辆侧面和后部的物体。虽然激光雷达方法可以有效地用于360度检测,[18] 提出了第一种根据360度全景图像的3D对象检测方法。作者估计全景图像的密集深度图,并使标准对象检测方法适用于等矩形表示。由于缺乏用于驾驶的全景标记数据集,因此使用了投影转换来变换KITTI数据集。它们还可以在综合数据集上,提供基准检测结果。单眼方法已得到广泛研究。尽管以往的工作,考虑了区域提案的手工设计特征,但大多数方法已转向区域提案的深度学习,以及3D模型匹配和重新投影,以获得3D边界框。

      基于单目的方法的主要缺点,是缺乏深度信息,针对远处和被遮挡物体,限制了检测和定位精度,以及对光照和天气条件的敏感性,限制了这些方法在白天的使用。此外,由于大多数方法都依赖于前置摄像头,因此,与在整个车辆上都有覆盖范围的点云方法相比,只能检测到车辆前方的物体。

2. 基于点云的检测方法

      当前,基于点云的3D对象检测方法,划分为三个子类别:

(1)基于投影的。

(2)体积表示。

(3)点网。每个类别的解释和分析如下。

3. 投影方法

      2D图像中的图像分类和对象检测,是计算机视觉领域的一个经过深入研究的主题。2D图像的数据集和基准架构的可用性,使这些方法更具吸引力。因此,点云(PCL, Point Cloud Layer)投影方法首先通过平面、圆柱或球形投影,将3D点转换为2D图像,然后可以使用标准的2D对象检测模型,并将位置和尺寸进行回归,来恢复3D边界框。Li等 [19] 用圆柱投影映射和全卷积网络(FCN),来预测车辆的3D边界框。投影产生的输入图像,具有编码点距传感器的高度和距离的通道。对该输入被馈送到2D FCN,后者对三个连续层的输入进行下采样,然后使用转置的卷积层,将这些映射上采样,成为边界框(BB, Bounding Box)的预测输出。第一次输出,确定给定点是车辆还是背景的一部分,故可有效地作为弱分类器。第二次输出,编码3D边界框的顶点,以第一次输出为条件,来限制车辆。由于每个车辆会有很多边界框估计,因此可采用NMS (Non Maximum Suppression) 策略来减少重叠预测。在KITTI数据集上,以端到端的方式训练这种检测模型,并进行损失平衡,以避免偏向于出现更频繁的负样本。

     使用圆柱和球形投影, [20]使用鸟瞰投影,来生成3D对象检测。在输入表示形式上有所不同:第一次使用位于单元格内点的最小、中值和最大高度值,作为通道来编码2D输入单元格,而后两个则使用高度、强度和密度通道。第一种方法,使用Faster R-CNN 架构作为基础,并带有调整后的修正网络。该网络的输出具有方向的3D边界框。尽管它们的鸟瞰结果合理,但是其方法所执行的方向以及角度回归效果很差。由于大多数激光雷达,使用具有高点密度的传感器,故限制了所得模型,在低端激光雷达传感器上的应用。Beltrán [13] 提出了一种新颖的编码,该编码根据所使用的激光雷达的参数,来归一化密度通道。这种归一化创建了统一的表示形式,并允许将检测模型,推广到具有不同规格和光束数量的激光传感器。实时自动驾驶能力,是部署在自动驾驶汽车上的安全关键系统的一项基本要求,其中包括物体检测。这些系统必须满足严格的响应时间指标,以使车辆对环境做出合理响应。Complex-YOLO [21] 则参考了YOLO 体系结构的效率,并通过扩展来预测额外的尺寸和偏航角。虽然经典的RPN方法进一步处理每个区域,以进行更精细的预测,但该体系结构,被归类为单次检测器,可在单个向前步骤中,获得检测。尽管检测性能较差,但其使Complex-YOLO的运行时间达到50 fps,效率比以前的方法提高了五倍。

     量化自动驾驶物体检测系统做出的预测可靠性,对于车辆的安全运行至关重要。与人类驾驶员一样,如果系统对预测的信心不足,则应进入安全状态,以避免风险。尽管大多数检测模型都会为每个预测提供分数,但其倾向于使用softmax归一化,来获取类分布。由于此归一化迫使概率总和统一,因此不一定能反映预测的绝对置信度。使用贝叶斯神经网络[22], 来预测感兴趣区域(ROI,Region of Interest)合并后的类别和3D边界框,从而可量化两个输出的网络置信度。通过测量模型不确定性,来解释观测对象,而涉及遮挡和低点密度情况下的观测噪声,通过添加限制惩罚嘈杂训练样本的约束,观察到在模拟不确定性时检测性能的提高。

4. 体积卷积方法

      体积方法假定:对象或场景以3D网格或体素表示形式表示,其中每个单元都有属性,例如二进制占用率或连续点密度。这种方法的优点之一,是它们明确地编码形状信息。但是,结果是,大多数体积是空的,导致在处理其空单元格时效率降低。另外,由于数据实际上是三维的,因此3D卷积是必需的,从而大大增加了此类模型的计算成本。

      为此,论文[23][24]解决了在整个场景体积表示中,使用一级全连接网络,对驾驶场景进行目标检测的问题。一级检测不同于两级检测的地方在于:第一级首先生成区域建议,然后在第二个处理阶段进行细化。Li 在[23]中, 使用二进制体积输入,仅检测车辆。该模型的输出是“对象”和对象框顶点预测。第一个输出在于预测估计的区域是否属于感兴趣的对象;而第二个输出则预测其坐标。作者使用了昂贵的3D卷积,来限制时间性能。为了更有效地实施,论文[24]固定了每个类别对象框的大小,但只检测汽车、行人和骑自行车的人,如表2所示。

3D物体检测方法--文末送书_3d_02

3D物体检测方法--文末送书_3d_03

    这种假设简化了架构,并与稀疏的卷积算法配合,极大地降低了模型的复杂性。L1正则化和线性激活函数,用于维持卷积层之间的稀疏性。在推理过程中,并行网络可独立用于每个类别,而固定对象框大小的假设,则允许直接在正样本3D截取的区域上,来训练网络。在训练过程中,论文作者通过旋转和平移变换,来增强数据,并采用严格的负面挖掘来减少误报。

5. 点网方法

点云是由稀疏分布在空间中的可变数量的3D点组成。因此,如何将其结构合并到假定输入数据大小固定的传统前馈深层神经网络中,这一点并不明显。以往的方法使用投影,将点云的原始点转换为图像,或使用体素表示,将其转换为体积结构。第三类方法称为点网,则是通过使用原始点作为输入,来处理不规则性,以试图减少3D空间中投影或量化所引起的信息丢失。

     论文[25] 介绍了该类别中的开创性工作,即分段地将3D PCL用作输入来执行对象分类和对象分割。网络使用全连接(Fully Connected,FC)层逐点执行转换,并通过最大池化层聚合全局功能,从而确保了点顺序的独立性。实验结果表明,这种方法优于体积法。该模型在PointNet ++ [26] 中得到了进一步扩展,其中对每一层,都以分层结构逐步编码更复杂的特征。

     在基于点云的方法中,投影子类别,由于接近标准图像的对象检测,而备受关注。特别是,在时间复杂度和检测性能之间,提供了良好的折衷。但是,大多数方法在投影点云时,比如密度,高度等,都依赖于手工设计的功能。反之,PointNet方法则使用原始3D点,来学习特征空间中的表示。在最后一个类别中,仍然有必要研究使用整个场景点云,用其作为输入的新形式,因为常规的PointNet[25]模型采用分段对象。同样,体积方法将点云转换为体素表示,则对其中空间信息要求被明确编码。这种方法需要3D卷积,导稀疏表示效率低下。

6. 基于融合的方法

     如前所述,点云不提供纹理信息。但纹理信息对于对象检测和分类,非常有用。反之,单目图像无法捕获深度值,然而深度值对于准确的3D定位和尺寸估计而言,是必需的。另外,随着与传感器的距离渐远,点云的密度会迅速降低,而图像仍可提供远处车辆和物体的检测。为了提高整体性能,某些研究者试图,同时使用具有不同策略和融合方案的两种模式。通常,融合方案有如下三种类型:

    (1)早期融合:在流程开始时,将模式进行组合,从而创建出依赖于所有模式的新表示形式。

    (2)后期融合:在发生融合的最后阶段之前,将分别独立地处理每种模态。该方案不需要全部模态,因为它可以依赖于单个模态的预测。

    (3)深度融合:它在神经网络层中,它分层地混合了模态,从而能允许来自不同模态的特征,在各层之间交互,从而可产生更通用的融合方案。

     Schlosser 在[27]中, 评估了对3D行人检测不同阶段的融合,其模型考虑了两种输入:单眼图像和深度框。Schlosser 得出的结论是:尽管可以使用早期的融合,但性能会下降,不过后期融合可能会产生最佳性能。

    一种融合策略是使用点云投影方法,即沿着投影的PCL映射,使用前置摄像头的额外RGB通道,以获得更高的检测性能。其中的两种方法[28,29]使用了3D区域提议网络,生成3D感兴趣区域,然后将其投影到特定视图,并用于预测类和3D边界框。

     第一种方法是MV3D [28],使用了激光雷达鸟瞰图和前视点的投影,以及前向摄像头的RGB通道图像。网络由三个输入分支组成,每个输入分支都有一个带有根据VGG 的特征提取器。仅基于鸟瞰视图要素生成的3D 提案,会投影到每个视图的要素图。感兴趣区域(ROI)合并层提取了与每个视图的分支相对应的要素。这些特定于提案的功能,以一种深度融合方案进行汇总,其中功能图可以在层次上相互交互。最后的图层输出分类的结果和回归的3D边界框的精确顶点。论文作者研究了不同融合方法的性能,并得出结论:深融合方法获得了最佳性能,这是因其提供了更灵活的方法,来聚合来自不同模式的特征。

     第二种方法是AVOD [29], 这是在第一种中引入早期融合方法的方法,该方法将鸟瞰图和RGB通道合并,以进行区域提议。输入表示与MV3D [28]相似,不过使用了鸟瞰视图和图像输入分支。区域提议网络使用这两种方式的功能图,从而实现了较高的召回率。得分最高的区域提议被采样,并投影到相应视图的功能图中。合并每种形式的提议的特定功能,并在全链接层输出类别分布和每个提议的精确3D框。通常,在卷积阶段之后,丢失细节会阻止检测小物体。论文作者通过使用特征金字塔网络,对特征图进行上采样,来规避这一问题。

     第二种策略包括使用单眼图像获得2D候选图像,并将这些检测结果,推广到到采用点云数据的3D空间。在此类别中,Frustum Point-Net [30]在具有单目图像的图像平面上,生成区域提议,并使用点云执行分类和边界框回归。使用相机校准参数,将在图像平面上获得的2D框推广到3D空间,从而得出平截头体区域提议。选择每个视锥所包围的点,并使用PointNet实例进行分段,消除背景混乱。然后,将此集提供给第二个PointNet实例,以执行分类和3D方框回归。同样,杜等人 [31] 首先选择投影到图像平面时位于检测盒中的点,然后使用这些点进行模型拟合,从而得出初步的3D提议。该提案由两阶段的改进CNN处理,该CNN输出最终的3D框和置信度分数。这两种方法中的检测,都受到有关于单眼图像的区域提议的约束,这可能是由于光照条件等所导致的限制因素。融合方法通过探索来自多种传感器模态的补充信息,来获得最新的检测结果。激光雷达点云可以在较远的位置,提供稀疏和低点密度的准确深度信息,而相机可以提供对类别识别有价值的纹理信息。功能级别上的信息融合,允许使用互补信息来增强性能。在表3中,提供了融合方法的比较。

3D物体检测方法--文末送书_3d_04

本文选自电子工业出版社的《自动驾驶算法与芯片设计》一书,略有修改,经出版社授权刊登于此。