融合点柱网络和DETR的三维复杂道路目标检测

2023-12-12 04:25李伟文缪小冬顾曹雨左朝杰
重庆理工大学学报(自然科学) 2023年11期
关键词:支柱注意力编码

李伟文,缪小冬,顾曹雨,左朝杰

(南京工业大学 机械与动力工程学院, 南京 211816)

0 引言

智能驾驶在改善出行与减少交通事故中具有重要的作用,近年来得到了广泛的关注。目标检测作为智能汽车环境感知中的一项基础工作,对保障车辆行驶安全具有重要意义[1]。

目前智能汽车搭载的环境感知传感器主要包括毫米波雷达、相机与激光雷达。毫米波雷达可以精准探测障碍物与车辆的距离,但是检测范围较小,常用作倒车雷达;相机可以获取丰富的图像纹理信息,并且基于图像的二维目标检测技术已经取得了非常好的效果,但是相机难以获取深度信息[2],因此纯视觉算法在三维检测中表现不佳;激光雷达作为一种高效的感知深度信息的传感器,随着硬件技术的提升,激光雷达的成本不断降低,因此利用激光雷达进行三维检测的方法得到了越来越多的关注。

近年来,三维目标检测发展迅速,国内外专家提出了许多有效地检测方法。由于三维点云分布复杂,研究者最先是通过将点云转化为非点云的方式去进行处理,对位置信息的利用率较低,并且计算量很大,刘永刚等[3]提出的PointNet网络利用了点云的置换不变性,直接对点云数据进行升维拓展,再利用对称函数池化,保留了关键位置信息,实现了直接利用点云提取位置特征,但是该方法难以完成在室外复杂环境中的检测任务。

在处理室外场景时,点云的数据量过于庞大,对每个点进行特征提取难以实现,为了更有效地进行检测任务,需要滤除大部分冗余点云,通常的做法是将点云空间划分成若干体素,对非空体素取关键点进行特征提取。Xie等[4]提出的VoxelNet网络为典型的基于体素形式的检测方法,其对非空体素中的点云利用PointNet网络进行特征提取,然后通过三维卷积神经网络提取全局特征后使用区域提案网络(region proposal network,RPN)对物体进行分类检测和定位[5]。

为了提升检测算法的速度,Stanisz 等[6]提出了PointPillar方法,通过强化车辆检测水平方向的特征,弱化竖直方向的特征来提取点云特征,并基于鸟瞰图(bird’s eye view,BEV)对空间进行划分,形成空间支柱,再对非空支柱中的点进行特征提取生成伪图像,使用二维卷积神经网络提取全局特征,保证精度的同时大幅提升了检测速度。不同于上述文献中的改变体素划分的方法,Yan等[7]提出了一种Second方法,利用稀疏卷积来降低三维卷积中的冗余计算,也能有效提升检测速度。

将点云空间划分为体素块或支柱都能有效减少噪声点云的冗余计算,是智能车辆道路三维目标检测中最常用的两类主要方法,其中基于体素块的划分更细腻,特征分辨率更高,但是在特征提取过程中花费的时间更多,计算量更大,而基于支柱的划分虽然在检测精度方面有所降低,但在检测速度上有极大提升。

由于智能车辆目标检测对计算速度的要求非常高,使用点柱网络的特征提取方式可以有效提升计算速度,但传统的点柱网络的检测头部分使用了三维RPN结构,需要人工设置锚框与非极大值抑制阈值等参数,这些参数依赖人工先验知识,与实际特征匹配性较差,会使运算结果出现偏差。为了减少手工预设参数,Facebook团队提出的Detection Transformer(DETR)[8]方法简化了检测模型,利用卷积神经网络(convolutional neural network,CNN)与Transformer[9]相结合,采用COCO数据集进行测试,测试得出的平均检测精度(average precision,AP)高于经过优化的RPN算法。

基于该方法在二维检测中的优异表现,本文将其引用至三维检测中,但在三维空间中直接对一帧数百万的点云进行编码难以满足实际工程需要的效率,因此提出了一种融合支柱编码与DETR解码头相结合的方法,提升了支柱网络的检测精度。

1 相关算法

1.1 支柱编码

点云数据的处理存在数据量大,冗余噪点多等问题,支柱编码是基于点云的三维检测中典型的特征提取主干网络,能够有效减少检测算法的计算量,并且保留点云的关键位置特征,其主要由支柱划分、点云采样、支柱编码和生成伪图像4个部分组成,将三维点云转为二维伪图像流程,如图1所示。

图1 点柱网络将三维点云转为二维伪图像流程

1.1.1点柱划分

首先将一个样本的点云划分成[X,Y,Z]的空间,再将点云空间切割成尺寸为[x,y,Z]的支柱空间,得到X/x×Y/y×1个支柱,能够被采集特征的点被包含在各个支柱中,没有点的支柱视为空支柱。由于点云具有稀疏性,支柱划分可以有效减少计算量。

1.1.2点云采样

设点云空间中的非空支柱数量为P,同时限制每个非空支柱中的点数为N,如果一个支柱中点的数量不及N,则用0补全。

1.1.3点云编码

对支柱中的每个点进行编码,其中每个点的信息包括点的坐标、反射强度和时间戳,在进行完采样以后,又能得到支柱中点的坐标均值与采样点到支柱中心的距离,拓展了点的信息,将每个点的信息长度记为D。这样一个点云空间样本就可以用一个(P,N,D)的张量来表示。

1.1.4生成支柱伪图像

得到空间样本张量后,需要对其进行处理提取特征,通过使用PointNet中的点集抽象(set abstraction,SA)模块来处理每个非空支柱。先对每个支柱中的点使用多层感知机(multilayer perceptron,MLP)来使得每个点的维度从D变成C,这样张量变成了(P,N,C),然后对每个支柱中的点使用最大池化(max pooling),得到每个支柱的特征向量,也使得张量中的N的维度消失,得到了(P,C)维度的特征图,根据支柱的位置将P个支柱的特征映射到尺寸为(W,H)的特征图上,生成(C,W,H)的支柱伪图像。

1.2 DETR解码器

在获取点云特征以后,需要将特征传入检测头进行检测。在传统的二维检测中,检测头部分利用RPN进行大量的回归计算来进行预测,为了简化检测通道,DETR算法将应用于自然语言处理领域的Transformer模型用于目标检测,在进行机器翻译时,利用了注意力机制,令处理结果在输入文本中找到相关性最强的部分,使最终的处理结果更为精确。DETR遵循Transformer的结构,利用注意力机制建立了预测集合与图像之间的联系,并对其解码器进行改进,使模型可以在每个解码层并行计算出结果。该解码器结构包含多头注意力机制(multi-head attention)、前馈神经网络(feedforward neural network,FNN)和残差连接等模块,结构如图2所示。

图2 DETR解码头结构

1.2.1位置编码

位置编码(position encoding)将图像的位置信息编码为向量,使目标查询向量可以在注意力机制的帮助下,找到需要关注的位置[10]。常用的位置编码公式为:

PE(pos,2i)=sin(pos/10 0002i/dm)

(1)

PE(pos,2i+1)=cos(pos/10 0002i/dm)

(2)

式中:PE为二维矩阵,尺寸与经过卷积的特征图(H×W)一致,dm表示向量的通道数,通常与下采样后的特征图通道数C保持一致。上述公式表示在向量的偶数通道添加正弦向量,在奇数通道添加余弦向量,然后将该矩阵与预测特征图相加即可完成位置编码的引入。

1.2.2多头注意力机制

注意力机制可以通过查询向量(query)、键向量(key)和值向量(value),在经过卷积提取的特征中找到需要关注的部分,通过计算query和各个key的内积得出对应的相似性,利用softmax函数得到对应value的权重系数,利用这个权重系数乘上value向量,得到最终的注意力向量,数学表达式如下所示,查询向量、键向量、值向量以及向量维度分别用Q、K、V、dk表示。

(3)

由于query和key的值很大,进行softmax时反向传播使梯度很小,需要除以根号dk保持方差稳定,避免梯度消失。

多头注意力机制[11]可以将模型的注意力映射到不同的维度上,在每一个维度均生成对应的查询向量、键向量以及值向量并且计算各自注意力值。并行计算完成以后,模型将各子层的输出拼接在一起得到最终的注意力值,计算公式为

MultiHead(Q,K,V)=Concat(head1,…headm)W

(4)

(5)

式中:headm表示m个注意力头,W为线性投影矩阵。多头注意力机制可以让模型学习到更加全面和丰富的特征表示,从而增强模型的鲁棒性,提高了模型的泛化能力,使其能够更好地适应不同的任务和场景。

2 网络结构

根据上述理论,对点柱网络的编码部分与DETR的解码部分进行了结合,改进的点柱网络结构如图3所示。

图3 改进的点柱网络结构

首先利用支柱编码生成伪图像提取点云特征。为了更好地从伪图像中捕捉复杂特征,需要对生成的点云伪图像使用ResNet50[12]进行进一步特征提取,利用二维卷积生成特征金字塔,获得多尺度的信息。在训练中使用ResNet的残差块结构,可以更好地传递梯度,避免梯度消失或爆炸的问题,提高了模型的训练效率。本文中使用的位置编码是一种可学习的绝对位置编码,利用位置编码不仅减少了算法的复杂性[13],还能提高目标检测的精度。最后利用多头自注意力机制与多头注意力机制,使每一个初始目标查询从点云中提取的特征向量中,找到相关性最高的特征,并且通过位置编码实现定位,最后在该位置通过前馈神经网络,输出类与三维盒框完成预测。

2.1 模型参数设置

在编码器部分,根据nuScenes数据集中点数的分布,以[-5,3]×[-54,54]×[-54,54](单位:m)沿Z×X×Y轴对点云空间进行裁剪。设定的支柱尺寸为0.2 m×0.2 m×8 m,将每个空体素中的最大点数设置为20,训练体素个数最多为 30 000。在解码器部分,设置200个初始化目标查询。

2.2 损失函数

(6)

(7)

匹配完所有的预测框与真实框后,需要计算所有配对的匈牙利损失。与常规目标检测算法损失的定义类似,匈牙利损失为分类损失、回归损失与IoU损失的线性组合,公式为

(8)

其中用Focalloss[18]计算分类损失,用L1损失计算回归损失,用广义的IoU损失[19]计算IoU损失。λ1、λ2、λ3是单个损失项的系数。

3 实验

3.1 数据集

目前用于辅助驾驶研究的主流公开数据集有Kitti数据集[15]、Waymo数据集[16]和nuScenes[17]数据集等。其中,nuScenes数据集由Motional团队采集,包含了140万个图像、39万个激光雷达点云、140万个雷达扫描和4万个关键帧中的140万个对象边界框,相对于其他2种数据集,搭载的传感器更先进,数据规模最大,采集的场景最丰富,同时还提供了高精度的标注。nuScenes数据集一方面可以充分发挥Transformer结构的优势,另一方面能使训练出的模型更适应实际复杂道路场景。

3.2 实验环境

本实验在pytorch架构下实现,操作系统为Windows10,中央处理器为Intel Core i9-12900K,内存为64 GB,GPU为NVIDIA GeForce RTX A4000 16 G,python版本为3.7。该模型采用随机梯度下降法进行训练,学习率为 0.000 05,指数衰减因子为0.8,根据训练模型进行了验证实验,包括3D检测可视化结果和评价指标结果。

3.3 评价指标与结果对比

3.3.1对比原点柱网络

使用检测任务中常用的平均精度均值(mAP)来作为评定模型性能的指标,不过在nuScenes数据集中AP指标是通过对地面上的2D中心距离d来取阈值而非IoU,这样做不仅降低了物体尺寸和方向对AP计算的影响,还可以检测较小的平移误差,其次删除召回率或准确率在10%以下的操作点,减少低精度与误检区域的噪声影响。最终对D={0.5,1,2,4}m的匹配阈值和类别集合C进行平均运算。计算公式为

(9)

nuScenes还提出了一个综合指标,即nuScenes检测分数(NDS),该指标使用正样本(TP)指标计算得出。由平均精度均值(mAP)、平均平移误差(ATE)、平均尺度误差(ASE)、平均方向误差(AOE)、平均速度误差(AVE)和平均属性误差(AAE)组成,计算公式为

(10)

(11)

式中:ATE是二维欧几里德中心距离;ASE是1-IoU3d,IoU3d是三维交并比;AOE是预测值和真实值之间最小的偏航角差;AVE是二维速度差的L2范数(m/s);AAE是1-acc,acc为分类准确度。表1为点柱网络改进前后在不使用任何数据增强手段的误差均值与NDS值。

表1 点柱网络改进前后误差均值

由表1中数据纵向对比可以得出,经过融合DETR解码器的点柱算法,所有的误差均值指标皆小于原模型,并且NDS打分提升了19.02分,即在nuScenes数据集上的表现远远优于原算法。为了进一步对实验结果进行分析,绘制了误差均值对比直方图,如图4。

图4 误差均值对比直方图

从直方图中可以看出,改进后的网络大幅度提升了预测框的偏航角准确度,效果如图5所示,并且预测框与真实框的重合度也更高,分类准确度也有不小的提升,验证了本文在检测头中使用注意力机制的效果,优于通过大量回归计算拟合的方法。

图5 车辆检测效果

3.3.2对比典型三维检测方法

点柱算法作为一种经典的检测方法,近几年有许多学者对其进行了优化,如调整点柱划分参数、调整训练超参数、改进特征提取网络、使用数据增强,以及本文的使用优化检测头的方法。为了验证本文改进方法的有效性,将本文提出的算法与典型的三维检测算法PointPillars、PointPainting[20]、CenterPoint[21]进行对比。为了针对改进部分进行测试,在对比实验中采取相同的点柱划分参数与特征提取骨干网络,将各个模型在数据集中对小汽车(Car)、卡车(Truck)、施工车辆(C.V.)、公交车(Bus)、拖车(Trailer)、路障(Barrier)、摩托车(Motor)、自行车(Bike)、行人(Ped.)、交通锥(T.C.)的平均精度、NDS打分、mAP值与FPS值进行对比,指标数值如表2所示,最优数值经加粗处理。

表2 改进的点柱网络与其他网络指标

续表(表2)

根据表2中数据可以看到不同算法对道路上常见的小汽车、卡车、公交车的检测结果。首先对道路上常见的小汽车、卡车、公交车的检测精度进行对比,本文方法的检测精度具有明显优势;对于道路上不常见的拖车、路障、交通锥、施工车辆等,检测精度还有较大提升空间;对于复杂的道路情况,如存在行人、自行车、摩托车时,本文方法的精测精度也达到了较高水平。其次,对比各个算法的计算速度,多模态的算法处理速度较慢,本文的方法相较于点柱网络FPS值提升了3,可以满足实时检测的要求。为了进一步对数据进行分析,绘制了检测精度对比雷达图,如图6所示。

图6 模型的十分类平均精度对比雷达图

由于基于点云的三维检测,仅凭借点云的分布位置信息作为依据进行预测,道路中许多目标在点云空间中十分不规则,或与周围环境的点云分布十分类似,因此对于这些目标的检测较为困难。由雷达图可以得出,各个模型对施工车辆与自行车的检测精度都很低,而借助相机与激光雷达进行双模态融合的方法在这方面存在优势。对于道路中常见的汽车、公交车和卡车等本文提出的检测方法都取得了非常良好的检测效果。仅凭数据并不够直观,因此绘制了三维检测效果对比图,如图7所示。

图7 三维检测效果

图7中,第一列是使用了数据增强的PointPillars模型,第二列是使用了RegNet[22]作为特征提取网络,第三列是本文提出的方法,绿色的框为模型的预测框,紫色的框为真实标注框。3种方法的支柱划分参数一致,区别在于,前2种使用了以区域提案结构作为检测头,在空间中的每一个位置进行回归与预测,而本文提出的方法建立了预测集与特征的联系,在空间中找到需要关注的位置进行预测。从图7中蓝色圈中的部分可以看出,本文提出的方法检测的精度较高,并且无明显漏检现象,从图中棕色圈中的部分可以看出,在对远端稀疏点云的检测中,误检率得到了很好的控制。

4 结论

基于DETR对点柱网络进行改进,提出一种利用注意力机制,建立预测集合与点云特征的关联方法,避免了预测结果对人工先验知识的依赖,经过在Nuscenes数据集中验证,得出本文的方法检测与典型的三维检测算法相比具有优势。

1) 对于单个目标的检测效果,对比原点柱网络,预测结果的偏航角误差大幅减小,预测包围盒与真实包围盒的重合度更高,能够更精准地感知目标的三维姿态与尺寸,平均检测精度均值提升了19.14%,NDS打分提升了14.38。

2) 对于整体的检测效果,本文的方法可以满足实时检测的需求,相对于其他典型的三维检测算法,对于道路中常见的汽车、公交车和卡车等目标,在检测精度方面具有明显优势。通过利用注意力机制,关注关键位置,在没有明显漏检的情况下,误检率得到了很好的控制。

猜你喜欢
支柱注意力编码
让注意力“飞”回来
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
国电数字物资的三大支柱
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
建一座带支柱的房子
促进全球可持续发展的三大支柱