论文相关信息

文献地址:https://www.researchgate.net/publication/328158485_SECOND_Sparsely_Embedded_Convolutional_Detection
论文源码:
Abstract:基于LiDAR和基于RGB-D的目标检测广泛应用于自动驾驶和机器视觉等应用中,基于体素的3D卷积网络有时会用于增强处理点云时时的信息保留能力。然而,当前仍然存在推理速度慢以和方向估计表现(low orientation estimation performance)差的问题,所以本文章提出一种改进过的稀疏卷积方法来增加训练和推断的速度。此外还提出了一种新形式的角度损失回归(angle loss regression)来提高方向估计表现,以及一种新的数据增强方法来提高网络收敛速度及性能。
1. Introduction
当前SOTA的2D汽车目标检测达到了90% AP,而3D汽车检测却只有15%。这表明2D的目标检测已经发展的相对成熟,而3D目标检测仍有很大发展潜力。图像中缺少空间信息,而点云则包含了准确的深度信息,能够由LiDAR和RGB-D相机生成,正为3D应用中越来越重要的数据形式。
当前许多3D检测器都使用融合方法来同时利用图像和点云数据。将点云数据转换为2D鸟瞰图像或投影到图像。然后使用一个卷积网络提取特征,并应用融合过程在图像和其他视图之间映射特征。 在Frustum PointNets中,首先使用二维检测器生成的边界框过滤点云数据,然后使用卷积网络直接处理这些点。 在其他方法中,通过量化将点云数据分配给体积网格单元(volumetric grid cells),然后应用3D CNN。
最近,开发了一种称为VoxelNet [14]的新方法。 这种方法在单级端到端网络中结合了原始点云特征提取和基于体素的特征提取。 它首先将点云数据分组为体素,应用线性网络一个个的处理体素,然后将体素转换为密集3D张量(dense 3D tensors ),再传入区域建议网络(RPN)。当前这是一种SOTA方法,但是由于其计算代价高,很难做实时检测应用。 于是本文提出一个新的方法SECOND (Sparsely Embedded CONvolutional Detection),该方法通过最大程度地利用点云数据中存在的丰富3D信息来应对基于3D卷积的检测中的这些挑战。该方法对现有的卷积网络体系结构进行了一些改进。 引入了空间稀疏卷积网络用于基于LiDAR的检测,并用于在3D数据下采样到类似于2D图像数据之前从z轴提取信息。我们还使用基于GPU(图形处理单元)的规则生成算法进行稀疏卷积以提高速度。 与密集卷积网络相比,我们的基于稀疏卷积的检测器在训练KITTI数据集期间实现了4倍的速度增强,并且推理速度提高了3倍。作为进一步的测试,我们设计了一个用于实时检测的小型模型,该模型在GTX1080 Ti GPU上的运行时间约为0.025 s,而性能仅有一点损失。
使用点云数据的另一个优点是,通过对对象上的指定点进行直接转换,可以非常轻松地缩放,旋转和移动对象。 SECOND基于此功能结合了一种新颖的数据增强形式。 生成了一个真实的数据库,其中包含对象的属性和关联的点云数据。 然后将从该数据库中采样的对象在训练过程中引入到点云中。 这种方法可以大大提高网络的收敛速度和最终性能。
除上述以外,我们还引入了一种新颖的角度损失回归方法,以解决当ground truth与预测之间的方向差等于π时产生的大损失的问题,因为这种情况下会产生与真实框相同的边界框。 这种角度回归方法的性能超过了我们目前所知的任何方法,包括AVOD中可用的方向向量回归函数。 我们还引入了辅助方向分类器来识别对象的方向。
该方法针对基于KITTI的3D检测在所有类别上都产生了SOTA结果,运行时,较大的模型以20 fps的速度运行,较小的模型以40 fps的速度运行。
论文贡献如下:
-
在基于LiDAR的目标检测中应用稀疏卷积,从而大大提高了训练和推理的速度。
-
我们提出了一种改进的稀疏卷积方法,使其能够运行得更快。
-
我们提出了一种新颖的角度损失回归方法比其他方法具有更好的方向回归性能。
-
我们针对仅限于LiDAR的学习问题引入了一种新颖的数据增强方法,该方法大大提高了收敛速度和性能
2. Related Work
简要回顾一下基于点云数据和图像的3D对象检测的现有工作。
2.1. Front-View- and Image-Based Methods
使用RGB-D数据的2D表示的方法可以分为两类:基于鸟瞰(BEV)的方法和基于正视图的方法。使用LiDAR的方法涉及将点云转换为前视图2D地图,以及2D检测器的应用以定位前视图图像中的对象。与其他方法相比,这些方法对于BEV检测和3D检测均表现不佳。
2.2. Bird’s-Eye-View-Based Methods
MV3D 是将点云数据转换为BEV表示的第一种方法。 在这种方法中,将点云数据转换为多个切片以获得高度图,然后将这些高度图与强度图和密度图连接起来以获得多通道特征。ComplexYOLO使用YOLO网络和复杂的角度编码方法可提高速度和方向性能,但在预测的3D边界框中使用固定的高度和z位置。PIXOR设计了一种快速的 single-stage proposal-free检测器,该检测器使用了特定的高度编码的BEV输入。 但是,所有这些方法的关键问题在于,在生成BEV映射时会丢弃许多数据点,从而导致垂直轴上的信息大量丢失。 这种信息丢失严重影响了这些方法在3D边界框回归中的性能。
2.3. 3D-Based Methods
大多数基于3D的方法要么直接使用点云数据,要么需要将这些数据转换为3D网格或体素,而不是生成BEV表示。一些方法中,点云数据被转换为包含特征向量的体素,这些方法使用手工制作的功能,尽管它们在特定的数据集上产生令人满意的结果,但它们却无法适应自动驾驶中通常遇到的复杂环境。还有一些方法直接从点云学习点特征或者局部特征,这些方法直接处理点云数据以在k个邻点上执行一维卷积,但无法应用于大量点; 因此,需要图像检测结果来过滤原始数据点。一些基于CNN的探测器将点云数据转换为体素。这些方法的主要问题是3DCNN的高计算成本,3D CNN的计算复杂度随着体素分辨率呈三次方增长。有一些方法提出空间稀疏卷积来提高卷积速度,但是目前还没有使用稀疏卷积执行检测任务的方法。
与所有这些方法类似,我们的方法利用了3D卷积体系结构,但结合了一些新颖的改进。
2.4. Fusion-Based Methods
一些方法将摄像机图像与点云结合在一起做检测,但是基于融合的方法通常运行缓慢,因为它们需要处理大量的图像输入。 具有LiDAR功能的时间同步且经过校准的摄像机的其他要求限制了此类方法的使用环境,并降低了其鲁棒性。 相比之下,我们的方法仅使用LiDAR数据即可达到最先进的性能。
3. SECOND Detector
本节描述SECOND检测器的架构以及关于SECOND训练和推断时的相关详细信息。
3.1 Network Architecture

论文提出的SECOND检测器架构如图1所示,由三个部分组成:(1) a voxelwise feature extractor; (2) a sparse convolutional middle layer; and (3) an RPN.其中voxelwise feature extractor由两个VFE和一个线性层组成。
3.1.1. Point Cloud Grouping
在这里,我们遵循VoxelNet中描述的简单过程来获得点云数据的体素表示。 我们首先根据指定的体素数量限制对缓冲区进行预分配;然后,在点云上进行迭代,并将点分配给与其关联的体素,然后保存体素坐标和每个体素中的点数量。在迭代过程中,我们基于哈希表检查体素的存在。 如果与某个点有关的体素尚不存在,则在哈希表中设置相应的值; 否则,我们将体素的内点的数量增加一个(这里应该是如果体素已经存在就把体素中点的数量+1)。一旦体素的数量达到指定的限制,迭代过程将停止。 最后,我们获得所有体素,它们的坐标以及实际体素数的每个体素点数。
为了检测相关类别中的汽车和其他物体,我们基于沿z×y×x轴的[-3,1]×[−40,40]×[0,70.4] m处的地面真实分布来裁剪点云。 对于行人和骑自行车的人检测,我们使用在[-3,1]×[−20,20]×[0,48] m处的裁剪点。 对于较小的模型,我们仅使用[-3,1]×[-32,32]×[0,52.8] m范围内的点来增加推理速度。 需要根据体素大小对裁剪区域进行轻微调整,以确保可以在后续网络中正确下采样生成的特征图的大小。 对于所有任务,我们使用的体素大小为vD = 0.4,vH = 0.2,vW = 0.2m。 每个空的用于车辆检测的体素的最大点数设置为T = 35,这是根据KITTI数据集中的每个体素的点数分布来选择的; 由于行人和骑自行车者相对较小,因此,体素特征提取需要更多的点,因此将行人和骑自行车者检测的相应最大值设置为T = 45。
3.1.2. Voxelwise Feature Extractor
如VoxelNet中所述,我们使用体素特征编码(VFE)层提取体素特征。VFE层将同一体素中的所有点作为输入,并使用由线性层, 批处理归一化(BatchNorm)层和非线性单元(ReLU)层组成的完全连接网络(FCN)来提取逐点特征。 然后,它用逐元素最大池来获取每个体素的局部聚集特征。 最后,它将获得的特征平铺,并将这些平铺的特征和每个点的特征连接在一起(类似PointNet做分割的结构)。 我们使用VFE(coutc_{out}cout)表示将输入特征转换为coutc_{out}cout维输出特征的VFE层。 同样,FCN(coutc_{out}cout)表示将输入特征转换为coutc_{out}cout维输出特征的Linear-BatchNorm-ReLU层。 整体上,体素特征提取器(voxelwise feature extracto)由几个VFE层和一个FCN层组成。
3.1.3. Sparse Convolutional Middle Extractor
第一篇引入空间稀疏卷积的论文中,如果没有相关的输入点,则不计算输出点。 这种方法在基于LiDAR的检测中提供了计算优势,因为在KITTI中对点云进行分组的步骤将生成5k-8k的体素,其稀疏度接近0.005。 作为常规稀疏卷积的替代方法,submanifold convolution将输出位置限制为在且仅当相应的输入位置处于活动状态时才处于活动状态。 这避免了太多的活动位置的产生,这可能由于大量的活动点而导致后续卷积层中速度的降低。
Sparse Convolution Algorithm
让我们首先考虑2D密集卷积算法。 我们使用Wu,v,l,mW_{u,v,l,m}Wu,v,l,m表示过滤后的元素,使用Du,v,lD_{u,v,l}Du,v,l

论文SECOND提出了一种针对LiDAR数据的稀疏卷积网络,以加快训练和推理速度。通过空间稀疏卷积处理3D点云,同时采用角度损失回归解决方向估计问题,显著提高了3D目标检测的性能。此外,文中还介绍了一种数据增强方法,通过在训练中引入虚拟对象,加速网络收敛并提升检测准确性。在KITTI数据集上,SECOND在3D检测任务上取得了最佳结果,并能实现实时检测。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



