1、为什么要做这个研究(理论走向和目前缺陷) ?
多传感器融合向来不是一个简单的事,融合方式设计的不好不但可能不会信息互补,还有可能各传感器的缺点都继承下来,效果更差。
2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
做点云和图像的融合。点云利用的是BEV特征和图像特征借助3d点这个中间媒介进行关联,然后把关联上的图像像素点特征加到BEV特征上去,这是稀疏point-wise融合,在特征提取主干网络阶段实现。利用BEV特征预测的3D候选区分别投射到BEV特征图和图像特征图上,得到的BEV roi特征图并不是像图像特征roi一样是轴对齐的,需要旋转,结合roi align生成一样大小的roi,然后连接到一块得到roi级的融合特征,在输入到下一阶段网络中进一步预测3D框和2D框。此外,结合了地面估计(利用BEV点云作为U-Net输入预测体素级地面高度)和密集深度估计(以雷达前视图点云经过转换生成的稀疏深度图连接原始图像作为输入,预测每个原始图像像素点都有深度值的密集深度图,利用此密集深度图给没有3D雷达点对应图像特征点对应,融合到BEV特征上,这就实现了密集point-wise融合)来提升特征表现力。
3、发现了什么(总结结果,补充和理论的关系)?
融合了预测地面可以有效提升远距离的物体检测。多任务学习效果更好。
摘要
这篇论文探索基于多传感器数据进行多任务学习实现3D目标检测的方法。利用一个可以端到端学习的架构实现2D和3D目标检测,同时实现了地面估计和深度估计。其实验表明多任务学习互补,并且在不同网络层融合信息有利于特征表达。
1、引言
本文提出的多传感器融合架构利用了点级和roi特征级融合的优势,而预测的地面位置也有利与确定目标的z方向的位置。实时预测的体素级的地面位置是辅助任务,可以用于BEV主干网络的预测相对位置。预测的深度图有利于跨模态特征表达,并实现雷达点特征和伪雷达点(来自深度估计)特征的密集(dense)融合。
在KITTI和TOR4D上做了实验,细实线10fps。
2、相关研究
回顾了多传感器融合和多任务学习相关研究工作。
利用单一模态实现3D目标检测:单目、雷达相关方法优劣
多传感器融合实现3D目标检测:F-PointNet,MV3D,AVOD,ContFuse。
基于多任务学习实现3D目标检测:HDNET,SBNet,3DOP,Mono3D等。
3、多任务多传感器的检测器
模型架构:
此模型架构有如下亮点:1)兼具点级和roi级的特征融合。2)把地面估计模块也整合进去了模型里。3)利用深度估计结果提升多传感器融合和特征,并实现了密集点级特征融合。
3.1 多传感器融合检测器
以雷达点云和图像作为输入,两个主干网络分别在图像层面和雷达鸟瞰图层面提取特征,在特征提取特征阶段图像特征会融入到点云特征中,最后会在BEV图上的每个体素预测3D框(初步),经NMS筛选后得到大概不到20个高质量3D框和对应的2D框,然后利用图像roi和BEV有向roi融合进一步精细化检测结果。
输入表达:点云需要体素化,每个体素网格特征通过每个激光雷达点8点线性插值计算(??),虽然点云得到的是3D网格,但是却是利用2D的CNN来进行特征提取,得到BEV特征。对图像就是正常的CNN特征提取。当需要做深度补全时,需要利用到点云投影产生的深度图,然后连接(cat)到图像上。
网络架构:图像流的主干网络是ResNet-18,BEV流的主干网络是一个自定义的ResNet,比ResNet-18还要轻量。两个主干网络都用了FPN网络来组合多尺度特征。BEV最后一层特征后利用给一个1x1卷积预测3D候选框,经NMS后将这个3D候选框同时投影到BEV视角和图像视角,然后CROP对应视角下的提取的特征,然后把这个两个roi特征一连接在经过两个全连接层实现第二阶段的3D框精细化。
点级特征融合:在图像流和BEV流进行点级特征融合。需要根据3D雷达点作为中介找到图像像素特征和BEV像素特征之间的对应关系。具体说来,每个BEV像素点,都要找到其最近的lidar点,再根据lidar点在图像上的对应像素点,实现BEV像素特征和图像像素级特征的对应。还要计算表示BEV像素点和其对应的最近3D点位置的关系的几何特征(geometric feature),然后将此几何特征和找到的对应的图像像素点特征(cat?)输入到一个MLP中,然后将输出特征都加到BEV像素特征上。由于3D雷达点是稀疏的,故这样的像素级融合是稀疏的。当利用上预测的深度图上(密集伪雷达点)进行融合时,才能称之为密集融合。
ROI级特征融合:将BEV预测3D候选框投影到图像特征上得到的是一个规整的轴对齐的roi特征,而投影到BEV特征图上的候选区由于3D框的有向性,得到的是一个有向的BEV候选区。
对有向BEV候选区的特征提取,会遇到如下图所示的两个问题:1)roi朝向的周期性会导致循环边界的特征顺序相反。为了解决这个问题,提出了一个基于anchor的有向ROI特征提取模块,首先把这个ROI分配给两个相互垂直的anchor,这两个anchor有一致的特征提取顺序(?),除了输出层外其余层用同一个细化网络。2)当ROI旋转时,ROI经过roialign后需要旋转坐标系,使得提取到特征图是一个规整的矩形特征图。见下图。
3.2 基于多任务学习实现3D检测
本模型中有两个辅助任务:地面估计和深度补全。
3.2.1 地面估计
网络架构:基于原始BEV点云利用U-net中为每个体素网格预测高度值。
地图融合:得到地面预测结果后,找到每个3D点对应的体素,此3D点减去此体素的地面高度值来生成一个新的BEV点云,在回归3D检测框阶段,在把预测的地面高度加到相应预测的3D框的Z值上。
3.2.2 深度补全
具有深度原始雷达点相对密集图像来说是稀疏的,故可以考虑基于稀疏的雷达点和密集的图像点生成跟输入图像同样大小的密集深度图。
首先利用雷达点生成一个3通道的稀疏深度图,其中两个通道代表像素偏移,第三个通道代表深度值。这里首先需要将原始3d点坐标转换到相机坐标系,再从相机坐标系转换到图像坐标系((x,y,z)->(xcam,ycam,zcam)->(xim, yim)),找到其在图像上的对应的最近位置(u,v),计算偏移值在不上深度值得最终这个稀疏深度图上像素点的值(xim-u, yim-v, zcam/10)。对于没有对应lidar点像素要补0。最终得到的稀疏深度图和原始图像连接到一块输入到图像流主干网络中。
网络结构:深度补全网络和图像流主干网络共享主干网络,最后利用四个卷积层和两个上采样层来预测和原始图像同样大小的密集深度图。
利用密集深度图实现密集点级特征融合:雷达点相对密集图像是稀疏的,预测的深度图是密集的,这样每个图像像素点都有对应的深度,就可以找到这个图像像素点在BEV特征中的对应特征点,然后将图像像素点特征融合到BEV特征点上去(只有在图像像素点找不到应的3D雷达点是才会去利用预测的深度图去找在BEV上的对应特征点)。
3.3 联合训练
多任务损失:包括分类损失(交叉熵),3D框回归损失(smooth l1),2D(smooth l1)和3D框(smooth l1)精细化损失,地面估计损失(smoth l1),深度估计损失(l1)。总的损失:
地面估计网络需要在TOR4D数据集上进行预训练。
4、实验
在KITTI 2D/3D/BEV任务以及TOR4D BEV任务上做了实验。
4.1 kitti实验
消融实验:
图5(a)结果表明,地面估计对于远距离的物体3D检测提升明显
4.2 TOR4D上的实验结果
4.3 讨论
作者认为3D检测任务比2D检测任务要简单,因为3D检测任务不需要考虑尺寸缩放和遮挡推断的问题,2D图像要考虑目标近大远小以及是否出现的遮挡的问题。