基于原始点云网格自注意力机制的三维目标检测方法

2023-11-19 06:52鲁斌孙洋杨振宇
通信学报 2023年10期
关键词:体素中心点尺度

鲁斌,孙洋,杨振宇

(1.华北电力大学计算机系,河北 保定 071003;2.复杂能源系统智能计算教育部工程研究中心,河北 保定 071003)

0 引言

近年来,三维目标检测技术作为机器人和自动驾驶感知系统的关键技术之一,已经取得了显著的进步。该技术利用由激光雷达捕获的点云数据来描绘物体的三维结构,估计其姿态,并感知空间距离。因此,激光雷达成为三维目标检测的首选传感器。基于原始点云的三维目标检测旨在利用这些点云数据来识别环境中物体的类别、位置、大小和方向,为深入理解场景提供基础。然而,与图像不同,点云数据是无序且不均匀的,这使无法直接使用卷积神经网络(CNN,convolutional neural network)来学习特征,从而增加了基于点云的三维目标检测技术的挑战性。

目前,大多数检测方法采用两阶段范式,以获得更好的检测效果。例如,PV-RCNN[1]使用SECOND(sparsely embedded convolutional detection)[2]和PointNet++[3]作为其基础网络,以分别提取点和体素的特征,并在第二阶段通过采用最大池化方法对点特征进行聚合。Voxel R-CNN[4]则省略了PV-RCNN 中的点采样步骤,并在第二阶段同样基于最大池化方法聚合多尺度的体素特征,来学习点云的局部特征。目前,现有算法大都基于PointNet[5]及其变种[3]对点云进行特征提取和基于置换不变特性的最大池化法聚合局部点云特征,没有充分考虑点云之间的几何关系。当遇到点云稀疏情况,例如距离较远时,仅依靠局部特征聚合难以学习到更鲁棒的目标特征。为了进一步提高特征的表达能力以改善检测效果,需要对点和点之间的关系进行建模。

Transformer[6]架构在自然语言处理领域取得了显著成功,其将输入的文本序列切分成多个单独的词或字符,然后通过自注意力机制来学习每个词或字符之间的关系。其置换不变的特性适于对无序的点云数据进行编码。PCT(point cloud transformer)[7]和Point transformer[8]将Transformer 应用于点云的分类和分割任务,取得了较好的效果。本文将Transformer 引入点云目标检测领域,以更好地处理点云数据的无序性和点之间的关联信息,学习更鲁棒的点云特征。

另一方面,在实际复杂环境中,检测效果往往受到多种因素的影响,例如遮挡和噪声等,这些因素可能导致点云数据的质量不稳定,而提升性能的关键在于从稀疏点云中提取更鲁棒的特征。此外,点云的稀疏性导致在人工标注数据时易受到环境因素影响,从而使数据标签含有模糊信息,并对学习目标点云的鲁棒特征造成影响。传统方法[9]通常把回归目标当作一个固定值,而忽略了标签不确定性可能造成的影响,限制了检测性能的进一步提升。同时,如果目标包含的点较少,那么围绕目标的候选框位置的不确定性就会增加,如图1 所示。对于尺寸相同的目标,由于其包含的点云的稀疏性,可能会产生不同的回归目标,从而对检测性能产生不利影响。为解决标签不确定性问题,本文引入了一种基于概率分布的软回归损失。通过检测模块预测候选框位置的不确定性,并将其作为回归损失的一部分,在训练过程中重新量化预测框与其对应标签的相似度,从而提升模型的检测性能。

综上所述,本文提出了一种基于原始点云网格自注意力机制的二阶段三维目标检测方法GT3D。该方法在第二阶段采用基于Transformer 的自注意力机制来对第一阶段得到的感兴趣区域(RoI)内部的点云进行上下文编码,能够更有效地学习点云之间的依赖关系,提取更鲁棒的目标特征。同时,考虑到数据标注过程中的不确定性对回归任务的影响,使用基于概率分布的回归损失重新度量预测框和真实标签的相似性,降低由数据标注过程带来的标签歧义问题。在公开的三维目标检测数据集KITTI[10]上对本文所提方法进行评估,结果显示,本文所提方法比现有目标检测方法具有竞争力的性能优势。此外,本文将KITTI 测试集检测结果提交至KITTI 官网进行验证,并公开实验结果。

1 相关工作

按照从非结构化点云中提取特征的方式划分,现有的三维目标检测方法主要分为三类:基于体素的方法、基于点的方法以及点和体素融合的方法。

基于体素的方法通过将点云划分成规则网格,并利用三维卷积技术来提取特征。例如,Zhou 等[9]提出VoxelNet,首先将点云进行体素化,然后对这些体素进行特征编码,并应用三维卷积来提取特征,最后将这些特征压缩到鸟瞰视角(BEV,bird’s eye view)以生成候选框。Yan 等[2]提出SECOND,通过设计专门针对点云特征提取的三维稀疏卷积模块,有效地提升了三维卷积的处理效率。为了进一步提高三维目标检测的效率,Lang 等[11]提出PointPillars,该方法直接将特征压缩至BEV 中来生成候选框,从而避免了三维卷积的过程。然而,基于体素的方法在进行体素特征编码的过程中可能会丢失点云的精确位置信息,限制了方法性能的提升。

基于点的方法使用原始点云进行检测,并且由于点的数量众多,它们通常采用多层次的采样和特征聚合。PointNet[5]和PointNet++[3]通常被用作这类方法的基础网络。PointRCNN[12]将点云分为前景点和背景点,并在前景点上生成高质量的候选框。3DSSD[13]利用欧氏距离和特征距离进行分层点采样,以获取更多的前景点,并去除了效率较低的上采样和细化步骤,从而在准确性和效率之间取得了良好的平衡。BADet[14]通过将每个候选区域视为一个节点来构建局部图,从而显式地利用边界间的相关性来优化候选框。CIA-SSD[15]引入了一个置信度修正模块,以解决目标定位精度与类别置信度之间的不一致问题,从而获得更加精确的边界框和类别置信度预测。PDV(point density-aware voxel)[16]则为点云引入密度信息,并使用Transformer 对点进行编码。基于点的方法需要在原始点云中进行分层采样,这通常会导致较低的处理效率。

有很多研究尝试融合点和体素各自的优势来进行检测。例如,CT3D[17]在使用三维体素特征生成区域建议的同时,利用逐通道的Transformer 从原始点中提取特征。同样,PV-RCNN 引入了体素集抽象模块,使用三维体素特征生成建议后,利用点特征进行特征精细化。后续的工作尝试通过引入新的特征提取方法来改进第二阶段,例如RefinerNet[18]和VectorPool[19]。然而,将点和体素的特征相融合在加强检测性能的同时,不可避免地增加了内存的占用,并对检测效率产生影响。在这种将点和体素相结合的主干网络中,特征的整合通常取决于具体的特征转换机制,这可能会导致额外的计算负担。需要注意的是,这类方法虽然在检测精度上往往超过纯粹基于体素的方法,但通常以增加推理过程的时间开销为代价。

Transformer 架构在自然语言处理领域已取得显著成功,其核心模块自注意力机制能够对输入序列间的相关性进行建模。DETR[20]将Transformer 应用到图像目标检测领域,并把目标检测当作集合预测问题来处理,为使用Transformer 进行目标检测建立了新的范式。接着,DETR 的一个变种——Deformable DETR[21],引入了可变形注意力模块,以提升DETR的训练效率。文献[7-8]则将Transformer 应用于点云的特征提取。但是,由于点的数量较多,直接将Transformer 应用到点云中可能会导致计算复杂度过高、检测效率难以提高的问题。

2 本文模型

GT3D 是一个两阶段的三维目标检测模型,第一阶段用于生成RoI,第二阶段则利用原始点云来精细化特征,以充分保留点云的空间信息。图2 展示了GT3D 的框架,输入为原始点云。首先,通过三维主干网络生成包含目标的RoI。然后,对每个RoI 进行网格化,并对RoI 内部的原始点云进行采样。接着,对采样点的空间信息进行建模,并输入多头Transformer 中进行上下文编码。最后,将编码后的RoI 特征输入检测头中,以进行候选框的分类和回归。

图2 GT3D 的框架

2.1 基于体素法的三维主干网络

虽然体素化会带来点云空间信息的损失,但是检测方法在第一阶段主要关注如何快速找到包含目标的RoI。考虑到体素法具有较高的处理效率,本文使用基于体素法的SECOND 作为第一阶段的主干网络,并基于多尺度体素特征生成RoI。具体来说,输入原始点云pi={xi,yi,zi,ri},i∈[1,n],其中xi、yi、zi为点云的三维空间坐标,ri为反射率,n为点的数量。然后将点云进行体素化处理,对点云空间进行等间距划分。对于每个体素所包含的点,使用PointNet对其进行升维处理,记作fi={a(i,1),a(i,2),…,a(i,m)},i∈[1,n],m∈[1,k],其中k为点映射到高维空间后的维度。接着,通过最大池化函数对每个体素内的点进行特征聚合。最后,使用多层子流形卷积和稀疏卷积[2]对体素进行特征提取,如图3 所示,并将提取到的特征fv沿z轴压缩到BEV,输入区域建议网络(RPN,region proposal network)中生成RoI,其中,k为卷积核尺寸,pad 为填充操作,s为步长。

图3 三维主干网络结构

2.2 网格特征编码

为了更准确地提取点云的局部特征,本文采用两步策略对点云进行有效编码。第一步,采用最远点采样对RoI 内的点进行采样,并对RoI 进行网格化处理。计算采样点到每个网格中心的距离,以增强采样点的空间信息。第二步,对网格中心点的局部特征进行聚合。通过使用PointNet++来聚合网格中心点附近的多尺度局部特征,能够进一步增强中心点的特征表达能力。

2.2.1 网格中心点位置编码

本文对每个RoI 应用最远点采样策略。值得注意的是,目标的真实框与RoI 之间可能在角度和位置上有差异。在特定情况下,例如当目标位于树木下或紧邻突出的建筑物时,如果不限制采样空间的高度,可能会导致目标的采样点数量减少,从而对检测结果产生不利影响。为了在最大程度上采样到真实框内的点,同时减少对检测效果不利的背景点的采样,本文采用圆柱体空间结构来对RoI 进行采样,如图4 所示。

图4 RoI 点采样

图4 中,圆形点表示采样区点,方形点表示非采样区点 。圆柱体的底部半径为,高度为h=βhr,其中,wr、lr、hr分别表示RoI 的宽、长和高,α和β表示柱体的扩张比例参数。在这个区域内对点云进行采样,本文设定采样点的数量为256。如果RoI 内的点数少于256,则重复进行随机采样,直到达到256 个点。本文将α设置为1.1,β设置为1。

定义P={p1,p2,p3,…,pn}⊂Rn,其中pi(i∈[1,n])表示点云中的点坐标,Rn表示通过RPN 生成的RoI。那么,该区域内点pi到任意点pj的距离为

首先,从点云中随机选取一个点p0作为起始点,然后利用式(1)计算其他n-1个点与p0的距离d1,d2,…,d(n-1),并将距离p0最远的点pm放入采样点集合S中。然后,计算剩余点与采样点集合S中所有点的距离,选择到所有采样点的距离最远的点加入采样点集合S中。重复这个过程,直到采样点的数量达到预定值。

通过实验发现,对空间点的几何特征进行建模可以增强点的特征表达能力。基于此,本文提出一种新的坐标位置编码方法,用于精细化点的空间位置信息,如图5 所示。首先,将RoI 划分为均匀网格,网格数量设置为6×6×6(长、宽、高3 个方向),则每个RoI 包含216 个网格。然后,定义每个网格的中心点为gm(m表示RoI 内的网格索引),并计算每个网格中心点到采样点的相对距离Δdi=gm-pi,m∈[1,216],i=[1,256]。使用Δdi对网格点的空间位置进行建模并统一位置编码的坐标尺度,最终得到gm的位置特征fd。具体计算方式为

图5 网格中心点坐标编码

其中,g(·) 表示特征变换函数(这里使用前馈神经网络(FFN,feed forward network)将距离特征映射到高维特征空间),Δxi,m、Δyi,m和Δzi,m分别表示点pi到每个网格中心点的欧氏距离的3 个分量,Δfi,m表示点的额外特征,包括反射率等。

与PointPillars 所采用的柱体特征编码(PFE,pillar feature encoding)方法不同,本文通过将采样区域网格化,并计算采样点到每个网格中心点的相对距离,以实现对点的空间位置信息更精细的表达,而PFE 则是通过计算点与每个柱体的中心点的相对距离来强化点坐标的空间位置信息,精细程度有所欠缺。

2.2.2 网格中心点多尺度局部特征编码

考虑到原始点云包含更准确的空间信息,本文利用原始点云对网格点进行多尺度局部信息编码。具体而言,对于每个网格的中心点gm,查询其周围半径为r的球形区域内的点,并使用PointNet 对这些点进行升维处理,以获得该网格中心点在指定半径内的所有点的特征集合,其中k表示该半径范围内的点的数量,如图6 所示。为了满足置换不变性要求,本文使用最大池化函数对特征进行聚合,从而得到该中心点在特定半径下的特征。

图6 网格中心点多尺度局部特征编码

其中,G(·) 表示聚合函数,这里采用向量拼接来进行处理。然后,通过调整球查询半径大小,获得中心点在不同尺度下的特征表达。最后,将多尺度特征进行拼接处理,得到最终的中心点局部特征

多尺度局部特征编码模块如图7 所示。本文设定了多个不同尺寸的半径来对点进行聚合。由于不同半径内的点数量可能不同,本文对每个半径内的点的数量进行统一限制:如果点的数量超过规定值,则进行随机选取;如果点的数量低于规定值,则使用点坐标的平均值进行填充;如果该半径内没有点,则使用0 进行填充。然后,通过三层FFN 对聚合后的坐标进行升维,并利用最大池化函数对各个尺度的特征进行聚合。最终,通过FFN 调整fg的维度,并将位置编码特征与多尺度局部特征进行相加,得到网格中心点特征

图7 多尺度局部特征编码模块

其中,fgrid表示RoI 的空间几何特征和点云多尺度局部特征。

2.2.3 空间上下文编码

虽然每个网格编码了目标的空间特征和多尺度局部特征,但仍然缺乏对网格点之间相互依赖关系的建模。为解决此问题,本文引入自注意力机制来捕捉网格点间的远程依赖关系,为网格点的特征赋予不同的权重。这使算法能够捕捉到网格点特征与RoI 之间更加复杂的关系。图8 展示了通过自注意力机制加权后的网格点特征对RoI 特征的贡献度,其中亮度较高的区域表示对RoI 特征的贡献权重较大。

图8 自注意力机制对网格点特征加权

Transformer 在处理点云数据方面展现出显著的效果,但由于包含大量线性运算,常常伴随较高的计算成本和内存消耗。针对这个问题,本文选择不对RoI 内的原始点云直接进行注意力编码,而是采纳局部注意力策略,即通过在网格中心点聚合点云的空间和局部特征以降低输入特征的维度。此外,这种策略也使本文提出的两阶段细化方法能够适于不同密度的点云数据。

在Transformer 的编码阶段,本文对网格点的特征进行注意力编码计算。假设输入特征为。没有特征的空网格则不参与注意力编码,仅保留其位置编码。本文采用网格中心点的原始坐标作为位置编码

接着,使用标准Transformer 编码器计算特征注意力矩阵

其中,Wk、Wq和Wv分别为线性映射函数,dq为矩阵Qi的特征维度,⊙为点乘运算。本文采用多头自注意力机制来处理Ki、Qi和Vi,以捕获RoI更丰富的特征。多头注意力的计算式为

其中,concat(·) 用来将多头注意力特征进行拼接,FFN 用来对特征进行维度变换。

接着,在网格空间位置编码与注意力编码之间构建类似于残差连接的结构,将点的空间位置编码和注意力特征进行拼接,以增强特征的表达能力。经过FFN 处理后,得到最终的RoI 特征

最后,将fi输入检测头进行候选框的分类和回归。

2.3 软回归损失

本文提出的软回归损失函数可用于量化预测候选框与其对应的标签之间的相似度,以减轻点云数据标注过程中的不确定性。首先,用高斯分布来表示预测框的位置,并将其所对应的标签视为该分布中的概率,计算式为

其中,G={gx,gy,gz,gl,gw,gh,gθ}表示候选框所对应的真实标签值;p为概率密度;N(·) 为二维高斯分布,可表示为

其中,μ和σ表示高斯分布中的均值和方差。本文将检测头对候选框位置的预测{μx,μy,μz,μl,μw,μh,μθ}作为μ,并在检测头部增加一个额外的分支来预测不确定性得分,可表示为{σx,σy,σz,σl,σw,σh,σθ},分别对应μ中每个位置的不确定分数。在计算出真实标签在预测框分布中的概率后,使用softmax 函数对这些概率进行归一化处理

最后,使用ps对回归目标进行加权。值得一提的是,本文所提出的软回归损失仅在训练阶段使用,以辅助训练检测头的回归分支,而不会在推理阶段增加额外的计算成本。

2.4 检测头与损失

算法的损失分为RPN损失Lrpn和细化阶段损失Lrcnn两部分,其中Lrpn包括框的置信度损失Lcls和位置回归损失Lreg。框的编码格式为 (x,y,z,w,l,h,θ),其中,x、y、z表示框的中心点坐标,w、l、h、θ分别表示框的宽、长、高、朝向角度。真实框与

对于Lrpn,使用交叉熵函数来计算置信度损失,以平衡正、负样本对损失的贡献程度

其中,为预测置信度,cb为真实标签值。

框位置回归使用smooth-L1 损失函数

其中,表示边界框的预测残差值,γb表示预测框距离真实框位置的残差值,i表示正样本的数量。

最后得到总的Lrpn损失为

其中,β1和β2为损失的权重系数,用于平衡分类和回归对Lrpn的贡献程度。

Lrcnn的计算方式和Lrpn类似,最后得到算法总损失为

3 实验结果与分析

为验证本文所提方法的有效性,使用公开的自动驾驶数据集KITTI 对其进行验证,并进行充分的消融实验,以分析GT3D 各模块的有效性。KITTI数据集包含7 481 个训练样本和7 518 个测试样本。与Chen 等[22]的工作保持一致,将训练样本划分为3 712 个训练样本集和3 769 个验证样本集。本文分别在验证集和测试集中对简单、中等和困难3 个难度等级的目标进行实验,使用平均准确率(AP,average accuracy)衡量所提方法性能。

3.1 实验硬件环境

表1 为实验所需的软硬件环境及其参数配置。

表1 实验所需的软硬件环境及其参数配置

3.2 实验细节

对于KITTI 数据集,其x轴检测范围为[0,70.4]m,y轴为[-4 0.0,40.0]m,z轴为[-3 .0,1.0]m,每个体素块在x、y、z这3 个方向上的大小设置为(0.05,0.05,0.1) m。每个体素在3 个方向上的大小均为0.05 m,体素数量在训练阶段设置为16 000,推理阶段设置为40 000。为避免目标包含点云数量太少以至于难以提取到特征,对点数少于20 的目标进行过滤[2]。本文采用与SECOND 相同的数据增强方法,具体包括:1) 增加场景中待检测目标的数量;2) 对点云场景中的点按照范围在[0.95,1.05]内的随机倍数进行缩放,范围在内的随机角度进行旋转;3) 对所有真实框在范围内进行随机角度旋转来模拟目标转向;4) 将点云沿x轴进行随机翻转。

RoI 网格数量设置为6×6×6,网格点的球形查询半径r=[0.2,0.4,0.6]m,以此来聚合多尺度的局部特征,每个半径内采样点数量为[32,32,64],分别被编码为[32,32,64]维向量,最后每个网格中心点的局部特征编码共128 维。Transformer 的头部数量为4,dropout 设置为0.1,隐含层数量为3。

在训练阶段,使用8 个NVIDIA A40 GPU 对整个网络进行端对端训练,对于KITTI 数据集,batch size设置为6,使用Adam_onecycle优化器训练80 个epoch,学习率最大值为0.001,使用one-cycle 策略和余弦退火策略[23]对学习率进行更新。在训练阶段,RoI 数量设置为128,测试阶段设置为100。

算法的损失由基于Focal Loss[24]的分类损失和基于smooth-L1 的回归损失组成。其中,分类损失和回归损失的权重比例设置为1:1。在后处理阶段,使用非极大值抑制算法来去除冗余框,交并比(IoU,intersection over union)阈值设置为0.1,置信度阈值为0.3。其他网络参数选择OpenPCDet 工具箱中提供的默认值。

训练损失曲线如图9 所示,其中,rpn_loss 表示第一阶段损失,rcnn_loss 表示第二阶段损失。第一阶段、第二阶段以及总训练损失的曲线在训练初期下降较快,但随着迭代次数的增加,损失的下降速度逐渐变慢,最后趋于平稳,这表示模型已经收敛。

图9 训练损失曲线

3.3 与其他算法对比

本文在KITTI 验证集和测试集上将GT3D 方法与其他先进的三维目标检测方法进行了比较和分析。对于汽车类别,设定IoU 阈值为0.7,本文分别给出了所提方法在11 个和40 个召回位置上的平均准确率。此外,将GT3D 的测试结果提交至KITTI在线测试服务器,并将结果公开,如表2 所示,所有实验结果均来自KITTI 官方基线。

表2 不同方法在KITTI 测试集上对汽车的检测性能对比

为保证公平,本文基于40 个召回位置来计算测试集的平均准确率。在KITTI 测试集上,GT3D 在 3 种不同难度等级上分别达到了91.45%、82.76%和79.74%的检测准确率,特别是在简单和困难等级汽车检测上显示出优势。这说明本文所提方法在检测准确性和泛化能力上表现良好。在评估方法的推理速度时,本文采用每秒帧数(FPS,frame per second)作为评价标准,本文所提方法达到了每秒15 帧的检测速度,这显示GT3D 在检测准确率和推理效率之间实现了良好的平衡(表2 中,‘-’表示该方法未公开代码和推理速度)。

表3 展示了不同方法在KITTI 验证集上对汽车的检测性能对比,其中检测结果基于11 个召回位置计算,IoU 阈值为0.7。实验结果表明,GT3D 在3 种不同难度汽车类别检测中分别达到了89.78%、86.31%和79.22%的准确率,相比其他先进方法表现出显著的提升,进一步验证了GT3D 的有效性。这是因为Transformer 在特征提取方面具有强大的能力,使模型能够有效地学习不同点云稀疏度下目标的特征。

表3 不同方法在KITTI 验证集上对汽车的检测性能对比

为了进一步评估GT3D 的性能,表4 展示了不同方法在KITTI 验证集上对自行车的检测性能对比,其中准确率基于40 个召回位置计算。实验结果表明,本文所提方法在检测效果上具有较强的竞争力,展示出良好的性能。

表4 不同方法在KITTI 验证集上对自行车的检测性能对比

表5 展示了不同方法在参数量方面的对比,并提供了不同模型在KITTI 测试集上对汽车的检测平均准确率,其中,mAP 为KITTI 测试集上对汽车的检测平均准确率。从表5 可以看出,尽管GT3D 的参数量在两阶段方法中处于中等水平,但其平均准确率明显优于其他方法。这表明GT3D 在有效提升检测效果的同时,没有显著增加参数规模。

表5 不同方法在参数量方面的对比

3.4 可视化分析

本文对GT3D 方法的检测效果进行了可视化分析,如图10 所示。通过比较方法输出的预测框(虚线)与真实框(实线)的位置来验证模型的检测效果。为了清晰展示,在3 个场景中分别展示了相机和点云的视角。第一行展示场景的相机视角,第二行展示场景的点云视角和检测结果,第三行展示将检测到的目标框映射回相机视角的效果。

图10 GT3D 可视化结果

由可视化结果可知,GT3D 在汽车类别上的检测准确率较高,如场景①所示,所有汽车都被成功检测到。在场景②中,尽管距离较远的汽车包含的点云数量较少,但仍然能被准确地检测到,甚至检测到了数据集中没有标注的汽车。对于场景③,该场景较复杂,包含的背景点较多,然而,GT3D 依然能够正确识别被遮挡的远处汽车。这表明本文通过使用均匀网格点来描述点云的空间特征,以及利用多尺度局部特征,对遮挡区域进行了有效的特征增强。

图11 展示了模型检测到的汽车点云。其中,x轴、y轴和z轴表示以激光雷达传感器为原点的坐标系,坐标轴上的数值表示点云场景中的全局坐标。从图11 可以看出,左上角、右上角和左下角的汽车的点云较密集,而右下角的汽车包含的点云较少。尽管如此,GT3D 仍然能够准确地进行检测。这说明GT3D 在检测点云数量较少的目标时具有较强的鲁棒性。

图11 模型检测到的汽车点云

为了进一步验证GT3D 的性能,本文将GT3D与当前经典方法Voxel R-CNN 和PDV 进行比较,实验结果如图12 所示。从图12 中可以看出,Voxel R-CNN 和PDV 在一些情况下出现误检,例如,在BEV 视角下,由于左侧墙壁的点云较复杂,使Voxel R-CNN 和PDV 将其误检为汽车,而GT3D 展示了较强的鲁棒性,对于复杂场景中的目标误识别率较低,取得了较好的检测效果。

3.5 消融实验

为了进一步验证GT3D 中模块的有效性,本文针对网格中心点位置编码模块、多尺度特征聚合模块和软回归损失进行了消融实验,对每个模块训练80 个epoch。使用40 个召回位置进行评估,IoU 阈值设置为0.7,实验结果如表6 所示。其中,A.L.F.表示多尺度特征聚合模块,P.E.表示网格点位置编码模块,T.R.表示Transformer 模块,S.L.R.表示软回归损失。

表6 GT3D 消融实验

方法1 不包含两阶段检测头,而是仅依靠BEV下的RoI 特征来进行检测,其平均准确率较低,这突显了单阶段方法的局限性。

方法2 在方法1 的基础上加入了网格点的多尺度特征聚合模块,并采用Transformer 对网格点进行注意力编码。与方法1 相比,方法2 在简单、中等和困难3 个难度级别车辆检测中,准确率分别高约1.16%、0.84%和1.20%,这表明通过聚合多尺度的局部特征可以提高检测准确率,并且进一步证明了两阶段细化在提升模型性能上的重要性。

方法3 在方法1 的基础上加入了网格点位置编码模块,并同样采用Transformer 对网格点进行注意力编码。与方法1 相比,方法3 在简单、中等和困难3 个难度级别车辆检测中,准确率分别高约2.15%、3.94%和4.56%。这表明,通过显式地对点的空间位置进行编码可以有效提升模型的性能。

方法4 在方法1 的基础上,同时加入了多尺度特征聚合模块和网格点位置编码模块。与方法1 相比,方法4在简单、中等和困难3个难度级别车辆检测中,准确率分别高约2.39%、4.50%和5.47%,这表明两者的结合使用可以进一步提升模型的性能。

方法5 在方法1 的基础上加入了多尺度特征聚合模块、网格点位置编码模块和软回归损失。与方法1 相比,方法5 在简单、中等和困难3 个难度级别车辆检测中,准确率分别高约2.51%、4.64%和5.49%。实验结果表明,加入软回归损失后,模型性能得到有效提升,证明软回归损失在消除数据标注过程中引入的模糊性方面具有显著效果。

4 结束语

目前,基于原始点云的三维目标检测技术正在迅速发展,本文研究了两阶段检测方法在性能提升方面的关键技术,其中包括空间坐标的显式建模、多尺度局部特征聚合以及基于自注意力机制的特征编码。为此,本文提出了一种两阶段基于自注意力机制的三维目标检测方法GT3D。该方法将RPN生成的RoI 在空间上划分为均匀网格点,并对这些点进行多尺度局部特征聚合和空间位置编码。然后,采用自注意力机制对网格点特征进行编码,以获取更加有效的RoI 特征。最后,通过软回归损失来消除数据标注过程引入的模糊性,从而进一步提升检测性能。接下来,本文将继续研究聚合多尺度信息的两阶段检测方法,进一步提高基于体素的三维目标检测方法准确率,拟考虑引入额外辅助网络对模型进行监督,以借助自注意力机制进一步提高目标检测的准确性。

猜你喜欢
体素中心点尺度
基于多级细分的彩色模型表面体素化算法
瘦体素决定肥瘦
财产的五大尺度和五重应对
Scratch 3.9更新了什么?
运用边界状态约束的表面体素加密细分算法
如何设置造型中心点?
基于体素格尺度不变特征变换的快速点云配准方法
宇宙的尺度
汉字艺术结构解析(二)中心点处笔画应紧奏
寻找视觉中心点