当前位置:   article > 正文

[论文阅读]SA-SSD——基于点云的结构感知单阶段三维物体检测_sassd

sassd

SA-SSD

基于点云的结构感知单级三维物体检测
论文网址:SA-SSD

SA-SSD的前向传播过程

1.输入:原始点云数据,以及ground truth框等标注信息
2.数据预处理:将点云量化为稀疏张量表示,输入网络
将点云量化为稀疏张量表示是使用的量化过程,SASSD的点云量化表示是:
设置量化步长dx,dy,dz (如0.05m, 0.05m, 0.1m)
对每个点(x,y,z),量化为(⌊x/dx⌋, ⌊y/dy⌋, ⌊z/dz⌋)
这个量化的整数坐标直接作为稀疏张量的索引
对应索引处存入该点的信息
对所有点进行上述量化表示

3.骨干网络:通过四个卷积块逐步下采样,提取多尺度特征图
4.检测头:将最后特征图reshape为BEV视角,进行预测
5.辅助网络:

  • 将骨干网络每个阶段的特征图,转换为全分辨率的点表示
    获取当前Stage的特征图,以及对应的量化步长dx,dy,dz。每一个非零特征向量,根据它的索引(i,j,k)和量化步长,可以转换回一个坐标点(x,y,z)。利用最近邻插值或径向基函数插值等方法,在原始全分辨率点云的坐标上,进行特征的插值传播。这样就可以 aproximate 得到在原始点云坐标下,骨干网络提取特征的全分辨率点表示。
  • 在这些点表示上,进行前景分割预测和中心点回归两个辅助任务
    不同阶段的点表示会按顺序拼接起来,形成多尺度的点特征。进行辅助任务预测是这样的: 接后的点特征先通过一个小的全连接网络,进行降维和整合。然后分别经过两个不同的小网络得到分割和回归预测。分割网络是一个全连接层+sigmoid激活。回归网络是一个全连接层。最后计算辅助任务的loss,反向传播更新骨干网络。
  • 辅助任务的loss会反向传播更新骨干网络的参数
    6.PSWarp模块:
  • 将预测框划分为K个部分,计算每个部分的中心点,作为采样点
  • 在分类特征图上采样中心点,对采样结果求平均,得到调整后的置信度
    7.Loss计算:
  • 计算检测头的分类loss和回归loss
  • 计算辅助任务的分割loss和回归loss
  • 求所有loss的加权和作为网络最终loss
    8.反向传播:所有参数根据loss按链式法则更新

摘要

基于点云数据的三维目标检测在自动驾驶中起着至关重要的作用。目前的单阶段探测器是有效的,通过全卷积方式逐步降低三维点云的尺度。但降尺度后的特征不可避免地会丢失空间信息,不能充分利用三维点云的结构信息,降低了其定位精度。在本工作中,提出通过明确利用三维点云的结构信息(目标边界信息和目标内部信息)来提高单阶段探测器的定位精度。具体来说,本文设计了一个辅助网络,它将骨干网中的卷积特征转换回点级表示。辅助网络通过两个点级监督共同优化,引导骨干网中的卷积特征感知对象结构。辅助网络可以在训练后分离,因此在推理阶段不引入额外的计算。此外,考虑到单阶段检测器预测的边界框与相应的分类置信度不一致的问题(
1.预测边界框的位置与分类置信度高的区域不匹配。
2.边界框包含的目标与分类结果类别不一致。

),本文开发了一种高效的部分敏感翘曲操作,将置信度与预测的边界框对齐。

引言

基于点云数据的三维目标检测是自动驾驶汽车(AV)系统的关键组成部分。 与一般的二维目标检测只能从图像平面估计二维边界框不同,AV需要从真实世界中估计信息更丰富的三维边界框,以完成路径规划和碰撞避免等高级任务。 这促使最近出现的三维目标检测方法,即应用卷积神经网络(CNN)处理来自高端激光雷达传感器的更具代表性的点云数据。
目前基于点云的三维目标检测可分为单阶段检测和两阶段检测两种方法。 单阶段方法[Second,Voxelnet,Pixor, Pointpillars,Complex-yolo]将稀疏的三维点云解析为紧凑的表示,如体素网格或鸟瞰(BEV)图像,并使用CNN以全卷积的方式直接预测边界框。 这使得单阶段方法通常简单有效。 然而,逐步缩小的特征图不可避免地失去了空间分辨率,不能显式地考虑点云数据的结构信息,使得单阶段检测器处理稀疏点云的精度较低。 当目标包含的点不足时,单阶段探测器无法实现精确定位。
与单阶段方法相比,两阶段方法[Pointrcnn、Fast point r-cnn、STD、Part-aˆ 2 net]可以在第二阶段利用更精细的空间信息,该阶段只侧重于第一阶段预测的感兴趣区域,从而预测更准确的边界框。 这体现了利用点云的细粒度空间信息实现精确定位的重要性。 然而,对每个点进行操作并对每个感兴趣区域重新提取特征大大增加了计算成本,使得两阶段方法难以达到实时速度。
针对两级检测器的高精度特点,本文提出利用细粒度结构信息来提高定位精度,同时保持单阶段检测器的高效性。 本文设计了一个结构感知的单阶段三维物体检测器。除了骨干网络生成用于边界框预测的降尺度特征外,本文的检测器还包含一个辅助网络,该网络通过点水平监督指导骨干网学习更多的鉴别特征。 具体来说,辅助网络首先将骨干网中的特征转换回点状表示,然后执行两个辅助任务:前景分割以使特征漂移到对目标边界敏感的位置;点状中心估计以使特征知道目标内部的关系。 辅助网络在训练阶段与主干网络联合优化,训练结束后去除,在推理阶段不引入额外的计算代价。 在辅助任务的指导下,本文的模型可以得到更准确的定位。
此外,本文注意到单阶段检测器通常都有预测的包围框和相应的分类可信度之间的不对齐的问题。 具体来说,分类可信度与所使用的特征映射的当前位置有关,而预测的边界框通常偏离其当前位置。 这种失调可能导致NMS后处理的次优结果。 受PSRoIAlign的启发,本文提出了一种有效的部分敏感扭曲方法,通过对分类特征映射进行空间变换,将分类置信度与预测的边界框对齐,使本文的模型生成更可靠的置信度映射。

  • 本文提出了一种结构感知的单阶段三维目标检测器,该检测器采用可拆卸的辅助网络来学习结构信息,在不增加额外成本的情况下显示出更好的定位性能。
  • 本文提出了一种有效的特征映射扭曲方法来缓解预测的边界框与相应分类可信度之间的不一致的问题,以很小的代价提高了检测精度。

相关工作

单阶段方法

单阶段的方法一般都是,将稀疏的三维点云解析为紧凑的表示,并使用全卷积的方式处理,从而提高计算效率。 这种典型的方法要么应用2D CNN从BEV[Complex-yolo]和正面全景图[Squeezeseg]中提取特征,要么应用3D CNN到手工设计的体素网格[3d fully convolutional network for vehicle detection in point cloud,Pixor]。[Voxelnet]提出用小PointNet提取体素特征。 [Pointpillars]提出了将体素特征沿高度轴叠加作为“pillar”来降低特征维数。[Second]研究了一种改进的稀疏卷积,它优化了3D卷积中GPU的使用。 本文提出的方法是建立在一般的单阶段结构之上的,并且本文是第一个考虑用point-level监督来增强卷积特征的代表性的方法。

两阶段方法

与直接生成三维边界框的单阶段方法不同,两阶段方法的目的是通过在第二阶段重新使用全分辨率的点云来生成更精确的检测。 一些图像驱动的方法[Frustum convnet]提出了从图像中提取一组感兴趣的三维区域(ROI),然后利用pointnet通过转换标准坐标收集内部点来提取感兴趣区域特征。[Pointrcnn]提出利用PointNet将前景点从场景中分割出来,从纯点云生成ROIS。 它的变体工作[Fast point r-cnn]通过一个有效的基于体素的CNN来实现ROIS。 [ STD]将感兴趣区域分成体素,以便能够使用常规CNN进行感兴趣区域特征提取。[Part-aˆ 2 net]通过对目标进行局部感知分析,丰富了感兴趣区域的特征,并证明了减少边界框模糊性的有效性。 两阶段方法的成功启发了本文利用地面真值编码的全分辨率空间信息来指导单阶段模型学习更具鉴别能力的细粒度模式。

辅助任务学习

从一组辅助任务中学习以增强主任务的性能已经在自动驾驶应用中被重新审视。 [Hdnet]提出估计地面水平线,以增强探测器对道路几何形状的感知。[Multitask multi-sensor fusion for 3d object detection. ]提出通过多任务预测增强跨模态输入的融合。 本文的方法与它们紧密相连,采用逐点预测任务来改进三维目标检测,而与它们不同的是,将预测作为辅助任务,在推理时是可分离的。 辅助任务可以异构于主任务,在优化中提供了多重正则化效果。例如[Leveraging heterogeneous auxiliary tasks to assist crowd counting]促进了人群分割任务,以学习用于人群计数的更仔细的密度图。 [Revisiting multi-task learning with rock: a deep residual auxiliary block for visual detection.]将深度估计任务用于学习场景感知特征,提高了检测被遮挡物体的鲁棒性。 利用辅助任务的优势,可以保持单阶段网络在推理时的效率。

SASSD

本文开发了一个高效的结构感知单阶段网络用于点云检测。

骨干网络和检测网络

输入数据

前面的工作通常通过将其划分为体素栅格并将每个具有点的体素特征表示为输入张量的非零条目,来对点云进行编码。 然而,体素化是一种耗时的预处理方法。 本文直接将每个点表示为输入张量的非零向量,方法是将点的坐标量化为张量索引。设{pi=(xi,yi,zi):i=1,…N}为点云的坐标,{dx,dy,dz}∈R3为输入张量的量化步长。则张量索引可以表示为 {p̄i=(⌊xi/dx⌋,⌊yi/dy⌋,⌊zi/dz⌋):i=1,…,N},其中⌊·⌋是floor函数。本文根据相关索引迭代地将每个点赋值给输入张量的条目。如果多个点共享相同的索引,则用最新的点覆盖该条目。本文发现,通过较细的量化步长d=[0.05m,0.05m,0.1m],这种预处理方法是有效的并且可以达到合理的性能。
量化步长(Quantization Step)指的是将点云坐标量化成离散索引的过程中使用的规格尺度。
例如,如果量化步长为 dx=0.1, dy=0.1, dz=0.2,那么点云坐标(x, y, z)会量化为:
量化x = floor(x/dx) = floor(x/0.1)
量化y = floor(y/dy) = floor(y/0.1)
量化z = floor(z/dz) = floor(z/0.2)
这里floor()表示向下取整。
量化后就得到了一个整数索引,可以直接用于张量的索引访问。
量化步长越小,量化后的分辨率越高,反之分辨率越低。
量化步长的设置会影响最后输入到网络的点云稀疏程度。一般来说,量化步长需要根据点云密度合理设定,维持足够细粒度的点云表示。

网络架构

SASSD
如上图所示,本文采用常用的骨干网[voxelnet,second,point rcnn]作为特征提取器。 该网络包含四个卷积块,每个卷积块由核大小为3的子流形卷积组成。 最后三个块包含一个步幅为2的稀疏卷积。 每个卷积之后都有一个批归一化(Batch Norm)和RELU非线性激活函数。因此,骨干网络在不同的空间分辨率上产生多阶段的特征图。检测网络将来自骨干输出的特征图重新整形为BEV表示,方法是沿深度维度连接特征向量到一个通道。 然后应用6个标准的3×3非线性卷积进一步提取特征。 该算法采用两个不带非线性的1×1卷积算法来生成特定于任务的逐像素预测:一组部分敏感分类映射和一个回归映射,用于编码定向3D对象的锚点偏移量。

辅助网络

本文设计了一个可拆卸的辅助网络,通过两个基于点的监督任务来指导主干网络学习三维点云的结构信息。
动机:一般情况下,点云提取的下采样卷积特征不可避免地会丢失结构细节,而结构细节是生成精确定位的关键。本文的解决方案是构建一个基于点的监督的辅助网络,指导主干CNN的中间特征从不同阶段中学习点云的细粒度结构。为了实现这一目标,本文首先需要将提取的CNN特征转换回逐点表示。
Point-wise feature representation:基于点的特征表示。如上图所示,辅助网络首先根据当前阶段的量化步长,将主干特征的每个非零索引转换为实际坐标,以便每个主干特征可以表示为基于点的形式。我们表示为{(fj,pj):j=1,…,M},其中 f 是特征向量,p是点坐标。为了生成全分辨率的基于点的特征,我们在每个阶段使用特征传播层,通过插值的方式在原始点云的坐标处获得主干特征。对于插值, 本文在邻域内使用反距离权重平均。设{(f^i,pi):i=1,…,N}为插值(传播)特征,则每个点上的特征向量可以通过以下方式计算:
f^i=∑j wj(pi)fj/∑j wj(pi)
其中,wj(pi)={1/||pi-pj||^2 如果 pj∈N(pi) 或 0 如果 otherwise
N(pi)表示一个球形邻域区域,在每个阶段其半径分别为0.05米,0.1米,0.2米和0.4米。我们通过跨阶段链接连接这些基于点的特征,并应用浅层预测器以生成特定于任务的输出。预测器由共享的多层感知器实现,神经元大小为(64,64,64),并通过单元点卷积生成两个特定于任务的输出。
辅助任务:本文首先引入了一个基于点的前景分割任务,以指导主干CNN学习更敏感的模式来检测目标边界。具体地,本文对分割分支使用sigmoid函数为每个点预测前景/背景概率,表示为s^i。设si为一个二值标签,指示一个点是否落在真值框内。前景分割任务可以用focal loss[12]进行优化,即:
Lseg=1/Npos∑i -α(1-si)γlog(s^i)
α和γ是超参数,本文使用原论文中指定的经验值0.25和2。
以上分割任务使主干网络能够更精确地检测目标边界。有了更精确的特征图,模型可以生成更准确的边界框。但是,即使边界点被精确检测,在确定目标的尺度和形状时依然存在模糊性,因为特征图非常稀疏。为了进一步提高定位准确度,本文采用另一个辅助任务,学习每个目标点相对于目标中心的相对位置。目标内部的这种关系可以帮助确定目标的尺度和形状,从而实现更精确的定位。
设∆ ̃p ∈ R^{N×3}为中心点估计分支的输出,∆p为从对象点到对应中心的目标偏移量。中心点估计任务可以用以下Smooth-l1损失进行优化:
Lctr
其中N_{pos}是前景点的数量,1[·]是一个指示函数。
结合前景分割和中心点估计任务可以使骨干网络学习到结构感知特征。使用这两个辅助任务可以显著提高骨干网络的定位精度。此外,辅助网络只在训练阶段中使用,推理阶段不会引入额外的计算开销。

Part-sensitive warping

为了解决预测边界框与对应的分类置信度之间的不一致问题,本文提出了一种高效的PSRoIAlign的变体,即部分敏感变形(PSWarp)操作,通过对特征图执行空间变换来调整分类置信度与预测边界框的对齐,使本文的模型生成更可靠的置信度图。
Part-sensitive warping
与PSRoIAlign类似,本文首先修改最后的分类层以生成K个部分敏感分类图,表示为{Xk:k=1,2,…,K},每个图编码对象某一部分的信息,例如在K=4的情况下,{左上,右上,左下,右下}。同时,本文将每个特征图位置预测的边界框划分为K个子窗口,并选择每个子窗口的中心位置作为样本点。这样,可以生成K个采样网格{Sk:k=1,2,…,K},每个网格与一个分类图相关联。本文的PSWarp由一个特征图采样器组成,如上图所示,它以分类图和采样网格为输入,在网格点处对输入进行采样,产生输出图。最终置信度图C通过对K个采样分类图求平均计算得出。给定预测边界框p及其对应的样本点集{(uk,vk)= Skp:k=1,2,…,K},该边界框的最终置信度可以通过以下方式计算:
Cp
其中b是一个双线性采样内核,形式为b(i,j,u,v)=max(1-|i-u|,0)×max(1-|j-v|,0)。
与PSRoIAlign和其他基于RoI的方法相比,PSWarp更高效,因为它减少了从稠密特征图中生成RoI的需求。它仅考虑每个子窗口中的一个像素,因此与标准卷积具有相同的计算复杂度。

损失函数。

本文采用常见的基于锚框设置[voxelnet,second,Pointpillars]来优化主网络。设Lbox和Lcls分别是回归分支和分类分支的两个损失。Lbox是一个SmoothL1损失,Lcls是一个focal loss。本文通过应用梯度下降方法来最小化以下损失的加权和来共同优化检测任务和辅助任务:
L = Lcls + ωLbox + μLseg + λLctr
其中ω经验地设置为2,根据[voxelnet,second],μ和λ是平衡辅助任务和检测任务的超参数。

结论

本文研究了现有单阶段三维目标检测器的局限性,提出了一种新的三维点云检测器,即结构感知单阶段检测器。 首先提出了利用两个基于点的监督学习辅助网络,引导骨干网中学习到的特征感知三维物体的结构信息。 该算法在不增加推理计算量的前提下,显著提高了检测精度。 在NMS后处理中,进一步发展了一种Part-sensitive warping操作来缓解预测的边界框与其对应的置信度之间的不一致。 在KITTI 3D/BEV检测基准上的实验表明,该方法具有较高的检测效率和性能

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/941901
推荐阅读
相关标签
  

闽ICP备14008679号