夜间高速公路车辆车灯的反光检测的研究
2020-06-08王美钰
王美钰
(西南交通大学信息科学与技术学院,成都611756)
0 引言
到2019 年6 月为止,全国汽车数量达到2.5 亿辆,私家车达1.98 亿辆。我国高速公路车流量巨大、同时车速快,是我国交通运输的主动脉。但是高速公路的飞快发展,给人们生活出行带来便利的同时,也增大了交通事故的发生几率,为道路交通的安全带来了隐患。
由于高速公路在我国已经大规模建设,高速公路长期运营产生大量的历史视频数据,通过深度学习强大的建模能力对历史数据进行建模,应用于高速公路车辆检测与车辆行为识别,及时准确地发现高速公路的异常事件,在高速公路事故救援工作中有着极其重要的作用,具体的研究包括车辆检测、车牌识别、车辆细分类、路面积水检测等。
车辆检测可以通过利用基于深度学习的卷积神经网络,来学习这些特征,以达到车辆目标检测的目的。在白天的交通监控场景中,可以通过车辆特征,如车辆形状、颜色、阴影等[1-2]准确检测到车辆。然而,夜间高速公路的光照条件十分的复杂,不仅车辆车灯的种类繁多,而且路面上也会有车灯的反射光及路灯的反射光等各种环境因素,这些因素也会加大夜间高速公路的车辆检测的难度。因此,在夜间交通监控场景下,无法使用和白天相同的车辆检测特征,车辆的前车灯和尾灯成为了车辆检测的主要目标特征,所以车辆的车灯及反光的研究具有重要的意义。
在高速公路车辆检测研究的基础上,发现夜间高速公路车辆车灯的反光误检率高,主要误检成行人或油罐车。针对这个问题,如要提高高速公路夜间车辆检测的正确率,降低误检率,对车辆车灯的反光检测的研究十分重要,且更能满足实际的应用需求。
1 相关研究
对于夜间道路监控的车辆检测,最大的干扰项是车灯照射到路面形成的反射光,尤其是在雨天道路上形成的反射光,严重影响车辆检测的准确率。Wei Zhang[3]提出了一种解决道路反射光干扰的方法,通过大气散射和拉普拉斯高斯滤波(LOG),提取出车灯和反射光的明显特征,再用马尔科夫随机场(MRF)方法将反射光剔除。浦世亮等人[4]在上述工作基础上,提出了基于决策树的反射光和车灯的分类算法,该算法是通过在视频图像中的车灯和反射光之间的亮度方差特征差异进行分类,实现反射光消除和夜间车辆的检测。
目前,图像分类的最佳方案就是利用卷积神经网络。在分类中,图像有许多重叠的目标和不同的背景,不仅要对这些不同的目标进行分类,还要确定它们之间的边界,差异和关系。图像理解的关键在于将一个整体场景分解成几个独立的目标,有助于预测目标的不同行为。目标检测方法可以预测目标在图像中的位置信息,但人类对场景的理解能以像素级的精细程度对每一个目标进行检测并确定其边界。因此目标检测及分类的相关工作渐渐的转向到语义分割的领域,而分割网络的预测与分类网络预测不同的是,分割网络的预测是基于图像像素点的预测。
FCN 网络[5]是基于端到端的卷积网络,它提出可以把网络中的全连接层替换成卷积层,获得一张二维的特征图,后接Softmax 获得每个像素点的分类信息,从而解决了分割问题,网络结构如图1 所示。深度卷积神经网络(DCNN)需要大量的训练数据才能让模型达到更好的性能,U-Net 网络[6]利用数据增强方法增加训练数据,使卷积神经网络(CNN)可以从较少的训练图像中进行学习,使编码器-解码器的结构变得更加鲁棒以抵抗形变,但该网络的设计针对于特殊的医学场景。Segnet 网络[7]基于FCN 网络[5],采用VGGNet[8]网络作为其主干网络,整体是一个编码器-解码器的网络结构,解码器使用从相应的编码器接受的最大池化索引进行输入特征图的非线性上采样。Pspnet 网络[9]是利用ResNet 网络[10]提取图像特征;将得到的特征图输出到一个全局池化层,再通过一个金字塔池化模块获得多个子区域的局部特征表示,最后通过上采样恢复图像尺寸,并串联所有特征,得到最后的特征表示向量,从而获得图像的局部和全局特征。
图1 FCN网络结构图
2 Class weight loss损失函数
2.1 Focal loss损失函数
Focal loss[11]是为了解决one-stage 的目标检测场景而设计的。在这个场景下,训练过程中前景类和背景类之间存在极端的不平衡。该损失函数被称为是一种困难样本的挖掘,它降低了大量简单负样本在训练中所占的权重。通过平衡因子α 来解决样本不平衡问题,通过调制因子γ 减少了占比小的类别的损失贡献,并扩展了获得低损失样本的范围。Focal loss 对于那些预测得分不好的样本,即预测标签与真实标签的接近程度小的样本,保留交叉熵损失中的大部分损失,对于那些预测得分很好的样本,大幅减小其交叉熵损失。由实验得出,α=0.25,γ=2 时,模型效果最好,其公式(1)如下所示:
对于二分类来说,pt表示预测样本为1 的概率。
2.2 Class weight loss损失函数
Class weight loss 损失函数,简称CW loss,用于平衡各像素类别占用的比例,增大比例小的类别的权重,减小比例大的类别的权重,使训练模型重点关注比例小的分类。在Focal loss 算法的基础上,自适应的计算出每个类别占用的比例权重矩阵W。比例矩阵R 表示每个类别在图像中的比例,平衡因子α 用来权衡各个类别的比例。对多分类来说,pt表示预测样本类别为i 的概率。其公式(2)、(3)、(4)如下所示:
图像共包含k+1 个像素类别,ri表示类别为i 的像素在整张图像中所占的比例,其计算公式(5)如下所示:
其中,图像宽为w,高为h,共有w×h 个像素点,clsi表示图像中属于类别为i 的像素个数。
3 实验与分析
3.1 数据集
随着卷积神经网络以及相关硬件设备的逐步发展,基于深度学习的车辆检测算法的实验条件正在日趋完备。但是,基于深度学习的高速公路车辆车灯的反光检测研究较少,本文使用的数据集来自高速公路车辆检测的数据集。数据集共包含1002 张图片,其中测试集包含230 张图片,验证集包含150 张图片,训练集包含622 张图片。图像像素分为3 个类别,类别含义如表1 所示。
表1 类别含义
3.2 评价指标
为了衡量分割系统的作用及贡献,其性能需要经过严格评估,需测试系统的执行时间、内存占用、和精确度[12]等来评估其有效性。由于不同的系统,所处的背景以及测试目的不同,某些标准可能要比其他标准更加重要,例如,对于实时系统,为了提高运算速度可以损失其精确度。语义分割中为了衡量算法的精度,通常需要使用许多衡量标准,下面将介绍几种常用的逐像素标记的精度标准。假设如下:共有k+1 个类,pij表示本属于类i 但被预测为类j 的像素数量,即pii表示真正的数量。
(1)MPA 称为均像素精度[12],计算每个类内被正确分类像素数的比例,求所有类的平均。计算公式(6)如下所示:
(2)MIoU 称为均交并比[12],计算两个集合的交集和并集之比。在语义分割的问题中,这两个集合为真实值和预测值。MIoU 越高,表示预测值与真实值越接近。计算公式(7)如下所示:
3.3 实验结果
本文中的实验采用PyTorch 深度学习框架来构建和训练网络模型,所有实验均在Ubuntu 16.04 操作系统中进行。输入图像尺寸为480×360,实验参数设置如表2 所示。由于网络参数量不同,所以这些网络的收敛速度不同,迭代次数设置也不尽相同,根据训练曲线决定训练进度。
表2 实验参数设置
(1)Baseline 实验
为了验证网络的有效性,本文利用高速公路车辆检测数据集在3 个主流的语义分割网络中进行了对比实验,在测试集上的实验结果如表3 所示。通过实验结果表明,FCN8s 网络使用反卷积层进行上采样,并跳跃连接将多层特征融合,在该数据集上提高了分割的准确性。
表3 各网络在该数据集上的实验结果对比
(2)CW loss 实验
由于FCN8s 在MIoU 和MPA 两个评价指标上均高于其他分割网络,本实验选用FCN8s 作为基准,将FCN8s 使用的交叉熵损失函数(CE loss)替换成CW loss 损失函数进行实验。随着平衡因子α 的不同,实验结果有所不同,如表4 所示。当α=0.2 时,在测试集上的实验结果达到最好,其MIoU 为70.090%,MPA 为80.837%。
表4 不同平衡因子的实验结果对比
(3)FCN8s 与FCN8s+CW loss 对比实验
对比实验训练曲线如图2 所示,在测试集上的实验结果如表5 所示。为了使其更好的收敛,FCN8s 的迭代次数为88k,FCN8s+CW loss 实验的迭代次数为150k,但两个实验在迭代60k 次后均趋于稳定,因此两个实验的迭代次数并不会影响模型的准确性。
图2 训练曲线对比
在图像标注过程中,反光的边界界定模糊,标注难度较大;可视化实验结果如图3 所示,其中黄色像素点为尾灯反光,蓝色像素点为前灯反光。通过可视化结果可以看出,FCN8s 网络在该数据集上进行训练后得到的模型能检测到更多的反光信息。
通过实验表明,在FCN8s 网络的基础上,CW loss与交叉熵损失函数(CE loss)相比,评价指标MPA 提升了1.964%,评价指标MIoU 下降了0.09%。由此可以看出,使用CW loss 训练网络,在保证模型预测值与真实值的交并比的基础上,能够有效地提升像素精度。
表5 实验结果对比
图3 实验结果图
4 结语
本文经过对夜间高速公路车辆反光检测进行研究,提出基于Focal loss 的夜间高速公路车辆反光检测的CW loss 损失函数,解决反光检测中多个类别比例失衡的问题。使用CW loss 训练网络,在保证模型预测值与真实值的交并比的基础上,能够有效地提升反光检测的像素精度。