LiDAR 点云中融合点注意力机制的三维目标检测

2023-10-08 06:38刘威莉朱德利骆华昊李益
光子学报 2023年9期
关键词:体素特征提取卷积

刘威莉,朱德利,骆华昊,李益

(1 重庆师范大学 计算机与信息科学学院, 重庆 401331)

(2 重庆市数字农业服务工程技术研究中心, 重庆 401331)

(3 重庆市畜牧科学院信息中心, 重庆 401331)

0 引言

随着深度学习的快速发展,目标检测已经在二维计算机视觉任务中取得了显著的成就,然而实际场景中存在的光照变化、天气条件、深度缺失等问题,仅仅依靠二维视觉感知无法解决[1]。由激光雷达获取的三维数据不依赖自然光等条件,弥补了二维视觉领域存在的一些缺陷。三维目标检测作为三维场景感知中一个重要领域被广泛研究[2],自动驾驶领域的三维目标检测是实现自动驾驶路径规划和安全避障的重要研究内容[3]。随着激光雷达技术的不断进步,以激光点云作为输入的深度学习检测器[4]也逐渐成熟,然而点云数据通常是稀疏和无序的,如何从不规则的点云中提取关键特征成为了三维目标检测任务中的一个关键性挑战[5]。

输入的LiDAR 数据以点云的形式来表示,但由于点云非结构化和非固定大小的特征,使其不能直接被3D 目标检测器处理,必须通过某种表达形式将其编码为更紧凑的结构,目前主要分为两种类型的表达形式:基于点(point-based)的方法和基于体素(voxel-based)的方法。QI C R 等[6]首先提出pointnet 网络直接对无序点云进行特征的学习,随后使用Max-pooling 聚合为全局特征。沿用pointnet 的思想,为了提取更有鉴别性的高维特征,pointnet++[7]采用球查询半径内的领域点,随后每个局部点通过集合抽象(Set Abstraction,SA)层进行多层次的特征提取。SHI S 等[8]提出的PointRCNN 算法是通过PointNet++进行特征的提取,基于提取到的特征进行前景和背景的分割,在每个前景点上进行3D 框的预测,然后在提取到的目标的基础上进一步细化。3DSSD[9]网络则是利用SA 层对输入的点云进行降采样后,利用Backbone 等网络提取关键点的特征,并用其中的一部分来进行投票,投票结果进一步用SA 层进行特征提取,最后利用该特征对检测框的种类和位置进行预测。此类方法在处理点云的过程中可以充分利用点云的几何特征,以此来获得更好的检测性能,但在特征提取过程中消耗了大量的时间和计算资源。在基于体素的方法中,考虑到点云的稀疏性(即大约90%的体素都没有点)。VoxelNet[10]算法将点云划分为等间距的规则体素,然后使用体素特征编码(Voxel Feature Encoder, VFE)层将体素内点的特征量化统一,再使用3D 卷积神经网络对体素进行特征提取,最终使用RPN 网络生成检测框[11],但该算法由于体素数量庞大,特征提取速度极慢。YAN Y 等[12]提出的SECOND 网络将点云转化为规则的体素并使用3D 稀疏卷积进行提取特征,相比于VoxelNet 网络加快了对点云特征的提取速度。LANG A H 等[13]提出的PointPillars 网络则是将点云立柱化后转化伪图像,在保留三维特征的同时进一步采用二维卷积提取高维特征,极大地加快了算法的运行速度。基于体素的方法具有更高的检测效率,但是检测精度低于基于原始点云的方法。如何在保证检测效率的基础上,提高基于体素方法的检测精度成为近年来的研究热点。

基于Pillar 编码点云的三维目标检测算法中存在一定细粒度信息的丢失,而这些丢失的局部几何信息对于检测目标是非常关键的[14]。王忠全[15]在PointPillars 的2D CNN 主干网络上增加了4 个改进后的有效通道注意力(Efficient Channel Attention, ECA)模块提高三维目标检测精度。詹为钦等[16]引入2 种注意力机制,实现对伪图中特征信息的放大和抑制。上述研究都是针对点云伪图像高维特征提取模块进行的改进,未考虑在点云柱内的特征学习机制。基于此,本文基于PointPillars 提出了一种融合逐点空间注意力机制[17]和跨阶段局部网络(Cross Stage Partial Network, CSPNet)[18]的三维目标检测算法,以有效提高网络的特征提取能力,保留深层次点云特征,提升网络检测目标的准确率。

1 PointPliiars 网络模型

PointPillars 是一种单阶段的3D 点云目标检测算法,使用原始点云作为输入,通过在鸟瞰图上划分栅格,实现立柱形式的体素的划分,随后经过降维处理生成伪图像,利用二维卷积对特征进行提取,极大地提高了检测效率。针对KITTI 中car 类目标,PointPillars 很好地做到了在检测性能和效率之间的平衡。算法的整体框架如图1。

图1 PointPillars 算法整体框架Fig. 1 Overall framework of PointPillars algorithm

该算法主要由三个核心模块组成,1)支柱特征网络(Pillar Feature Net, PFN)层:负责将三维点云转换为稀疏伪图像;2)2D BackBone 主干网络层:通过二维卷积对点云伪图像进行特征提取;3)Detection Head(SSD)检测头层:预测目标类别以及三维边界框等信息。

算法具体流程为:首先在支柱特征网络层中将输入的点云数据划分为Pillars,每个Pillar 中的点云由包含坐标、反射强度、几何中心和相对位置等信息的10 维向量表示,之后用一个简化版的PointNet 从D维原始数据中学习得到C维特征,得到一个(C,P,N)的张量,再使用maxpool 操作提取每个pillar 中最能代表该pillar 的点,得到(C,P)维度数据,之后利用scatter 算子,根据对应位置关系将数据映射到相应位置,实现三维数据向二维伪图像的转换;然后2D BackBone 主干网络层对支柱特征网络生成的点云伪图像进行高维特征提取,包括两个分支,一支为自上而下的渐进式下采样分支,另一支为上采样分支,通过反卷积将多尺度的特征图上采样到统一大小,并进行拼接,得到最终的融合特征图;最后在检测头层采用了类似SSD 的检测头来实现3D 目标检测,回归3D 框的中心、尺寸和朝向角。具体为使用2D 联合交叉(IoU)将先验框与地面真值相匹配,在2D 网络中进行目标检测,并通过回归的方式得到Z轴坐标和高度。

2 改进的PointPillars 算法

原始PointPillars 网络中Pillar 编码的点云数据存在一定程度的信息丢失,没有考虑到点云空间分布的局部几何信息,对目标检测精度不高。本文在支柱特征网络层中融入逐点空间注意力机制,抑制点云支柱中的噪声,放大重要特征信息,提高对点云的特征提取能力;另外在降采样模块中使用可以分割梯度流的CSPNet 替换原降采样中普通卷积块,使梯度流在不同的网络路径中传播,在减少计算量的同时提升网络的检测性能。改进之后的整体网络架构如图2。

图2 改进后的PointPillars 算法整体框架Fig. 2 The overall framework of the improved PointPillars algorithm

2.1 融入逐点空间注意力机制

注意力机制是通过计算输入数据的权重,提高某个重要因素对结果的影响力,抑制不重要因素的影响[19]。逐点空间注意力遵循自注意力的基本结构,从局部点图的点空间捕捉更多形状相关特征和长距离相关性。此外,该机制还应用跳跃连接来加强输入和输出之间的关系,提高对特征的学习,加强高层的语义信息。逐点空间注意力模块整体结构如图3,使用两个多层感知机(Multilayer Perceptron,MLP)将局部特征F转换为特征X和Y,其中X,Y∈RC1,与文献[20]中不同的是,用X和Y的转置来进行计算不同点云之间的关系,不需要对矩阵进行重构,保持了原来的空间分布。最后利用softmax 对关系图进行归一化,达到大小为N×N的空间注意图S(N表示点的个数),表示为

图3 逐点空间注意力模块结构Fig. 3 Structure of point-wise spatial attention module

式中,i和j分别表示点在X和Y中的位置,Sij是ith点对jth点的影响,· 表示矩阵乘法。当两个点的特征具有相似的语义信息时,他们具有很强的相关性。同时局部特征F转化为新特征Z∈RC2,通过MLP 层,然后是S和Z之间的矩阵乘法,并与特征F求和得到输出Ffinal∈RN×C',表示为

得到的Ffinal具有长距离相关性,并通过逐点空间注意力图S有选择性地聚合上下文,捕获全局相关性。

在PointPillars 的支柱特征网络层中,由D维原始数据学习得到C维特征的感受野受限,过滤特征的各个单元不能利用其局部区域之外的上下文信息。为了解决这一问题,本文将重点放在全局空间关系上,捕获深层次信息。基于此融入一个逐点空间注意力模块,它通过在点集中建立特征之间的关联来捕捉全局依赖性。将Pillar 编码后通过简化版PointNet 提取特征的点云输入至逐点空间注意力模块中,增强了对点云特征提取的能力,同时可以有效避免冗余点云或噪声点对特征的影响,加强了对点云覆盖较少的特征描述,在一定程度上解决了基于Pillar 编码点云的信息丢失问题,提高了三维目标检测的精度。

2.2 CSPNet 改进的伪图像下采样

CSPNet 是将上一层得到的特征图分割成两部分,然后通过跨阶段分层结构进行合并来实现的,主要概念是通过分割梯度流,使梯度流在不同的网络路径中传播[21]。这样的策略会大量减少计算量,加快模型的推理速度,有效增强网络的学习能力,提高模型检测精度。

PointPillars 中点云经过体素特征编码后通过Scatter 算子生成伪图像,随后对多尺度伪图像提取特征。针对网络对伪图像特征提取能力不足的问题,选择CSPNet 作为对点云伪图像进行高维特征提取的下采样特征提取网络,进行特征融合以有效增强卷积神经网络的学习能力,提高模型的准确率。整体二维主干网络如图4,CSP1、CSP2、CSP3 均为CSPNet 网络结构。CSPNet 和BottleNeck 网络结构如图5,CSPNet 由多个1×1 的卷积组成,首先通过将伪图像特征分成两部分,一部分用普通卷积提取特征信息,另一部分通过1×1 的卷积和BottleNeck 层。具体做法是先进行1×1 卷积将通道数减小一半,再通过3×3 卷积将通道数加倍,保证其输入与输出的通道数不发生改变,然后使用add 进行特征融合,使得融合后的特征数不变。最后将两部分的特征图进行Concat 拼接操作,使得融合前后的通道数不变,使用Silu 激活函数,通道数等数据如表1。实验结果表明,CSPNet 有效增强了网络的学习能力,并且提升了网络检测目标的准确率,此外,CSPNet 网络的不同特征层的拼接重用还提高了模型对目标的泛化性。

表1 本文CSPNet 网络结构Table 1 CSPNet network structure of this paper

图4 二维主干网络结构Fig. 4 2D backbone network structure

图5 CSPNet、BottleNeck 网络结构Fig. 5 CSPNet, BottleNeck network structure

3 实验结果与分析

3.1 实验数据

在KITTI 数据集[22]上对算法进行验证,KITTI 数据集是目前自动驾驶领域最重要的数据集之一[23],数据集内包含市区、乡村和高速公路等真实驾驶场景的数据图像。KITTI 共有7 481 套训练样本和7 518 个测试样本,其中每个样本场景中约包含16 384 个点。采用Chen[24]等对训练数据划分的方式,将训练样本又分为训练集3 712 套,验证集3 769 套。主要类别有车辆、行人和自行车三类。因为车辆类别数量较多且是样本中最大的类别,并且拟应用的场景为高速公路,所以本文只在车辆类别上进行训练和测试。KITTI 结果统计时,根据检测目标被遮挡情况、与当前视点距离以及框的高度等参量,将结果分为简单、中等和困难三种场景进行统计,具体数据划分如表2。

表2 三种场景下的数据划分Table 2 Data division in three scenarios

按照KITTI 官方评价指标,以平均精度(Average Precision, AP)评价3D 和BEV 场景下的检测结果,作为检测性能的评估指标。采用的交并比(Intersection Over Union, IOU)阈值为0.7,使用40 个召回位置计算平均精度,计算表达式为

3.2 实验参数与环境

改进算法基于OpenPCDet 框架实现,训练时超参数设置如下:采用Adam 优化器训练160 个epoch,batch size 为4,学习率为0.003。实验使用的点云范围沿x、y、z轴,分别是W=[0 m,-39.68 m],H=[-3 m,69.12 m],D=[39.68 m,1 m]。体素尺度设置为vw=0.16,vh=0.16,vd=4。将MAX_POINT_PER_VOXEL 设置为32,作为每个体素中的最大点数,同时MAX_NUMBER_OF_VOXELLS 训练时设置成16 000,测试时设置为40 000,作为最小批量中的最大非空体素数。具体实验环境配置如表3。

表3 实验环境配置Table 3 Experimental environment configuration

3.3 实验结果分析

3.3.1 对比实验

为了评估改进的网络模型在KITTI 测试集上的精度性能,选择F-PointNet、VoxelNet、SECOND、PointPillars、SegVoxelNet、TANet、PointRCNN、Part-A2算法进行对比,表4 为在KITTI 测试集Car 类下,本文算法与其他算法的平均精度对比。

表4 不同算法的AP 对比(%)Table 4 Comparison of AP for different methods(%)

本文算法在简单、中等、困难情况下的3D 平均检测精度为88.52%、79.02%、76.22%,BEV 平均检测精度为92.63%、88.53%、87.16%,均达到了最优。改进后的算法有较优的检测性能,尤其是在困难情况下的弱感知目标样本中有着较高的平均检测精度并取得了最为显著的精度提升幅度。同时,表5 给出了本文算法和现有的其他几种表现优异的三维点云目标检测算法的推理速度,对比可知,本文算法在有效提升基准网络检测精度的同时也保证了高效的推理速度,KITTI 数据采集设备的64 线激光雷达工作频率是10 Hz,即1 s 处理获取10 帧点云数据,本文提出的算法每秒处理的点云数据大于10 帧,推理速度为0.037 2 frame·s-1,满足实时性检测的要求[29]。

表5 不同算法的推理速度对比Table 5 Inference speed comparison among different methods

3.3.2 消融实验

为了验证所提出的两个模块对网络性能的影响程度,通过消融实验来进行说明。以下所有模型都在KITTI 数据集上进行训练并测试,表6 和表7 分别给出了KITTI 验证集中消融实验的3D 和BEV 场景下的检测性能数据。消融实验是以单独模块,两个模块结合来展示改进点的贡献,PPPA 为融合了逐点空间注意力模块,PPCSP 为CSPNet 改进的伪图像下采样模块。PPCSP+PPPA 为融合了逐点空间注意力机制和CSPNet 的三维目标检测算法。

表6 在KITTI 测试集中消融实验的3D 检测平均精度(%)Table 6 Average precision of 3D detection for ablation experiments in the KITTI test set(%)

表7 在KITTI 测试集中消融实验的BEV 场景下检测平均精度(%)Table 7 Average precision of detection in the BEV scenario of the KITTI test focused ablation experiment(%)

消融实验结果表明:在PointPillars 网络中加入逐点空间注意力模块,可以捕获全局相关性,有效抑制点云支柱中的噪声,放大重要特征信息,增强对点云的特征提取能力,提高检测精度;在网络中使用CSPNet 对伪图像下采样进行改进,使梯度流在不同的路径中传播,增强了算法的特征提取能力;PPCSP+PPPA 为加入两个模块后的检测结果,在简单、中等和困难级别下的3D 检测精度分别为88.52%、79.02%和76.22%,与基准网络相比分别提升了2.23%,2.25% 和2.30%,BEV 场景下的平均检测精度为92.63%,88.53%,87.16%,均高于基准网络。结果表明改进后模型的检测性能得到了显著的提升,说明所使用的两种改进方法均具有有效性。

3.3.3 结果可视化

为了更加直观地验证改进网络对于车辆检测的有效性,图6 给出了PointPillars 和改进后网络在KITTI测试集中目标检测的可视化对比结果。

图6 PointPillars 与本文算法的可视化结果对比Fig.6 Comparison of the visualization results of PointPillars and the algorithm in this paper

图6分别给出了四个不同场景下的PointPillars 目标样本(车辆)与本文算法目标样本的可视化结果对比图,其中用红色线圈标识目标车辆被误检的情况,用黄色线圈标识目标车辆被漏检的情况,从中可以看出改进算法在点云图中误检率和错检率更低。这是由于融合了逐点空间注意力机制和CSPNet 网络的三维目标检测算法更加关注全局特征,减少了点云编码过程中造成的信息丢失,并改善了降采样模块特征提取能力不足的问题。因此改进后的PointPillars 比改进前效果更好,在一定程度上消除了误检漏检的情况,提升了网络检测的性能。

4 结论

本文基于PointPillars 提出一种融合逐点空间注意力机制和CSPNet 网络的三维目标检测算法来实现对车辆的检测。首先在简化版PointNet 提取点云特征后,融入逐点空间注意力机制进行有选择地聚合上下文信息,捕获全局相关性,进一步提高点云特征学习的能力。其次将点云伪图像进行高维特征提取的降采样模块中普通卷积替换为CSPNet 网络,有效提高了卷积神经网络的特征提取能力,保留了深层次点云特征。

在高速公路的应用场景下,以KITTI 中car 类作为检测对象,在简单、中等和困难级别下的3D 检测精度分别为88.52%、79.02%和76.22%,与基准网络相比分别提升了2.23%,2.25%和2.30%。另外,采用消融实验分析验证了所提模块的改进能够有效提高三维目标检测的性能。最后将算法与VoxelNet、SECOND、PointRCNN 等经典三维目标检测算法的性能进行了对比,本文所提算法性能较优,同时检测速度也达到了实时检测水平,对自动驾驶技术的进一步优化和完善具有一定的积极意义。

猜你喜欢
体素特征提取卷积
基于多级细分的彩色模型表面体素化算法
瘦体素决定肥瘦
基于3D-Winograd的快速卷积算法设计及FPGA实现
运用边界状态约束的表面体素加密细分算法
从滤波器理解卷积
基于体素格尺度不变特征变换的快速点云配准方法
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
Bagging RCSP脑电特征提取算法
基于MED和循环域解调的多故障特征提取