视频链接:https://www.shenlanxueyuan.com/open/course/112
这是Pseudo-LiDAR
作者最近做的一个分享报告:《Pseudo-LiDAR:基于相机的3D物体检测算法》。在这份报告里,作者主要介绍了博士期间的研究成果:基于深度学习的深度估计
,纯视觉3D物体检测算法
。
1. Background
作者首先介绍了激光雷达用于物体检测存在的问题:价格昂贵,易受天气影响(雨天或雾天)、点云稀疏
。
然后介绍了激光雷达和视觉3D物体检测的Pipeline,在KITTI数据集中,LiDAR Pipeline输入为点云和前视图;视觉检测Pipeline中输入立体图像首先生成深度图
,然后前视图和深度图
一起输入到检测模型中。
在KITTI数据集上,可以看到视觉检测性能远远低于LiDAR检测性能,有4倍差距还多?
作者因此猜想是什么原因导致检测性能相差这么大:深度估计不准?图像表达形式?
作者首先进行了深度比较,将生成的伪激光雷达点云与真实点云进行比较,可以看到二者深度基本是一样的,所以深度估计是准确的
,不是造成性能相差巨大的原因。
然后作者做了另外一个实验,在深度图上进行2D卷积操作,可以看到卷积操作之后对应的伪激光雷达点云扩散了
,发现这是造成图像3D物体检测性能低的主要原因。
因此作者提出了伪激光雷达点云3D检测
的方法,首先生成伪激光雷达点云,然后再使用点云3D物体检测器进行检测,这里作者没有设计新的检测算法,可以看到检测性能也已经提升了3倍左右。
2. Pseudo-LiDAR Detection
不难看出,伪点云中,深度估计越准,最终检测性能越高,因此作者提出了新的深度估计方法(改进损失函数
),即将之前的Disparity估计问题直接转换成深度估计问题
,这一部分估计使用神经网络实现。
在上面的深度估计方法中,Depth Cost Volume
维度为图像维度+深度维度,作者进一步改进损失函数
,将其维度直接转换成激光雷达坐标维度,可以看到检测性能进一步提高(PLUMNet)。
为了进一步提高检测性能,作者使用了多传感器融合的方法,将伪激光雷达与真实激光雷达相融合
。这里作者将64线的激光雷达下采样为4线激光雷达。
思想是使用4线真实激光雷达去纠正伪激光雷达点云位置
,结果如下:可以看到纠正后的点云位置基本都在Bounding box中。
最终检测结果如下,在Easy
难度检测结果上与激光雷达检测结果已经基本相同。
总结一下,在视觉3D检测中,作者提出了四种改进方法:
深度图转换成伪点云
,使用点云3D物体检测器进行检测,性能提升了3倍左右;改进损失函数
,将Disparity损失函数改为Depth损失函数,深度估计更准,性能进一步提升;改进损失函数
,将图像维度+深度维度损失函数改为激光雷达坐标维度损失函数,性能再一次提升;多传感器融合
,使用更便宜的真实激光雷达(4线)去纠正伪点云位置,Easy
难度检测结果与激光雷达检测结果基本相同。