本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~
直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE等。
基于深度信息的方法 涉及到模型包括:MF3D、MonoGRNet、D4LCN、MonoPSR等。
基于点云信息的方法 涉及到模型包括:Pseudo lidar、DD3D、CaDDN、LPCG等。
一、单目3D目标检测概述
1.1 简介
3D目标检测,只用一个相机实现。输入是图像数据,输出是物体的三维尺寸、三维位置、朝向等3D信息。
1.2 单目相机特征
通过传感器采样和量化,将3D世界中的物体变换到2D空间,用单个或多个通道的二维图像来描绘物体的形状、颜色、纹理和轮廓等信息,这些信息可用于检测物体。
1.3 为什么用单目做3D目标检测
由于2D相机比复杂的3D采集传感器更便宜且更灵活,基于单目图像的方法已得到广泛研究。二维图像以像素的形式提供了对象丰富的颜色和纹理信息。
激光雷达相对高昂的造价和对各种复杂天气情况的敏感性,推动着研究人员开始更多地探索基于视觉的3D目标检测,其在近几年成为越来越热门的研究方向。
基于单目视觉的方法则要求更加严苛,即只有单个相机的图像作为输入,结合相机标定得到物体的三维检测。
这类方法难度较大,但成本极低、便于推广使用,一旦攻克此问题,将彻底颠覆自动驾驶行业的格局。因此,研究此类问题是极具应用价值和学术挑战性的。
1.4 3D边框表示方式
3D边框表示目标的位置、尺寸和方向,是3D目标检测算法的输出。物体是否被遮挡、截断或具有不规则的形状,都用一个紧密边界的立方体包围住被检测到的目标。
3D边框编码方式主要有3种,分别是8角点法、4角2高法、7参数法(常用),如下图所示。
7参数法:由7个坐标参数来表示。它包括边框的中心位置(x, y, z),边框在三维空间中的尺寸(l, w, h)以及表示角度的偏航角θ。
8角点法:8角点法将3D边框通过连接8个角点(c1, c2, . . . , c8)来形成。每一个角点由三维坐标(x, y, z)表示,总计24维向量。
4角2高法:为了保持地面目标的物理约束,3D框的上角需要保持与下角对齐,提出了一种4角2高编码的方法。
4 个角点 (c1, c2, c3, c4) 表示3D边框底面的4个顶点,每个角点用2D坐标(x, y)表示。
两个高度值(h1, h2)表示从地平面到底部和顶部角的偏移量。根据4个角点计算出4个可能的方向,并选择最近的一个作为方向向量。
1.5 挑战
由于是单张图像,是2D维度的,没有深度信息;3D框的中心点在图像中位置,模型难以精准预测出来。
2D图像的缺点是缺乏深度信息,这对于准确的物体大小和位置估计(尤其是在弱光条件下)以及检测远处和被遮挡的物体,难以检测。
二、直接回归的方法
基于直接回归的方法。主要有MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE、 MonoPair、 DEVIANT等算法。
这些算法主要利用几何先验知识,和深度估计的不确定性建模来提高算法性能。
Anchor based(基于锚框)
Deep3Dbbox算法,利用2D检测框和几何投影,并预测物体3D位姿和尺寸,通过求解目标中心到相机中心的平移矩阵,使预测的3D检测框重投影中心坐标与2D检测框中心坐标的误差最小。
MonoDIS算法,利用解耦的回归损失代替之前同时回归中心点、尺寸和角度的损失函数,该损失函数将回归部分分成K 组,通过单独回归参数组来解决不同参数之间的依赖关系,有效避免了各参数间误差传递的干扰,使得训练更加稳定。
预先对全部场景给出了各类目标的锚框,即Anchor-based。这种方法在一定程度上能够解决目标尺度不一和遮挡问题,提高检测精度,但缺乏效率性且很难枚举所有的方向,或为旋转的目标拟合一个轴对齐的包围框,泛化能力欠缺些。
Anchor free(不用锚框)
Anchor free 抛弃了需要生成的复杂锚框, 而是通过直接预测目标的角点或中心点等方法来形成检测框。
RTM3D算法,直接预测3D框的8个顶点和1个中心点,然后通过使用透视投影的几何约束估计3D边框。
SMOKE算法,舍弃了对2D边界框的回归,通过将单个关键点估计与回归的三维变量,来预测每个检测目标的3D框。设计了基于关键点的3D检测分支并去除了2D检测分支。
MonoFlex算法,设计了解耦截断目标和正常目标的预测方法,通过组合基于关键点的深度和直接回归深度进行精确的实例度估计。
GUPNet算法,利用几何不确定性投影模块解决几何投影过程的误差放大问题,并提出了分层任务学习来解决多任务下参数的学习问题。
MonoDLE算法,进行了一系列的 实验,发现了定位误差是影响单目3D目标检测模型性能的关键因素。因此,MonoDLE改进了中心点的取法,采用了从3D投影中心而不是2D边界框中心获取中心点的方法, 以提高模型性能。此外,在实例深度估计任务上,MonoDLE采用了不确定性原理对实例深度进行估计。
MonoCon算法,在MonoDLE算法的基础上添加了辅助学习模块,提升了模型的泛化能力。
DEVIANT算法,提出深度等变性网络来解决现有神经网络模块在处理3D空间中的任意平移时缺乏等变性的问题。
这一类基于直接回归的方法,仅使用单目图像完成模型训练与推理。
下面选一些实时性好的模型,进行详细讲解。
2.1 SMOKE【CVPR2020】
SMOKE是一种实时单目 3D 物体检测器,它提出了一个基于关键点预测的,一阶段单目3D检测框架,去掉了2D框预测部分,直接预测目标的3D属性信息。
输入单张图像。
输出其中每个目标的类别、3D边界框用7个参数表示(h、w、l、x、y、z、θ)
- (h、w、l) 表示目标的高度、宽度和长度;
- (x、y、z) 表示目标中心点在相机坐标系下的坐标;
- θ 表示目标的航向角。
论文名称:SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation
论文地址:https://arxiv.org/pdf/2002.10111.pdf
开源地址:GitHub - lzccccc/SMOKE: SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation
SMOKE 整体框架,如下图所示。输入图像经过DLA-34 Backbone进行特征提取。检测头主要包含两个分支:关键点分支和3D边界框回归分支。
SMOKE的Backbone(主干网络):
- Deep Layer Aggregation,DLA-34网络(基础)
- Deformable Convolutional ,可变形卷积(改进点)
- Group Normbalization,组归一化(改进点)
检测头部分:
- 关键点检测分支
- 3D边界框回归分支
在关键点分支中,图像中的每一个目标用一个关键点进行表示。 这里的关键点被定义为目标3D框的中心点在图像平面上的投影点,而不是目标的2D框中心点。
3D边界框回归分支中,
在Kitti 数据集Test中测试,Car类别的模型精度。
模型效果:
这里只是简单讲了一下,详细讲解看我这篇博客:
【论文解读】SMOKE 单目相机 3D目标检测(CVPR2020)_相机smoke-CSDN博客
环境搭建和模型训练参考这篇博客:单目3D目标检测——SMOKE 环境搭建|模型训练_一颗小树x的博客-CSDN博客
模型推理和可视化参考这篇博客:单目3D目标检测——SMOKE 模型推理 | 可视化结果-CSDN博客
2.2 MonoDLE(CVPR2021)
MonoDLE作为一个延续CenterNet框架的单目3d检测器,在不依赖dcn的情况下获得了较好的性能,可以作为baseline。
MonoDLE和SMOKE有些像,都是单目实现3D目标检测,通过几何约束和回归3D框信息,得到3D框的中心点、尺寸、朝向,但是它反驳了SMOKE提出的2D检测对3D检测没有帮助的论点。
开源地址:https://github.com/xinzhuma/monodle
论文地址:【CVPR2021】Delving into Localization Errors for Monocular 3D Object Detection
论文核心观点,主要包括为三点:
- 2d box中心点与投影下来的3d box中心点,存在不可忽视的差异,优先使用3d box投影下来的中心点。
- 较远目标,会带偏模型训练;在训练时,可以过滤这些过远的物体标签。
- 提出了一种面向 3D IoU 的损失,用于对象的大小估计,不受“定位误差”的影响。
MonoDLE是基于CenterNet框架,实现单目3d检测的。模型结构如下:
Backbone:DLA34
Neck:DLAUp
2D 框检测:3个分支
- 分支一 通过输出heatmap,预测2D框中心点的粗略坐标,以及类别分数。(CenterNet用的是标签中2D框中心作为GT值来监督,MonoDLE采用了3D投影坐标作为粗坐标的监督)
- 分支二 预测的2D框中心点粗坐标与真实坐标之间的偏移。
- 分支三 预测2D框的size。
3D Detection:4个分支
- 分支一 预测2D框中心点粗坐标的深度值。
- 分支二 预测2D框中心点粗坐标与真实的3D投影坐标之间的偏移。
- 分支三 预测3D框的size。
- 分支四 预测偏航角。
模型结构如下图所示:
MonoDLE的损失由7部分组成,
- 分类损失:Focal Loss
- 2D 中心点损失:L1 Loss
- 2D size损失:L1 Loss
- 3D 深度估计损失:
- 3D 中心点损失:L1 Loss
- 3D heading angle:multi-bin Loss
- 3D size:普通的L1 Loss & MonoDLE提出的 IoU Loss
在Kitti验证集做实验,评价指标为Car类别的AP40(BEV / 3D)
- p 表示使用3D 投影中心作为粗中心坐标的监督
- I 表示使用对3D size估计的IOU oriented optimization
- s 表示忽略远距离目标
模型预测效果:
用蓝色、绿色和红色的方框来表示汽车、行人和骑自行车的人。激光雷达信号仅用于可视化。
这里只是简单讲了一下,详细讲解看我这篇博客:【论文解读】单目3D目标检测 MonoDLE(CVPR2021)-CSDN博客
MonoDLE 模型训练 | 模型推理参考这篇博客:
单目3D目标检测——MonoDLE 模型训练 | 模型推理-CSDN博客
2.3 MonoCon(AAAI2022)
MonoCon是一个延续CenterNet框架的单目3d检测器,在不依赖dcn的情况下获得了较好的性能,并且融入了辅助学习,提升模型性能。
曾经在Kitti 单目3D目标检测上,霸榜了一段时间。
MonoCon和MonoDLE很像,在它基础上添加了一些辅助分支检测头,促进网络学习特征的能力。
- MonoCon = MonoDLE + 辅助学习
- 辅助学习:训练阶段增加一些网络分支,对其计算loss项,而在推理阶段完全忽略掉它们,以期得到更好的特征表示。
开源地址(官方):https://github.com/Xianpeng919/MonoCon
开源地址(pytorhc):https://github.com/2gunsu/monocon-pytorch
论文地址:Learning Auxiliary Monocular Contexts Helps Monocular 3D Object Detection
论文核心观点,主要包括为两点:
- 带注释的3D 边界框,可以产生大量可用的良好投影的 2D 监督信号。
- 使用辅助学习,促进网络学习特征的能力。
MonoCon是基于CenterNet框架,实现单目3d检测的。模型结构如下:
Backbone:DLA34
Neck:DLAUp
常规3D框检测头:5个分支
- 分支一 通过输出heatmap,预测2D框中心点的粗略坐标,以及类别分数。
- 分支二 预测2D框中心点粗坐标与真实的3D投影坐标之间的偏移。
- 分支三 预测2D框中心点粗坐标的深度值,和其不确定性。
- 分支四 预测3D框的尺寸。
- 分支五 预测观测角。
辅助训练头:5个分支
- 分支一 8个投影角点和3D框的投影中心。
- 分支二 8个投影角点到2D框中心的offsets。
- 分支三 2D框的尺寸。
- 分支四 2D框中心量化误差建模。
- 分支五 8个投影角点量化误差建模。
模型结构如下图所示:
MonoCon的损失由10部分组成,
常规3D框检测头:5个分支
- 分支一 heatmap 类别分数,使用FocalLoss。2D 中心点损失,使用L1 Loss。
- 分支二 2D框中心点粗坐标与真实的3D投影坐标之间的偏移,使用L1 Loss。
- 分支三 2D框中心点粗坐标的深度值,和其不确定性,使用Laplacian Aleatoric Uncertainty Loss。(MonoPair & MonoDLE & MonoFlex & GUPNet)
- 分支四 预测3D框的尺寸,使用Dimension-Aware L1 Loss(MonoDLE)。
- 分支五 预测观测角,multi-bin Loss,其中分类部分使用 CrossEntropyLoss,回归部分使用 L1 Loss。
辅助训练头:5个分支
- 分支一 8个投影角点和3D框的投影中心,使用FocalLoss。
- 分支二 8个投影角点到2D框中心的offsets,使用L1 Loss。
- 分支三 2D框的尺寸,使用L1 Loss。
- 分支四 2D框中心量化误差建模。
- 分支五 8个投影角点量化误差建模。
论文于KITTI 官方测试集中“汽车类别”的最先进方法进行比较,使用单个2080Ti GPU显卡测试的。
下表中由BEV和3D的测试结果,MonoCon运行时间和精度都是Top 级别的。
作者基于MonoDLE进行了对比实验,分析5个辅助训练分支,和把BN归一化换为AN归一化,对模型精度的影响。
模型预测效果:
下面是单目3D目标检测的效果,激光雷达点云数据仅用于可视化。
在前视图图像中,预测结果以蓝色显示,而地面实况以橙色显示。
分别显示2D框、3D框、BEV的检测效果:
这里只是简单讲了一下,详细讲解看我这篇博客:【论文解读】单目3D目标检测 MonoCon(AAAI2022)-CSDN博客
MonoCon 模型训练和模型推理参考这篇博客:单目3D目标检测——MonoCon 模型训练 | 模型推理-CSDN博客
2.4 CUPNet(ICCV 2021)
CUPNet是基于几何约束和回归方式输出3D框信息,在不依赖dcn的情况下获得了较好的性能。
它也是一款两阶段的单目3d检测器,先回归2D框信息,在ROI区域进一步提取特征,生成3D框信息。
论文地址:Geometry Uncertainty Projection Network for Monocular 3D Object Detection
论文核心观点,主要包括为两点:
- 1、物体高度估计误差,对深度计算有着较大的影响。
- 2、模型训练的稳定性。在模型训练初期,物体高度的预测往往存在较大偏差,也因此导致了深度估算偏差较大。较大误差往往导致网络训练困难,从而影响整体网络性能。
- 3、推断可靠性问题。如果物体的高度预测存在较大偏差,相应计算出的深度值也会存在较大误差。
CUPNet是一个两阶段的框架,实现单目3d检测的。模型结构如下:
Backbone:DLA34
Neck:DLAUp
第一部分 2D 检测:3个分支
- 分支一 通过输出heatmap,预测所有类别的中心点(默认类别为3)。
- 分支二 预测的2D框中心点的偏移。
- 分支三 预测2D框的size。
第二部分 3D 检测:4个分支
- 分支一 预测偏航角。
- 分支二 预测3D框的size。
- 分支三 预测中心点的深度值,和和其不确定性(深度学习偏差)。
- 分支四 预测2D框中心点与真实的3D投影坐标之间的偏移。
模型结构如下图所示:(基于CenterNet的2D检测+ROI特征提取+基础3D检测头)
整体的模型结构,可分为4步:
- 输入图像,经过主干网络提取特征。
- 基于CenterNet的2D框预测部分,用于输出热力图,信息包括:2D中心点、偏移量、2D框的尺寸。
- 提取出ROI的特征。
- 利用所提取的ROI特征,输入到不同的网络头,以获得物体3D框信息,包括:偏转角度、尺寸、深度值、物体3d框中心在图像投影点的偏移量。
在第四步时,首先估计出3D框除了“深度值”以外的所有参数,然后2D框与3D框的高度将被输入到GUP模块中,提取出最终的depth。
CUPNet 的损失由7部分组成,
2D 框检测损失:3部分
- 分支一 通过输出heatmap,预测所有类别的中心点;使用 Focal Loss 函数。
- 分支二 预测的2D框中心点的偏移;使用 L1 Loss 函数。
- 分支三 预测2D框的size;使用 L1 Loss 函数。
3D Detection损失:4部分
- 分支一 预测偏航角。类别使用交叉熵损失,偏航角使用L1 Loss。
- 分支二 预测3D框的size。长和宽为L1 Loss,权重占2/3,3D 高使用laplacian_aleatoric_uncertainty_loss() 函数,权重占1/3。
- 分支三 预测中心点的深度值,和和其不确定性;使用 laplacian_aleatoric_uncertainty_loss() 函数。
- 分支四 预测2D框中心点与真实的3D投影坐标之间的偏移;使用 L1 Loss 函数。
在KITTI 测试集上的 3D物体检测,用以粗体突出显示最佳结果
在KITTI 验证集,汽车类别,进行消融实验:
模型效果:
这里只是简单讲了一下,详细讲解看我这篇博客:【论文解读】单目3D目标检测 CUPNet(ICCV 2021)-CSDN博客
2.5 MonoFlex(CVPR 2021)
MonoFlex是一种端到端、单阶段的单目3D目标检测方法,它基于CenterNet框架结合几何约束,回归方式输出3D框信息。
它优化了被截断物体的3D检测,同时优化了中心点的深度估计,检测速度也比较快。
论文地址:Objects are Different: Flexible Monocular 3D Object Detection
论文核心观点,主要有3点组成:
- 1、有截断的物体和正常的物体要分开处理,提出了截断目标预测的解耦方法。主要体现在:截断的中心点选取差异。
- 2、深度估计中同时考虑:关键点估计的几何深度、直接回归深度,然后两者做加权结合。
- 3、边缘特征提取和融合,单独把边沿的像素拿出来做注意力特征提取,提高offset和heat map的精度。
MonoFlex是一个单阶段的框架,实现单目3d检测的模型结构如下:
Backbone:DLA34
Neck:FPN
Head:由四部分组成
第一部分,预测2D框中心点。
- 通过输出heatmap,预测所有类别的中心点(默认类别为3)。
- 这部分加入了Edge Fusion,增强边缘的中心点预测。
第二部分,预测中心点的偏差。
- 对于正常物体,预测2D框中心点与3D框投影坐标之间的偏差。
- 对于截断物体,预测2D框中心,和3D框中心投影点与图像边沿之间交点的偏差。(下面详细讲)
第三部分,预测常规的信息。
- 2D框宽高。
- 3D方向。
- 3D尺寸。
第四部分,预测深度信息。
- 深度信息1:模型直接归回的深度信息。
- 深度信息2:通过关键点和几何约束,计算出来的深度信息。估计一共10个关键点:3D框8个顶点和上框面、下框面在图片中的投影到x_r的offset;然后通过相机模型计算深度。
- 深度信息融合,把几何深度、直接回归深度,然后两者做加权结合。
模型结构如下图所示:
补充一下Edge Fusion模块:
为了提高截断物体的中心点检测,提出了边缘特征提取和融合,单独把边沿的像素拿出来做注意力特征提取,提高offset和heat map的精度。
- 模块首先提取特征映射的四个边界,将其连接到边缘特征向量中。
- 然后由两个1*1 conv处理,以学习截断对象的唯一特征。
- 最后,将处理的向量重新映射到四个边界,并添加到输入特征图。
在热图预测中,边缘特征可以专门用于预测外部对象的边缘热图,从而使内部对象的位置不被混淆。
MonoFlex 的损失由6部分组成:
- 2D框中心点损失,通过输出heatmap,预测所有类别的中心点;使用 Focal Loss 函数。
- 2D框尺寸损失,使用 L1 Loss 函数。
- 3D框中心点与2D框中心点的偏差损失,使用 L1 Loss 函数。
- 3D朝向角损失,使用MultiBin 函数。
- 3D尺寸损失,使用 L1 Loss 函数。
- 深度信息损失,包括直接回归损失和关键点损失。
在KITTI 验证/测试集上的实验,选择Car类别。模型精度高,实时性好。
模型检测效果:
在截断物体的检测效果:
这里只是简单讲了一下,详细讲解看我这篇博客:【论文解读】单目3D目标检测 MonoFlex(CVPR 2021)-CSDN博客
三、基于深度信息方法
基于深度信息引导的方法。这类算法利用单目深度估计模型预先得到像素级深度图,将深度图与单目图像结合后输入检测器。
这类方法依赖于预先得到的像素级深度图,受限于深度估计模型的准确性,其预测误差会进一步引入到单目3D目标检测模型中。
考虑工程落地和模型精度速度,这类方法不会细讲~
MF3D算法,通过子网络生成深度图,并将目标感兴趣区域与深度图进行融合以回归目标3D位置信息。
MonoGRNet算法,引入一种全新的实例深度估计算法,利用稀疏监督预测目标3D边框中心的深度。不同于MF3D生成整个输入图像的深度图方法,该方法只对目标区域进行深度估计,避免了额外的计算量。
D4LCN算法,一种局部卷积神经网络,通过自动学习基于深度图中的卷积核及其接受域,克服了传统二维卷积无法捕获物体多尺度信息的问题。
MonoPSR算法,用相机成像原理计算图像中像素尺寸,与3D空间之间的比例关系,估计目标的深度位置信息。
许多单目3D目标检测算法将这些深度估计算法视为其自身网络的子模块。深度估计可以弥补单目视觉的不足,更准确地检测物体的三维信息。
四、基于点云信息方法
虽然深度信息有助于3D场景的理解,但简单地将其作为RGB 图像的额外通道,并不能弥补基于单目图像的方法和基于点云的方法之间的性能差异。
基于点云信息引导的方法。这类算法借助激光的雷达点云信息作为辅助监督进行模型训练,在推理时只需输入图像和单目相机信息。
Pseudo lidar算法,采用单目深度估计算法DORN进行深度估计, 将得到的像素深度反投影为3D点云, 从而形成了伪激光点云数据。最后利用已有的基于点云的检测算法Frustum
PointNets进行3D框检测。
Pseudo-lidar++算法,在初始深度估计的指导下,将测量数据分散到整个深度图中以提高检测精度。并利用更加便宜的4线激光雷达来代替64线激光雷达以微调检测结果。
CaDDN算法,通过将深度分类来生成视锥特征,并通过相机参数进一步转化为体素特征,并完成BEV特征生成和3D检测。由于CaDDN使用多个输入转换分支完成3D检测,导致其模型推理速度缓慢,不适用于实时场景。
LPCG算法,是一种用激光点云指导-单目3D目标检测的方法,通过点云数据生成海量粗略的3D标签,生成过程中不用对点云进行标注;降低3D标签的成本。同时这些海量“粗略的3D标签”位置是准确的,只是尺寸和朝向有些偏差;所以如何通过点云数据,直接生成粗略的3D标签是LPCG论文亮点。用这些海量“粗略的3D标签”,作为伪标签,指导单目3D目标检测训练。这种方法可以应用到各种单目3D目标检测模型中,模型精度提升大。
补充一下,引入Transformer的模型:
MonoDTR算法,则将Transformer引入单目3D目标检测领域,通过深度感知特征增强模块和深度感知Transformer模块,实现全局上下文和深度感知特征的综合,将使用深度位置编码向Transformer注入深度位置提示,可以更好地将Transformer应用于单目3D目标检测领域。但 MonoDTR使用的自注意力机制难以处理多尺度目标 ,表现为对远端目标的检测能力下降。
现有方法通常会考虑利用预训练的深度模型,或是激光雷达方法的检测器来辅助完成检测,并且在最近几年中许多直接回归三维参数的方法也涌现了出来。
4.1 LPCG(ECCV 2022)
LPCG是一种用激光点云指导-单目3D目标检测的方法,通过点云数据生成海量粗略的3D标签,生成过程中不用对点云进行标注;降低3D标签的成本。
同时这些海量“粗略的3D标签”位置是准确的,只是尺寸和朝向有些偏差;
所以如何通过点云数据,直接生成粗略的3D标签是LPCG论文亮点。
用这些海量“粗略的3D标签”,作为伪标签,指导单目3D目标检测训练。这种方法可以应用到各种单目3D目标检测模型中,模型精度提升大,太强了~
论文地址:Lidar Point Cloud Guided Monocular 3D Object Detection
开源地址:https://github.com/SPengLiang/LPCG
论文核心观点,主要有4点组成:
- 1、在单目3D目标检测的标签中,中心点位置准确性,是非常重要的;与标签的尺寸和朝向相比,3D位置是极其关键的。
- 2、激光雷达的点云数据,具有准确的3D测量;获取点云数据,不用对点云数据进行标注,经过算法直接生成粗略的3D标签。
- 3、标注一小部分数据,监督训练点云3D目标检测模型,得到高精度的模型;模型预测的结果,作为较精准的3D标签。
- 4、用海量的粗略3D标签,和小量的较精准3D标签,一起形成伪标签,指导单目3D目标检测训练。
LPCG是一种用激光点云指导-单目3D目标检测的方法,可以应用到各种单目3D目标检测模型中,比如:MonoFlex、M3D-RPN等等。
思路框架如下图所示:
第一步:生成伪标签
- 低成本模式,获取点云数据,不用对点云数据进行标注,经过算法直接生成粗略的3D标签。
- 高精度模式,标注一小部分数据,监督训练点云3D目标检测模型,得到高精度的模型;模型预测的结果,作为较精准的3D标签。
- 整合低成本模型输出的海量的粗略3D标签,高精度模型输出的较精准的3D标签,一起作为单目3D目标检测模型的标签。
第二步:训练单目3D模型
- 得到伪标签,进行有监督训练,得到单目3D目标检测模型。
KITTI 测试集上实现分析的。 使用红色表示最高结果,蓝色表示第二高结果,青色表示第三高结果。
‡ 表示我们使用的基线检测器,改进是相对于基线检测器而言的。相对于MonoFlex模型,在简单场景的AP3D提升了5.62,达到25.56。
DD3D 采用大型私有 DDAD15M 数据集(包含大约 15M 帧)和KITTI 深度数据集(包含大约 26K 帧)。
KITTI 深度数据集提供大约 26K 样本来训练深度估计器(对于大多数基于深度图的方法),或为单目 3D 检测器 (LPCG) 生成额外的训练样本。
LPCG训练的 M3D-RPN的结果。 绿色:真实框。 红色:预测框。 白色:来自 M3D-RPN 的原始预测。
鸟瞰图中方框的粗体一侧指的是方向,可以看到LPCG的预测更加准确,一些预测框与真实框重叠。还展示了失败案例,这些案例包含在灰色虚线圆圈中。
本文会持续更新~