论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds

PointPillars--点云目标检测的快速编码器

摘要

        点云中的物体检测是许多机器人应用(如自动驾驶)的重要方面。在本文中,我们考虑将点云编码为适合下游检测流程的格式的问题。最近的文献提出了两种编码器;固定编码器往往很快,但牺牲了准确性,而从数据中学习的编码器更准确,但更慢。在这项工作中,我们提出了PointPillars,这是一种新颖的编码器,它利用PointNets 来学习以垂直列(柱子)组织的点云表示。虽然编码的特征可以与任何标准的2D卷积检测体系结构一起使用,但我们进一步提出了一个精益下游网络。大量的实验表明,PointPillars在速度和准确性方面都大大优于以前的编码器。尽管只使用激光雷达,但我们的完整检测管道在3D和鸟瞰KITTI基准测试中,即使是在融合方法中,也明显优于目前的技术水平。这种检测性能是在62 Hz运行时实现的:运行时提高了2 - 4倍。我们的方法的一个更快的版本在105 Hz时与目前的技术水平相匹配。这些基准测试表明PointPillars是点云中对象检测的合适编码。

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第1张图片

        图1:鸟瞰我们提出的PointPillars, PP方法在KITTI[5]测试集中的性能与速度的关系。仅使用激光雷达的方法绘制为蓝色圆圈;激光雷达和视觉方法绘制为红色方块。还绘制了KITTI排行榜的顶级方法:M: MV3D [2], A AVOD [11], C: ContFuse [15], V:VoxelNet [31], F: Frustum PointNet [21], S: SECOND [28], P+ PIXOR++[29]。PointPillars在速度和精度方面都大大优于所有其他仅使用激光雷达的方法。该方法优于除行人外的其他融合方法。在3D指标上也实现了类似的性能(表2)。

1.介绍

        在城市环境中部署自动驾驶汽车(AVs)是一项艰巨的技术挑战。在其他任务中,自动驾驶汽车需要实时检测和跟踪车辆、行人和骑自行车的人等移动物体。为了实现这一点,自动驾驶汽车依赖于几个传感器,其中激光雷达可以说是最重要的。激光雷达使用激光扫描仪来测量到环境的距离,从而生成稀疏点云表示。传统上,激光雷达机器人流程将这种点云解释为通过包括背景消除的自底向上流程进行的目标检测,然后进行时空聚类和分类[12,9]。

        随着计算机视觉深度学习方法的巨大进步,大量文献研究了该技术在多大程度上可以应用于激光雷达点云的目标检测[31,29,30,11,2,21,15,28,26,25]。虽然模态之间有许多相似之处,但有两个关键的区别:1)点云是稀疏表示,而图像是密集表示;2)点云是3D表示,而图像是2D表示。因此,点云的目标检测并不能简单应用标准图像卷积流程。

        一些早期的工作专注于使用3D卷积[3]或将点云投影到图像[14]。最近的方法倾向于从鸟瞰角度观察激光雷达点云[2,11,31,30]。这种架空视角提供了几个优点,如没有尺度模糊和几乎没有遮挡。

        然而,鸟瞰图往往是极其稀疏的,这使得卷积神经网络的直接应用不切实际和低效。一个常见的解决方法是将地平面划分为一个规则的网格,例如10 x 10 cm,然后对每个网格单元中的点执行手工制作的特征编码方法[2,11,26,30]。然而,这样的方法可能是次优的,因为硬编码的特征提取方法可能不能在没有重大工程努力的情况下推广到新的配置。为了解决这些问题,在Qi等人开发的PointNet设计的基础上,VoxelNet[31]是第一个真正在该领域进行端到端学习的方法之一。VoxelNet将空间划分为体素,对每个体素应用PointNet,然后使用3D卷积中间层来巩固垂直轴,之后应用2D卷积检测架构。虽然VoxelNet的性能很强,但4.4 Hz的推理时间太慢,无法实时部署。最近SECOND[28]提高了VoxelNet的推理速度,但三维卷积仍然是一个瓶颈

        在这项工作中,我们提出了PointPillars:一种用于3D对象检测的方法,它只使用2D卷积层支持端到端的学习。PointPillars使用了一种新颖的编码器,该编码器可以学习点云柱子(垂直柱子)上的特征,从而预测对象的3D定向框。这种方法有几个优点。首先,通过学习特征而不是依赖于固定的编码器,PointPillars可以利用点云表示的全部信息。此外,通过对柱子而不是体素进行操作,就不需要手动调整垂直方向的分量。最后,柱子非常高效,因为所有关键操作都可以表述为2D卷积,这对于GPU来说非常高效。学习特性的另一个好处是PointPillars不需要手动调优就可以使用不同的点云配置。例如,它可以很容易地结合多个激光雷达扫描,甚至雷达点云

        我们在公共KITTI检测挑战中评估了PointPillars网络,这些挑战要求在鸟瞰(BEV)或3D[5]中检测汽车、行人和骑自行车的人。虽然我们的PointPillars网络只使用激光雷达点云进行训练,但它主导了当前的技术水平,包括使用激光雷达和图像的方法,从而在BEV和3D检测方面建立了新的性能标准(表1和表2)。与此同时,PointPillars的运行速度为62 Hz,比以前的技术快了几个数量级。PointPillars进一步实现了速度和准确性之间的平衡;在一个设置中,我们匹配了超过100 Hz的最先进性能(图5)。我们还发布了代码https://github.com/nutonomy/second.pytorch),可以重现我们的结果。

1.1.相关工作

        我们首先回顾了最近在将卷积神经网络应用于一般目标检测方面的工作,然后重点介绍了具体的激光雷达点云目标检测的方法。

1.1.1.使用CNN做目标检测

        从Girshick等人的开创性工作开始,已经确定卷积神经网络(CNN)架构是图像检测的最先进技术。随后的一系列论文[24,7]主张用两阶段方法来解决这个问题,在第一阶段,区域候选网络(RPN)提出候选建议。这些提案的裁剪和调整版本然后由第二阶段网络进行分类。两阶段方法主导了重要的视觉基准数据集,如COCO[17],而不是Liu等人最初提出的单阶段架构。在单阶段体系结构中,一组密集的锚框在一个阶段中被回归并分类为一组预测,从而提供了一个快速而简单的体系结构。最近Lin et al.[16]令人信服地提出,单级方法在精度和运行时间方面都优于两级方法。在这项工作中,我们使用单级方法。

1.1.2.激光点云目标检测

        点云中的目标检测本质上是一个三维问题。因此,部署一个三维卷积网络进行检测是很自然的,这是几个早期工作的范例[3,13]。虽然提供了简单的体系结构,但这些方法速度很慢;例如,Engelcke等人[3]对单点云的推理需要0.5s。最近的方法通过将3D点云投影到地平面[11,2]或图像平面[14]来提高运行时间。在最常见的范例中,点云以体素组织,每个垂直列中的体素集被编码为固定长度、手工制作的特征编码,以形成可由标准图像检测体系结构处理的伪图像。这里一些著名的作品包括MV3D [2], AVOD [11], PIXOR[30]和Complex YOLO[26],它们都使用相同固定编码范式的变体作为其架构的第一步。前两种方法还融合了激光雷达特征和图像特征来创建一个多模态检测器。MV3D和AVOD中使用的融合步骤强制它们使用两级检测流程,而PIXOR和Complex YOLO使用单级流程。

        在他们的开创性工作中,Qi等人[22,23]提出了一个简单的体系结构PointNet,用于从无序点集学习,它提供了一条完整的端到端学习的路径。VoxelNet[31]是在激光雷达点云中部署PointNets进行目标检测的第一个方法之一。在他们的方法中,PointNets应用于体素,然后由一组3D卷积层处理,然后是2D主干和检测头。这使得端到端学习成为可能,但与早期依赖3D卷积的工作一样,VoxelNet速度较慢,单点云需要225ms推理时间(4.4 Hz)。另一种最近的方法,Frustum PointNet[21],使用PointNets来分割和分类锥体中的点云,该锥体是通过将检测投影到图像上到3D生成的。与其他融合方法相比,Frustum PointNet实现了较高的基准性能,但其多阶段设计使得端到端学习不切实际。最近,SECOND[28]对VoxelNet进行了一系列改进,从而提高了性能,并大大提高了20 Hz的速度。然而,他们无法消除昂贵的3D卷积层。

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第2张图片

        图2:网络的概述。网络主要由支柱功能网络、骨干网和SSD检测头组成。详见第2节。将原始点云转换为叠加柱张量和柱索引张量。编码器使用堆叠的柱子来学习一组特征,这些特征可以分散回卷积神经网络的2D伪图像。检测头使用来自主干的特征来预测物体的3D包围框。注意:这里我们展示了汽车网络的主干维度。

1.2.贡献

        我们提出了一种新的点云编码器和网络PointPillars,它在点云上运行,以实现3D对象检测网络的端到端训练。

        我们展示了如何在柱子上的所有计算都可以作为密集的2D卷积,从而能够在62 Hz下进行推理;比其他方法快2-4倍。

        我们在KITTI数据集上进行了实验,并在BEV和3D基准上演示了汽车、行人和自行车的最新结果。

        我们进行了几项消融研究,以检查能够实现强大检测性能的关键因素。

2.PointPillars网络

        PointPillars接受点云作为输入,并为汽车、行人和骑自行车的人估计朝向3D盒。它由三个主要阶段组成(图2):(1)将点云转换为稀疏伪图像的特征编码器网络;(2)二维卷积主干,将伪图像处理为高级表示;(3)用于检测和回归3D盒的检测头。

2.1.点云到伪图像

        为了应用二维卷积架构,我们首先将点云转换为伪图像。

        我们用l表示坐标为x, y, z和反射率r的点云中的一个点。作为第一步,点云被离散成x-y平面上的一个均匀间隔的网格,创建了一组柱子P和|P| = b。注意,不需要超参数来控制z维度上的分块。然后用xc, yc, zc, xp和yp增加每个柱中的点,其中c下标表示到柱中所有点的算术平均值的距离,p下标表示从柱x, y中心的偏移量。增强激光雷达点l现在是D = 9维。

        由于点云的稀疏性,这组柱子大部分是空的,而非空的柱子中一般只有很少的点。例如,在0.162 m2的容器中,来自HDL-64E Velodyne激光雷达的点云具有6k-9k非空柱,该范围通常用于KITTI,稀疏度为97%。这种稀疏性是通过对每个样本(P)的非空柱数和每个柱的点数(N)施加限制来利用的,以创建一个大小(D, P, N)的密集张量。如果一个样本或柱包含太多的数据,无法适合这个张量,则数据将被随机采样。相反,如果样本或柱的数据太少,无法填充张量,则应用零填充。

        接下来,我们使用PointNet的简化版本,其中对于每个点,应用一个线性层,然后是BatchNorm[10]和ReLU[19],以生成(C, P, N)大小的张量。接下来是对通道进行max操作,以创建大小为(C, P)的输出张量。注意,线性层可以表示为对张量进行1x1卷积,从而实现非常高效的计算。

        编码后,特征被分散到原始柱子位置,以创建大小(C, H, W)的伪图像,其中H和W表示画布的高度和宽度。

2.2.主干

        我们使用与[31]类似的主干,其结构如图2所示。骨干网有两个子网络:一个自上而下的网络以越来越小的空间分辨率生成特征,另一个网络执行自上而下特征的上采样和连接。自顶向下的主干可以用一系列块Block(S, L, F)来描述。每个块以步幅S(相对于原始输入伪图像测量)运行。一个块有L 3x3 2D convi -layers和F个输出通道,每个通道后面跟着BatchNorm和一个ReLU。层内的第一个卷积具有步幅S/Sin,以确保块在接收到步幅Sin的输入块后在步幅S上运行。块中所有后续的卷积都有步幅1。

        每个自顶向下的块的最终特征通过上采样和拼接进行组合,如下所示。首先,对特征进行上采样,Up(Sin, Sout, F)从初始步幅Sin到最终步幅Sout(两者都再次测量wrt)。原始伪图像)使用转置二维卷积与最终特征F。接下来,BatchNorm和ReLU应用于上采样的特征。最终的输出特征是来自不同步长的所有特征的连接。

2.3.检测头

        在本文中,我们使用单镜头探测器(SSD)[18]设置来执行3D目标检测。与SSD类似,我们使用2D交并比(IoU)[4]将先验盒与地面真值匹配。边界框高度和标高不用于匹配;相反,给定2D匹配,高度和仰角成为额外的回归目标。

3.执行细节

        在本节中,我们将描述我们的网络参数和我们优化的损失函数。

3.1.网络

        所有的权重都是使用[8]中的均匀分布随机初始化的,而不是预先训练我们的网络,编码器网络具有C = 64个输出特征。汽车和行人/骑行者的主干除了第一个块的步幅外是相同的(汽车为S = 2,行人/骑行者为S = 1)。两个网络都由三个区块组成,Block1(S, 4, C), Block2(2S, 6, 2C)和Block3(4S, 6, 4C)。每个块通过以下上采样步骤进行上采样:Up1(S, S, 2C), Up2(2S, S, 2C)和Up3(4S, S, 2C)。然后将Up1、Up2、Up3的特征拼接在一起,得到检测头的6C特征。

3.2.损失

        我们使用SECOND[28]中介绍的相同损失函数。地面真值框和锚点由(x, y, z, w, l, h, θ)定义。地面真实值与锚点之间的定位回归残差定义为:

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第3张图片

        这里xgt和xa代表地面真值和锚点框,并且da=((wa)2+(la)2)1/2。总的定位损失为:

        由于角度定位损失不能区分翻转的框,我们在离散方向[28]上使用了软最大分类损失Ldir,使网络能够学习到朝向。

        对于目标分类损失,我们使用焦点损失[16]:

        这里pa是锚点的类别概率,我们使用原始论文设置α = 0.25和γ = 2。因此,全部损失为:

        其中Npos是阳性锚点的数量,βloc = 2, βcls = 1, βdir = 0.2。

        为了优化损失函数,我们使用初始学习率为2 * 10−4的Adam优化器,每15个周期衰减0.8倍的学习率,并训练160个周期。我们使用批大小为2做验证集,4做测试提交。

4实验设置

        在本节中,我们将介绍我们的实验设置,包括数据集、实验设置和数据增强。

4.1.数据集

        所有实验都使用KITTI目标检测基准数据集[5],该数据集由同时具有激光雷达点云和图像的样本组成。我们只在激光雷达点云上训练,但与同时使用激光雷达和图像的融合方法进行了比较。样本原本分为7481个训练样本和7518个测试样本。对于实验研究,我们将官方训练分为3712个训练样本和3769个验证样本[1],而对于我们的测试提交,我们从验证集中创建了784个样本的迷你集,并在剩余的6733个样本上进行训练。KITTI基准要求检测汽车、行人和骑自行车的人。由于地面真值目标只有在图像中可见时才会被标注,因此我们遵循标准约定[2,31],只使用投影到图像中的激光雷达点。遵循KITTI的标准文献实践[11,31,28],我们为汽车训练一个网络,为行人和骑自行车的人训练一个网络。

4.2.设置

        除非在实验研究中有明确的变化,否则我们使用xy分辨率:0.16 m,最大柱数(P): 12000,每个柱的最大点数(N): 100。

        我们使用与[31]相同的锚点和匹配策略。每个类锚点都由宽度、长度、高度和z中心描述,并应用于两个方向:0度和90度。根据以下规则,使用2D交并比(IoU)将锚点与地面真值匹配。积极匹配要么与基本真值框的匹配值最高,要么高于积极匹配阈值,而消极匹配则低于消极匹配阈值。所有其他锚点在损失中被忽略。

        在推理时,我们应用轴对准非最大抑制(NMS),重叠阈值为0.5 IoU。与旋转NMS相比,这提供了类似的性能,但速度要快得多。

        车辆。x, y, z的范围分别为[(0,70.4),(- 40,40),(- 3,1)]米。汽车锚的宽、长、高分别为(1.6、3.9、1.5)米,z轴中心为-1米。匹配使用0.6和0.45的正阈值和负阈值。

        行人和骑车人。x, y, z范围分别为[(0,48),(- 20,20),(-2.5,0.5)]米。行人锚的宽、长、高分别为(0.6、0.8、1.73)米,z中心为-0.6米;自行车锚的宽、长、高分别为(0.6、1.76、1.73)米,z中心为-0.6米。匹配使用0.5和0.35的正阈值和负阈值。

4.3.数据增强

        数据增强对于KITTI基准测试的良好性能至关重要[28,30,2]。

        首先,遵循SECOND[28],我们为所有类别和落在这些3D框内的相关点云创建一个地面真值3D框的查找表。然后,对于每个样本,我们分别随机选择15、0、8个汽车、行人和骑自行车的地面真值样本,并将它们放入当前点云中。我们发现这些设置比推荐的设置[28]执行得更好。

        接下来,所有地真值框都被单独增强。每个盒子都被旋转(从[−π/20, π/20]中均匀绘制)和平移(x, y和z分别从N(0,0.25)中绘制),以进一步丰富训练集。

        最后,我们执行两组全局增强,它们联合应用于点云和所有目标框。首先,我们沿x轴[30]应用随机镜像翻转,然后进行全局旋转和缩放[31,28]。最后,我们应用从N(0,0.2)绘制的x, y, z的全局平移来模拟定位噪声。

5.结果

        在本节中,我们将展示PointPillars方法的结果,并与文献进行比较。

        定量分析。所有检测结果均使用KITTI官方评估检测指标进行测量,这些指标包括:鸟瞰(BEV)、3D、2D和平均方向相似度(AOS)。二维检测在图像平面内进行,平均方向相似度评估二维检测的平均方向(BEV测量)相似度。KITTI数据集分为简单难度、中等难度和困难难度,KITTI官方排行榜是根据中等难度的表现进行排名。

        如表1和表2所示,PointPillars在平均平均精度(mAP)方面优于所有已发布的方法。与只用激光雷达的方法相比,PointPillars在所有类别和难度层上都获得了更好的结果,除了简单的汽车层。它在汽车和自行车上的表现也优于基于融合的方法。

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第4张图片

表1:KITTI测试集BEV检测基准结果

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第5张图片

表2:KITTI测试集3D检测基准结果

        虽然PointPillars预测的是3D方向框,但BEV和3D指标没有考虑方向。使用AOS[5]评估方向,它需要将3D框投影到图像中,执行2D检测匹配,然后评估这些匹配的方向。与仅有的两种预测有方向框的3D检测方法[11,28]相比,PointPillars在AOS上的性能在所有层中都明显优于前者(表3)。一般来说,只有图像的方法在2D检测上表现最好,因为目标框的3D投影到图像中会根据3D姿态导致松散的框。尽管如此,PointPillars中等难度骑行者的AOS为68.16,优于基于图像的最佳方法[27]。

        为了与验证集的其他方法进行比较,我们注意到,我们的网络对于汽车、行人和骑自行车的中等难度分别实现了(87.98,63.55,69.71)的BEV AP和(77.98,57.86,66.02)的3D AP。

        表3:KITTI测试集平均取向相似度(AOS)检测基准结果。SubCNN是性能最好的仅用于图像的方法,而AVOD-FPN、SECOND和PointPillars是唯一预测方向的3D对象检测器。

        定性分析。我们在图3和图4中提供了定性结果。虽然我们只在激光雷达点云上训练,但为了便于解释,我们从BEV和图像视角对3D边界框预测进行了可视化。图3显示了我们的检测结果,其中三维包围框方向紧密。对汽车的预测尤其准确,常见的故障模式包括对困难样本(部分堵塞或远处物体)的假阴性或对类似类别(货车或有轨电车)的假阳性。检测行人和骑自行车的人更具挑战性,并导致一些有趣的故障模式。行人和骑自行车的人通常被错误地分类为彼此(见图4a的标准示例和图4d的组合行人和表分类为骑自行车的人)。此外,行人很容易与环境中狭窄的垂直特征(如柱子或树干)混淆(见图4b)。在某些情况下,我们可以正确地检测到地面真值标注中缺失的对象(参见图4c)。

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第6张图片

        图3:KITTI结果的定性分析。我们展示了激光雷达点云(顶部)的鸟瞰图,以及投影到图像中的3D包围框,以便更清晰地可视化。注意,我们的方法只使用激光雷达。我们展示了汽车(橙色)、自行车(红色)和行人(蓝色)的预测框。地面真值方框用灰色表示。框的方向是由连接底部中心和框正前方的一条线来显示的。

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第7张图片

图4:KITTI上的故障案例。与图3相同的可视化设置,但侧重于几种常见的故障模式。

6.实时推理

        正如我们的结果(表1和图5)所示,PointPillars在推理运行时间方面有了显著的改进。在本节中,我们将分解运行时间,并考虑支持这种加速的不同设计选择。我们关注的是汽车网络,但行人和自行车网络的运行速度相似,因为较小的范围抵消了主干以较低的步幅运行的影响。所有运行时间都是在具有Intel i7 CPU和1080ti GPU的台式机上测量的。

        主要推理步骤如下。首先,根据图像中的范围和可见性加载和过滤点云(1.4 ms)。然后,点云被组织成柱子和装饰(2.7ms)。接下来,PointPillar张量被上传到GPU (2.9 ms),编码(1.3 ms),分散到伪图像(0.1 ms),并由主干和检测头处理(7.7 ms)。最后在CPU上应用NMS (0.1 ms),总运行时为16.2 ms。

        编码。以此运行时间的关键设计是PointPillars编码。例如,1.3 ms比VoxelNet编码器(190 ms)[31]快了2个数量级。最近,SECOND提出了一种更快的稀疏VoxelNet编码器版本,总网络运行时间为50ms。他们没有提供运行时分析,但由于其架构的其余部分与我们的类似,这表明编码器仍然明显较慢;在他们的开源实现中,编码器需要48ms。

        苗条的设计。我们在编码器中选择一个PointNet,而不是[31]建议的2个连续的PointNet。这使得PyTorch运行时的运行时间减少了2.5 ms。第一个块的维数也降低了64以匹配编码器输出大小,这将运行时降低了4.5 ms。最后,通过将上采样特征层的输出维数减半至128,我们又节省了3.9 ms。这些变化都不会影响检测性能。

        TensorRT。虽然我们所有的实验都是在PyTorch[20]中进行的,但用于编码、主干和检测头的最终GPU内核是使用NVIDIA TensorRT构建的,这是一个用于优化GPU推理的库。切换到TensorRT,速度比PyTorch流程(42.4 Hz)提高了45.5%。

        速度至上。如图5所示,PointPillars可以在精度损失有限的情况下达到105 Hz。虽然有人认为这样太快了,因为激光雷达通常工作在20Hz,但有两件关键的事情需要记住。首先,由于KITTI地面真值标注的伪影,只有投影到正面图像的激光雷达点被利用,这只占整个点云的10%。然而,一个可操作的自动驾驶需要查看完整的环境并处理完整的点云,这大大增加了所有方面的运行时间。其次,文献中的计时测量通常是在高功率的桌面GPU上完成的。然而,可运行的自动驾驶可能会使用嵌入式GPU或嵌入式计算代替,它们可能没有相同的吞吐量

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds_第8张图片

        图5:KITTI [5] 验证集设置的行人、自行车和汽车上的BEV检测性能(mAP) vs速度(Hz)。蓝色圆圈表示只使用激光雷达的方法,红色方块表示使用激光雷达和视觉的方法。采用柱子尺寸为{0.122,0.162,0.22,0.242,0.282}m2来获得不同的工作点。最大柱子的数量随着分辨率的变化而变化,分别设置为16000、12000、12000、8000、8000。

7.消融实验

        在本节中,我们将提供消融研究,并与最近的文献进行比较,讨论我们的设计选择。

7.1.空间分辨率

        可以通过改变空间分组的大小来实现速度和准确性之间的平衡。较小的柱子允许更精细的定位,并得到更多的特征,而较大的柱子更快,因为较少的非空柱子(加速编码器)和较小的伪图像(加速CNN主干)。为了量化这种效果,我们对网格大小进行了扫描。从图5可以清楚地看出,更大的网格尺寸得到更快的网络;在0.282时,我们达到105 Hz,性能与之前的方法相似。性能的下降主要是由于行人和骑自行车的类别,而汽车的性能在整个网格尺寸上是稳定的。

7.2.每框数据增强

        VoxelNet[31]和SECOND[28]都推荐广泛的每框增强。然而,在我们的实验中,最小框增强效果更好。特别是对行人的检测性能随着框增强量的增加而显著下降。我们的假设是,地面真值采样的引入减轻了对广泛的每框增强的需求。

7.3.点装饰

        在激光雷达点装饰步骤中,我们执行VoxelNet[31]装饰加上两个额外的装饰:xp和yp,这是从柱子x, y中心的x和y偏移。这些额外的装饰增加了0.5 mAP的最终检测性能,并提供了更多的可重复性实验。

7.4.编码

        为了单独评估提出的PointPillar编码的影响,我们在SECOND[28]的官方代码库中实现了几个编码器。关于每种编码的详细信息,我们参考了原始论文。

        如表4所示,学习特征编码在所有分辨率上都严格优于固定编码器。这是预期的,因为大多数成功的深度学习架构都是端到端训练的。此外,随着网格尺寸的增大,由于每个支柱中有较大的点云,固定编码器的表达能力的缺乏会更加突出。在已学习的编码器中,VoxelNet略强于PointPillars。然而,这并不是一个公平的比较,因为VoxelNet编码器要慢几个数量级,并且有更多数量级的参数。当对相似的推理时间进行比较时,很明显PointPillars提供了更好的操作点(图5)。

        表4中有几个奇怪的方面。首先,尽管原始论文中指出他们的编码器只适用于汽车,但我们发现MV3D[2]和PIXOR[30]编码器可以很好地学习行人和骑自行车的人。其次,我们的实现大大超过了各自发表的结果(1−10 mAP)。虽然这不是一个苹果对苹果的比较,因为我们只使用了各自的编码器,而不是完整的网络架构,但性能差异是值得注意的。我们看到了几个潜在的原因。对于VoxelNet和SECOND,我们认为性能的提升来自于改进的数据增强超参数,如7.2节所述。在固定编码器中,大约一半的性能提升可以通过引入地面真值数据库采样[28]来解释,我们发现它将mAP提高了约3%。其余的差异可能是由于多个超参数的组合,包括网络设计(层数,层类型,是否使用特征金字塔);锚框设计(或缺乏[30]);三维和角度的定位损失;分类损失;优化器的选择(SGD vs Adam,批量大小);和更多。然而,需要更仔细的研究来分离每一个因果关系。

8.结论

        在本文中,我们介绍了PointPillars,一种新型的深度网络和编码器,可以在激光雷达点云上进行端到端训练。我们证明,在KITTI挑战中,PointPillars以更快的速度提供更高的检测性能(BEV和3D上的mAP),从而主导了所有现有的方法。我们的结果表明,对于激光雷达的3D物体检测PointPillars提供了迄今为止最好的架构。

你可能感兴趣的:(论文解读,目标检测,人工智能,自动驾驶,算法,计算机视觉)