基于金字塔特征融合的二阶段三维点云车辆检测
2022-10-29张名芳吴禹峰王力王庞伟
张名芳,吴禹峰,王力,王庞伟
(北方工业大学,城市道路交通智能控制技术北京市重点实验室,北京 100144)
0 引言
环境感知能力是无人驾驶车辆实现高效决策和控制的基础,实时准确地检测周围环境中各类目标对保障无人驾驶车辆行驶安全尤为重要。随着人工智能的发展,基于深度学习的目标检测技术是当前的研究热点[1]。近年基于图像的目标检测算法取得长足进展,但图像处理相关算法对光照强度较敏感,而激光雷达传感器相比摄像头不受光照影响,能通过采集的三维点云获取场景深度信息、目标反射强度信息等,抗干扰能力强[2]。因此基于三维点云的目标检测算法在无人驾驶领域受到广泛关注。目前基于深度学习的三维点云车辆目标检测算法按神经网络结构可分为单阶段和二阶段两类算法[3]。
单阶段相关算法通过单阶段网络完成目标概率预测和目标包围盒回归任务。Zhou 等[4]提出一种基于体素网格的端到端目标检测网络,采用原始三维点云作为输入,将点云划分为等间隔的体素,利用候选区域生成网络输出目标检测结果,能够实现较高检测精度,但该算法需要计算三个维度滑动卷积核,运行效率低。Lang等[5]提出快速编码的点云目标检测框架,将点云编码为柱状伪图像,利用二维卷积网络输出检测结果,具有较高的运算效率,主网络采用下采样和反卷积的方式提取特征,主网络结构存在提升空间。Zhang等[6]提出考虑点云稀疏性的三维目标检测网络,利用二维图像生成远距离目标语义分割结果,投影到点云场景中估计得到目标三维质心,通过远距离平截头体网络在单阶段输出包围盒,优化远距离目标检测结果。Yang等[7]提出基于像素级神经网络的定向三维目标检测方法,采用点云鸟瞰图作为输入,通过二维卷积神经网络完成车辆目标概率预测和包围盒回归任务,该算法通过降维处理使得运算效率方面有明显提升,但这种方式导致目标点云空间结构缺失,在特征提取方面仍有提升空间。二阶段相关算法首先利用候选区域生成网络计算目标候选区域,然后基于候选区域完成目标概率预测和包围盒回归任务。Chen等[8]提出一种三维目标多视图检测网络,利用候选区域生成网络得到激光点云鸟瞰视图、前景视图和图像这3种数据来源的候选区域,将多模态特征图融合作为二阶段网络输入,完成目标概率预测和包围盒回归任务,该算法通过融合不同视图特征提升召回率与检测精度,但多视图融合的处理方式使得计算效率降低。Ku 等[9]提出基于视图聚合的联合三维候选区域生成和对象检测算法,相比MV3D去除了前景视图的融合,利用三维锚盒匹配图像和点云候选区域特征,并基于多尺度特征图提高小目标检测鲁棒性。Chen 等[10]提出快速点卷积神经网络,在一阶段采用体素化数据作为输入并利用三维卷积网络提取点云特征,在二阶段通过注意力机制提升检测效果,该算法计算效率较低。Li等[11]提出基于多传感器稀疏特征融合的三维目标检测网络,分别提取三维点云和二维图像的稀疏特征表示,利用门控机制逐点融合不同传感器特征,并引入颜色监督学习补充区域性特征,优化融合算法检测性能。Wang等[12]提出滑动平截头体聚合局部逐点特征的三维检测网络,利用二维相机生成建议区域,并沿相机光轴在不同平面生成视椎体,将逐点特征转换为视椎体向量提取特征,该算法较依赖一阶段二维图像提供的候选区域。
鉴于车辆目标检测应兼顾检测精度与运算效率的需求,考虑到文献[7]提出的算法通过降维处理点云提升算法运行效率,本文在此基础上进行改进,提出一种基于金字塔特征融合的二阶段车辆目标检测网络算法。首先构建点云鸟瞰图场景(Bird Eye View,BEV)将高度和强度信息保留到其余通道,利用二维卷积运算保证网络运算效率,相较于已有研究需计算3 个维度滑动卷积核的点云体素化过程,这种处理方式的计算成本较低;接着考虑到文献[7]的主网络仅采用残差层和两次反卷积的方式提取特征,未将高层语义信息反向传递到包含位置信息的低层特征图中,导致鸟瞰图高低层特征图信息提取不充分,使得局部点云结构理解出现偏差且位置预测误差较大,因此本文对主网络特征提取进行改进,受文献[13]中图像处理网络算法特征传递方式启发,构建特征金字塔主网络结构,以提升网络对目标特征的表达能力并加速推理过程收敛,同时在预测网络中融合多尺度特征图,提高车辆目标检测精度。
1 基于金字塔特征融合的车辆目标检测网络算法
本文所提算法的整体网络设计为二阶段结构,采用三维点云鸟瞰图作为网络输入,在文献[7]的主网络结构基础上构建特征金字塔主网络结构,该结构通过反卷积和横向特征拼接的方式补充额外两个上采样块,将高层语义特征进一步传递到低层特征图中,增强网络对点云局部结构特征的理解,同时利用卷积和横向特征拼接的方式增加下采样网络分支,传递点云全局特征和位置特征,改进车辆目标位置预测精度;在预测网络中采用多尺度特征融合的方式代替单一尺度特征图,丰富不同感受野特征,提升车辆目标检测鲁棒性,并通过兴趣区域聚集(Region Of Interest Align,ROI Align)层的双线性插值特征计算方式对齐不同尺度特征,提高远距离点云稀疏情况下目标检测精度。此外,引入角度损失函数对车辆目标航向角损失进行加权,优化目标包围盒航向角预测结果。算法网络结构如图1所示。
图1 整体网络结构Fig.1 Structure of overall network
1.1 网络输入
网络输入通过构建鸟瞰图的方式将三维原始点云处理为多通道的二维特征图表示。首先以自动驾驶主车辆行驶方向Y∈[0.0,70.0]m、水平方向X∈[-40.0,40.0]m 和垂直方向Z∈[-2.5,1.0]m 的范围划分待处理点云,得到长度L=80.0 m、宽度W=70.0 m和高度H=3.5 m的兴趣区域,在长、宽、高这3个维度均以0.1 m的分辨率将兴趣区域离散为800×700×35大小的张量。接着编码每个体素单元的占用情况,体素单元内存在点云时其值为1,不存在点云时则为0。反射强度数据通过标准化处理,以长0.1 m、宽0.1 m、高3.5 m 的柱状区域为单位,分别将每个柱内的反射强度数据归一化映射到0~1内,以简化后续运算,具体公式为
式中:T为反射强度输入;T*为标准化后的反射强度值;μ为均值;σ为标准差。将点云占用张量与反射强度图组合,得到尺寸为800×700×36 网络的输入表示,如图2所示。
图2 网络输入表示Fig.2 Representation of network input
1.2 主网络
主网络的特征金字塔结构由残差网络、上采样网络分支、下采样网络分支组成。其中残差网络用于初步特征提取,得到浅层特征图;上采样网络分支利用反卷积并横向拼接同尺度残差网络特征图的方式传递高层语义特征,补充局部点云空间结构关系;下采样网络分支利用卷积并横向拼接同尺度上采样网络特征图的方式传递低层位置特征,补充点云几何特征与全局位置特征,具体如图3所示,其中,虚线框区域为补充的上采样层块和下采样网络分支。网络结构中,采用BatchNorm 层和ReLU函数对卷积层、池化层和反卷积层进行归一化和激活,不同层间的参数以Conv2D(Cin,Cout,K,S)表示,其中,Cin为输入特征图通道数,Cout为输出特征图通道数,K表示卷积核,S表示步幅。
图3 主网络结构Fig.3 Representation of network input
残差网络由以下4 个层块组成:第1 个层块首先通过1 个Conv2D(36,128,3,1)卷积层将通道数调整至128,提取多通道特征,再采用3 个Conv2D(128,128,3,1)卷积层用于初步提取特征映射,得到特征图R1;第2~4个层块由3个结构相同的残差块组成,各残差块首先通过1 个Conv2D(128,256,3,2)的池化层实现特征图下采样,再利用4个Conv2D(256,256,3,1)的卷积层提取不同特征映射,分别得到特征图R2、R3、R4。残差网络最终特征图R4实现8倍下采样。
上采样网络分支通过上采样和拼接残差网络特征图的方式传递高层语义特征:首先通过Conv2D(256,128,1,1)卷积层调整特征图R4通道数,得到上采样网络特征图输入U4;接着利用上采样块实现特征图上采样和横向特征图拼接,如图4(a)所示,对特征图U4作步长为2的反卷积得到与特征图R3尺寸相同的特征映射U4′,并将U4′与R3进行拼接,再通过1 个Conv2D(384,256,1,1)卷积层降低通道数,得到特征图U3;进一步利用卷积层为Conv2D(512,256,1,1)的上采样块得到具有强位置信息的低层特征图U2、U1。
下采样网络分支通过下采样和拼接上采样分支特征图的方式将低层位置特征传递:首先通过Conv2D(512,256,1,1)卷积调整层特征图U1通道数,得到下采样网络特征图输入D1;接着利用下采样块实现特征图下采样和横向特征图拼接,如图4(b)所示,通过步长为2的池化层对特征图D1进行下采样得到特征图D1′,并利用1 个Conv2D(256,256,3,1)的卷积层提取特征,将上采样网络中相同尺寸的特征图U2进行拼接,再采用1 个Conv2D(512,256,1,1)卷积层降低通道数,得到特征图D2;进一步通过下采样块分别得到特征图D3、D4。
图4 采样块结构Fig.4 Structure of sampling block
本文利用二维卷积网络提取鸟瞰图特征,最终输出特征图通道数为256。而文献[4]构建的三维卷积网络在3个维度进行滑动卷积核运算,将垂直高度划分为10 个单位,且垂直方向卷积核为3,即输入参数Conv3D (Cin,Cout,K,S,P),可表示为Conv3D(128,512,(3,3,3),(3,1,1),(1,1,1)),其中,P为零填充。若将该三维卷积应用于本文金字塔特征网络,需额外计算垂直维度数据,最终输出特征图通道数为1024。对比文献[4]与本文输出特征图通道数可知,利用二维卷积运算能够有效降低计算成本。
1.3 车辆目标预测网络分支
车辆目标预测网络分支利用候选区域生成网络提取不同尺度特征图的候选区域,基于ROI Align 层对齐不同尺度特征图的候选区域,进一步融合各感受野特征图,提取更丰富的上下文信息,最终通过全连接层得到特征向量,输出车辆目标预测结果。该网络分支主要包括特征图候选区域提取、候选区域特征融合与预测输出这3 个模块,如图5所示。
图5 车辆目标预测网络分支Fig.5 Network branch for vehicle target prediction
特征图候选区域提取模块通过候选区域生成网络提取主网络下采样分支各下采样块输出多尺度特征图{D1,D2,D3,D4} 的候选区域。候选区域融合模块首先将不同尺寸的候选区域统一为固定尺寸,便于后续全连接层提取特征向量,接着采用文献[14]提出的ROI Align层调整候选区域大小,得到相同尺寸的候选区域Pi∈{P1,P2,P3,P4}。相比传统ROI Pooling 层(兴趣区域池化)特征值取整的方式,ROI Align 层利用双线性插值获得浮点坐标特征值,能够在目标较小时提取更精细的特征。融合不同尺度特征图,结合低层特征中点云间结构特征和高层特征中的语义特征,以丰富车辆目标全局特征提取,具体如图6所示。
图6 多尺度特征融合Fig.6 Fusion of multiscale feature
进一步利用全连接层提取各相同尺寸候选区域Pi的特征向量Fi∈{F1,F2,F3,F4},融合各特征向量,得到包含多尺度上下文信息的全局特征向量Fg,进行最终的分类和回归任务。分类任务输出车辆目标置信度,回归任务回归得到包围盒参数信息,包括包围盒中心点坐标x、y,包围盒的宽w和长l,以及航向角的余弦值cosθ、正弦值sinθ,航向角由包围盒中心点沿长边方向与迪卡尔坐标系横坐标轴夹角得出。
1.4 损失函数
本文采用多任务损失函数计算检测结果与真实值间的误差,具体包括分类损失Lcls、回归损失Lreg以及角度损失Lang。其中,Lcls用于计算检测目标的分类;Lreg损失用于计算包围盒长、宽,以及中心点坐标;Lang用于计算目标的航向角。总损失为3 种损失函数之和,相比文献[7]中的算法,本文对不同损失函数设置相应权重值,合理分配计算权重。
(1)分类损失
文献[7]采用交叉熵损失训练网络的分类损失,而实际检测场景中前景、背景区域的比例相差较大,无法合理分配训练过程中正负样本的权重。为此,本文采用焦点损失函数训练网络的分类损失,以优化训练样本的权重,即
式中:p为分类置信度输出;u为真实值;λ和φ为可调整超参数,设置为λ=0.25,φ=2。
(2)回归损失
回归损失包括包围盒长、宽损失回归和包围盒中心点坐标偏移量回归。
式中:r为误差项,包括(dx,dy,dw,dl),即网络实际输出值与真实值的偏差。
(3)角度损失
利用回归损失对包围盒航向角正弦值和余弦值的偏差进行计算。
式中:θ为航向角检测结果;为航向角真实值。
网络总损失为分类损失、回归损失和角度损失加权之和,即
式中:α、β、γ分别为分类损失、回归损失和角度损失的加权系数,考虑分类损失在学习特征过程给定更高权重能够加速网络收敛,且回归损失和角度损失影响最终收敛的准确性,所以将加权系数分别设为α=1、β=10、γ=5。
2 实验验证
2.1 实验准备
硬件设备采用NVIDIA RTX 3060 GPU 和AMD R5 5600X CPU在Ubuntu16.04系统下完成网络的训练和测试。网络架构基于Pytorch 框架搭建,网络训练采用Adam优化器。网络参数的设置包括:批量大小为4,初始学习率为0.001,动量为0.9,衰减步长为150 k,衰减系数为0.3,总迭代周期数为12轮次,每2轮保存训练结果。
2.2 数据集
KITTI 数据集是研究无人驾驶环境感知技术最常用的公开数据集之一,包含丰富激光雷达、摄像头、GPS 等传感器数据,且KITTI 数据集在真实城市交通场景中采集包含不同程度的遮挡情况和各种天气状况,便于验证算法有效性,因此本文采用KITTI 公开数据集用于网络训练和性能评估。KITTI 激光雷达目标检测数据集采用Velodyne HDL-64E激光雷达,在10 Hz的采样频率下对城市道路交通场景点云数据进行采集。本文采用点云数据集包括7841 frame训练集数据和7519 frame测试集数据,数据集按目标在视野中被遮挡的不同程度划分为简单、中等和困难这3种等级。其中训练集数据包含目标类别和目标框参数真实值,具体参数包括目标框长、宽、高尺寸,中心点坐标以及航向角,用于网络训练的损失计算。测试集数据不包含真实值,用于评估网络的检测性能与运行效率。考虑待检测目标为车辆,本文的训练与检测过程仅采用数据集中的汽车类别。
考虑到KITTI中训练数据不足,为更好地训练网络,增加数据增强模块以丰富训练样本,即在数据集中选取1 frame 点云,在X轴和Y轴方向上以给定[-3,3]m 范围内的随机偏移量进行偏移,以[0.75,1.25]范围内的随机比例因子进行放缩,采用[-4.5,4.5]范围内的随机角度进行旋转。将训练数据集分为3部分,分别通过3 种数据增强方式对数据集进行处理,最终将总体数据扩充至15682 frame,更大的样本集合使网络训练更充分,同时也能够提高网络的泛化能力。本实验随机选取3920 frame 扩充后的训练集数据作为验证集用于本地评估,其余11762 frame用于网络训练。
2.3 实验结果
为验证预测网络的车辆目标检测性能,将交并比(Intersection Over Union,IoU)阈值为0.7 的平均精度均值(Mean Average Precision,mAP)设定为预测模型优劣的评估标准,大于等于IoU阈值的检测结果认为是正确检测,否则为错误检测,进一步通过计算准确率——召回率(Precision-Recall,PR)曲线下包围面积得到预测模型的平均精度。准确率与召回率的计算公式为
式中:XTP为True Positive,即正确检测的正样本;XFP为False Positive,即错误检测的正样本;XFN为False Negative,即错误检测的负样本;P为准确率,表示正样本中正确检测的比例;R为召回率,表示分类正确的正样本数量。
利用KITTI 鸟瞰图测试集对本文网络性能进行测试,网络输出的检测结果如图7所示,其中虚线框表示真实目标框,实线框表示预测目标框,阴影框为漏检目标框。检测结果表明:本文提出的基于金字塔特征融合的车辆检测网络算法能够精准检测简单、中等难度下的车辆目标,如图7(a)、(b)所示;对于困难难度下的车辆目标检测任务,多尺度特征图融合处理使本文车辆检测网络算法具有更高的鲁棒性,能够克服部分遮挡和点云稀疏干扰完成检测工作,如图7(c)所示;但在目标遮挡非常严重的情况下,存在漏检情况,如图7(d)中阴影框所示;同一帧点云场景下,相较图7(f)中文献[7]算法检测得到的航向角预测结果,本文算法通过补充航向角损失函数使点云航向角预测结果更为精准,如图7(e)所示。
图7 KITTI验证集检测结果Fig.7 Detection result on KITTI validation dataset
实验选取基于激光点云数据的网络Yang等[7]、Lang 等[5]、Zhou 等[4]、Chen 等[10],以及基于激光点云和图像融合数据的网络Zhang 等[6]、Chen 等[8]、Ku等[9]、Li等[11]和Wang等[12]作为对比网络,利用KITTI测试集进行BEV 目标检测,具体检测结果如表1所示。
表1 KITTI鸟瞰图测试集下各网络性能比较Table 1 Comparison of networks performance under KITTI BEV test dataset
由表1可知:相较文献[7]提出的基准网络,本文在3 种不同难度下平均检测精度提升了5.07%~8.59%,且精度优于Lang 等[5]提出的以伪图像为网络输入的算法,说明本文主网络补充目标语义、位置特征模块能够有效提高网络检测性能;相较Zhou等[4]、Chen等[10]提出的算法以原始三维点云作为网络输入,本文特征补充模块能够弥补点云降维处理造成的空间结构缺失劣势,优化以多通道二维数据作为输入的网络检测结果,这种降维处理方式推理效率高,使改进后的网络仍能够满足实时性需求,在当前实验设备条件下单帧处理效率达到0.047 s,即21 frame·s-1,在处理性能更优的实验平台进行计算预计能够得到更高的运算效率;相较Zhang 等[6]、Chen 等[8]、Ku 等[9]、Li 等[11]和Wang 等[12]提出的算法将图像和点云数据融合处理作为网络输入,本文算法仅采用点云数据做处理,运行效率明显优于融合算法,且检测精度与融合算法相当,其中Zhang等[6]提出的算法针对远距离目标做额外图像语义分割进行补充,使得困难难度下目标检测精度略优于本文算法,但由于需要对远近目标分别计算,导致整体网络检测效率较低。
在0.7 IoU 下绘制3 种检测范围相应的PR 曲线,以验证不同点云稀疏程度下检测模型的性能表现,本文网络与文献[7]中基准网络的PR 曲线如图8所示。可以看出,本文提出的检测网络分支通过引入多尺度特征图融合模块提升了车辆目标检测鲁棒性,使不同检测范围内车辆目标召回率均有提升。此外,主网络通过补充额外语义、位置特征使得相同召回率下车辆目标检测精度更高。
图8 车辆目标检测PR曲线对比Fig.8 Comparison of PR curve for vehicle target detection
2.4 消融实验
为验证本文算法各改进模块对整体检测性能的影响,本节单独对每一个改进模块进行消融实验。
2.4.1 主网络改进影响
本文主网络模块在残差网络基础上补充上采样分支和下采样分支以充分利用高层特征图的语义信息和低层特征图的位置信息。为验证主网络模块的性能,将主网络分别替换为仅采用残差网络、在残差网络基础上补充上采样网络分支,并将这两种网络结构的特征图输出传递到预测网络分支,选取KITTI 验证集做性能评估实验,得到不同主网络结构的检测精度如表2所示。实验结果表明,相较仅采用残差网络进行车辆目标特征提取,本文引入上采样分支补充语义信息使得不同难度检测任务的检测精度平均提升4.15%,在简单难度下的提升不明显;相较残差+上采样的网络结构,进一步补充下采样网络使简单难度下的平均精度提升了8.57%,同时中等难度下的检测精度提升6.28%,说明充分利用位置信息能够在点云密集的情况下有效提升检测精度。相较仅采用残差网络,本文通过补充上采样和下采样网络分支的特征金字塔结构使不同难度下的检测精度平均提升了10.26%。
表2 不同主网络结构消融研究Table 2 Ablation study of different backbone network architectures
2.4.2 预测网络分支影响
文献[7]中基准网络仅利用主网络的单一尺度特征图完成对车辆目标的分类和回归任务,本文通过设计预测网络分支,融合多尺度特征图提取丰富上下文信息,输出目标预测结果。为分析预测网络分支带来的性能提升,将预测网络分支替换为文献[7]中基准网络的卷积网络输出预测结果,并进一步将预测网络分支中ROI Align层替换为ROI Pooling层,对比两种特征图尺寸处理模块的性能优劣,实验选取KITTI验证集做评估,不同预测网络分支组成如表3所示。结果表明,相较于仅采用单一尺度特征图实现分类回归任务,本文提出的多尺度特征融合的处理方式能够提升不同难度下的检测精度,尤其是简单难度下,本文基于ROI Align 层的特征融合处理方式使检测平均精度提升了10.16%。同时从实验结果能够发现:基于ROI Align 层和ROI Pooling 层的特征图处理方式,对检测结果的影响在简单和中等难度下相当;困难难度下,由于ROI Align 层利用双线性插值获得浮点坐标特征值,能够更精确计算距离较远的目标,相比利用ROI Pooling层特征图处理方式精度提高了2.32%。
表3 不同预测网络分支结构消融研究Table 3 Ablation study of different prediction network branch architectures
2.4.3 航向角损失影响
相比文献[7]中基准网络的损失函数,本文引入航向角损失对车辆目标航向角偏差单独计算并加权到总损失函数中。采用文献[15]提出的航向角加权平均精度计算航向角损失函数对预测结果的影响,实验选取KITTI 验证集做评估,航向角加权预测平均精度结果如表4所示。结果表明,本文算法在不同难度任务下引入航向角损失函数能够实现更精准的角度预测,且在点云较稀疏的困难难度下预测精度提升更为明显,达到4.53%。
表4 损失函数消融研究Table 4 Ablation study of loss function
3 结论
针对三维点云鸟瞰图空间结构缺失,车辆目标特征提取不充分,导致检测精度欠佳问题,本文通过构建金字塔主网络结构传递高层语义信息和低层位置信息,并利用候选区域提取层和ROI Align层对齐不同尺度特征图的候选目标,最后通过全连接层融合不同尺度特征,实现检测精度更高的点云鸟瞰图车辆目标检测。实验结果表明:额外的高层语义信息和低层位置信息能够有效补充点云鸟瞰图车辆目标特征的提取,提高车辆目标检测性能;融合多尺度特征图使车辆目标检测更具鲁棒性,在远距离点云稀疏或存在遮挡的目标检测工作仍具有较高的召回率;损失函数中加权正余弦角度损失能够使车辆目标的航向角预测更加精准。