Multi-Sensor 3D Object Box Refinement for Autonomous Driving
这篇论文源自于沈少杰实验室的学长,非常值得注意的是这篇论文从单目视觉3D检测出发,通过不同的trick融合双目以及点云信息(也就是说在添加双目以及添加点云的时候不需要重新train全新的网络,只需要train小网络或者更改post-opimization),是一套非常科学可用的方案。
结果来看,在单目上创新有限,在单目-双目联合上用处很大,也达到了双目的SOTA(仅次于运算量更多的pseudo lidar),可惜在lidar融合上数据结果并没有显著高于纯Lidar的SOTA方案。
整体结构
从中可知中间一条pipeline是完整的单目预测过程,双目以及点云在这里主要作为辅助
单目检测做法
算是比较常见的结构,Faster RCNN->RoI Align->residual prediction
对于深度,网络输出的也是残差,对高度其残差的base估计为 其中为3D物体的高度, 为2D RoI高度,网络输出的深度残差为,定义的网络输出的长宽高残差,其中为
最终的输出为中心在相机中的投影,深度,长宽高的残差,以及相对观察角的sin,cos值(观察角用multi-bin回归)
双目Refinement
稍微有点像Stereo RCNN的想法,通过在局部图像从右目warp到左目上minimizing一个匹配error来估计深度。
这里的算法:
- 在RoI中类似Segmentation输出28*28 * 4 * classs的sigmoid结果,包含一个分类器+三个回归器,回归部分表明图像这个点对应坐标(normalized to [0,1] for each dimensions)
- 根据左图这个区域每一个点预测的normalized坐标以及预测的尺寸,将该点在图中的位置转换到世界坐标,再投影到第二张图中。
- 我们需要减少对应点之间的原图差值
- 优化深度值
子网络的label来源:借助点云,先得到该点云的实际 instance vector值,然后投影回图片中得到像素级label
点云Refinement
- 使用2D detection结果的 RoI提取出部分点云,
- 重采样固定n个点
- point-wise instance seg用于区分foreground
- 根据foreground的probability,重采样m个点
- T-Net用于估计物体中心与几何、方向信息,还要做一个instance vector的估计(类似于双目的结果)
- 优化这个函数,其中为lidar点的坐标,为根据中心点、pose、形状、instsance vector估计的坐标值,由于只需要优化深度值,所以可以线性求解
更多传感器的融合
两项分别处理相机以及点云数据。
其他训练细节
损失函数包括RPN, 2D检测,角度,位置,维度。用multi-loss结合
为了给图片网路提供位置,在输出端加入u,v坐标(grid channels),第一个Conv的权重被复制重用给这新的channel.