高继东,焦 鑫,刘全周,贾鹏飞,李占旗,杨伟东
(1. 中汽研(天津)汽车工程研究院有限公司,天津 300300; 2. 河北工业大学机械学院,天津 300130)
随着汽车持有量的日益增加,出行安全问题越来越受人关注。智能辅助驾驶系统(ADAS)可为驾驶员实时提供安全预判信息,具有降低交通事故,提升汽车安全性,减少生命财产损失的优点,逐步成为汽车配件开发的热点[1]。
车辆行驶环境的感知作为辅助驾驶系统的输入,对于系统的预警和决策起着至关重要的作用,对危险目标实现有效的检测是精确预警的前提。如今,机器视觉和毫米波雷达为辅助驾驶系统中常用的传感器,两者都具有各自的优势,机器视觉获取环境信息丰富,在目标检测与分类上极具优势,但易受天气影响;毫米波雷达可以准确探测障碍物的距离和速度信息,对环境有较强的适应性,但无法识别障碍物的类型,易受噪声的影响[2]。如何有效的利用两者传感器的信息,国内外学者做了大量研究工作。FLORIAN F等[3]在车辆上配置多个雷达,采用对象级融合构造了不同雷达数据的融合结果,并对探测的目标结果进行滤波处理与目标追踪,提高了对前方危险目标的探测能力;NATNAEL S等[4]将机器视觉与雷达信息进行了融合用于前方车辆的感知,采用机器视觉对前方车辆进行探测与追踪,目标车辆距离的输出依据于雷达数据信息,提升了对目标车辆的检测与定位能力;国内,李鹏等[5]提出了雷达与摄像头空间对准的标定算法,保证了两种传感器对同一目标的信息探测;陈晓伟等[6]将车牌检测算法与雷达探测信息进行融合,用于前方目标车辆的检测,充分利用了机器视觉与毫米波雷达的优势。
机器视觉虽在目标检测上具有优势,但基于特征与颜色的传统车辆检测算法,难以区分类似车辆的虚假目标,结果往往不太理想。雷达易受噪声信号的影响,若要利用雷达数据需对其噪声进行过滤,并设定合适的阈值筛选出有效目标,因此,为提高辅助驾驶系统对前方目标的感知能力,充分利用机器视觉与毫米波雷达的数据优势,需提升机器视觉目标检测与雷达有效目标的检测与筛选能力,本文对深度学习SSD算法进行改进,提升算法对于目标的探测能力,借助于雷达模拟器确定出雷达目标筛选的合适阈值参数,提取出有效的目标信息,并采用卡尔曼滤波对数据噪声进行过滤,通过雷达数据生成目标的感兴趣区域,由SSD算法对感兴趣区域进行车辆检测,消除了雷达的误检测,同时也缩小了图像检测范围,从两方面对于车辆检测的准确性进行了提升。
传统目标检测算法虽可以对车辆特征进行提取,但由于车辆信息特征复杂,行驶环境不确定的因素,往往检测结果的准确性与鲁棒性较差,本文通过改进的SSD深度学习算法对目标车辆进行检测,通过多次训练和学习,多层卷积网络可对车辆特征进行提取,在目标的检测方面深度学习算法具有较高的精度[7]。
SSD算法为端对端的目标检测算法,以直接回归的方式进行分类和定位,检测速度相比于其它深度学习算法较快,它的网络架构与Faster rcnn类似,相比于Faster rcnn算法,检测速度虽得以提升但是牺牲了目标的检测精度,尤其是对小目标的识别能力[8]。本文对SSD算法进行了改进,对网络中浅层特征图进行图像分辨率重建,增加特征图像的分辨率,并删除冗余的候选框尺寸,保证检测速度的同时提升对小目标的检测能力。
浅层特征图进行图像分辨率重建过程如图1所示,包含了特征提取、缩小、特征映射扩充和反卷积操作,可将低分辨率图像映射为高分辨率图像。网络的输入为SSD VGG16主网络中conv4-3卷积层提取的特征图像,特征图像FP1经过图像缩小降低维度以及非线性特征映射去除冗余的特征参数得到特征图像FP2,再将特征图像FP2扩充至原来图像维度,然后由反卷积层重建出高分辨率图像。
图1 图像分辨率重建结构图
为提升算法检测速度,本文对样本候选框长宽比以及卷积层的关系进行了研究,通过选取5000个图片样本进行测试,得到候选框长宽比与卷积层的对应关系如图2所示。
图2 候选框尺度分布图
对实验数据进行分析,可以得到候选框长宽比为1/3的候选框设置匹配率较低,甚至测试结果中出现一些误检。其次在卷积层conv10-2进行特征提取后候选框分布变化很小,即为冗余的卷积层。因此在算法中将删除宽高比为1/3的候选框以及conv10-2卷积层。删除冗余后的特征提取网络结构与超分辨率重建结构的特征进行融合就构成了改进SSD算法的网络结构,如图3所示。
图3 改进SSD算法网络结构图
为获得SSD网络学习的训练集,在车辆上安装高清摄像头,采集不同路况下的车辆图片,训练集图片如图4所示。
图4 采集的车辆图片
然后利用标注工具对图片训练集进行标注,形成xml标注文件,在Ubuntu系统中对SSD网络学习框架进行配置,计算机的硬件资源是CPU为i7-8700K、显卡为 NVIDIA GeForce TX1080Ti、显存为 8 GB、硬盘容量为 512GSSD+2 TB,依次配置Tensorflow、 Anaconda、 Opencv、 Cuda、 Cudnn 和SSD资源,配置成功后输入学习文件对网络进行训练。
模型训练完成后,调用SSD算法对图片中的车辆进行识别,识别结果如图5所示。通过BITVehicle车辆数据集对算法准确率进行测试,以平均准确率mAP为评价指标[9],测试结果如表1所示。
图5 SSD算法与改进的SSD算法车辆检测结果对比图
表1 车辆数据集测试结果对比表
通过检测准确率的结果对比,改进后的SSD算法提升了车辆识别的置信度,对于近距离和远距离的车辆都有了较好的检测效果。但是,在车辆行驶与城市工况,算法会将护栏、树木、灌木等类似车辆特征的物体误认为目标车辆,存在一定的误检,如图6所示。
图6 复杂环境下改进的SSD算法车辆检测结果
为了进一步提升车辆的检测精度,实现目标的精确定位,下面将雷达数据与改进的SSD算法相融合进行车辆检测,以更好满足ADAS系统的要求。
毫米波雷达工作波段为毫米波波段,具备微波制导与光波制导的优点,工作过程中能够同时探测到多个障碍物的距离、速度、角度等信息,受限于雷达工作的不稳定性、金属障碍物的干扰、回波能量的不均匀等因素的影响,探测结果中常常混有无效目标、静止目标和非危险目标[10]。
为确保摄像头和雷达融合结果的准确性,前提要保证雷达探测目标的有效性。无效目标持续时间段,连续次数少,可设定目标生命周期滤除此类目标;静止目标多为树木、护栏等固定目标,反射能量往往与车辆相差较大,通过设定RCS阈值进行过滤;非危险目标可通过目标的横向距离和纵向距离信息进行过滤,去除不在危险区域内的目标。
本文选用大陆ARS408雷达,雷达的参数如表2所示。信息通信方式为CAN通信,加载雷达dbc文件,对雷达的信息数据进行解析,得到目标的距离、速度、角度、反射截面积等信息,通过设定lifetime、RCS、Distance和Azimuth的参数阈值对目标进行过滤和筛选,得到有效目标的信息数据,合适参数的阈值将通过具体工程实验进行确定。
表2 雷达参数表
获取雷达有效目标之后,数据中会存在一定的系统噪声和观测噪声,本文采用卡尔曼滤波算法对目标数据进行过滤以减少跳动误差,提高数据精度[11]。
在对雷达数据进行有效目标筛选时,为了确定lifetime、RCS、Distance和Azimuth参数的合适阈值,本文采用NI雷达模拟器对不同目标进行模拟,观测不同参数下雷达对目标的探测结果。目标信息采集过程,如图7、图8所示。
图7 雷达模拟器
图8 探测目标信息采集
对雷达进行安装时,利用模拟器对雷达的chip波进行抓取,确定雷达的波束中心点,通过上位机软件设定不同目标,通过CAN卡对雷达输出结果进行采集,雷达探测的结果如图9、图10所示。
图9 动态目标模拟时雷达探测结果
图10 Lifetime参数对雷达探测结果的影响
从测试结果中观测,当lifetime参数设定为0.1 s时,雷达能够过滤绝大多数噪声目标,过滤效果比较理想;家用轿车的RCS值一般为5 dB,选取RCS值大于5 dB的目标进行筛选,以去除非车辆目标[12];我国道路宽度标准为3.75 m[13],通过Distance和Azimuth确保雷达纵向60 m,横向5 m区域内的目标进行探测。
确定有效目标之后,采用卡尔曼滤波算法对数据信息进行滤波处理,将滤波处理的数据与实际数据进行对比,得到算法的估计误差,滤波结果如图11、12所示。
图11 卡尔曼滤波对目标距离的跟踪曲线
图12 估计位置误差与观测位置误差对比曲线
图11为卡尔曼滤波算法对雷达数据的处理结果曲线,经过滤波处理之后,卡尔曼滤波算法可对目标数据进行稳定追踪,相比于雷达的模拟数据,经过滤波处理的数据跳动误差有所减少,对过程噪声和量测噪声起到了一定的抑制作用。图12数据的误差曲线,原始观测数据的误差最大为0.45 m,经过滤波处理之后,误差最大为0.3 m,并且跳动的幅度明显好于原始观测数据,提升了目标数据的精度。
确定雷达预处理的合适参数阈值后,将雷达与摄像头分别安装于实车上,对前方行驶环境进行感知,安装位置如图所示,雷达固定于车辆保险上方,摄像头固定于汽车前挡风玻璃下,传感器安装如图13所示。
图13 摄像头和雷达实车安装位置
安装完成之后,对传感器的参数进行标定,通过摄像头对不同距离和姿态的标定板进行采集,然后对图片中的棋盘格角点进行检测,利用张正友标定算法,得到相机的内外参数,并对校正采集图像中的畸变。
由于摄像头与雷达的安装位置不同,在进行数据融合之前,需要对两者传感器数据进行空间数据的统一,确保两者采集的数据在同一个坐标系之下。传统算法通过相机坐标系、雷达坐标系和世界坐标系三者的转换进行统一,但因雷达和摄像头安装点之间的距离参数难以精确测量,并且坐标转换公式复杂,转换结果并不理想[14]。
为了快速确定雷达与摄像头的转换关系,本文采用曲线拟合进行完成,主车处于静止状态下,驾驶一辆目标车在车辆危险区域内由近及远的运动,启动摄像头车辆识别算法对目标车辆进行识别,记录下目标车辆检测中心的图像坐标和雷达数据信息,去除数据中的异指点,基于Matlab的曲线拟合工具箱对数据进行拟合[15],拟合结果如图14所示。
图14 曲线拟合关系曲线
图14为图像的像素坐标和目标距离的拟合关系曲线,通过多项式对数据进行拟合,得到结果:
标定完成后,对标定结果进行测试,选取不同数据点形成测试集,测试结果如表3所示。
表3 标定结果的图像残差值和总体误差
从表中标定误差的对比,传统联合标定的总体像素误差为0.3712,本文标定的总体像素误差为0.2713,相比于传统的标定算法,误差要小,标定精度较高。
雷达数据借助Cancase进行采集,由Simulink的CAN解析模块对雷达信息进行解析,通过有效阈值参数得到雷达有效目标信息,根据式(8)将雷达数据转换成图像坐标信息,由UDP通信协议发送至图像处理程序,生成目标的感兴趣区域,信息数据的采集如图15所示,感兴趣区域生成如图16所示。
图15 信息数据的采集与通信
根据雷达数据生成的感兴趣区域,输入雷达适配参数后可以对护栏、树木和安全区域的车辆进行过滤,由感兴趣区域的坐标信息,设计图像的蒙板,提取出图像中目标的感兴趣区域,然后调用SSD目标检测算法对感兴趣区域进行车辆检测,以剔除感兴趣区域的非车辆目标,并且进一步收缩车辆外形的识别边框。融合算法流程图如图17所示,检测结果,如图18所示。
图17 信息融合车辆检测流程图
图18 车辆检测结果
受限于雷达有效目标的选取,信息融合车辆检测算法只对本车道和相邻车道距离为0.2 ~60 m范围内的目标车辆进行检测,通过采集晴天、阴天、夜晚(有光照)等不同天气条件下的2000张视频图片进行前方车辆检测,采用车辆检测准确率(true position rate,TPR)和误检率(false detection rate,FDR)对算法的有效性进行评价[16],计算公式为:
式中:TP——分类器检测出的车辆数;
AP——实际车道中的车辆总数;
FP——被分类器误检为车辆的数目。
表4为信息融合算法在不同天气条件下的检测结果,在晴天、阴天和夜晚有光照的情况下,对于目标车辆检测的准确率分别达到了95.3%、93.8%和91.7%,误检率分别为0.3%,0.4%和0.6%,相比于单传感器车辆检测的准确率得以提升,实现了前方目标车辆的精确感知。
表4 车辆检测准确率对比表
1)配置SSD深度学习框架,并对算法网络结构进行了改进,制作汽车数据集进行学习训练,提升了算法对于车辆的检测精度。
2)对雷达数据进行处理,确定合适的阈值参数,得到有效目标信息的信息数据,根据标定公式生成目标存在的感兴趣区域。
3)采用摄像头和雷达信息融合技术对前方车辆进行检测,并对测试结果进行测试,对于晴天环境中车辆的检测准确率最高达到了95.3%,实现了车辆的准确检测,提高了辅助系统预警的精确性。