概述
【2022】【WEAKM3D】
研究的问题:
- 核心问题:如何以2D检测框对应的目标点云作为监督信号进行弱监督学习,训练一个单目3D目标检测网络
- 模型产生预测框之后,如何设计损失衡量预测边界框与目标点云之间的距离。
- 如何从点云中获取相关参数的监督信号
解决的方法:
- 基于点密度的点级损失平衡,包括几何目标点云对齐损失以及射线追踪损失
- 给出了位置、偏航角和尺寸的监督信号设计方案。
细节
背景
3D目标检测的标注就是3D边界框,它是从点云出发得到的,但是得到的过程非常耗时且昂贵。因此,如果能直接用点云进行单目3D目标检测网络的训练,会大大降低成本。
标注的变化:
一个目标原先
的标注是3D边界框,作者
提出的弱监督学习方案中的标注是2D检测框对应的目标点云。
训练目标的变化:
原先
训练的目标是模型预测的7个参数和标注3D边界框对应的7个参数尽可能的接近,产生的3D边界框和标注的3D边界框尽可能的一致作者
方案下的训练目标是模型预测的7个参数和从点云中获取的7个参数尽可能的接近,产生的3D边界框尽可能的贴合目标点云。
最大的问题:
- 模型产生预测框之后,如何设计损失衡量预测边界框与目标点云之间的距离。
- 如何从点云中获取相关参数的监督信号
算法流程
推理阶段:
-
一个3D特征提取器提取特征
-
一个2D检测器检测2D边界框
-
获取2D边界框对应的特征
-
回归3D边界框的相关参数
训练阶段:
-
使用RANSAC算法去除原始点云中的接地点
-
将点云投影到图像坐标系下,获取2D边界框中的点云(包含目标点云以及一些背景点云)
-
用一个无监督的目标聚类算法得到目标点云
-
计算预测边界框与目标点云之间的损失
最终损失
损失是在鸟瞰图上逐点计算的,主要包含三部分:一是平衡损失,二是位置预测损失,三是偏航角的损失,二是这样:计算目标点云的平均纵坐标Y作为目标的Y坐标监督信号(不需要x吗?),是为了进一步提高位置的预测。
后面是论文的主体,就是这个平衡损失怎么来,平衡损失其实描述了核心任务,就是3D边界框的位置和尺寸,第二个损失作者一句话带过,就是为了进一步提高位置的预测,第三个损失就是3D边界框的最后一部分:偏航角。
几何目标点云对齐损失
目标:
预测的3D边界框应该包含目标点云并且与目标点云的边缘对齐
最朴素的想法
就是最小化边界框中心点到每个点的欧式距离,但这并不合理,因为这会让网络将点云的中心作为3D边界框的中心,而点云是从目标的表面获取的,这样会让预测边界框的中心趋向于真实边界框的边缘。
具体例子如下:预测产生的边界框与真实边界框差距很大
作者的想法:
发出一条从3D边界框的中心
P
3
d
P_{3d}
P3d到目标点云
P
P
P的射线,交3D边界框的边缘
P
I
P_I
PI,然后最小化
P
P
P和
P
I
P_I
PI之间的距离
作者没有直接预测3D边界框的中心点坐标,而是预测其在图像坐标系下的投影以及对应的深度z,然后组合成中心点坐标。
射线追踪损失
对齐模糊问题:
目标点云无法表示出目标的3D轮廓,难以对齐。例子就是:获得的目标点云只有一个表面的点,不知道该通过3D边界框的哪个表面去和他对齐。
具体例子如下:这两个边界框具有相同的几何对齐损失,但是3D位置大不相同,我们不确定到底哪个边界框是更好的预测
目标:
上面一个损失只考虑了几何信息,这个损失考虑一些语义上的因素
作者
考虑到遮挡约束,发出一条从相机光心
P
c
a
r
m
P_{carm}
Pcarm到目标点云
P
P
P的射线,交3D边界框的边缘
P
R
P_R
PR,然后最小化
P
P
P和
P
R
P_R
PR之间的距离,如果
P
R
P_R
PR有多个,我们只取其中与相机光心最接近的一个点;若没有交点,则不计算损失。
基于点密度的点级损失平衡
背景:
点云分布是不均匀的,也就是有些地方点密度大,有些地方点密度小,这就会导致点密度大的区域贡献更大的损失而点密度小的区域贡献更少损失,因此需要考虑点密度进行损失平衡。
具体做法:
先计算点密度,然后基于点密度平衡损失
计算点密度:
基于点密度平衡损失
示意图
边界框参数预测的解耦
我的理解是以往采用3D边界框标注的时候,可以通过每组预测和相应的标签之间添加损失实现对边界框参数预测的解耦。
我理解的解耦指的是:各个部分参数预测对整个任务的贡献,比如位置预测提升是否能带来评价指标的提升,以及能提升多少。
方向:
目标点云是目标的部分3D轮廓,隐式指出目标的方向。作者通过目标点对的方向获得目标的方向,具体做法就是计算每个目标点对的方向,然后绘制直方图,直方图中最主要的方向就是目标方向,也就是方向的监督信号。