基于卷积神经网络的夜间车辆检测算法

2022-06-02 06:35张文丽刘星星
计算机与现代化 2022年5期
关键词:先验特征提取聚类

张文丽,徐 丽,刘星星

(长安大学信息工程学院,陕西 西安 710000)

0 引 言

在这个科学技术和世界经济飞速发展的时代,交通系统的空前发达是必然的。随着交通工具需求的急剧增加,交通拥堵、交通事故等负面效益也日益突出,逐渐成为经济和社会发展的全球性问题。随之而来的智能交通系统[1]可有效缓解交通问题,对避免交通事故的发生起到很重要的作用。在智能交通系统中车辆检测是一个非常热门的研究课题[2],交通流预测[3]、车牌识别[4]、车辆跟踪[5]等应用也以车辆检测作为研究基础。采用帧差法[6]、背景差分法[7]、光流法[8]等方法进行车辆检测,将其应用于现实场景时,容易受到车速、光线等的影响,不具有普遍性。而传统机器学习算法[9]由于人工选取特征经常存在误差,导致检测效果下降。随着深度学习[10]的发展,不断涌现的大多数白天场景下[11]的车辆检测算法已可满足检测需求,但当场景为夜间时,算法检测性能欠佳[12]。因为夜间光线差[13],易受路灯颜色的干扰,导致拍摄的车辆图像清晰度较低,使得特征难以提取,检测性能大大降低。因此,本文基于卷积神经网络进行夜间车辆检测算法的研究和改进,使其检测精度得到提升。

1 夜间车辆检测算法

1.1 算法流程

夜间车辆检测算法借鉴一阶段目标检测算法[14]的思想,转化成回归问题求解,即将整张图像用作网络输入,直接在输出层回归边框位置及其所属类别。首先将输入图像调整到416×416。然后使用以CSPDarknet53[15]融入注意力机制模块(Convolutional Block Attention Module, CBAM)改进后的网络结构即“CSPDarknet53-CBAM”,对通道特征信息和空间特征信息进行增强。其次在加强特征提取网络层采用空间金字塔池化层(Spatial Pyramid Pooling, SPP)[16]和路径聚合网络(Path Aggregation Network, PANet)[17]的组合即“SPP-PANet”,实现将浅层特征与高层语义特征以及多尺度感受野进行融合,提取浅层网络更多的细节特征,缓解小目标特征丢失问题。最后在预测网络中采用加强特征提取网络处理后的3个特征层进行结果预测,判断先验框里面是否存在待检测对象及对象类别,并采用非极大值抑制[18](Non-Maximum Suppression, NMS)处理和先验框调整来确定最终的预测框,得到车辆种类及坐标信息。最终形成“CSPDarknet53-CBAM+SPP-PANet+YOLO-Head”的网络结构。其流程如图1所示。

图1 夜间车辆检测算法流程

训练前对数据集进行白平衡处理[19],并采用K-means++算法和交并比距离聚类出合适的先验框。训练时首先采用Mosaic算法[20]进行数据增强;其次针对训练时数据集难易样本不平衡的问题,在损失函数的原始置信度交叉熵损失中引入GHM梯度均衡机制。最后采用构建的夜间车辆检测算法对数据集进行训练,得到一个适合于本文数据集的夜间车辆检测模型。

1.2 数据预处理

因为夜间车辆图像清晰度较低,无法从中提取到有效的特征,故通过预处理来增强图像画质。从已有数据集可看出,夜间路灯的干扰使得图像颜色偏黄,影响特征清晰度,不利于后续的特征提取,故为了减少路灯颜色的干扰,增强图像画质,可使用一种自动白平衡算法,可消除光源对图像的影响,得到原始场景,使图像中特征更明显。夜间车辆图像经其处理后的效果如图2所示。

图2 白平衡效果图

Mosaic数据增强会选取4张图像,并对其进行拼接,每张图像都有对应的框,拼接后得到一张新图像及其对应的框,然后将新图像输入到神经网络中学习。对夜间车辆数据集进行白平衡处理以减少路灯颜色的干扰进而增强图像画质,同时采用Mosaic算法进行数据增强,有利于区别检测物体的背景、前景,丰富了数据集中的图像特征,尤其是随机缩放出现了很多小目标车辆,增强了网络对小目标车辆的特征提取能力,进而有效提升了模型对小目标车辆的检测效果。

1.3 优化先验框选取

先验框的选取会影响算法检测的效果[21],为提升边界框的检出率,需针对数据集中的目标大小进行边界框聚类分析。K-means聚类算法[22]虽相比于传统的方式可以明显提高检测精度,但聚类结果不稳定,易陷入局部最小值,影响先验框尺寸聚类效果。本文选用改进的K-means++算法,该算法可优化确定初始聚类中心的机制,使获得的聚类结果更稳定合理。并且引用交并比距离来聚类先验框[23],同时画出平均交并比[24](IoU)随k值改变的曲线图,采用迭代法选取合适的先验框数量和尺寸。

聚类的目标函数如公式(1)所示:

d(box,centroid)=1-IoU(box,centroid)

(1)

其中,centroid表示聚类中心对应的先验框,box表示真实框,IoU(box,centroid)表示聚类中心对应的先验框和真实框的交并比,可用于衡量聚类中心对应的先验框位置的准确程度。

聚类的目的是获取更大的值和距离聚类中心的最短距离,故聚类的目标函数采用1-IoU。

K-means++算法流程:

1)输入k=1;

2)提取数据集真实目标框尺寸;

3)K-means++算法聚类目标框宽高比;

4)计算平均IoU,k=k+1;

5)重复上述3个步骤直到k=20;

6)绘制平均IoU随k值变化的图像,并选取合适的k值,记为k′;

7)设k=k′,使用K-means聚类,先验框尺寸使用各聚类中心的尺寸。

1.4 改进主干特征提取网络结构

CBAM表示卷积模块的注意力机制模块[25],是卷积神经网络结构,该结构包括通道注意力与空间注意力2个部分,如图3所示。

图3 注意力机制模块

CSPDarknet53的整个网络结构主要由残差结构组成。其中残差结构由一系列1×1和3×3的卷积块组成,每个卷积块中包含BN层[26]和Mish激活函数[27]。此时在主干网络中加入注意力机制模块即CBAM可以改进网络对残差结构特征图中的通道和空间特征信息的增强,使得更易聚焦在有目标的部分。而在网络更深层的加强特征提取网络和预测网络,其特征图的语义特征更充分、感受野更大以及特征图尺度更小,加入CBAM难以再从这种特征信息高度融合的小尺度特征图中有效区分出重要的通道和空间特征,相反会造成对重要特征学习的偏差,导致检测精度下降。故为提升主干网络的特征提取能力,可将CBAM模块引用到主干网络的残差结构块,以改进CSPDarknet53+CBAM的主干特征提取网络,使得网络更容易聚焦在有目标的部分,提高其特征提取能力,进而提升模型检测效果。经过改进后的主干特征提取网络结构如图4所示。

图4 改进后的主干特征提取网络结构

1.5 损失函数

目标检测算法的损失函数[28]中的置信度损失可判断是否为车辆的二分类问题,因此为解决训练时数据集难易样本不平衡的问题,即交叉熵损失对于难易样本的区分不够合理,在原始置信度交叉熵损失中引入梯度均衡机制(Gradient Harmonizing Mechanism, GHM)[29]的分类损失,通过反映数据分布的梯度密度动态调整损失值,使得模型可以有效衰减易分样本和难分样本,取得良好的训练效果,收敛较快。此时算法的损失函数如公式(2)所示:

(2)

其中,IoU(A,B)是预测框与真实框的交并比,ρ2(Actr,Bctr)是预测框和真实框的中心点的欧氏距离;m是包括预测框和真实框的最窄封闭部分的对角线距离;αv是对长宽比的惩罚项,α是一个正数,v用来衡量长宽比的一致性。具体定义为:

2 实验结果及分析

2.1 实验环境与参数设置

本文实验的硬件配置为Intel(R)Core(TM)i7-8700K CPU@3.70 GHz,64 GB内存与NVIDIA GeForce GTX 1080 Ti独立显卡,软件环境为Windows 10系统,算法基于Keras框架,CUDA版本为10.0。在实验中,选择Adam作为优化器,early_stopping用于设定早停,val_loss多次不下降自动结束训练,表示模型基本收敛,batch_size=8,学习率设置为0.001,并在60 epoch后调整为0.0001,共训练120 epoch。将实验里面的数据划分为68%的训练集、12%的验证集与20%的测试集,其中训练和验证集占到80%。

2.2 数据集介绍与评价指标

本文使用的数据集是UA-DETRAC数据集[30],该数据集由佳能摄像机在我国天津和北京的24个不同地点拍摄的10 h的视频组成,图像分辨率为960×540像素。该数据集将车辆分为4类,即car、bus、van和others,由于只有车辆要被检测,故只取前3类car、bus、van。因为要研究的是夜间场景下的车辆检测算法,所以选取了12000张夜间图像作为本文的研究对象。

常用的车辆检测算法评价指标有:精确率(Precision, P)、召回率(Recall, R)、平均精度AP、全部类别目标平均精度mAP、每秒处理帧数FPS等。具体定义如下:

1)True Positives(TP):正例且被正确分为正例的样本数。

2)False Positives(FP):负例却被错误分为正例的样本数。

3)False Negatives(FN):正例却被错误分为负例的样本数。

4)True Negatives(TN):负例且被正确分为负例的样本数。

精确率是指被正确预测为正例的样本占被分为正例的样本的比例,其计算公式为:

Precision=TP/(TP+FP)

(3)

召回率是指正确预测为正例的样本占真正的正例样本的比例,其计算公式为:

Recall=TP/(TP+FN)=TP/P

(4)

AP是指取不同置信度时,通过不同Precision和Recall的点组合起来,画成的曲线围成的面积。

对于多属性车辆的检测性能,mAP就是所有类别车辆的AP值求平均,mAP是对检测目标平均精度的总体度量,其计算公式为:

(5)

其中,classes为种类数量。

通常采用每秒处理帧数FPS评价检测器的执行速度,即实时性。若FPS值越大,证明检测器实时性越好。

2.3 实验结果及分析

2.3.1 先验框聚类方式实验结果分析

本节衡量指标使用平均IoU,计算当k值不同时,先验框与真实框尺寸的平均IoU变化情况,并通过迭代法选取合适的k值。本文采用k=9,AverageIoU=77.13%时聚类产生的Anchor box,即每个检测特征图的每个网格对应3个先验框。

Anchor box=13,13; 17,23; 22,33; 31,41; 39,57; 47,83; 64,114; 80,75; 107,177

表1为每个网格为3个先验框时不同先验框聚类方法对夜间车辆的检测效果。

表1 不同先验框聚类方法对夜间车辆的检测效果

从表1可知,在先验框数量一样时,本文采用的K-menas++算法和原始K-means算法相比,AP值均有提高,其中mAP值提升了1.27个百分点,证明本文采用的聚类方法在一定程度上可提升算法检测精度。精度提升是因为采用K-means++算法时获得的先验框尺寸能够更加准确地反映数据集中待检测(车辆)目标尺寸大小的分布,而且交并比距离也提高了不同类别待检测目标间的区分度,这也有助于生成满足数据集的聚类结果。

2.3.2 融入注意力机制模块实验结果分析

本文在展开注意力机制模块实验的同时给损失函数引入了梯度均衡机制。

注意力机制模块CBAM里面的通道注意力模块中间通道压缩的比例r用于控制注意力机制模块中2个全连接层中间的特征图通道数,在经过注意力机制模块中第一个全连接层后通道数c被修改为c/r。如果r太小,那CBAM中2个全连接层的连接权重会变多,会使参数量增多,减弱压缩效果;如果r过大,则会减少CBAM中2个全连接层的连接权重,此时会减弱通道注意力机制增强特征提取的效果,进而降低算法检测精度。

为评估加入CBAM后模型的复杂度,对模型体积与参数量进行对比分析,如表2所示。由表2可知当加入CBAM时,r越大压缩后通道数越少,故参数量和模型体积越小,但是原始网络的参数量和模型体积是最小的。

表2 加入CBAM前后模型复杂度对比

本节为选取适用于本文算法的压缩比例r,在数据集测试了5个r值,分别是2、4、8、16、32,并与无CBAM的原始网络进行对比,分别给出不同车辆类别的Precision、Recall、AP与mAP,其实验结果如表3所示。

表3 不同的压缩比例r与无CBAM对实验结果的影响

从表3可以看出,当r≤8时,mAP随着r的增加而逐渐上升;当r=8时,与无CBAM的原始网络相比mAP提高最多;而当r>8时mAP值逐渐下降,这是因为当r过大时CBAM中的神经元连接由于通道被大量压缩而变得稀疏,此时CBAM影响变得很弱,但是所有车辆类别在应用CBAM后Recall、AP都有所提升,并且始终比原始网络高。从表中也可知van的Precision只有在r=2时才有所提高,这是因为预测中van的TP占比和car、bus相比更低一些,导致其误检率高,Precision低,如图5所示,根据式(3)计算,van的Precision为81.1%,而car和bus分别为88.9%和90.4%,而对于夜间车辆检测而言,Recall相较于Precision更为重要,因为Recall高可证明车辆漏检率较低,更能符合实际需要。总体来说加入CBAM后mAP相对原始网络提升了0.75~1.38个百分点,这证明CBAM有效提高了算法检测精度。当r=8时,算法在检测精度与参数量方面都表现不错,mAP提升了1.38个百分点,mAP提高后却并没有给模型增加过多的参数量与体积。综合上面分析,故本文算法的压缩比例选用r=8。

图5 各类别车辆的检测结果

2.3.3 夜间车辆检测算法实验结果分析

以下是对本文所提出的夜间车辆检测算法与SSD、YOLO v3及YOLO v4算法进行对比分析的实验结果,如表4所示。

表4 夜间车辆检测算法对比

从表4可看出,相同算法输入图像尺寸越大,mAP值越高,这是因为图像尺寸越大,细节信息越多,提取的特征更全面,使得检测效果更好,但是会降低FPS值。其次可看出在本文数据集YOLO v4算法比SSD、YOLO v3算法检测精度更高。最后对本文提出的夜间车辆检测算法与YOLO v4算法进行实验与对比分析可知,本文算法在416×416图像分辨率的基础上能达到比YOLO v4的608×608图像更高的检测精度,并且检测效率基本能满足夜间车辆检测的实时性要求,故经验证本文所提出的算法是有效可行的。损失函数曲线图如图6所示。

图6 loss变化曲线

由图6可知网络在迭代训练100次后损失曲线不再明显波动,模型更快地趋于收敛,曲线相当平滑,整体训练效果良好,且在107次后网络发生了早停,停止训练。

本文夜间车辆检测算法的car、bus、van的AP和mAP的变化如图7(a)~图7(d)所示。

图7 AP和mAP变化图

为了验证检测模型对小目标车辆的检测效果,从数据集中挑选了2400张未经过预处理的夜间车辆图像,其特点为存在小目标车辆。经测试在YOLO v4算法中的mAP为96.45%,而在本文算法中的mAP达到98.87%,检测效果如图8所示,证明本文所提出的算法对夜间车辆检测具有很好的鲁棒性。

图8 夜间车辆检测效果图

3 结束语

本文构建了基于卷积神经网络的夜间车辆检测模型,其检测精度已可满足夜间车辆检测的需求,而且对小目标车辆也有很高的检测精度。然而本文仅实现了夜间车辆的类别与位置检测,对检测到的车辆进行实时跟踪以及预测其接下来准确的行驶方向也是具有重要意义的研究方向。

猜你喜欢
先验特征提取聚类
BOP2试验设计方法的先验敏感性分析研究*
一种考虑先验信息可靠性的新算法
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
基于Daubechies(dbN)的飞行器音频特征提取
基于高斯混合聚类的阵列干涉SAR三维成像
先验的风
基于Spark平台的K-means聚类算法改进及并行化实现
基于加权模糊聚类的不平衡数据分类方法