无人驾驶视觉感知介绍
上篇博文【无人驾驶视觉系列之】3D障碍物检测(一)主要介绍如何通过深度学习与几何约束来估计出视觉3D感知障碍物信息。本篇博文主要在上篇博文基础之上的优化与改进,来自于论文3D Bounding Box Estimation for Autonomous Vehicles by Cascaded Geometric Constraints and Depurated 2D Detections Using 3D Results。既然说到该篇论文为优化改进部分,那么主要优化的关键点在于:①挖掘可深度学习出来的有利于估计视觉3D参变量,②级联几何约束求解初始化3D位置,③通过3D障碍物来对2D检测结果进行反约束,进一步提高准确度。具体流程请见下面流程图分解进行讲解。
3D视觉障碍物技术
单目3D视觉感知技术目前在工业界主要是深度学习与立体几何相辅相成,还远远不能够深度学习打天下。其实主要原因在于相机成像关系天然丢失深度信息,使用深度学习无法有效的学习出深度信息,误差较大。结合立体几何约束关系能够进一步提升稳定性与缩小误差。
理论技术分析
上图比较清晰的说明了整个3D位置估计流程。首先,目标检测出图像中物体。其次,获取目标物体的图像块patch。使用回归网络推断出3D目标的相关参变量,Projected cbf
、Dimensions
、Orientation
、Viewpoint
。获取出相关参变量之后:
- 通过相似三角形来初步估计出目标的3D位置;
- 使用
Dimensions
、Orientation
、Viewpoint
来进一步约束对3D位置进行修正;
个人认为,整个步骤与上篇文章【无人驾驶视觉系列之】3D障碍物检测(一)介绍的流程主要改变的一个参变量就是这里初始估计3D位置使用的是Projected cbf
的中心点坐标,而第一篇博文使用的是图像box中心点来进行计算的。当然,通过深度学习出来的Projected cbf
较直接使用图像box的中心点,对于3D位置估计精度有了提升。下面我就主要介绍深度学习新增的两个参变量学习来进行解说。
为什么添加Projected cbf
来进行学习?
首先介绍一下Projected cbf
的真值是通过3D目标物体中心点坐标乘以对应的相机内参来求取。然后,深度学习通过图像patch块来学习图像检测的box中心点与该点的偏移量。
为什么添加Viewpoint
来进行学习?
模型估计viewpoint classification
的模式是依据3D曲面投影至图像平面时候,通过较为粗暴的手段将64种一致性方式区分出16种类出来。这种方式能够有效的改善性能指标,现在通过深度学习来学习出这一个viewpoint
出来,具体的viewpoint
见下图:
上图中相机的3D点与2D框都在左侧图片patch
块中,但是从右侧不同的viewpoint
观测会出现不同的3D矩形框可视化。因此,这个就体现出viewpoint
视角的重要性。实际运用中,我们相机视角也会存在一定的位置不同,安装的位置决定你的观看角度。
损失函数相关设计:
通过深度学习3维目标属性的loss
最后为5种进行加权。分别为dimensions
、angle
、confidence
、viewpoint
、projected cbf
,其中
w
1
w_1
w1、
w
2
w_2
w2、
w
3
w_3
w3、
w
4
w_4
w4、
w
5
w_5
w5为对应的权重系数因子。每种属性的学习采取不同的loss
来优化迭代。具体请参考文章细节描述。
通过3D目标估计系数对2D检测进行约束过滤:
说一点个人见解:该篇论文中对2D图像patch信息分析来通过深度学习估计增添Projected cbf与Viewpoint两个参变量,对于视觉3D估计中性能有提高。但是,通过恢复出来的3D框反向约束2D检测,这个说实话在工业界真正却没有使用到。比较巧的是,论文最后也有说到3D目标恢复还是强依赖与2D的检测效果。这个就有些尴尬了,或许通过这种约束确实可以起到一定的作用。主要引用点在于2D检测出来的遮挡率达到一定程度的话,对于恢复3D位姿信息误差会增大。
小结
这篇文章是【无人驾驶视觉系列之】3D障碍物检测(一)的优化部分,主要在于添加两个分支projected cbf
与viewpoint classification
两种,提升3D位置准确性与降低方向orientation
预测误差。论文其它涉及到的优化改进部分,实际在工程使用中应用的较少或者没有使用。但是,projected cbf
与viewpoint classification
的思想,结合上一篇几何约束对3D位置估计与方向预测会有一定提升。