[论文阅读]Second——稀疏嵌入卷积检测

本文介绍了一种改进的稀疏卷积方法Second,用于提升基于激光雷达的物体检测速度和方向估计性能。通过空间稀疏卷积和创新的数据增强策略,该方法在自动驾驶和机器人视觉中展现出高效性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Second

稀疏嵌入卷积检测
论文地址:Second

摘要

从自动驾驶到机器人视觉,基于激光雷达和RGB-D的物体检测背广泛应用。在处理激光雷达获取的点云数据时,基于体素的三维卷积神经网络已被用于提高检测的准确度。但是问题依然存在,包括推理速度慢和估计方向性能低。因此,本文研究了一种适用于基于体素类网络的改进型稀疏卷积方法,它能显著提训练和推理速度。本文还引入了一种新的角度损失回归函数来提高方向估计性能,并引入了一种新的数据增强方式来提高收敛速度和性能。

引言

近年来,基于卷积神经网络(CNN)的物体检测,实例分割和关键点检测等取得了显著的进步。这种形式的检测可用于基于单目或立体图像的自动驾驶。然而,用于处理图像的方法,无法直接应用于激光雷达数据。这对自动驾驶和机器人视觉等应用来说是一个重大限制。最先进的二维汽车检测平均精度(AP)可以实现90%,但基于三维图像的汽车检测平均精度只有15%。为了克服仅靠图像提供空间信息的不足,点云数据在三维应用中变得越来越重要。点云数据包含精确的深度信息,可由激光雷达或RGB-D相机生成。
目前,许多三维检测器都采用了同时利用图像和点云数据的融合方法。具体方式包括:

  • 点云数据被转换成二维鸟瞰图
  • 点云数据投影到图像上

然后使用卷积网络提取特征,并应用融合过程在图像和其他视图之间映射特征。
有方法是:最初使用二维检测器生成的边界框对点云数据进行过滤,然后使用卷积网络直接处理点。或者通过量化将点云数据分为配体积网格单元,然后应用三维CNN。
最近,VoxelNet这种方法,将原始点云特征提取和基于体素的特征提取结合在一个单级端到端网络中。它首先将点云数据分组为体素,然后逐个体素应用线性网络,最后将体素转换为密集张量,以用于区域提案网络(RPN)。目前,这是一种最先进的方法。然而,其计算成本难以实时应用。本文提出了Second(稀疏嵌入式卷积检测)的方法,通过最大限度的利用点云数据中丰富的三维信息,解决基于三维卷积检测的这些难题。
该方法对现有的卷积网络架构进行了多项改进,为基于激光雷达的检测引入了空间稀疏卷积网络,并在将三维数据降采样为类似于二维图像数据之前从Z轴提取信息。
使用点云数据的另一个优势是:通过对物体上的指定的点进行直接变换,可以非常容易的缩放,旋转和移动物体。基于这种能力,Second采用了一种新颖的数据增强形式。生成的地面实况数据库包含对象的属性和相关的点云数据,然后再训练过程中将从该数据库中采样的对象引入点云。这种方法可以大大提高网络的收敛速度和最终性能。
除了以上方法外,本文还引入了一种新颖的角度损失回归方法,以解决地面实况与预测结果之间的方位差等于Π时产生巨大损失的问题,从而得到与真实边界框完全相同的边界框。本文还引入了一个辅助方向分类器来识别物体的方向。
本文主要贡献
- 将稀疏卷积应用于基于激光雷达的物体检测,从而大大提高了训练和推理速度。
- 提出了一种改进的稀疏卷积方法,使其运行速度更快。
- 提出了一种新颖的角度损失回归方法。
- 针对激光雷达学习问题,引入了一种新颖的数据增强方式。

相关工作

基于前视和图像的方法

使用RGB-D数据二维表示的方法可分为两类:基于鸟瞰图(BEV)的方法和基于正试图的方法。在典型的基于图像的方法中:首先生成二维边界框,类语义和实例语义,然后使用手工的方法生成特征图。另一种方法是:使用CNN从图像中估计三维边界框,并使用专门设计的离散-连续CNN估计物体的方向。使用激光雷达的方法涉及将点云转换为前视二维地图,并应用二维检测器定位前视图像中的物体。与其他方法相比,这些方法在BEV检测和3D检测方面都表现不佳。

基于鸟瞰的方法

MV3D是第一个将点云数据转换为BEV表示的方法。在这种方法中,点云数据被转换成多个切片以获得高度图,然后将这些高度图与强度图和密度图进行串联以获得多通道特征。ComplexYOLO使用YOLO网络和复杂角度编码方式来提高速度和定向性能,但它在预测的三维边界框中使用固定的高度和Z位置。 Real-Time 3D Object Detection From Point Clouds设计了一种快速的单级无提案检测器,利用特定高度编码的BEV输入。然而这些方法的一个关键问题是:在生成BEV地图时,许多数据点被丢弃,导致纵轴上的信息大量丢失。这种信息损失严重影响了这些方法在三维边界框回归中的性能。

基于3D的方法

大多数基于三维的方法要么直接使用点云数据,要么需要将点云数据转换为三维网格或体素,而不是生成BEV表示法。在Voting for Voting in Online Point Cloud Object Detection中,点云数据被转换为包含特征向量的体素,然后使用一种新颖的的基于卷积投票的算法进行检测。Vote3deep利用点云数据的稀疏性,采用以特征为中心的投票方案来实现新颖的卷积,从而提高了计算速度。这些方法使用手工创建的特征,虽然在特定的数据集上取得了令人满意的结果,但无法适用自动驾驶中常见的复杂环境。
Pointnet和 Pointnet++的作者采用了一种与众不同的方法,通过基于CNN的新颖结构,开发出一种可直接从点云中学习点状特征的系统。PointCNN则适用k邻域法和卷积法从点云中学习局部空间信息。这些方法直接处理点云数据,对k邻域点进行一维卷积,但无法应用于大量点,因为需要图像检测结果来过滤原始数据点。
一些基于CNN的检测器能将点云数据转换成体素。3D fully convolutional network for vehicle detection in point cloud中,点云数据被离散化为二值体素,然后应用三维卷积。
VoxelNet的方法是将点云数据分组为体素,提取体素特征,然后将这些特征转换为稠密的张量,在利用三维和二维卷积网络进行处理。这些方法的主要问题是三维卷积网络的计算成本较高。三维CNN的计算复杂度随着体素分辨率的增加而呈立方增加。
Spatially-sparse convolutional neural networks和Sparse 3D convolutional neural networks设计了一种空间稀疏卷积,提高三维卷积速度。Submanifold Sparse Convolutional Networks提出了一种新的三维卷积方法,其中输出的空间结构保持不变,从而大大提高了处理速度。Submanifold Sparse Convolutional Networks,子曲面卷积被应用于三维语义分割任务。然而,目前还没有一种已知的方法将稀疏卷积应用于检测任务。
与这些方法类似,本文也是用了三维卷积结构,但它包含了几项改进。

基于融合的方法

有些方法将相机图像与点云相结合。Deep sliding shapes for amodal 3D object detection in rgb-d images的作者使用具有不同感受野的两种尺度3D RPN生成3D方案,然后将每个3D方案的深度数据中的3D体积输入3D CNN,并将相应的2D颜色斑块输入2D CNN,以预测最终结果。Multi-view 3D object detection network for autonomous driving中,点云数据被转换为正视图和BEV,然后将从两个点云图中提取的特征图和图像特征图融合。由图像的MV3D网络比仅有BEV的网络性能好很多,但这种结构对小物体效果不佳,而且由于包含3个CNN,运行速度慢。Joint 3D Proposal Generation and Object Detection
from View Aggregation的作者将图像和BEV结合起来,然后使用一种新颖的架构生成高分辨率特征图和三维物体建议。Frustum PointNets for 3D Object Detection from RGB-D Data中,二维检测结果用于过滤点云,然后再应用PointNet预测三维边界框。然而,基于融合的方法通常运行较慢,因为它们需要处理大量的图像输入。此外,还需要使用具有激光雷达功能的时间同步和校准相机,这就限制了此类方法的使用环境,并降低了其鲁棒性。

Second

网络架构

网络架构
检测器将原始点云作为输入,将其转换为体素特征和坐标,并应用两个VFE(体素特征编码)层和一个线性层,然后应用稀疏CNN,最后,由RPN生成检测结果。

点云分组

本文按照VoxelNet中描述的简单程序来获取点云数据的体素表示。

  • 根据指定的体素数量限制,预先分配缓冲区。
  • 遍历点云并将点云分配给其相关的体素,并保存每个体素的坐标和每个体素中点的数量。通过哈希表来检查体素是否存在,如果不存在则创建,如果存在则点数量+1。
  • 一旦体素数量达到指定上限,遍历停止,就可以得到所有的体素,他们的坐标以及每个体素中点的数量。
  • 在检查汽车和其他相关类别物体时,会根据地面实况分布,沿z×y×x轴在[-3,1]×[-40,40]×[0,70.4]m处裁剪点云范围。对行人和自行车检测,在。[-3,1]×[-20,20]×[0,48]m处裁剪点云范围。
  • 设置每个空体素中的最大点数阈值,KITTI数据集中汽车检测设置为35。行人和自行车检测中相应的最大点数设置为45,因为行人和自行车的体积相对较小,需要更多的点来进行体素特征提取。
    这里阅读论文时有一个疑问,就是汽车和行人的点数阈值不一致,那网络是分开计算汽车和行人吗?这样计算资源不是就翻倍了吗? 解答:前面已经说明,会根据地面实况分布,划分点云范围,如果在汽车检测范围内的体素,则将该体素点数阈值设为汽车的阈值,如果在行人检测范围内的体素,则将该体素点数阈值设为行人的阈值。
体素特征提取器

和VoxelNet一样,本文使用体素特征编码(VFE)层来提取体素特征。VFE层将同一体素中的所有点作为输入,并使用线性层,拟归一化(BatchNorm)层和线性激活函数(RELU)层组成的全连接网络(FCN)来提取点状特征。然后它使用最大池化操作(max pooling)来获取每个体素的 局部集合特征。最后他将获得的特征进行平铺,并将这些平铺特征和点状特征拼接在一起。体素特征提取器由多个VFE层和一个FCN层组成。
VFE
经过VFE层得到的特征张量是稀疏的,因为在VFE层中,只对含有点的非空体素进行特征提取,空体素不进行处理。所以最终得到的特征张量中,也只有非空体素对应的位置上有有效特征值,其他位置都是零。这样特征张量的有效元素数目远小于其整个容量,所以是稀疏的。

稀疏卷积中间提取器

Spatially-sparse convolutional neural networks.是第一篇引入空间稀疏卷积的论文。在这种方法中,如果没有相关输入点,就不会计算输出点。这种方法在基于激光雷达的检测中具有计算优势,因为KITTI中的点云分组步骤将生成5k-8k体素,稀疏度接近0.005。作为普通稀疏卷积的替代方案,子曲面卷积( Submanifold Sparse Convolutional Networks.)限制输出位置只有在相应的输入位置处于活动状态时才处于活动状态。这就避免了产生过多的活动位置,而过多的活动点会导致后续卷积层的速度下降。
稀疏卷积算法
经过VFE层得到稀疏特征张量作为稀疏卷积的输入。
传统的稀疏卷积规则生成算法基于CPU,使用哈希表,速度较慢。本文提出使用GPU来生成规则,可以加速规则生成过程。
根据输入特征的索引(指的是经过VFE层获得的稀疏特征张量中,有效特征所在的索引位置,比如(x,y,z)等。)和对应的空间索引(指输入特征索引对应的空间坐标,比如该特征对应的体素的空间坐标。),根据卷积kernel的大小,可以计算出每个输入特征可以影响的输出特征的空间坐标,这些输出特征的空间坐标,经过并行去重,就可以得到输出特征的索引。最终,得到输入索引到输出索引的稀疏卷积规则。规则中存储的是:给定输入索引,可以得到该输入对应输出索引的映射关系。
总结为:输入索引→空间索引→可能的输出空间索引→并行去重得到输出索引→构建输入索引到输出索引的规则。
然后应用稀疏卷积: (1) 根据规则收集需要的输入特征。 (2) 将输入特征和卷积核进行矩阵乘法,得到中间结果。 (3) 根据规则,将中间结果 scatter 回对应的输出位置。最终得到稀疏卷积的输出特征Map。
所以稀疏卷积是通过规则直接操作稀疏特征来进行的,而不是先转换为稠密特征,可以跳过不需要计算的位置,减少计算量。
稀疏卷积:使用多层稀疏卷积进行特征提取和降维。包含两类稀疏卷积:Submanifold卷积和正常稀疏卷积。Submanifold卷积限制输出位置必须有对应的输入位置。正常稀疏卷积用于在z轴方向进行降采样。在z轴降维到1-2后,将稀疏特征转换为稠密特征图。再转换为图片形式的2D特征图,作为后续RPN网络的输入。
稀疏卷积

RPN

RPN的输入来自稀疏卷积中间提取器的得到的特征图。RPN架构由三个阶段组成,每个阶段从一个下采样卷积层开始,然后是几个卷积层,在每一个卷积层之后,应用BatchNorm和RELU层。然后,将每个阶段的输出上采样为相同大小的特征图,并将这些特征图连接成一个特征图。最后,应用三个1*1卷积来预测类别,回归便宜和方向。

训练和推理

损失

Sine-Error Loss for Angle Regression ,角度回归的正弦误差损失
loss
该损失函数解决了0和Π方向之间的对抗性示例问题,并且它根据角度偏移函数自然的建立了IoU模型。
Focal Loss:
focal loss
focal loss很好解决了前景类和背景类之间极度不平衡的问题。
综上,多任务损失的最终形式:
Ltotal
其中Lcls为分类损失,Lreg-orther为位置和维度回归损失,Lreg−θ为新角度损失,Ldir为方向分类损失。

数据增强

训练过程中遇到的主要问题是地面实况太少,这大大限制了网络的收敛速度和最终性能。本文引入了一种新的数据增强方法。首先,从训练数据集中生成一个数据库,其中包含所有基本物体的标签及其相关点云数据。然后在训练过程中,从该数据库中随机选取几个基本物体,将其引入到当前训练点云中。通过这种方法,大大增加中地面实况数量,并模拟存在于不同环境中的物体。为了避免出现物理上不可能的结果,本文在对地面实况进行采样后进行了碰撞测试,并移除了任何与其他物体发生碰撞的采样物体。
并且对每个地面实况及其点云进行独立的随即变换,而不是用相同的参数对所有点云进行变换。也进行了全局旋转和缩放。

优化

使用Adam优化器。

结论

未来的工作包括研究基于摄像头和激光雷达的联合检测方法,如图像特征和激光雷达体素特征的融合,以提高检测性能,以及使用弱监督训练来利用KITTI数据集中大量未标注的部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一朵小红花HH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值