伍锡如,薛其威
(桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004)
随着人工智能和机器人技术的不断发展,无人驾驶系统作为人工智能领域中的一个重要研究方向已经成为国内外的研究热点[1-3]。三维车辆检测作为环境感知中的重要研究内容,为无人驾驶系统的路径规划和运动控制提供车辆三维空间信息[4-5]。
激光雷达作为高精度主动式环境探测传感器,能够精准扫描周边环境并生成点云信息地图。激光雷达生成的三维点云分辨率和精度高,抗干扰性强,扫描范围广,不受光照和阴影遮挡的影响[6-8]。三维点云可以提供更丰富的数据信息,有利于实现复杂交通环境下的无人驾驶[9-10]。基于激光雷达的三维车辆检测算法在过去几年里发展较为迅速,涌现出了大量优秀算法[11-13]。
Meng 等[14]利 用 圆 柱 形 候 选 框 进 行 车 辆 选择,解决车辆中心点击策略中缺乏高度信息的问题,并通过在候选前去除背景噪声来产生更精确的三维对象预测。文献[15]结合RGB 图像将激光雷达点云映射到网格地图上,通过三维广义联合交集与SmoothL1 相结合,促进三维目标检测的优化。梁华为等人[16]基于SVM 分类器改进了Adaboost 算法,对点云信息直接处理并使用最大熵模糊聚类的数据关联方法增加稳定性。刘健等人[17]通过八叉树网格法检测运动物体,使用DBSCAN 算法进行聚类用于提升运动车辆检测精度。文献[18]中采用定向包围体来描述目标障碍物并用RANSAC 算法找出点云分布与方向航向角。崔鑫等人[19]利用深度学习方法分别对点云与图像进行检测,通过匈牙利算法对检测结果跟踪并选择最优匹配结果输出。上述算法为无人驾驶系统的车辆检测提供了重要的参考依据[20-21]。三维车辆检测过程中普遍存在网格绘制过程复杂且耗时长,对高度被遮挡的车辆会出现检测框合并的状况,而且点云与图像数据的时空匹配对时间戳精度要求高且对小目标不敏感。因此三维车辆检测时间长与精度低的问题亟需解决[22]。
本文采用统计滤波算法和RANSAC 地面分割将点云信息进行筛选,剔除离群点减少分类误差并减少点云计算量;改进3DSSD 深度神经网络,引入融合采样对车辆不同位置特征点进行选取以优化三维检测的集合提取模块,降低特征点冗余度;改进边框预测模块对候选点二次筛选,选择中心部分预测三维边框,提高检测精度。
基于激光雷达的三维车辆检测算法的总体框架如图1 所示。首先将激光雷达采集到的点云信息进行预处理,利用统计滤波算法剔除离群点;通过RANSAC 算法进行地面分割,分离地面无用点;预处理后传入三维检测网络,使用集合提取模块融合采样提取车辆特征点;特征点传入边框预测模块选择中心点,输出三维检测结果。
图1 三维车辆检测算法总体框架Fig.1 Overall framework of 3D vehicle detection algorithm
激光雷达扫描过程存在软硬件误差使得点集的三维坐标产生偏移,出现离群点,产生多余特征信息,导致算法模型训练达不到全局最优。
通过最小二乘迭代方法来估计曲率张量,并在迭代时根据点云邻域为样本分配权重,细化点周围的邻域。利用曲率以及统计权重来校正正态分布。通过计算法线和曲率并与阈值进行对比剔除离群点,从而较好的保持车辆点云的纹理特征。
在笛卡尔坐标系下,点云的每个点以x,y,z三维坐标形式存在。假设某个点云样本为:
其中:n表示采样点云点的总个数;pi表示采样样本D中的无序点,只取每个无序点的x,y,z三维坐标。计算点的距离阈值dmax:
其中:di为两两无序点间距,为点云样本无序点的平均距离,σ为样本标准差,α为阈值系数。若某点与点的距离大于dmax,则判定其为离群点,将其剔除于点集。点云统计滤波算法如表1所示。
表1 点云统计滤波算法Tab.1 Point cloud statistical filtering algorithm
激光点云统计滤波算法中每个点的临近点个数根据PCL 点云库统计滤波器设定参数。由于离群点是基于数据集中点到临点的距离分布计算所得,结果分布是具有均值和标准差的高斯分布,因此将临近点数设为50,阈值设为1,阈值系数α为0.2,平均距离在全局距离均值和标准差之外的区域都设置为离群点。
图2 为点云数据过滤前原始图,近端点云分布分散,地面点云不清晰。远端点云在障碍物周边存在较为杂乱的离群点且分布不均,为车辆检测增加检测难度;图3 为点云数据过滤后的视图,局部区域的点分布较为均匀。近端地面点云平整,易于后续的地面分割实现。远端点仅保留车辆及墙面点云信息,分布均匀。
图2 点云数据过滤前图Fig.2 Image before filtering point cloud data
图3 点云数据过滤后图Fig.3 Image after filtering point cloud data
激光雷达采集无人驾驶系统驾驶环境时,由于地面点云形状固定,增加点云信息计算量;同时存在地面纹理杂乱并含有部分离群点,大幅度降低三维车辆检测的精度。
本文采用RANSAC 算法剔除地面点云,RANSAC 算法首先通过随机采样从测试点集中选取一个子集进行参数估计。运用所有测试数据集对该估计模型进行检验,根据测试样本集中数据对模型的支持度,确定地面估计的正确性。通过不断建立假设与检验的迭代,以期获取一个具有全局最优的地面模型参数,即获得最优直线拟合,具体实现步骤如表2 所示:
表2 RANSAC 分割算法Tab.2 RANSAC segmentation algorithm
RANSAC 分割算法属于非确定性算法,设ϖn是所选择的n个点都为内点的概率,算法运行k次以后成功的概率是p,则概率p为:
因此地面拟合时设定单次内点概率p=0.99,迭代次数k=10 000 确定最小模型,实现地面拟合;并根据KITTI 数据集中激光雷达点云采样高度设定距离阈值di为0.3。图4 为点云样本RANSAC 地面分割前的原始图,包含许多地面点增加了计算量;图5 为RANSAC 地面分割后删除地面点的图,剔除地面点仅保留地面上障碍物能为后续的障碍物检测减少难度。表3 为预处理前后点云对比。点云总点数减少且方差减小,剔除无用离群点使剩余点云更加集中,有利于三维车辆检测算法训练。
图4 RANSAC 地面分割前图Fig.4 Image before RANSAC ground segmentation
图5 RANSAC 地面分割后图Fig.5 Image after RANSAC ground segmentation
表3 预处理模型对比Tab.3 Comparison of pretreatment models
针对车辆的特征存在多样性和复杂性,引入深度神经网络以实现三维车辆检测。改进的深度神经网络3DSSD 障碍物检测网络框图如图6所示,由集合提取模块、边框预测模块和分类回归模块构成。
图6 障碍物检测网络框图Fig.6 Frame of obstacle detection network
集合提取模块将激光雷达点云数据作为输入,对点云数据直接进行特征的提取。为了更好的提高采样率和扩大感受野,集合提取层使用多个分组卷积、多层感知器和最大池化的组合进行下采样。下采样过程中会剔除负点,但是不利于样本分类、感受野无法被扩大,导致分类精度有所降低。
本文在分组卷积之前增加融合采样来对正点进行采样并提取足够多的负点用于网络训练。融合采样过程如图7 所示,采样包括获取点的距离信息与语义信息。语义信息可以被深层神经网络很好地捕获,在采样中加入距离信息作为采样标准,以此保存车辆内部点和车辆周围点云用于深度神经网络训练。
图7 融合采样过程Fig.7 Fusion sampling process
采样过程中为了减少点云冗余、增加特征多样性,我们将空间距离和语义特征距离作为采样标准。其表述如下:
其 中:Ld(A,B) 为A、B 两 物 体 之 间 的 距 离,Lf(A,B)为A、B 两个特征点的距离,λ为距离平衡系数。下采样操作中两个距离组合在一起作为标准比仅使用特征点距离更有效。
边框预测模块对集合提取模块的融合采样数据进行中心点选择、周围点特征提取以及语义信息生成。本文为进一步降低计算成本,将在融合处理前景点云时生成候选点,选取候选点中心作为边框预测的中心部分。根据中心点位置对融合采样结果采用多层感知器进行局部特征提取。
中心点选择框图如图8 所示,根据融合采样距离信息剔除远景点后将前景点向三维车辆中心移动确定候选点,再根据候选点坐标求出(x,y,z,)平均值得出三维车辆中心点坐标。
图8 中心点选择框图Fig.8 Center point selection block diagram
靠近待测物体中心的候选点往往会得到更准确地三维坐标预测。对于每个候选点,通过两个步骤定义其中心标签,判断候选点是否在待检测物体中以确定lmask,lmask为0 或1;根据计算该点到目标六面体各表面距离,通过如下公式得到lctrness:
其中:f,b,l,r,t,d分别代表中心点到六个面的距离。最后中心标签为lmask与lctrness的乘积,确定待预测物体中心标签后根据中心标签位置生成三维检测框。
算法中多任务的损失函数L由分类损失、回归损失和位移损失组成,设计如下:Ldist和Lsize使用SmoothL1 函数使得损失函数对离群点鲁棒性更强,SmoothL1 函数如下:
角损失Lcorner和角度回归损失Langle分别表示如下:
其中:dac与dar分别表示回归的残差和预测值;tar和tac为对应点云的样本点;角损失表示8 个预测角与标注值的差值,其中Pm为点m的标注值,Gm为点m的预测值。
位移损失Ls主要用于监督CG 层的位移预测,同样使用SmoothL1 函数计算对应的样本点的预测值以及残差。
本文实验采用KITTI 数据集中的7 438 个点云训练样本。在进行数据的过滤和训练前,随机将点云样本分成训练集和验证集。
经网络架构的搭建,实验的环境配置为Intel i5-9300H 处理器,16 GB 运行内存,英伟达GTX1660Ti 6 GB 显存显卡。采用自适应矩估计优化器,训练学习率为0.002,batchsize 为4,共80 000 次迭代。
为了验证训练模型的泛化能力,采样未经训练的样本在多场景下进行测试。
实验1 在光线条件良好,存在普通道路与崎岖不平道路,有车辆停靠的环境下测试,如图9 所示为实验1 车辆三维检测结果。车辆之间存在小部分遮挡问题,车辆表面反射激光束,激光雷达回波强度不受影响,融合采样对车辆各部分点云信息采样完整。经预处理后崎岖地面对检测结果无影响,车辆点云保留完整。与其他三维检测算法对比,返回的点云信息完整,三维检测框与车辆之间误差偏转角度较小。测试证明图9 所用算法对光线条件良好且普通道路的三维车辆检测有较好精度。
图9 实验1 车辆三维检测结果Fig.9 3D vehicle detection result of experiment 1
实验2 在车辆距离较远且道路部分处于阴影状态,光照条件复杂的环境下测试,如图10所示为实验2 车辆三维检测结果。实验中激光雷达在晴朗天气反射强度衰减较少,由于太阳直射以及阴雨条件下激光雷达反射强度衰减大,采样信息不完整,检测存在一定难度。由点云图像可知反射强度有所减弱,车辆之间较大部分的遮挡,近景与远景都存在待检测车辆。点云信息只反射回车辆侧面的部分信息,下采样结果较少。光线不均匀造成激光雷达反射强度强弱不一,使得点云信息不平整具有较多离散点,统计滤波对离散点剔除具有较好的效果。与其他算法相比漏检误检概率低,且由于加入多任务的损失函数,优化了偏转角的预测,对车辆偏转角度检测更为准确。测试结果表明图10所用算法对车辆距离较远且光照条件复杂的点云信息滤波与检测有较好结果。
图10 实验2 车辆三维检测结果Fig.10 3D vehicle detection result of experiment 2
实验3 在光线分布不均且遮挡严重环境下进行测试,如图11 所示为实验3 车辆三维检测结果。反射激光束数量减少,激光雷达回波强度降低,车辆遮挡导致每辆车仅能返回部分点云信息,例如车前端侧面或车尾上端点云,为车辆三维检测增加了难度。激光雷达采集的点云信息仅为局部信息,缺乏完整车辆三维信息。由于部分车辆距离激光雷达位置较远,激光反射强度大幅度降低,仅有部分点返回构建成点云地图,融合采样对于缺乏点云信息的部分点集可以同时采集语义信息与距离信息,采样返回点集构成样本进行检测,实验结果表明本文算法可由车辆部分位置进行特征提取并联合推断进行三维车辆检测。
图11 实验3 车辆三维检测结果Fig.11 3D vehicle detection result of experiment 3
本文算法与其他三维检测网络相比,对点云信息中车辆的漏检与误检更少,对车辆偏转角度的预测更为精准。点云预处理之后可以有效保留车辆点云信息,避免离群点与崎岖地面对车辆三维检测精度的影响。改进的融合采样使得算法在复杂环境下可以较好的应对车辆间遮挡、环境光干扰等问题,说明改进网络能够高效提取车辆点云特征信息完成三维车辆检测。
模型的精度测试实验采用检测精度指标P来衡量改进网络模型性能,计算公式如下。
其中:TP为正确识别并标定目标的数目,FP为错误识别但标定目标的数目,FN为错误识别且未能标定目标的数目。
本文算法在检测精度上可达89.72%,检测时间可达0.12 s。表4 为在实验1、实验2、实验3 中本文算法与3DBN、Point-GNN、AVOD、FPointNet 三维目标检测模型的性能进行对比。由表4 可得出:在实验1 中由于体素的方法更适应于简单场景,因此本文算法检测精度略低于Point-GNN,但优于其他几类三维目标检测模型;本文算法加入点云预处理模块并使用融合采样用于点云特征提取,可以应对复杂环境的光照及遮挡问题,因此在实验2 与实验3 中本文算法检测精度高于其他几类算法。与二维图像和激光雷达点云数据对齐后再映射到三维图像的方法相比,直接基于点云的特征提取与三维检测避免了时间戳的对齐,无需将相机和激光雷达联合标定,减少了在硬件设备调整过程中出现的误差。
表4 三维检测网络性能对比Tab.4 Performance comparison of 3D detection network
本文提出了一种改进的基于激光雷达三维车辆检测的算法。该算法采用统计滤波算法与RANSAC 地面分割算法剔除点云冗余信息;加入融合采样提取车辆点云语义信息和距离信息,扩大感受野并提升分类精度;改进边框预测模块对候选点二次筛选剔除远景点,重新选择车辆中心点生成三维检测框。实验结果表明:统计滤波算法和RANSAC 地面分割的预处理可以有效地剔除离群点,减少其他因素的干扰;检测精度上可达89.72%,检测时间可达0.12 s。对3DSSD深度神经网络的改进具有较高的准确性与实时性,使无人驾驶系统能在光照条件不均路况的复杂环境下实现三维车辆检测。本文提出的算法具有重要的理论意义和应用价值,可为无人驾驶系统的三维车辆检测提供有力手段。