【3D目标检测】Deep Continuous Fusion for Multi-Sensor 3D Object Detection论文综述(2018)
1、 为什么要做这个研究(理论走向和目前缺陷) ?
这是一篇比较早的做点云和图像融合做3D目标检测的论文,以前的融合没有做多层融合的,融合过程也过于单一,这篇论文提出了比较有新意的融合思路。
2、 他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
双流,一个处理点云的鸟瞰图,一个处理图像,这里的关键是如何将鸟瞰图特征和图像特征对应起来然后融合(对应元素特征相加),3D点云恰好就是这个负责联系鸟瞰图特征和图像特征的媒介。具体说来就是,每个鸟瞰图像素点可以找到对应的点云中的3D点(找不到的化取最近的),然后这个点又可以投影到图像上找到对应的像素点(不一定位置就是整数,故需要用到双线性插值),那么就可以将鸟瞰图中的像素点和图像中的像素点对应起来了,然后由于主干网络用的是相同的,又是在同一个stage融合,故两个特征的维度是一样的,就可以将图像上的的像素点特征加到点云鸟瞰图上的对应像素点特征上,完成特征融合。
3、 发现了什么(总结结果,补充和理论的关系)?
思路很新,效果也还行,中间的参数化连续卷积实际就是一个MLP操作,但是在输入设计上还是很有思考的。
**摘要:**提出了一个可以利用连续卷积融合lidar和图像信息的3D目标检测器。所提出的连续融合层可以同时编码离散的图像特征和连续的几何信息。
**注:**本文所说的图像是离散的,是指处理图像特征的过程中是离散的,即任意两个像素点的位置偏移是整数,比如B点相对A点偏移是(1,1)。所说的点云是连续的,是指点云中任意两个点的距离可以是连续的,比如D点相对C点偏移是(0.0001, 0.002, 0.000001)。
1、 引言
以前基于点云做3D目标检测还是3大路线,把点云投影到图像视图,,或者投影到鸟瞰图上,或者进行3D体素化,或者直接对点云数据进行3D框回归(F-PointNet)。
上述对点云处理的方法各有各的缺点,投影方案会缺少深度信息或者信息丢失,3D体素化也有信息丢失且计算量大,直接对点云数据进行回归(F-PointNet)的准确度依赖于前面2D检测器的分割精度。
本文提出了一种基于鸟瞰图的3D目标检测网络,但是这个鸟瞰图通过把图像特征投影到了鸟瞰图上因而融合了图像特征。
2、 相关研究
基于雷达的检测:VeloFCN,3DFCN,PIXOR.
联合图像和点云的检测:F-PointNet.
在3D点云上的卷积:此文中的连续卷积其实就是对点云中的某个点,和其邻近点的位置关系利用一个MLP提取特征。
3、 多模态3D目标检测
融合点云和图像信息并不容易,因为图像是世界在一个平面视角的表征,而点云是实际世界的3D结构。一种比较好的方案就是将点云信息投影到图像视角,并作为一个深度通道和图像连在一起,然后用2D CNN来处理。但是要从2D输出中获取3D检测结果还是不简单的。
本文提出的思路是点云中的3D点作为一个中间媒介,这个3D点可以连接点云鸟瞰图中的像素点,也可以通过投影到rgb图像视角找到在图像特征中对应的像素点。具体来说就是,首先需要利用点云生成鸟瞰图,鸟瞰图中的任意一个像素可以找到这个像素在实际点云中对应的多个邻近3D点(KNN搜索得到),每个3D点又可以通过投影到前视图找到其在图像特征对应的像素点(如果投影过来的像素位置不是整数就要通过双线性插值来确定此3D点在图像中对应的像素点特征)。最后通过将此3D点和其在点云鸟瞰图中对应的那个像素点(3D点是点云鸟瞰图中像素点的临近点)偏移输入到MLP中计算3D点在图像视角对应的像素特征的权重。
3.1 连续融合层
深度参数化连续卷积(Deep Parametric Continuous Convolution):深度参数化连续卷积是基于同期的另外一篇论文出来的(Deep Parametric Continuous Convolutional Neural Networks Shenlong),这个卷积的可以在类似点云这样的数据上进行操作,我们传统意义上的卷积可以视为深度参数化连续卷积的一个特例。
参数化连续卷积可以用下式表示:
其中Xi是点云中的参考点,Xj是Xi的邻近点,可通过KNN算法找到,fj是Xj点对应图像特征。MLP对Xi的每个邻近点都计算一个fj的权重(卷积权重)。
上述过程就是计算一个Xi的参数化连续卷积特征。参数化连续卷积的好处就是它能够捕获局部特征,而且不用进行体素化那样的会损失几何信息的操作。
连续融合层:给定图像特征和3D点云的情况下,连续融合层的目的就是创建一个图像的鸟瞰图特征图,这个鸟瞰图特征图中的每个像素点的特征来自于图像特征(当然是对多个邻近像素点的图像特征进行加权的结果)。然后这个图像的鸟瞰图特征图和点云的鸟瞰图特征图进行融合。这里面有一个问题就是,在生成图像的鸟瞰图特征图的过程中需要用到点云的鸟瞰特征图中像素点在点云中对应的3D点,但是并不是每个点云鸟瞰图中的像素点都能找到在点云中对应的3D点,故基于2D 欧式距离找距离此像素点最近的K个3D点代替(这里还是没看明白,如果没有对应的3D点的话,z值就没办法确定,即使确定了x,y值也可能在不同的z值会搜索到不同的邻近点,也许实际情况下这种很少见,可能还是要看一下代码看看作者是如何处理的)。故输入到MLP中的包括两个部分:1)点云鸟瞰图像素点对应的K个邻近3D点在图像视角对应的图像特征(Di维),2)此临近3D点与点云鸟瞰图像素点对应的3D的位置偏移。将这两个部分连接成一个特征向量输入到MLP中,然后多个邻近点重复此过程求和,此过程操作如下:
与标准的连续卷积对比:
标注连续卷积公式:
其中g为连续核函数,f也是一个定义域连续的函数。。
本文的参数连续化连续卷积用MLP作为g。
3.3 多传感器目标检测网络
双流分别用来处理图像特征和鸟瞰图特征,并用来4个连续融合层来讲多尺度图像特征融合进鸟瞰图特征里。整体结构如下图所示:
主干网络用的是ResNet-18,通过连续融合层从图像分支里提取到的图像特征大小尺度和lidar stream提取到的对应层的特征是一模一样的,故可以采用对应元素相加来进行融合。
检测头:最后一个融合特征后接一个1X1卷积生成检测结果,每个像素点位置预测4个anchor的精细化定位(中心点位置,尺寸,朝向)和得分。然后紧跟一个NMS层。
训练:分类交叉熵,回归smooth L1.
4、实验
检测结果:
在KITTI 3D上评估是需要预测3D框中心点坐标z值和高度h,而在BEV视图下评估时不需要预测z和h,将这两项从损失函数中移去就行。
消融实验:
消融实验有点意思,KNN pooling代表是否使用knn算法搜素最邻近点,Geometric feature代表是否将临近点相对参考点的偏移也输入到MLP中。
消融实验结果表明:
1) 有lidar+img融合的结果比只用lidar的结果要好。
2) No KNN pooling+no Geometric feature,即离散融合模型,这个模型直接将点云中的点投射到鸟瞰图和图像上来寻找匹配到的像素点,然后进行对应像素点上的特征融合。没匹配到的鸟瞰图中的像素点和图像特征中的像素点不做融合处理。实验结果表明,离散融合模型比连续融合模型效果要差,但是比不融合的模型效果要好。
3) 将Geometric feature移除之后,连续融合模型的性能会下降很多,说明这个偏移输入到MLP中还是很有用的。
4) 连续融合模型模型对KNN的参数挺敏感,即只选择一个临近点,距离范围在10m之内会比较好。实际上这个距离即使很大也不是很敏感,推测原因是输入的相对点偏移的影响,即偏移比较大时,mlp会认为此点特征的作用不大。
在另外一个数据集TOR4D的实验结果:
5 结论
本文提出了利用参数化连续卷积实验点云和图像做多层特征融合的3D目标检测网络。