融合毫米波雷达与机器视觉的雾天车辆检测
2023-10-13李颀叶小敏冯文斌
李颀, 叶小敏, 冯文斌
(陕西科技大学 电子信息与人工智能学院, 陕西 西安 710021)
1 引言
车辆检测是先进驾驶员辅助系统和自动驾驶汽车的关键技术。但是在雾天条件下,视觉图像严重受到影响,图像模糊泛白,缺乏细节信息,车辆信息显著度严重下降,直接导致了交通车辆检测质量的下降[1]。因此,在雾天进行车辆检测受到众多的学者和科研人员的关注。He等人提出暗原色先验去雾理论[2]。Gao等人提出采用暗通道与亮通道结合解决暗通道去雾导致图像发暗的问题,该方法虽然解决了区域失真的问题,但是处理后的图像依然存在较多雾气,对于雾天情况下的车辆识别依然比较困难[3]。毫米波雷达采用回波反射原理,不受天气的干扰,在雾天依然能够准确检测到目标信息。因此,融合毫米波雷达和视觉结果也可以提高检测的准确率。Kim等提出了一种基于目标运动状态及形状特征的车辆识别方法,通过毫米波雷达和摄像头分别采集目标的运动状态和形状特征,从而识别前向车辆,并应用于自动紧急制动系统[4]。丰田汽车公司的Shigeki提出了一种基于单应变换的毫米波雷达和相机联合校准方法,并使用占用网格方法对目标进行聚类[5]。徐磊等将毫米波雷达的检测结果转换为相应的感兴趣区域,并使用可变形部件模型对感兴趣区域内的目标进行分类,检测速度达到29 FPS[6]。虽然融合毫米波雷达与机器视觉的车辆检测已经取得了一定的进步,但是融合算法依旧存在以下几点问题:(1)融合算法没有考虑雾天下视觉检测受限的问题;(2)融合算法没有处理毫米波雷达采集数据中的干扰信息以及毫米波雷达采集的信息与视觉信息相互补充的问题;(3)没有考虑融合算法的实时性问题。因此,在雾天条件下的车辆检测和识别算法仍有待研究。
针对上述问题,本文首先对视觉图像进行去雾;然后采用知识蒸馏改进YOLO算法进行视觉检测,提高视觉检测速度;最后采用基于潜在目标距离匹配算法对视觉检测结果和毫米波雷达检测结果进行决策级融合,去除毫米波雷达的干扰信息,同时对视觉检测和毫米波雷达检测的缺失信息进行互相补足,提高大雾天气下车辆检测的准确性。
2 基于图像的车辆检测算法设计
在公路上,由于地理特征和小气候环境的影响,雾天非常常见。在雾天环境中,大气光被空气中的水蒸汽和颗粒物散射,导致摄像机采集的图像对比度降低,缺乏图像细节。因此本文采用去雾算法对原始图像进行处理。目前现有的去雾算法主要分为传统图像去雾算法和深度学习去雾算法。传统图像去雾算法又分为非物理模型算法和物理模型算法。非物理模型算法通过对图像增强对比度来达到去雾的目的。物理模型算法是以大气散射模型为研究基础,通过各种先验信息求解无雾图像[7]。深度学习的去雾算法采用端到端的方式进行去雾,其中神经网络学习原始图像数据与所需样本参数之间的直接映射关系,根据映射关系实现有雾到无雾的转换[8]。本文选择以上3种类型的典型代表:自适应直方图均衡化、暗通道去雾算法以及DehazeNet算法进行对比,性能对比结果如表1所示,针对道路上有雾图像的处理结果如图1所示。
图1 去雾效果对比图Fig.1 Comparison of defogging effects
表1 去雾算法性能对比Tab.1 Performance comparison of defogging algorithms
由表1和图1可知,自适应直方图均衡化处理后的图像对比度较高,但在增加去雾对比度的同时也放大了噪声,导致图像色彩与原图像出现偏差,细节信息丢失。而暗通道去雾和Dehaze-Net算法去雾效果更好,更能还原图像真实色彩,但是DehazeNet由于其网络结构复杂,实时性较差,单张图像的处理速度为7 s,而本文研究对象为行驶的车辆,对实时性要求较高,所以本文选择暗通道去雾算法对原始有雾图像进行去雾。
2.1 暗通道去雾
在图像中,有雾存在的大气散射模型如公式(1)所示:
其中:I(x)为原始图像,J(x)为原始图像的无雾状态,t(x)是大气光的透射率,A是大气光值。根据大气光值和透射率可以求得无雾图像,如公式(2)所示。
算法流程图如图2所示。
图2 暗通道先验去雾算法流程图Fig.2 Flowchart of dark channel prior defogging algorithm
首先,输入原始有雾图像(图3(a)),获取有雾图像的暗通道图,采用局部最小值滤波得到大气光和大气光的透射率。然后,对粗估的透射率采用导向滤波进一步细化。最后,根据原始图像、大气光值以及透射率实现图像去雾,图3(b)为去雾后图像。可以看出,暗通道去雾算法有效去除了部分雾气的干扰,有助于提高目标识别的准确性。
图3 去雾前后结果对比图Fig.3 Comparison of results before and after defogging
2.2 基于改进的YOLOv5s的车辆检测
本文研究对象为公路上的车辆,车辆行驶速度较快,尤其是在高速公路上,车辆行驶速度更快,因此对于车辆检测的实时性要求就比较高。在自动驾驶场景中,要求车辆检测的时间在15~20 ms之间,同时如果检测算法网络复杂、计算量大也不利于在车上的嵌入式设备上进行部署,因此本文选择YOLOv5算法进行车辆目标的检测。YOLOv5有5个版本,即YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s和YOLOv5n。各版本的性能见表2。本文综合考虑计算资源、模型参数、检测准确率、部署能力和算法实用性,选择YOLOv5s作为基础算法,并对其进行了提高检测速度和模型压缩的改进。
表2 COCO数据集上5个版本的YOLOv5的综合性能Tab.2 Comprehensive performance of five versions of YOLOv5 on the COCO dataset
YOLOv5s作为一种神经网络算法,其由输入层、输出层和隐藏层组成。输入层通常表示要处理的信号,输出层表示希望网络产生的预期结果。数据处理主要由位于输入层和输出层之间的隐藏层执行。每个连续的隐藏层都使用其上游层的输出作为输入,对其进行处理,然后将结果传递给下游层[9]。YOLOv5s的算法思想为:检测的图像通过输入层(Input)进行预处理,并在主干网络进行特征提取。主干网络获得不同大小的特征图,然后通过特征融合网络(Neck)融合这些特征,最终生成3个特征图(在YOLOv5中,尺寸表示为80×80、40×40和20×20)。检测图片中的小、中、大3个特征图被送到预测头(Head)之后,使用预设的先验锚对特征图中的每个像素执行置信度计算和边界框回归,获得包括对象类、类置信度、框坐标、宽度和高度信息的多维阵列(BBoxes)。通过设置相应的阈值以过滤阵列中的无用信息,并执行非最大抑制(NMS)过程,输出最终检测信息[10-11]。
由于本文选择的YOLOv5s模型的目标检测时单张图片耗费平均时间为0.17 s,考虑最终还需要对视觉检测结果和毫米波雷达检测结果进行融合,因此视觉检测的实时性仍需要提高。本文提出基于知识蒸馏改进YOLOv5s算法以提高YOLOv5s检测的实时性。知识蒸馏利用传递学习来补充小模型中缺失的特定参数,以尽可能实现大模型的识别准确率。本文中大模型是教师网络,即原始的YOLOv5s车辆检测模型;小模型是学生网络,即改进后的车辆检测模型[12]。由于原始车辆检测模型中的车辆特征提取网络通道数比较大,网络结构复杂,因此本文将知识蒸馏引入特征提取网络中,在目标定位和分类阶段计算车辆特征提取的蒸馏损失,对损失进行反向传播训练学生网络。本文知识蒸馏的过程如图4所示。
图4 蒸馏过程图Fig.4 Distillation process diagram
在知识蒸馏过程中,根据教师网络输出的车辆目标预测结果与学生网络输出的车辆目标预测结果得到软损失函数,通过对损失函数的反向传播训练使学生网络不断向教师网络靠近。但由于教师网络的结果并非全部正确,为了保证学生网络车辆预测结果的准确性,引入硬损失函数,即通过真实车辆标签与学生网络的车辆预测结果得到硬损失函数,通过α、β系数对软硬损失函数进行校正,得到最终的总损失函数。
测量学生和教师模型的相似性可以用公式(3)表示。ℓR是一个可以测量相似性的函数,用softmax明确表示。在计算软损失时,当softmax输出的概率分布的熵值相对较小时,负标签的值非常接近0,对损失函数的贡献非常小,导致学生模型在蒸馏过程中对负标签的关注度降低,因此引入温度系数T解决这一问题,如式(4)所示:
其中:I为softmax的logits输入;T越高,教师模型输出车辆类别值概率分布越平坦,学生模型学到的知识越丰富。
总损失Ltotal如公式(5)表示:
其中:α和β为平衡系数,Lsoft为软损失,也就是蒸馏损失,Lhard为硬损失,也就是学生损失。通过迭代训练使软损失与硬损失的综合训练损失所占的比重逐渐趋近1∶0。
Lhard公式如公式(6)所示:
Lsoft公式如式(7)所示:
在Lhard中是第i类学生模型在T=1时的softmax输出值;cj是i类的基本真值,正标签取1,负标签取0。在Lsoft中,N是标签的数量,本文中标签主要为车辆,包含卡车、汽车、公交车等是第i类教师模型在系数T处的softmax输出值是第i类学生模型在系数T处的softmax输出值。
改进后的YOLOv5s算法检测结果如图5所示。为了避免对有雾图像检测导致模型准确率和召回率下降,使得检测准确率与COCO数据集统计的准确率偏差较大,以及雾气浓度不同导致检测结果存在偏差等问题,采用无雾数据集对改进后的YOLOv5s进行测试,统计改进前后模型检测的准确率、召回率、预测时间和模型参数大小,检测结果见表3。由表3可知,改进后的YOLOv5s的召回率与准确率基本保持与改进前一致,但模型大小缩减为原来的72%,检测速度提高了35%。
图5 改进前后YOLOv5s检测结果对比Fig.5 Comparison of YOLOv5s detection results before and after improvement
表3 检测结果对比Tab.3 Comparison of test results
3 融合毫米波雷达和视觉的车辆检测算法设计
虽然去雾后视觉检测准确率有所提升,但是对于浓雾以及较远处的车辆信息依然显著度不高,检测准确率难以大幅度提升且鲁棒性不高,而毫米波雷达是依靠微波反射对目标进行检测,所以其不受光线的干扰,雾天也不会对毫米波雷达产生影响。同时毫米波雷达还兼具微波制导与光波制导的特点,除了可以获取目标的距离信息,还可以获取目标的速度和加速度信息。因此,辅助驾驶和自动驾驶常用其来进行感知和目标检测。但是在实际检测过程中,由于受到金属等障碍物的回波干扰以及毫米波雷达自身存在的不稳定因素,检测结果中会出现干扰目标和无效目标。本文采用毫米波雷达和视觉检测融合的方法实现对雾天车辆的检测,以提高检测的准确率。
3.1 毫米波雷达数据筛选
为了滤除毫米波雷达检测的无效目标和干扰目标,本文首先对毫米波雷达数据进行筛选,保留行车道内的车辆目标。对于静止目标,考虑到车辆检测后续决策和规划中只有相邻车道内的静止目标需要检测,非相邻车道静止目标不会对本车造成影响,因此本文只检测相邻车道内的全部目标和车道内非相邻车道的非静止目标,根据相对位移和相对速度去除无效目标,如式(8)、(9)所示:
式中:X0表示横向相对距离,v表示相对速度。根据我国道路技术规范和国家标准GB/T 33577要求,双向8车道是30 m,单车道为3.75 m,所以选定行车道的距离为28 m,相邻车道的横向相对距离为4.25 m。满足上述条件的为需要去除的行车道以外的所有目标以及相邻车道以外的静止目标。
3.2 毫米波雷达与视觉的时空融合
本文采用坐标系转换来实现毫米波雷达和视觉的空间融合。图6所示的蓝色坐标系是摄像机坐标系,其坐标原点位于车辆前挡风玻璃处,坐标平面与车辆坐标平面平行;红色坐标系为毫米波雷达坐标系,坐标原点位于车辆前保险杠中心,坐标平面平行于车辆坐标平面。
图6 毫米波雷达和视觉传感器坐标系Fig.6 mm-wave radar and vision sensor coordinate system
毫米波雷达坐标[XWYWZW]到图像坐标[uv]的转换过程可以根据公式(10)进行。其转换过程为:毫米波雷达坐标系转为世界坐标系,世界坐标系转为相机坐标系,相机坐标系转为图像坐标系,最终完成毫米波雷达坐标到图像坐标的转换过程。
式中:dx、dy为每个单位像素对应物理坐标系下的大小;f为相机焦距;R为旋转矩阵;T为平移向量;Zc为毫米波雷达目标点在相机坐标系中的Z轴坐标。
为了实现时间融合,毫米波雷达和摄像机的数据采集必须及时同步。毫米波雷达和相机采样不均匀,帧速率分别约为10 FPS和30 FPS。本文以低频毫米波雷达的测量时间作为参考,使高频相机的数据向后兼容,实现毫米波雷达和相机之间的时间配准。
3.3 毫米波雷达与视觉的决策级融合
毫米波雷达和相机收集的目标数据完成时空对齐后,毫米波雷达数据在空间上转换为图像坐标系,以形成图像上感兴趣的毫米波雷达目标,但这不能识别目标是否为同一车辆目标。为了实现毫米波雷达检测结果和视觉检测结果的互相补充和纠正,本文对毫米波雷达检测目标和视觉检测目标进行匹配。通常,多传感器数据匹配算法主要是感兴趣区域匹配和距离排序匹配方法[13-14]。由于区域匹配方法算法复杂性高,检测算法在实际应用中耗时较长,不利于实时检测。使用欧氏距离排序后,匹配算法的实现相对简单,速度较快。但由于该欧式距离匹配仅计算两点之间的空间绝对距离,没有考虑各种特征之间的联系,并且本文中的匹配点来自两个不同的传感器,欧氏距离匹配方法获得匹配结果并不理想,误差较大,因此本文提出了一种改进的欧式距离匹配算法,该方法结合欧式距离匹配与目标类型信息决定两个传感器测量的目标数据是否针对同一运动目标。欧式距离的计算公式如式(11)所示。
本文根据毫米波雷达检测目标的横截面反射强度粗略估计目标类别。毫米波雷达检测到的目标横截面与目标类型的对应关系见表4。
表4 目标横截面与目标类型的对应关系Tab.4 Correspondence between target cross-sections and target types m2
本文定义了两个传感器检测到的目标的位置-类型相关矩阵,用{D}m×n表示,其中Dij是该矩阵中的一个元素,表示第i个摄像机目标和第j毫米波雷达探测目标。公式如式(12)所示:
其中:dCi表示相机中第i个目标的距离测量值,dRi表示毫米波雷达中第j个目标的距离测量值,m表示距离的偏差影响因素,目标类型相关的矩阵可以用ClassT表示。ClassCi和ClassRj分别表示摄像机视频中检测到的第i个目标类型和毫米波雷达中检测出的第j个目标类型,两者之间目标类型偏差的影响因素为f。
假设在任何给定时刻,摄像机检测到视频数据中有m个机动目标,毫米波雷达检测到n个目标。由于每个传感器本身的检测性能存在一定差异,因此两个传感器检测到的目标数量m和n并不完全相等。假设匹配的偏差阈值为Dth,根据方程(11)计算摄像机视频中检测到的第i个目标与毫米波雷达检测到的第一个目标匹配的偏差为{D}m×n。找到满足条件Dij<Dth的数据目标对,然后确定数据目标对中偏差最小的数据目标。如果在摄像机采集的视频中检测到的第i个目标与毫米波雷达检测到的目标数据中的第j个目标的相似性最大,则确定该数据对可以表示两个传感器检测到目标的同一对象。
最后本文利用加权信息融合算法对匹配后的结果进行最终决策。在大雾天气下,毫米波雷达可以检测到更多的有效目标,而视觉在正常天气下的干扰信息更少。根据这两种传感器在雾天的识别能力和信息可靠性,本文设定在雾天下摄像机视觉识别权重为α,毫米波雷达识别权重为β,根据不同的天气情况设置不同的权重值,信息融合后目标属于每一类别的概率Prob表示为式(13):
其中:Ec为视觉检测的置信度,Rc为毫米波雷达检测的目标存在的可能性,α+β=1。根据不同的天气情况设置不同的权重值,当出现概率超过50%时,则认为该目标存在。目标的最终类别i_max为maxProb。
4 实验结果及对比分析
本文采集实车测试结果,视觉传感器型号为CMOS摄像头,采集分辨率为1 920×1 080,采集频率为30帧/s。毫米波雷达选择德国大陆ARS404雷达。ARS404是77 GHz的雷达传感器,能够同时检测相对速度为-400~200 km/h的多个静止和移动目标,可检测多达250个原始点,有效探测距离为0~170 m。雾天主要分为薄雾、大雾、浓雾和强浓雾,其中水平能见度距离在1~10 km的称为薄雾,水平能见度距离在200~500 m的称为大雾,水平能见度距离在50~200 m的称为浓雾,水平能见度不足50 m的雾称为强浓雾。本文采集薄雾、大雾和浓雾3种天气情况下的视觉数据和毫米波雷达数据进行研究,用来验证本文提出的目标检测效果的准确性。
4.1 去雾后视觉检测结果和分析
本文的去雾视觉检测实验所用硬件为单个具有64 GB内存的NVIDIA GeForce RTX 2080Ti GPU,操作系统为Ubuntu18.04。由于雾天场景较少,因此本文实际采集数据为1 500张,通过对晴朗天气进行加雾获得2 500张数据,以及从网上寻找大雾天气下的数据集1 500张,通过对原始数据进行增强,最终数据为10 000张,其中训练数据集为7 000张,测试数据集为3 000张。本文实验中采取的目标检测的评价标准有准确率以及召回率。图7所示为去雾前后视觉检测结果的对比图。由图中红色标记可知,(ⅰ)组去雾后检测到了更多小目标,(ⅱ)组去雾后避免了错误识别的问题,(ⅲ)组去雾后检测到了更多的车辆目标,因此去雾后的图像可以获得更多的细节信息,更能凸显目标,识别到更多的小目标,同时还避免了一些误检和漏检问题。
图7 去雾前后的检测结果对比图Fig.7 Comparison of detection results before and after defogging
经过在数据集上测试,对比去雾前后目标检测的结果如表5所示。根据表5可知,去雾后在薄雾场景下的准确率提高了6%,召回率提高了10%;在大雾场景下,准确率提高了13%,召回率提高了6%;在浓雾场景下准确率提高了5%,召回率提高了3%。在雾比较薄的情况下,去雾后使用视觉检测可以有效提高检测效率;但是在浓雾场景下,即使去雾,目标检测准确率依然很低。
表5 去雾前后的目标检测结果Tab.5 Object detection results before and after defogging
4.2 毫米波雷达和视觉融合检测结果和分析
毫米波雷达和视觉融合检测结果的测试采用实际采集的天气不同场景下的数据以及nuScenes数据集进行测试,包含薄雾、大雾、浓雾等。针对不同的天气设置不同的融合权重值。由表5可知,视觉检测在薄雾天气下,经过去雾后,图像中的雾气残留较少,对目标识别的影响较小,其检测准确率较高为91.01%;而在大雾和浓雾天气下,虽然经过去雾,但是图像中仍残留较多雾气,其检测准确率为82.45%和67.89%。毫米波雷达由于其自身的不稳定因素,其检测准确率要低于薄雾下的视觉检测,约为83%,但是由于其不受天气影响,所以在薄雾、大雾和浓雾的天气下,其准确率相差不大。经过测试,本文设置在薄雾下摄像机识别权重α为0.7,毫米波雷达β为0.3,如图8(ⅰ)、图9(ⅰ)组所示;大雾下摄像机识别权重α为0.5,毫米波雷达β为0.5,如图8(ⅱ)、图9(ⅱ)组所示;浓雾下摄像机识别权重α为0.4,毫米波雷达β为0.6,如图8(ⅲ)、图9(ⅲ)组所示。实际采集数据检测如图8所示,nuScenes数据集检测结果如图9所示。
图8 实际采集数据融合检测结果Fig.8 Results of fusion detection of actual collected data
图9 nuScenes数据集融合检测结果Fig.9 Detection results of nuScenes dataset fusion
其中红色二维框为毫米波和视觉检测结果匹配成功后得到的目标二维框,绿色二维框为毫米波雷达检测的目标二维框,绿色的点为毫米波雷达检测的目标点。算法检测结果见表6、表7。由表6可知,随着雾气指数的升高,图像去雾后的视觉检测准确率仍呈非常明显的下降,而毫米波和视觉融合的检测结果无论是在薄雾、大雾还是浓雾的情况下都有稳定较好的检测率,同时也降低了毫米波雷达自身不稳定引起的漏检、误检问题。相对于单一传感器,本文提出方法的准确率更高。由表7可知,本方法在nuScenes数据集下,薄雾天气下准确率可达92.01%,召回率达90.37%,在浓雾和大雾天气下的准确率也高于84%,召回率高于86%,可以实现在雾天下的车辆检测。
表6 目标检测结果统计Tab.6 Statistics of target detection results
表7 nuScenes数据集的测试结果Tab.7 Test results of nuScenes dataset
5 结论
为了解决雾天车辆检测比较困难的问题,本文提出融合毫米波雷达和机器视觉方法检测车辆目标。首先通过去雾算法去除雾气对视觉图像的干扰;然后使用知识蒸馏算法改进YOLOv5s,提高目标检测的实时性;最后使用改进的欧式距离匹配算法匹配毫米波雷达检测结果与视觉的检测结果。实验结果表明,该方法有效融合了毫米波雷达的检测结果以及视觉的检测结果,有效提高了有雾天气下车辆的检测准确率,避免了单一传感器带来的误检和漏检问题,同时在实时性上满足自动驾驶场景要求,避免了多传感器融合导致的实时性不够的问题。