时间:2024-07-28
孙 扬,唐大山
(1.河北工程大学机械与装备工程学院,河北 邯郸 056038;2.邯郸市智能车辆重点实验室,河北 邯郸 056000)
感知三维环境对无人驾驶车辆的行驶至关重要。利用激光雷达传感器获取空间点云在无人驾驶中广泛应用[1]。因而有效的获取点云表达的信息,精准的检测目标是无人驾驶的关键。
卷积神经网络作为深度学习的标配,广泛的应用于无人驾驶的环境感知中。卷积运算可以有效的提取图像中目标的特征信息,从而检测出目标。当前研究背景下,大量基于单目视觉的检测算法层出不穷,Faster RCNN[2]、SSD[3]以及YOLO[4]等经典检测器在检测应用中大放异彩。实际生活中,我们在机器人大部分的领域的应用中,所检测的目标均为三维物体,尤其是无人驾驶的领域中,环境感知的任务不仅要用精准的识别出行驶环境中的目标物,还要获取目标物详细的位姿信息(距离、方向、速度等),这是车辆行驶规划的基础,也是安全行驶的保证。实际上从二维图像上获取目标精确的位姿信息是困难的,特别是随着检测距离增长,这种缺点被放大的越来越明显。虽然随着RGB-D的传感器以及融合距离信息的检测算法的出现,大大的改善了相机视觉检测的不足,但是如激光雷达这样的高精度三维传感器仍是更为广泛使用的。
目前针对激光雷达点云处理的方式主要有两种:点云特征提取和二维平面映射。PointNet[5]作为早期的点云特征提取网络,将点云直接输入到神经网络中,获取点云的整体特征,忽略了点云的局部信息,虽然在随后提出PointNet++[6]网络增加了局部信息的提取,改善了网络结构,但是直接应用点云的输入尤其是在无人驾驶场景内的点云输入,计算成本是非常昂贵的。二维平面映射处理可以有降低计算成本,同时目前针对二维平面映射常用的处理方式有:全景(以车辆为中心,360°映射)和鸟瞰(自上而下)。
在实际的交通环境中,车辆始终是在路面上行驶的,使用鸟瞰图处理可以更好的表达行驶车辆的位姿信息和轮廓信息。将激光雷达采集的点云转化为鸟瞰视图,不仅降低点云维度而且保留了点云的高度信息。虽然目前大部分算法检测速度较快,同时具有较好的泛化能力,但是其精度相对较低,在检测一些小目标和距离较远的目标时,检测结果难以让人满意。
综上所述,为满足车辆检测算法在实时性和准确性上的较高要求,基于RetinaNet[7]网络结构,并对网络层的参数进行调优。然后采用KITTI[8]车辆数据集,对改进后的网络模型进行训练,结果表明:在能够保证实时性的前提下,这里改进后的神经网络,在检测远处车辆以及小尺度目标时能够得到较高的检测精度。
这里提出了一个有效的目标检测器,它能够根据激光雷达给定的点云信息,精准的获取目标的位姿信息。采用鸟瞰图的方式表示的激光雷达的点云信息,更易于点云的实时检测,更贴合无人驾驶的应用环境。
首先,利用直通滤波算法对原始点云进行滤波处理,精确检测范围,降低点云数量;然后,对点云进行二维映射处理转化为鸟瞰视角,并使数据张量化;其次,利用ResNet[9]、FPN[10]以及Det-Net[11]构建一个多尺度特征金字塔网络结构;最后,通过对比实验对这里的算法进行分析。基于激光雷达的车辆检测算法结构,如图1所示。
图1 车辆检测算法结构Fig.1 Vehicle Detection Algorithm Structure
2.1.1 基于直通滤波算法的点云预处理
设点云样本为:
式中:pi—样本中点的三维坐标值,即pi(xi,yi,zi);
n—样本中点的总个数。
设置三个轴向的滤波范围分别为:
保留点云中三个坐标值均在滤波范围内的点。未处理点云视图,点云数量庞大,大部分为无效检测范围,增加了计算成本,如图2(a)所示;直通滤波处理后的点云视图,点云数量大幅度降低,检测范围更加精确,可以为后续的神经网络模型训练提供良好的数据支撑,如图2(b)所示。
图2 点云滤波前后对比Fig.2 Comparison of Point Cloud Before and After Filter
2.1.2 二维映射处理及数据张量化
经过点云预处理,获得空间尺度为L×W×H的场景点云,对其进行二维映射处理转换成鸟瞰视角图。首先,对这个点云空间做离散化处理得到单位空间dl×dw×dh,如果单位空间有点云占用则编码为1,否则为0。以同样的方式对激光雷达获取的反射率进行归一化处理为[0,1]范围的值。最终形成的输入张量的尺寸为:
式中:L—点云空间的长度;W—点云空间的宽度;H—点云空间的高度;dl—点云空间的单位长度;dw—点云空间的单位宽度;dh—点云空间的单位高度。
2.2.1 卷积神经网络
网络结构为全卷积神经网络,卷积运算是卷积神经网络的核心内容。卷积运算公式为:
式中:*—卷积运算符号;x—输入值;w—卷积核函数;t—卷积的变量;s(t)—输出值。
x和w两个参数定义在t上,在卷积核感受野范围内相乘求和最终输出,通常计算机在处理数据时变量t会被离散化,这样一来t只能取整数,那么离散形式的卷积就定义为:
在实际的卷积神经网络中,卷积的输入形式为矩阵形式核函数一般是通过反向传播更新权值,二维图像的实质就是一个矩阵的表示,将图像I作为输入,以及一个二维的卷积核K,二维卷积运算可以定义为:
通过将激光雷达收集的三维点云进行二维映射处理,所得鸟瞰视角图形,能够满足二维卷积的应用。
2.2.2 总结网络总体结构
检测网络总体结构,如图3 所示。利用ResNet、FPN 以及DetNet构建一个多尺度特征金字塔。将高分辨率特征图与低分辨率特征图相结合,输入到子网络中完成最后的分类任务和回归任务。网络中前4个Stage由残差模块组成,且每个Stage中残差瓶颈模块个数分别为(3,6,7,3),形成51 层的残差网络,并且Stage中第一残差瓶颈模块进行一次下采样,共进行4次下采样,将图片尺寸压缩为原尺寸的;Stage5和Stage6为空洞卷积构成特征提取网络,每个Stage都由3个空洞残差瓶颈模块组成,且不进行下采样操作,如图4所示;最后添加一条自上而下的融合网络,通过融合每个阶段提取的特征,完成车辆检测。
图3 网络结构Fig.3 Network Structure
图4 Stage5网络结构Fig.4 Stage5 Network Structure
2.2.3 空洞瓶颈模块
研究表明对于类似特征金字塔结构的网络模型:较大的目标应该在深度较大的特征图上进行检测,同时又因为在网络较深时下采样率较大,检测目标的边缘信息难以精确预测,使得边界回归的难度加大;较小的目标又因为较大的下采样率使得其在更深的网络特征图中变得几乎不可见,虽然在组成特征金字塔网络时,较小的检测目标可以使用浅层网络检测,但是浅层网络的语义信息较弱,增加了目标物检测的难度。通过引入空洞卷积使得模型具有较大的感受视野,同时在组成特征金字塔结构时,由于特征图尺寸相同,因此不需要经过上采样操作,可以直接传递相加,减少计算量的同时增强最终的检测效果,如图4所示。
2.2.4 多尺寸特征融合网络
传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作,然而卷积网络又因多次下采样操作使得最后一层网络对应的下采样率较大,造成物体在特征图上的有效信息不够全面,增加了网络在车辆检测中分类和回归任务的难度。使用多尺度特征融合网络可以有效的避免传统检测方法中的局限性。添加一条自上而下路径,如图3所示。将每个模块提取的特征作为输入,通过反卷积处理将特征图放大至同一特征图大小。将上采样所得特征图自上而下与相应分辨率特征图逐元素求和,得出最终的特征映射。
2.2.5 非极大值抑制
为了保证物体检测的召回率,在检测网络计算输出中通常不止有一个候选框对应同一个真实的目标,也正是如此需要在网络最后增加一个非极大值抑制操作,将冗余的预测去掉,保留最终的精确预测。其计算流程,如图5所示。
图5 非极大值抑制流程图Fig.5 Flow Chart of Non-Maximum Suppression
2.2.6 评价标准
网络模型在KITTI测试数据集进行测试,并以交并比(Intersection over Union,IoU)及计算车辆检测平均准确率(Average Precision,AP)为评价指标。其中Precision、Recalled、AP 具体计算公式为:
式中:TP—网络模型将车辆正确地预测车辆;FP—网络模型将非车辆错误地预测为车辆;FN—网络模型将车辆错误地预测非车辆;TN—模型将非车辆正确地预测为非车辆。
实验配置环境为:英特尔Core i9-9900K 处理器;Nvidia Quadro RTX 6000 24GB显卡;32GB内存;在Ubuntu18.04操作系统下,使用pytorch1.4.0深度学习框架,实现网络模型训练,并使用CUDA训练的加速处理。利用KITTI数据集进行实验,共选取了7480个velodyne 64线激光雷达点云文件,按照1:1的比例分为训练集和测试集。训练集用于训练这里的网络模型、测试集用于估计学习过程完成之后的学习器的泛化误差。
设置实际检测点云的范围为(80×70)m 并以0.1m 为离散分辨率进行鸟瞰投影。以激光雷达为原点设置检测高度为[-2.5,1]m,并0.1m为单位将空间分割为35个切片。最后与反射率结合形成尺寸为(800×700×36)的张量。
将预处理后的点云数据输入到神经网络中进行迭代训练,并保存训练日志。通过TensorBoard查看网络训练损失和验证损失的折线图,如图6所示。当神经网络训练周期达到20批次时,神经网络的训练损失值维持在0.1左右,并趋于平缓;对于验证集数据,当神经网络的训练周期达到30批次时,神经网络测试的损失值维持在0.2左右,并趋于平缓,未出现过拟合现象。
图6 训练和验证误差Fig.6 Loss Values of Training and Validation
在KITTI数据集下,对比多种网络的检测速度和检测精度。对比结果,如表1所示。设交并比(Intersection over Union,IoU)的值为0.7,并在同一实验环境下,将经过同一处理方法处理所得的点云数据输入到不同的网络之中进行训练,与这里设计的深度神经网络框架对比,结果得出:
表1 车辆鸟瞰视图检测精度对比Tab.1 Average Precision Comparison of Aerial View Detection
(1)使用本网络的平均准确率高于MV3D、MV3D+im的平均准确率分别提升1.58个百分点和2.69个百分点。
(2)在处理速度上本网络大幅度提升,处理时间降至101ms,满足无人驾驶车辆实时检测的需求。使用这里方法得到的车辆检测的结果,并采用鸟瞰图的形式展现,如图7所示。
基于三维激光雷达采集的点云数据,采用直通滤波对原始数据进行预处理,确定有效的检测范围,然后通过二维点云映射转换成鸟瞰视角图像。应用空洞卷积扩大网络的感受视野,增强对大目标回归边界的精度及小目标的检测精度;应用非极大值抑制去除冗余的候选框,保证结果的最佳输出。实验结果表明,在数据集上车辆检测的速度及精度有明显的提升,为无人驾驶技术提供一种有效的目标检测算法。通过分析算法以及实验结果发现,使用单一传感器用于无人驾驶的环境感知任务是有限的,在未来工作中将进一步融合其他传感器信息,优化算法模型,提高算法检测精度。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!