自动驾驶纯视觉3D物体检测算法

自动驾驶纯视觉3D物体检测算法_第1张图片
视频链接:https://www.shenlanxueyuan.com/open/course/112

这是Pseudo-LiDAR作者最近做的一个分享报告:《Pseudo-LiDAR:基于相机的3D物体检测算法》。在这份报告里,作者主要介绍了博士期间的研究成果:基于深度学习的深度估计纯视觉3D物体检测算法


1. Background

作者首先介绍了激光雷达用于物体检测存在的问题:价格昂贵,易受天气影响(雨天或雾天)、点云稀疏

自动驾驶纯视觉3D物体检测算法_第2张图片 自动驾驶纯视觉3D物体检测算法_第3张图片

然后介绍了激光雷达和视觉3D物体检测的Pipeline,在KITTI数据集中,LiDAR Pipeline输入为点云和前视图;视觉检测Pipeline中输入立体图像首先生成深度图,然后前视图和深度图一起输入到检测模型中。

自动驾驶纯视觉3D物体检测算法_第4张图片 自动驾驶纯视觉3D物体检测算法_第5张图片

在KITTI数据集上,可以看到视觉检测性能远远低于LiDAR检测性能,有4倍差距还多?

作者因此猜想是什么原因导致检测性能相差这么大:深度估计不准?图像表达形式?
自动驾驶纯视觉3D物体检测算法_第6张图片
作者首先进行了深度比较,将生成的伪激光雷达点云与真实点云进行比较,可以看到二者深度基本是一样的,所以深度估计是准确的,不是造成性能相差巨大的原因。

自动驾驶纯视觉3D物体检测算法_第7张图片 自动驾驶纯视觉3D物体检测算法_第8张图片

然后作者做了另外一个实验,在深度图上进行2D卷积操作,可以看到卷积操作之后对应的伪激光雷达点云扩散了,发现这是造成图像3D物体检测性能低的主要原因。
自动驾驶纯视觉3D物体检测算法_第9张图片
因此作者提出了伪激光雷达点云3D检测的方法,首先生成伪激光雷达点云,然后再使用点云3D物体检测器进行检测,这里作者没有设计新的检测算法,可以看到检测性能也已经提升了3倍左右。

自动驾驶纯视觉3D物体检测算法_第10张图片 自动驾驶纯视觉3D物体检测算法_第11张图片

2. Pseudo-LiDAR Detection

不难看出,伪点云中,深度估计越准,最终检测性能越高,因此作者提出了新的深度估计方法(改进损失函数),即将之前的Disparity估计问题直接转换成深度估计问题,这一部分估计使用神经网络实现。
自动驾驶纯视觉3D物体检测算法_第12张图片
在上面的深度估计方法中,Depth Cost Volume 维度为图像维度+深度维度,作者进一步改进损失函数,将其维度直接转换成激光雷达坐标维度,可以看到检测性能进一步提高(PLUMNet)。

自动驾驶纯视觉3D物体检测算法_第13张图片 自动驾驶纯视觉3D物体检测算法_第14张图片

为了进一步提高检测性能,作者使用了多传感器融合的方法,将伪激光雷达与真实激光雷达相融合。这里作者将64线的激光雷达下采样为4线激光雷达。

自动驾驶纯视觉3D物体检测算法_第15张图片 自动驾驶纯视觉3D物体检测算法_第16张图片

思想是使用4线真实激光雷达去纠正伪激光雷达点云位置,结果如下:可以看到纠正后的点云位置基本都在Bounding box中。

自动驾驶纯视觉3D物体检测算法_第17张图片 自动驾驶纯视觉3D物体检测算法_第18张图片

最终检测结果如下,在Easy难度检测结果上与激光雷达检测结果已经基本相同。

总结一下,在视觉3D检测中,作者提出了四种改进方法:

  • 深度图转换成伪点云,使用点云3D物体检测器进行检测,性能提升了3倍左右;
  • 改进损失函数,将Disparity损失函数改为Depth损失函数,深度估计更准,性能进一步提升;
  • 改进损失函数,将图像维度+深度维度损失函数改为激光雷达坐标维度损失函数,性能再一次提升;
  • 多传感器融合,使用更便宜的真实激光雷达(4线)去纠正伪点云位置,Easy难度检测结果与激光雷达检测结果基本相同。
自动驾驶纯视觉3D物体检测算法_第19张图片 自动驾驶纯视觉3D物体检测算法_第20张图片

你可能感兴趣的:(论文笔记,自动驾驶,Pseudo-LiDAR,视觉3D物体检测)