论文学习

1.摘要

PointPainting通过将lidar的point投射到基于图片的语义分割网络中,并且将每一个类别的分数添加到每一个点上。
实验结果表明,在三个不同的点云目标检测方法 Point-RCNN, VoxelNet和PointPillars上,使用KITTI和nuScenes数据集都可以得到好的效果。同时,作者还研究了pointpainting这种融合办法的效果与语义分割输出的质量和形式之间的关系,以及在执行pipeline的时候怎样最小化延迟。

2.introduction

图片和点云作为物体的两种不同表现形式,可以呈现出来物体的不同特征,比如图片可以反映物体的颜色以及质地texture,点云就可以呈现一个很精确的范围以及深度等。所以在检测的时候有必要将两个结合在一起。
近几年出现了一些融合方法,MV3D和AVOD等等,但是实验发现,这些融合方法在PointPillars,VoxelNet和STD这些目标检测方法上表现的还是不如不使用融合,单纯使用lidar表现的好。这是不是意味着lidar使得视觉变得多余了呢,答案肯定是否定的。
这张图可以看到,左边的图片上的行人和杆子,在右侧的点云图上,其实是很难分辨出来的。所以单纯靠lidar的点云信息去识别物体是不够的。

在目前fusion精度低的可能原因时,作者认为可能是数据处理的视角不一样,在lidar-based的SOTA的方法中,基本上都是在BEV的视图上进行的,但是在Image视图却是在front视图。lidar数据很容易转化为BEV视图信息,但是Image却不容易,也不精确。因此作者认为fusion的核心问题在于将BEV视角和camera信息融合。
之前的融合方法大致可以分为这几类:以物体为中心的融合object-centric fusion,连续的特征融合continuous feature fusion,显式转换explicit transform和 detection seeding。
大概介绍一下这几种融合方法。
object-centric fusion:MV3D和AVOD是两个典型。这是一种two-stage的架构,融合是发生在proposals level阶段。
continuous feature fusion:在特征图上进行融合,这类融合方式最大的缺点在于“特征模糊”,这是因为在BEV视图上的一个pixel对应着Image视图上的多个pixel。
explicit transform:将Image转化到BEV视图表示,再在此视图上进行融合。
detection seeding:类似F-pointnet,先通过2D detector得到image检测结果,再投影到3D lidar上。
pointpainting解决了现阶段已有的许多融合方法的问题,它不会在3D检测架构上添加任何的约束;也不会有深度模糊;也没有限制最大的召回。
提出了一种简单而有效的顺序融合方法。每个激光雷达点被投影到图像语义分割网络的输出中,并在channel-wise激活被连接到每个LIDAR点的强度测量中。Painted后的点云可用于任何LIDAR检测方法。PoingPainting解决了以前融合概念的缺点:它没有对3D检测架构增加任何限制;它不受特征或深度模糊的影响;它不需要计算伪点云,也不限制最大召回率。

3. PointPainting架构

pointpainting架构以点云和图片作为输入,并且得到最终的3D检测框
它主要包括三个阶段:
1)语义分割:通过使用一个基于图像的网络来计算pixel-wise分割分数。
2)融合:LIDAR点与分割分数进行paint。
3)3D物体检测:一个基于lidar的3D检测网络。

4. 基于图像的语义网络

输入为一个图像,输出是每个像素的类分数;
首先,语义分割只需要局部的,每个像素的分类化;而目标检测需要3D定位和分类。执行语义分割的网络更容易训练,也适合执行快速推理。
其次,语义分割技术正在迅速发展,这使得PointPainting可以从分割和3D对象检测的进步中受益。
最后,在机器人或自动驾驶汽车系统中,对于诸如自由空间估计这样的任务,语义分割的输出是有用的独立输出。

5. 结果对比

在本文中,我们KITTI实验的分割分数是由DeepLabv3+生成的,而对于nuScenes实验,我们训练了一个定制的、更轻的网络。然而,我们注意到PointPainting与图像分割网络设计无关。

图3.PointPainting是一种通用的融合方法,可用于任何激光雷达检测网络。左上:KITTI[鸟瞰图集合上的PointPillars, VoxelNet和PointRCNN(表1)。在KITTI测试集上,PointRCNN的painted版本优于所有已发表的融合和仅激光雷达方法(表2)。右上:对于较困难的行人(ped.)和骑自行车的人,改进更大。错误条表示跨方法的std。左下:PointPillars+在nuScenes测试集中进行评估。PointPillars+的Painted版本改进了所有10个职业,总提升了6.3 mAP(表3)。右下:选中的PointPillars+的职业改进显示具有挑战性的自行车职业获得了最大的增益。

表1.PointPainting应用于先进的基于激光雷达的物体探测器。所有的激光雷达方法都表明,在KITTI val集上,汽车、行人和自行车的鸟瞰(BEV)均值平均精度(mAP)都有改善中等分割。(中等分割的都是提高的)


表2.KITTI测试BEV检测基准的结果。我们看到,Painted PointRCNN在BEV检测性能上设置了一个新的艺术状态(69.86 mAP)。模式是激光雷达(L),图像(I)和地图(M)。delta是由于painted的差异,即Painted PointRCNN减去PointRCNN。(BEV检测任务的目标是在给定的BEV图像中检测出不同类别的物体,基准评估指标是平均精度(Average Precision,AP),根据不同类别的AP值,可以得出每个类别的检测性能和整体的平均性能。)

表3.每个类nuScenes的性能。在nuScenes测试集上用平均精度(AP)或均值平均精度(mAP)测量检测的评价。缩写:建筑车辆(Ctr。Vhl.)、行人(Ped.)和交通锥(Tr. cone)。

补充说明:MAP相关概念https://zhuanlan.zhihu.com/p/254973280
PointPainting在设计上是顺序的,这意味着对于3D检测的最终任务并不总是能够进行端到端优化。理论上,这意味着在性能方面存在次优性。然而,从经验来看,PointPainting比所有其他提出的融合方法都更有效。此外,顺序方法还有其他优点:(1)图像的语义分割通常是一个有用的独立中间产品,(2)在实时3D检测系统中,可以通过将图像和激光雷达网络流水线化来减少延迟,这样激光雷达点就可以用前一张图像的语义装饰,并且这样的流水线并不影响性能。

我们使用三个具有公共代码的先进激光雷达方法实现PointPainting: PointPillars、VoxelNet (SECOND)和PointRCNN。PointPainting持续改进了结果(图3),事实上,PointRCNN的绘制版本在KITTI排行榜上达到了最先进的水平(表2)。我们还显示,在nuScenes上Painted PointPillars +的显著改进为6.3 mAP(表4)。

表4.nuScenes测试结果。检测性能由nuScenes detection score (NDS)和均值平均精度(mAP)来衡量。

优点:新的融合方法PointPainting用图像语义增强了点云。

(1)通用性——在KITTI和nuScenes基准测试中使用3种仅激光雷达的顶级方法时,实现了显著的改进;

(2)精确性—— PointRCNN的Painted版本在KITTI基准上达到了最先进的水平;

(3)健壮性——PointRCNN和PointPillars的Painted版本分别提高了KITTI和nuScenes测试集上所有类的性能。

(4)快速性——低延迟融合可以通过流水线的图像和激光雷达处理步骤来实现。

6.PointPainting


对于KITTI和nuScenes,激光雷达点云中的每个点分别为(x, y, z, r)或(x, y, z, r, t),其中x, y, z为每个激光雷达点的空间位置,r为反射率,t为激光雷达点的相对时间戳(适用于使用多次激光雷达扫描)。激光雷达点通过齐次变换然后投影到图像中进行变换。对于KITTI,这种转换是由Tcamera←lidar给出的。对于nuScenes的转换,激光雷达和摄像机在不同的频率下工作。完整的变换为:

T = T(camera←ego)T(egotc←egotl)T(ego←lidar)
变换为:激光雷达帧到自我-车辆帧;激光雷达捕获时的自我帧tl,到图像捕获时的自我帧tc;从自我到镜头。最后,摄像机矩阵M将这些点投影到图像中。

分割网络的输出是C分类数,其中KITTI C = 4(汽车、行人、自行车、背景),nuScenes C = 11(10个检测类加上背景)。
一旦激光雷达点被投影到图像中,相关像素的分割分数(h, w)(高,宽)被附加到激光雷达点,从而创建painted的激光雷达点。注意,如果两个摄像机的视场重叠,将会有一些点同时投射到两个图像上,我们随机从两个图像中的一个选择分割分数向量。另一种策略是通过比较它们的熵或前两个分数之间的差值来选择更具鉴别性的分数向量。

7.实验装置

7.1 数据集

KITTI。KITTI数据集提供同步激光雷达点云和前视相机图像。它相对较小,只有7481个样本用于训练,7518个样本用于测试。

nuScenes。nuScenes数据集比KITTI数据集大。该系统在2Hz频率下对1000个20秒场景进行了3D边界框处理,得到28130个样本用于训练,6019个样本用于验证,6008个样本用于测试。nuScenes包括完整的自动驾驶汽车数据套件:同步激光雷达、摄像头和完全360覆盖的雷达。

7.2 语义网络细节

KITTI。对于KITTI上的实验,我们使用了 DeepLabv3+ 网络。该网络首先在Mapillary上进行预训练,然后在Cityscapes上进行微调,最后在KITTI像素级语义分割网络上再次进行微调。注意,在KITTI语义分割网络和物体检测中,bicycle的类定义是不同的。在检测中,自行车被定义为骑手+自行车;而在语义分割网络中,骑车人被定义为只骑自行车的一个单独的类别。因此,需要将有骑手的自行车映射到自行车类,同时将停放的自行车抑制到背景。我们在绘制完成后,通过将骑行者半径1米内的自行车类绘制的所有点映射到骑行者类;剩下的留给背景。

nuScenes。nuScenes上没有可用的公共语义分割方法,所以我们使用nuImages数据集训练了一个自定义网络。nuImages由100k图像组成,使用2D边框和所有nuScenes类的分割标签进行注释。分割网络使用ResNet骨干为FCN(Fully Convolutional Network,全卷积网络)分割头生成跨步8到64的特征,预测nuScenes分割分数。

7.3 激光雷达网络细节

我们使用三种不同的激光雷达网络进行实验:PointPillars、VoxelNet和PointRCNN
由于PointPainting仅改变了输出的维度,因此可以用于任何LIDAR检测框架。
KITTI.我们使用PointPillars, VoxelNet和PointRCNN公开发布的代码,并使用4个分类数的语义分割网络装饰点云。这改变了PointPillars、VoxelNet和PointRCNN的原始装饰点云维度,分别从9→13、7→11和4→8。对于PointPillars,新的编码器有(13,64)通道,而对于VoxelNet,它有(11,32),(64,128)通道。PointRCNN的8维绘制点云作为编码器和区域池化层的输入。没有对公共实验配置进行其他更改。

nuScenes。我们在所有的nuScenes实验中都使用PointPillars。这需要将装饰的点云从7变为18,编码器现在有(18,64)个通道。为了确保绘制的效果是在艺术方法的状态下衡量的,我们对之前发布的PointPillars设置进行了一些改进,使mAP在nuScenes基准上提高了10%(表4)。我们将这个改进的基线称为PointPillars+。这些变化的灵感来自于修改支柱分辨率、网络架构、属性估计、样本加权和数据增强。首先,将柱的分辨率从0.25 m降低到0.2 m,以便更好地定位小物体。其次,网络架构进行了更改,以在网络的早期包含更多的层。第三,既不使用PointPillars也不使用PointPillars+预测属性,而是改进了属性估计启发式。不是使用每个类的最常用属性,而是使用每个框的预测速度和高度来更好地估计每个属性。第四,为了减少训练PointPillars过程中的类不平衡,采用基于样本的加权方法,根据样本中注释的数量对每个样本进行加权。第五,将全局偏航增益由π改为π/6。

8.结果分析

8.1定量分析

8.1.1 KITTI

所有的检测结果都是使用官方KITTI评价检测的鸟瞰(BEV)和3D测量。BEV结果在这里给出,而3D结果包含在补充材料中。KITTI数据集被分为简单、中等和困难,官方KITTI排行榜是根据中等平均精度(AP)的表现进行排名的。

验证集 首先,我们研究了PointPainting在三种主要激光雷达探测器上的效果。图1和表1表明,PointPainting提高了PointPillars、VoxelNet和PointRCNN的检测性能。PointPainting语义信息导致了检测的广泛改进:27个比较(3个实验× 3类× 3层)中的24个被PointPainting改进了。虽然最大的变化是针对行人和自行车检测等更具挑战性的场景,但大多数网络甚至在汽车检测上也有改进。这表明PointPainting的实用是独立于底层激光雷达网络的。

测试集 这里我们将PointPainting与最先进的KITTI测试结果进行比较。虽然Painted PointPillars在val集上比Painted PointRCNN表现得更好,但在这两个PointPillars中,只有nuScenes有公共代码。因此,为了建立PointPainting的通用性,我们选择将Painted PointPillars的结果提交给nuScenes测试,并在Painted PointRCNN上使用我们的KITTI提交。

基于val和test之间的PointRCNN改进的一致性(分别为+2.73和+2.94),以及PointPainting的普遍性(表1),我们有理由相信表2中的其他方法肯定会使用PointPainting进行改进。PointPainting的强度、通用性、鲁棒性和灵活性表明它是图像-激光雷达融合的主要方法。

8.1.2 nuScenes

作为第一步,我们加强了PointPillars+的激光雷达网络基线。即使有了更强的基线,PointPainting在测试集上的平均精度(mAP)提高了+6.3(表4)。在nuScenes上,Painted PointPillars+仅被MEGVII的激光雷达方法击败。然而,MEGVII的网络对于实时系统是不切实际的,因为它是一个非常大的两级网络,需要高分辨率的输入,并使用多尺度输入和集成进行测试评估。因此,Painted PointPillars+是nuScenes上领先的实时方法。

检测性能在类之间得到了很好的泛化,每个类都从PointPainting获得AP(平均精度)的提升(表3)。一般来说,PointPillars+中性能最差的检测类从painting中获益最多,但也有例外。首先,交通锥的AP增幅最大(+16.8),尽管已经有了强大的PointPillars+检测。这可能是因为交通锥上的激光雷达点很少,所以语义分割提供的附加信息非常有价值。第二,尽管从较小的基线开始,拖车和建筑车辆的检测增益较低。这是细分网络在这些类别中召回率最低的结果(总体召回率为72%,但拖车和建筑车辆的召回率仅为39%和40%;详见补充资料)。最后,尽管基准AP为76,汽车仍然得到+1。AP增强,即使是只有激光雷达能很好地探测到的类,也能发出语义信息的价值信号。

图5。PointPainting依赖于分割质量。通过val分割上的均值平均精度(mAP)来衡量Painted PointPillars检测性能,并将其与绘制步骤中使用的语义分割网络的质量进行比较,通过平均IoU(mIoU,mean intersection over union )来衡量。oracle使用3D边界框作为语义分割。

8.2 定性分析


图4。KITTI结果的定性分析。我们创建了四个不同的对比图。对于每个比较,左上是原始点云,而右上是经过绘制后的点云,带有用于给汽车(橙色)、自行车(红色)和行人(蓝色)点着色的分割输出。PointPillars / Painted PointPillars预测的3D边界框显示在输入点云(左上/右上)和投影到图像(左下/右下)上。盒子的方向由连接底部中心和盒子前面的一条线表示。

在这里,我们通过图4中使用Painted PointPillars(Painted PointPillars是KITTI val集上表现最好的网络)的一些定性比较来给出评估指标的背景。在图A中,原始的PointPillars正确地检测到汽车,但遗漏了一个骑自行车的人。绘制的点云解决了这个问题,骑车人被检测到。它还可以为车辆提供更好的方向估计。基于激光雷达的方法的一个常见故障模式是行人和电线杆混淆(图3)。正如所料,PointPainting可以帮助解决这个问题(图B)。图C表明激光雷达检测步骤可以纠正错误的绘画。图像中的loose segmantation masks正确地画出了附近的行人,但他们身后的墙上会有多余的绘制。尽管有这些错误的语义信息,但该网络并没有预测出错误的行人。这就没有回答用于优化PointPainting的语义分割的精确特征(例如精度度vs召回率)。在图D中,由于两个复合错误,Painted PointPillars预测了左边的两个假的骑车人。首先,由于行人离停放的自行车太近,语义分割网络错误地将行人预测为骑车人。接下来,我们用来解决检测和分割注释之间的自行车定义差异的启发式方法(参见第3.2节)通过在所有自行车上绘制自行车者类加剧了问题。然而,在其他拥挤的场景中,绘制的点带来更好的行人定位,更少的误报,并更好地检测到远处的汽车。

9. 消融研究

在这里,我们对nuScenes数据集进行消融研究。所有的研究都使用了Painted PointPillars架构,并且与测试提交相比,只训练了训练时间的四分之一。使用单周期优化器,我们实现33.9 mAP和46 mAP。nuScenes val集上的NDS(nuScenes detection score)与完整训练的PointPillars+的44.85 mAP和56.34NDS相反。

10. 依赖语义

质量 在PointPainting中,激光雷达点与图像的语义分割融合。我们研究了语义分割质量对最终检测性能的影响。利用nuScenes,我们通过使用来自训练的多个中间检查点,生成一系列具有不同分割质量的语义分割网络。如图5所示,改进的语义分割(以平均IOU(mIoU)衡量),导致改进的3D对象检测。对于一个上界,我们包含了一个“oracle”,它使用地面真相3D盒子(the ground truth 3D boxes)来绘制激光雷达点。这显著提高了检测性能(+27 mAP),这表明语义分割的进步将从根本上促进3D对象检测。由于一些限制,使用oracle并不能保证一个完美的mAP。首先,地面真理边界框可以包含不相关的点(例如来自地面)。其次,nuScenes注释所有包含单个激光雷达点的对象。将一个激光雷达点转换成一个精确的、定向的3D边界盒是很困难的。第三,我们训练它的总时间与其他消融研究相同,但它可能受益于更长的训练。最后,如果ground truth对象只包含几个点,PointPillars对点云的随机采样可以显著过滤或消除包含语义信息的点。

分数和标签 我们研究了分割预测格式对检测性能的影响。为此,我们将分割分数转换为一个热编码,有效地将每个像素标记为得分最高的类。当使用标签代替分数时,NDS没有变化,而mAP令人惊讶地高出+0.4。然而,这些收获是微不足道的,而且是在训练的噪音范围内。我们还假设,在未来的研究中,校准的分割分数和更大的PointPillars编码器的组合将表现更好。将这些结果与分割质量消融进行比较表明,未来的研究将更多地关注于提高分割质量,而不是表现。

11. 对时间的敏感性

我们研究了激光雷达网络对语义信息延迟的敏感性。在最简单的场景中,我们在之前的所有结果中都使用了这种场景,每个点云都与最近的图像相匹配(并发匹配-图6)。然而,这将在实时系统中引入延迟,因为融合步骤将不得不等待基于图像的语义分割分数。为了消除延迟,可以将前一幅图像的语义分割分数流水线到激光雷达网络中(连续匹配-图6)。这涉及到一个自我运动补偿步骤,其中激光雷达点云首先被转换到最后一帧的自我交通工具的坐标系中,然后投影到图像中以获得分割分数。我们的实验表明,使用前面的图像不会降低检测性能(表5)。此外,我们测量PointPainting只为Painted PointPillars体系结构引入了0.75毫秒的额外延迟(参见补充材料了解详细信息)。这表明PointPainting可以在实时系统中以最小的附加延迟实现高检测性能。

12. 结论

在本文中,我们提出了一种新的序列融合方法PointPainting,该方法利用基于图像的语义绘制激光雷达点云。PointPainting使用多个不同的激光雷达网络在KITTI和nuScenes挑战中产生了最先进的结果。PointPainting框架非常灵活,可以将任何分割网络的输出与任何激光雷达网络相结合。这些结果的强度和普遍适用性表明,在融合图像和激光雷达信息进行3D目标检测时,PointPainting是领先的架构。

PointPainting相关推荐

  1. PointPainting 复现

    PointPainting复现 一.下载源码库 二.安装依赖库 2.1 创建虚拟环境 2.2 安装OpenPCDet 2.3 安装mmsegmentation 2.4 安装 Hierarchical ...

  2. 3D目标检测深度学习方法数据预处理综述

    作者 | 蒋天元 来源 | 3D视觉工坊(ID: QYong_2014) 这一篇的内容主要要讲一点在深度学习的3D目标检测网络中,我们都采用了哪些数据预处理的方法,主要讲两个方面的知识,第一个是rep ...

  3. CVPR 2022 | 室外多模态3D目标检测(DeepFusion)

    作者丨花椒壳壳@知乎 来源丨https://zhuanlan.zhihu.com/p/485587275 编辑丨3D视觉工坊 论文标题:DeepFusion: Lidar-Camera Deep Fu ...

  4. 基于视角特征提取的3D检测方法汇总

    作者丨柒柒@知乎 来源丨https://zhuanlan.zhihu.com/p/458068647 编辑丨3D视觉工坊 这篇文章主要是梳理一下近期3D Detection的进展,分类列举出一些我认为 ...

  5. 图像点云数据融合方法汇总

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨eyesighting@知乎 来源丨https://zhuanlan.zhihu.com/p/4 ...

  6. 3D Detection 论文汇总

    来源丨AI 修炼之路 这篇文章主要是梳理一下近期3D Detection的进展,分类列举出一些我认为的比较重要的.有代表性的工作. 一.论文分类汇总 1. 基于激光雷达点云的3D检测方法(LiDAR ...

  7. ECCV20 3D目标检测新框架3D-CVF

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言 这一篇文章主要介绍一篇发表在ECCV20上的采用多模态融合的3D目标检测的文章,并总结一下目前多 ...

  8. 汇总|3D目标检测文章(CVPR2020)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言 今年CVPR20-paper-list前几天已经出了,所以这里做一点大致的综述介绍在CVPR20 ...

  9. 3D目标检测深度学习方法中voxel-represetnation内容综述(三)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言 前两篇文章:3D目标检测深度学习方法中voxel-represetnation内容综述(一).3 ...

最新文章

  1. JavaScript 中的有限状态机
  2. RxJava2 / RxAndroid2的merge操作合并多个Observable
  3. JavaXml教程(二)使用DOM方式解析XML文件
  4. Ubuntu 16.04下Caffe-SSD的应用(四)——ssd_pascal.py源码解读
  5. IO多路复用 select、poll、epoll
  6. 手风琴特效这么飒,能用 JavaScript 实现吗?
  7. XMLHttpRequest+WebForm模式(接口IHttpHandler)实现ajax
  8. Win7系统设置ip地址的方法
  9. 计算机编程结束进程代码,M代码如何停止CNC编程的程序
  10. DatabaseMetaData 获取mysql表和字段注释
  11. jQuery学习笔记01:初试jQuery
  12. ssh 免密码设置失败原因总结
  13. *1LL在c++中的意义
  14. 移动电话之父第一个电话打给对手,起底现代移动通信崛起之路!
  15. [HNOI2013] 切糕
  16. Hibernate笔记①--myeclipse制动配置hibernate
  17. [Essay]看《Re:从零开始的异世界生活》的一些感想
  18. Linux 脚本部署应用宝,应用宝新版继续整合资源,腾讯移动分发再加力
  19. 上海庆科EMW3162 WiFi模块 串口透传
  20. kaggle论文阅读

热门文章

  1. 一步一步的无障碍理解快速傅立叶变换
  2. 【交换机MAC典型配置】配置基于VLAN的MAC地址学习限制
  3. Python程序设计基础(第五章函数 练习记录)
  4. 使用PyMuPdf提取、删除及替换PDF中的图片文件
  5. 质数因子(Python,华为机试)
  6. 三、四、五、轴数控加工中心有什么区别?
  7. Eigen 学习总结
  8. V2G模式下含分布式能源网优化运行研究(Matlab代码实现)
  9. 利用百度ai接口做语音识别
  10. 电子招投标系统简介 招投标系统源码 java招投标系统开发类型 招投标系统功能设计