概述
本文是基于单目图像的3D目标检测方法。
【2021】【MonoDLE】
研究的问题:
-
核心问题:作者将CenterNet作为baseline,量化了每个子任务的整体影响,观察到以下现象
-
观察一:定位误差是制约目标检测性能的关键因素,而定位主要需要深度值以及3D边界框中心的投影坐标,前者不好优化。
-
观察二:随着深度的增加,检测性能显著下降,甚至超过一定距离几乎不可能准确检测。我们将这些几乎无法准确检测的远距离样本称为坏样本,这些样本会降低模型对于易于检测样本的表示,危害整体性能
-
观察三:以往的工作要么单独优化各个部分,要么添加IOU类的损失。
解决方法:
- 将3D边界框中心的投影坐标作为监督信号,同时添加2D目标检测的分支,同时回归3D边界框中心的投影坐标和2D边界框的中心。
- 在训练集中移除坏样本或者减少这些样本的训练权重。
- 一种面向3D IOU的尺寸估计损失,是以往两种思路的结合。
细节
本文的一些设置
目标:
检测物体的类别、2D检测框以及3D检测框
基准模型:
CenterNet+7个检测头,7个检测头是3+4也就是2D目标检测中的关键点热力图、关键点偏移、长宽尺寸+3D目标检测的3D关键点偏移、深度图、尺寸以及偏航角。关键点热力图+关键点偏移=2D边界框中心,关键点热力图+3D关键点偏移=3D边界框中心在图像坐标系下的投影。
错误分析
错误分析方法:
将预测值替换为真值并且评估性能
错误分析的结果:
可以发现,基准模型的评估指标是11.12,各个部分如果完全预测准确,都能带来性能的提升(比如第一个3D边界框中心投影预测准确是的评估指标达到了23.90),其中带来提升最大的就是3D位置预测,而这个部分需要3D边界框中心投影预测+深度预测。其中深度预测是困难的,所以我们可以在3D边界框中心投影预测上下功夫。
定位错误产生的影响:
3D边界框中心投影预测在不同深度下产生偏移带来的影响:3D边界框中心投影预测偏移
(
2
,
2
)
(2,2)
(2,2)会导致60m处的物体偏移0.24m,5m处的物体偏移0.02m。
注意,上面的偏移还是在深度估计完全准确的情况下,但事实上,单目的深度估计也会有很大的误差。这也就说明,当前从单目图像中准确估计远处物体的3D包围框几乎是不可能的任务。
中心检测
上面讲到过,CenterNet进行3D目标检测是
关键点热力图+关键点偏移=2D边界框中心,关键点热力图+3D关键点偏移=3D边界框中心在图像坐标系下的投影。
CenterNet中的关键点热力图是使用2D边界框的中心
作为监督信号的,后面的SMOKE将监督信号换成了3D边界框中心在图像坐标系下的投影
,而本文在SMOKE的基础上再进一步,添加了2D目标检测的分支,使模型能够学习到更好的3D感知特征。
训练样本
作者认为在学习过程中丢弃一些太过困难的样本能够提高模型的性能,而样本的困难与否与距离有很大的关系,所以提出了两个方案:
方案1:
硬编码,设置深度阈值,超过阈值就丢弃样本
方案2:
软编码,使用sigmod函数+超参数
损失函数
直接使用基于IOU的损失会导致优化任务被一些子任务(比如深度估计)压垮,而单独优化每一项会忽略每个组件与最终结果的相关性,因此作者提出了一种面向IOU的3D尺寸估计的损失函数。
第一行是使用标准L1损失的3D尺寸估计损失,第二行是作者提出的面向IOU的3D尺寸估计损失(为什么说是面向IOU的,作者论文附录有解释),第三行是这一项的系数,第四行就是最终的损失尺寸损失。
L
s
i
z
e
^
=
∣
∣
s
−
s
∗
∣
∣
1
L
s
i
z
e
=
∣
∣
s
−
s
∗
s
∣
∣
1
w
s
=
∣
L
s
i
z
e
^
L
s
i
z
e
∣
L
=
w
s
∗
L
s
i
z
e
\hat{L_{size}}=||s-s^*||_{1} \\ L_{size}=||\frac{s-s^*}{s}||_{1} \\ w_s=|\frac{\hat{L_{size}}}{L_{size}}|\\ L=w_s*L_{size}
Lsize^=∣∣s−s∗∣∣1Lsize=∣∣ss−s∗∣∣1ws=∣LsizeLsize^∣L=ws∗Lsize