自动驾驶中的单眼3D对象检测—综述

在自动驾驶中,对物体的3D的检测至关重要,一般都是同过LiDAR完成的,但是LIDAR成本高,也有可能会失效,所以使用图像预测物体的3D框提供了一种很好的备份;
在这里插入图片描述

至今为止,单图像预测3Dbox主要分为四中方法:
1.表示转换(转换成鸟瞰图,算是伪激光雷达);
2.关键点和形状;
3.基于2D / 3D约束的几何推理;
4.直接生成3D bbox;

以下是相关博主整理的这四方面分类的文章:
在这里插入图片描述

表示转换

在自动驾驶中,通常对周围其他车辆的检测会遇到遮挡、无法度量距离等问题,将其转换成鸟瞰图就没有遮挡(除非两辆车能叠加在一起)、未知距离的问题了,相当于是获得了我们需要的3D信息。关于如何转换成鸟瞰图,有三种方法:
IPM
逆透视图映射(IPM)是生成BEV图像的常用技术,但它假定所有像素都在地面上,并且照相机知道准确的在线外部(和固有)信息。但是,外部参数需要在线校准才能对IPM足够准确。
在这里插入图片描述
这就是BEV IPM OD(IV 2019)的功能。它使用IMU数据对外部信息进行在线校准,以获得更准确的IPM图像,然后对其进行对象检测。
正交特征变换(OFT)(BMVC 2019)是将透视图图像提升到BEV的另一种方法,但要通过深度学习框架。这个想法是使用正交特征变换(OFT)将基于透视图图像的特征映射到正交鸟瞰图。ResNet-18用于提取透视图图像特征。然后,通过在投影的体素区域上累积基于图像的特征来生成基于体素的特征。(此过程使我想起了CT图像重建中的反投影。)然后将体素特征沿垂直方向折叠以产生正交的地平面特征。最后,另一个类似于ResNet的自上而下的网络用于推理和完善BEV地图。
在这里插入图片描述
OFT的想法非常简单且有趣,并且效果相对较好。尽管可以通过使用一些启发式方法更好地初始化基于体素的功能来改善反投影步骤,而不是天真地进行反投影。例如,一个很大的bbox中的图像特征不能对应于很远的对象。我对这种方法的另一个问题是准确的外部假设,这可能无法在线获得。
将透视图图像转换为BEV的另一种方法是BirdGAN(IROS 2019),它使用GAN进行图像到图像的翻译。该论文取得了不错的成绩,但正如论文所承认的那样,仅在正面距离只有10至15米的情况下,向BEV空间的平移效果很好。
在这里插入图片描述
伪激光雷达的思路就是用RGB生成点云,再用RGB和点云估计3DBox:
在这里插入图片描述
伪激光雷达(CVPR 2019)可能是这一领域中最著名的。它受到 MLF的启发,通过直接应用基于激光雷达的最新3D对象检测器,以更暴力的方式使用生成的伪激光雷达。作者认为,表示很重要,深度图上的卷积没有意义,因为深度图像上的相邻像素在3D空间中可能实际上相距较远。
在这里插入图片描述
伪激光雷达++的主要改进在于,现在可以使用稀疏但精确的低成本激光雷达测量结果来增强生成的伪激光雷达点云(尽管它们模拟了激光雷达数据)。通过摄像机图像和稀疏深度测量生成密集的3D表示的想法在自动驾驶中非常实用。
在这里插入图片描述
随后又进行了一些后续工作,并改进了原始的伪激光雷达方法。伪激光雷达颜色(CVPR 2019) 通过简单的串联(x,y,z)→(x,y,z,r,g,b)或注意-通过与颜色信息融合来增强伪激光雷达的概念基于选通的选通方法以选择性地传递rgb信息。本文还基于Frustum PointNet(CVPR 2018)和平截头锥体的平均深度的概念,使用了一种简单而有效的点云分割方法。伪激光雷达end2end(ICCV 2019) 强调,伪激光雷达方法的瓶颈有两个方面:深度估计不准确和长尾巴导致的局部未对准(边缘出血)是由对象外围的深度伪影引起的。他们通过使用实例分割掩码代替Frustum PointNet中的bbox扩展了伪激光雷达的工作,并引入了2D / 3D边界框一致性损失的想法。ForeSeE还指出了这些缺点,并着重指出并非所有像素在深度估计中都具有同等的重要性。他们没有像大多数以前的方法那样使用现成的深度估计器,而是训练了新的深度估计器,一个用于前景,一个用于背景,并在推理过程中自适应融合深度图。
在这里插入图片描述
RefinedMPL:用于自动驾驶中3D对象检测的精致单眼PseudoLiDAR深入研究了伪激光雷达中的点密度问题。它指出,点密度比使用64线激光雷达获得的点云高一个数量级。背景中过多的点会导致虚假的误报并导致更多的计算。本文提出了一种两步法来进行结构化稀疏化,首先确定前景点,然后进行稀疏化。首先,通过两种提出的方​​法来识别前景点,一种是有监督的,另一种是无监督的。该监督方法训练2D对象检测器,并使用2bbbox遮罩的并集作为前景遮罩以删除背景点。所述无监督方法使用拉普拉斯高斯(LOG)的执行关键点检测,并且使用最近邻为前景点的第二顺序。然后,这些前景点在每个深度仓内均匀地稀疏。RefinedMPL发现,即使只有10%的点,3D对象检测的性能也不会下降,实际上优于基线。本文还归因于伪激光雷达与真实激光雷达点云之间的性能差距,这归因于不准确的深度估计。
在这里插入图片描述
总体而言,我对这种方法寄予厚望。我们需要的是对前景进行精确的深度估计,可以通过稀疏的深度测量(例如,低成本的4线激光雷达)来增强这种估计。

点和形状

车辆是具有独特共同部分的刚体,可以用作检测,分类和重新识别的界标/关键点。另外,感兴趣的物体(车辆,行人等)的尺寸是具有众所周知的尺寸的物体,包括整体尺寸和关键点间尺寸。可以有效利用大小信息来估计到自我车辆的距离。沿着这条线的大多数研究都扩展了2D对象检测框架(一个阶段,例如Yolo或RetinaNet,或者两个阶段,例如Faster RCNN)以预测关键点。
Deep MANTA(CVPR 2017) 是这方面的一项开创性工作。在用于训练和推理的第1阶段中,它使用级联的更快RCNN架构来回归2d bbox,分类,2D关键点,可见性和模板相似度。模板仅表示(w,h,l)3d bbox的三元组。在仅用于推理的阶段2中,与模板相似,选择最佳匹配的3D CAD模型,并执行2D / 3D匹配(使用 Epnp算法)以恢复3D位置和方向。
在这里插入图片描述
地球不是平坦的(IROS 2018)目标是在陡峭且平缓的道路上对车辆进行单眼重建。在此框架中,一个关键要素是从单眼图像估计3D形状和6 DoF姿势。它还使用了MANTA的36个关键点公式。但是,它不只是从所有可能的3D形状模板中挑选出最好的一个,而是使用基本矢量和变形系数来捕获车辆的形状。使用一组基本形状及其组合系数表示特定形状的想法类似于3D-RCNN和RoI-10D中的想法。在ShapeNet中使用900个3D CAD模型生成/渲染的240万个综合数据集上训练了关键点检测模型,作者发现它可以很好地推广到真实数据。这种mono3DOD方法还用于其他工作,例如多目标单眼SLAM(IV 2020)。
在这里插入图片描述
3D-RCNN(CVPR 2018)估计汽车的形状,姿势和尺寸参数,并渲染(合成)场景。然后,将遮罩和深度图与地面真实情况进行比较,以产生“渲染和比较”损失。主成分分析(PCA)用于估计形状空间的低维(10-d)表示形式。姿势(方向)和形状参数是从RoIPooled特征估计的,并具有基于分类的回归。这项工作需要大量输入:2D bbox,3D bbox,3D CAD模型,2D实例分割和内在函数。此外,基于OpenGL的“渲染和比较”损失似乎也很繁重。
在这里插入图片描述
RoI-10D(CVPR 2019)的名称来自3D边界框的6DoF姿势+ 3DoF大小。附加的1D是指形状空间。与3D RCNN一样,RoI-10D可以学习形状空间的低维(6-d)表示,但是具有3D自动编码器。RGB的特征通过估计的深度信息得到增强,然后被RoIPooled回归旋转q(四元数),RoI相对的2D重心(x,y),深度z和度量范围(w,h,l)。根据这些参数,可以估算3D边界框的8个顶点。可以在所有八个预测的和基础的真实顶点之间制定拐角损失。通过最小化重投影损失,基于KITTI3D离线标记了地面形状。形状的使用也很繁重。
在这里插入图片描述
Mono3D ++(AAAI 2019)基于3D和2D一致性执行3DOD,特别是界标和形状重构。回归到具有14个界标的可变形线框模型。它在 Pascal3D上进行了培训。该模型还使用EM-Gaussian方法通过2D地标学习形状的低维表示。这类似于3D RCNN和RoI 10D,但Mono3D ++并未指定其学习的基础数量。本文还估计了深度和地平面,以形成多个预测分支之间的一致性损失。不幸的是,本文缺少许多关键信息。
在这里插入图片描述
MonoGRNet(AAAI 2019) 对3D中心和粗略实例深度的投影进行回归,并使用两者估算3D粗略位置。它强调 2D bbox中心与3D bbox中心在2D图像中的投影之间的差异。与 GPP类似,预计的3D中心可以看作是一个人工关键点。与许多其他方法不同,它不会使相对容易观察的角度回归,而是直接使8个顶点相对于3D中心的偏移回归。
在这里插入图片描述
在这里插入图片描述
MonoGRNet V2在2D图像中回归关键点,并使用3D CAD模型推断深度。培训基于具有最少关键点注释的3D CAD模型,以及与Deep MANTA中的3D边界框模板匹配一样半自动注释的2D关键点。它基于Mask RCNN体系结构,另外还有两个头。一个头使2D关键点,可见性和局部方向回归,而另一个CAD和尺寸头选择CAD并使3D度量尺寸偏移回归。实例距离由挡风玻璃高度推断。(请注意,原始的Mask RCNN对象检测分支在训练过程中处于打开状态,因为它可以稳定训练,但在推理过程中不会使用。关键点回归头通过完全连接的层直接回归关键点坐标,而不是像Mask RCNN论文所建议的那样通过热图回归。)
在这里插入图片描述
关于3D CAD模型, Deep MANTA使用半自动方式通过将CAD模型放置在3D bboxgroundtruth中来标记3D关键点。Deep MANTA在103个CAD模型中分别标记了36个关键点。MonoGRNet V2在5个CAD模型上标记了14个关键点。Mono3D ++还标记了相同的14个关键点。
在这里插入图片描述
通常,大规模地对汽车的关键点进行密集注释非常复杂且耗时。百度的ApolloScape,特别是从主数据集派生的ApolloCar3D子数据集,是唯一以网格形式提供关键点和形状的密集注释的工具。
地平面轮询(GPP)生成具有3D bbox注释的虚拟2D关键点。它有目的地预测比估计3D bbox(过度确定)所需的属性更多的属性,并使用这些预测以类似于RANSAC的方式形成属性的最大共识集,从而使其对异常值的鲁棒性更高。这类似于在我先前的博客中有关如何将2D边界框提升到3D上提到的2D / 3D严格约束中超定方程的求解。
在这里插入图片描述
RTM3D(实时单声道3D)还使用虚拟关键点,并使用类似CenterNet的结构直接检测所有8个长方体顶点和长方体中心的2d投影。论文还直接回归距离,方向,大小。代替使用这些值直接形成长方体,将这些值用作初始化离线优化器以生成3D bbox的初始值(优先级)。它声称是第一个实时单眼3D对象检测算法(0.055秒/帧)。
在这里插入图片描述
MonoPair从 CenterNet汲取了很多灵感,并专注于根据汽车对之间的空间关系完善检测结果。它不仅可以像CenterNet一样直接检测3D bbox,还可以预测虚拟的成对约束关键点。该成对的关键点,如果他们在最近的邻居被定义为任何两个物体的中点。“关系关键点”的此定义类似于“像素到图形”(NIPS 2017)中的定义。3D全局优化的想法Monopair指出,在深度估计过程中将不确定性纳入其中可以最大程度地提高性能。MonoPair还对对象之间的绝对距离执行旋转变换,以确保局部坐标中的视点不变(请参见我之前关于本地和全局坐标的帖子)。MonoPair还以每帧57毫秒的速度实现了接近实时的性能。
在这里插入图片描述
SMOKE(通过关键点估计进行单阶段单眼3D对象检测,CVPRW 2020)也受到 CenterNet的启发,它完全消除了2D bbox的回归并直接预测3D bbox。它将3D边界框编码为3D长方体中心的投影点,并使用其他参数(大小,距离,偏航)作为附加属性。损失是使用 MonoDIS启发的L1损失优化的3D角损失。与通过多个损失函数的加权和预测7DoF参数相反,这种损失公式是一种根据其对3D边界框预测的贡献权衡不同损失项的一种隐式方法。它也达到不到据我所知,在60米内5%的距离预测误差是用于单眼深度估计的SOTA。感谢作者在此处开放源代码。
在这里插入图片描述
具有解耦的结构多边形估计和高度引导的深度估计的单眼3D对象检测(AAAI 2020)是第一个明确指出对3D顶点的2D投影(在本文中称为结构多边形)的估计的完整工作。与深度估计分离。它使用与RTM3D类似的方法来回归长方体的八个投影点,然后在进行引导距离估计之前使用垂直边缘高度作为强度。这将生成一个粗糙的3D长方体。然后,将此3D长方体用作BEV图像(使用类似于Pseudo-Lidar的方法生成)中的种子位置进行微调。这比单眼伪激光雷达产生更好的结果。
在这里插入图片描述
Monoloco(ICCV 2019) 与上述内容略有不同,因为它专注于回归行人的位置,这可以说比3D检测车辆更具挑战性,因为行人不是刚体,并且具有各种姿势和变形。它使用关键点检测器(自上而下的检测器(例如Mask RCNN)或自下而上的检测器(例如Pif-Paf)提取人类关键点的关键点。作为基准,它利用行人相对固定的高度,尤其是肩部到臀部(约50 cm)来推断深度,这与 MonoGRNet V2和 GS3D非常相似做。本文使用多层感知器(完全连接的神经网络)对所有关键点段长度的深度进行回归,并演示了在简单基线之上的改进。本文还通过对不确定性/流行性不确定性进行建模,对不确定性进行了现实的预测,这在诸如自动驾驶等对安全至关重要的应用中至关重要。
在这里插入图片描述
总之,在2D图像中关键点的提取是实用的,并且有可能推断出3D信息而无需直接基于激光雷达数据从3D注释中进行监督。但是,此方法需要每个对象的多个关键点非常繁琐的注释,并且涉及工程繁重的3D模型操纵。

通过2D / 3D约束进行距离估计

这个方向的研究利用2D / 3D一致性将2D提升到3D。开创性的工作是deep3DBox(CVPR 2016)。像利用上述关键点和形状的方法一样,它还通过添加回归局部偏航(或观察角)和相对于子类型平均值的尺寸偏移的分支来扩展2D对象检测框架。使用这些几何提示,它可以解决过度约束的优化问题以获得3D位置,从而将2D边界框提升到3D。
在这里插入图片描述
尽管Deep3DBox取得了成功,但它仍然有两个缺点(尽管第二个缺点由于其简单性实际上可以在部署中占优势):
1)它依赖于2D bbox的准确检测 -如果2D bbox检测中存在中等误差,则估计的3D边界框可能存在较大误差。2)优化仅基于边界框的大小和位置,并且不使用图像外观提示。因此,它不能从训练集中的大量标记数据中受益。
FQNet(CVPR 2019) 将 deep3dbox的概念扩展到了紧密拟合之外。通过在3D种子位置周围密集采样(通过严格的2D / 3D约束获得),它为deep3dbox添加了一个优化阶段,然后使用渲染的3D线框对2D补丁进行评分。但是,如稍后将讨论的Mono3D中那样,密集采样需要很长时间,并且在计算上无效。
在这里插入图片描述
Shift R-CNN(ICIP 2019) 通过“主动”对Deep3DBox提案的偏移进行回归,从而避免了密集的提案采样。他们将所有已知的2D和3D bbox信息输入到称为ShiftNet的快速,简单的完全连接的网络中,并完善3D位置。
在这里插入图片描述
级联的几何约束可预测3D bbox底面(CBF)中心的投影和视点分类。它还可以基于推断的3D信息消除2D检测中的误报,例如基于边界框底边缘的深度排序,以及附近2D边界框的相似深度。
MVRA(多视图重投影体系结构,ICCV 2019)将2D / 3D约束优化构建到神经网络中,并使用迭代方法来优化裁剪的案例。它引入了一个3D重建层来将2D提升为3D而不是求解一个过度约束的方程,在两个不同的空间中有两个损失:1)透视图中的IoU损失,位于IoU中重新投影的3D bbox和2d bbox之间,以及2 )在估计距离和gt距离之间的BEV损失中的L2损失。它认识到 deep3DBox不能很好地处理截断的框,因为现在边界框的四个边都不对应于车辆的实际物理范围。这提示对截断的bbox使用迭代方向优化通过仅使用3个约束而不是4个约束,排除了xmin(对于左截断)或xmax(对于右截断)汽车。通过pi / 8和pi / 32间隔的两次迭代,通过反复试验来估计全局偏航。
在这里插入图片描述
MonoPSR(CVPR 2019)来自相同的作者,他们是流行的传感器融合框架AVOD的作者。它首先生成3D建议,然后重建动态对象的局部点云。质心建议阶段使用2D框高度和回归的3D对象高度来推断深度,然后将2D边界框中心重新投影到估算深度处的3D空间。建议的鼠尾草是高度实用且相当准确的(平均绝对误差约为1.5 m)。重建分支使对象的局部点云回归,并将其与点云和相机中的GT(投影后)进行比较。它呼应MonoGRNet和 TLNet的观点,即整个场景的深度对于3D对象检测来说是过大的。通过以实例为中心的焦点,避免了倒退较大的深度范围,从而使任务更加轻松。
在这里插入图片描述

GS3D(CVPR 2019) 主要基于Faster RCNN框架,并带有附加的方向回归头。它使用从2D边界框高度估计的局部方向和距离来生成3D边界框的粗略位置。深度估计使用有趣且实用的统计数据,即在2D图像中投影的3D边界框高度的投影大约是从训练数据集的分析获得的2D bbox高度的0.93倍。它还使用表面特征提取模块(RoIAlign的仿射扩展)完善3D检测。
在这里插入图片描述

总而言之,这种方法很容易扩展2D对象检测,并且在我看来是最实用的方法。Deep3DBox的开拓性工作在该领域的影响是深远的。

直接生成3D投标

Ucular ATG在CVPR16中开发的Mono3D 是单眼3D对象检测的先驱作品之一。它着重于直接3D提案生成,并基于汽车应位于地平面这一事实生成密集的提案。然后,它通过许多手工制作的功能对每个建议进行评分,并执行NMS以获取最终的检测结果。在某种程度上,它类似于FQNet,它通过检查反向投影的线框来对3D bbox建议进行评分,尽管FQNet将3D建议放置在在这里插入图片描述

Mono3D将密集的3D建议放置在地面上,并通过手工制作的功能对它们进行评分(源)
MonoDIS(ICCV 2019) 基于扩展的RetinaNet架构直接回归2D bbox和3D bbox。它不是直接监督2D和3D bbox输出的每个组件,而是从整体上了解bbox回归,并使用2D(有符号)IoU损耗和3D拐角损耗。这些损失通常很难训练,因此提出了一种纠缠技术,将除一组以外的所有元素(包括一个或多个元素)固定到地面真相并计算损失,基本上只训练该组中的参数。这种选择性训练过程不断旋转,直到它覆盖了预测中的所有元素,并且总损失累积在一个前向传递中。这种解缠结训练过程可以实现2D / 3D bbox的端到端训练,并且可以扩展到许多其他应用程序。
在这里插入图片描述

MonoDIS的作者通过采用虚拟相机的思想进一步改进了该算法。主要思想是该模型必须学习不同距离的汽车的不同表示形式,并且该模型缺乏训练中距离范围以外的汽车的通用性。为了解决更大的距离范围,我们必须增加模型和随附训练数据的容量。虚拟相机建议将整个图像分解为多个图像块,每个图像块至少包含一辆完整的汽车,并且深度变化有限。在推理期间,会生成金字塔状的图像拼贴以进行推理。图像的每个图块或条带都对应一个特定的范围限制,并具有变化的宽度和相同的高度。
在这里插入图片描述

在这里插入图片描述

CenterNet是一种通用的对象检测框架,可以扩展到许多与检测相关的任务,例如关键点检测,深度估计,方向估计等。它首先对指示对象中心位置的置信度的热图进行回归,并对其他对象属性进行回归。 。将CenterNet扩展为包括2D和3D对象检测作为中心点的属性很简单。
而SS3D正是这样做的。它使用类似于CenterNet的结构并首先找到潜在对象的中心,然后同时使2D和3D边界框回归。回归任务会回归有关2D和3D边界框信息的足够信息,以进行优化。2D和3D边界框元组的参数化中总共有26个代理元素。总损失是26个数字的加权损失,其中权重是动态学习的(请参阅我对自定进度的多任务学习的评论)。损失函数具有虚假的局部最小值,并且基于启发式的良好初始猜测可以使训练受益。
在这里插入图片描述

M3D-RPN(ICCV 2019)通过预先计算每个2D锚点的3D平均值来同时回归2D和3D bbox参数。它直接回归2D和3D边界框(11 + num_class),类似于 SS3D直接回归26个数字。本文提出了 2D / 3D锚的有趣思想。本质上,它们仍然是2D锚,覆盖整个图像,但具有3D边界框属性。取决于2D锚点位置,这些锚点对于3D锚点可能具有不同的先验统计。M3D RPN建议针对不同的行区使用单独的卷积滤波器(深度感知卷积),因为深度在很大程度上与自动驾驶场景中的行相关。
在这里插入图片描述

TLNet(CVPR 2019)主要关注立体图像对,但它们也具有可靠的单眼基线。它将3D锚放置在由2D对象检测对向的视锥中作为单基线。它重申了 MonoGRNet的观点,即像素级深度图对于3DOD而言过于昂贵,并且对象级深度应该足够好。它模仿 Mono3D,因为它在[0、70m]范围内使用密集放置的3D锚点(间隔为0.25 m),每个对象类别具有两个方向(0和90度),对象类别的平均大小。将3D建议投影到2D以获得RoI,并且使用RoIpooled功能来回归位置偏移和尺寸偏移。
在这里插入图片描述

总之,由于可能的位置很大,很难将3D锚点直接放置在3D空间中。锚点实质上是滑动窗口,对3D空间进行详尽的扫描非常棘手。因此,直接生成3D边界框通常使用启发式或2D对象检测,例如,汽车通常位于地面上,而汽车的3D边界框位于其相应2D边界框所对向的视锥中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值