何凌志,周月娥,王玉珏,华国亮,彭 博
(南京理工大学紫金学院,江苏 南京 210023)
随着科技和工业的发展,交通车辆越来越普及,而这也导致相应的交通问题频发。针对此问题,本文设计了基于深度学习的实时交通车辆检测算法,协助交通管控,促进道路交通智能化[1]。
在算法设计方面,随着时代发展,卷积神经网络[2]快速进步,其在检测与识别等方面有着较高水平。根据算法的工作流程不同,可将目标检测算法大致分为两种:Two-stage神经网络算法和One-stage函数算法。本文在实时交通检测算法设计上采用了基于YOLOv4[3-5]的目标检测算法。类比同类检测算法,YOLOv4无论在速度方面,还是在精度方面皆具有优势。而在目标跟踪算法上选择当下较为主流的DeepSort[6]多目标跟踪算法,DeepSort是在Sort[7]目标跟踪基础上进行改进的,在目标跟踪过程中提取目标外观特征进行匹配并实时跟踪计数。YOLOv4与DeepSort两者相结合,具有较好的可行性和高效性,可完全取代传统低效率的车流量检测算法。
YOLO(You Only Look Once)[8-10]网络是一种基于回归的目标数据检测分析算法,检测效率高、检测结果质量高,在许多目标检测中取得了良好的效果[11-12]。近年来,在CNN领域应用YOLOv4目标数据检测与分析算法时广泛采用了最优数据优化处理策略,例如网络数据处理、骨干数据网络、网络管理培训、激活处理功能、损失补偿功能等方面。比起YOLO系列的其他算法,YOLOv4有五个创新点,如图1所示。
图1 YOLOv4创新点
YOLOv4的主干网络为CSPDarknet53,CSPDarknet53主体上由CBM模块和CSP模块构成。其中CSP模块有两个分支:一条进行残差连接,缓解训练过拟合和梯度爆炸问题;另一条进行跳跃连接,使上下级特征图跨级拼接并实现通道整合,提高训练速度。CSP结构如图2所示。
图2 CSP结构
K-means[13]是非常经典且具有成效的聚类方法,以距离作为评价指标。通过计算样本和样本之间距离将较近的样本归为同一类别,使得同一类别样本之间的相似度增高,同时让不同类别的样本相似度降低。因此,使用K-means聚类分析算法对YOLOv4目标检测算法的车辆模型数据集重新进行聚类分析,从而提升YOLOv4目标检测算法模型的性能。
DeepSort是多目标跟踪算法中最常用且受众较多的算法之一,是基于Sort改进后的多目标跟踪算法。在本次的车辆实时跟踪检测中,Sort算法通过卡尔曼滤波算法来预测多个车辆检测结果框在下一帧的识别状态,从而将多个车辆识别结果框状态与下一帧的车辆识别检测结果框进行匹配,实现对多目标车辆的跟踪。如果车辆受到遮挡或者是其他原因没有检测到,卡尔曼滤波算法预测的车辆检测结果信息将不能和系统总体的算法识别检测结果进行匹配,该识别跟踪片段将会直接结束,从而影响最后的实验数据。为此,DeepSort算法引入了CNN网络(见表1所列)来提取检测到的物体外观特征,并且记录这一时刻对应的物体外观特征数据。
表1 CNN网络结构
在DeepSort多目标跟踪算法中,采取的是8维的向量。
其中:u和v分别表示物体目标中心的水平坐标和垂直坐标;s和r是边框的宽高比和高度;是图像所对应的速度信息。
一般的卡尔曼滤波[14]分为predict和update这两个阶段。已知k-1时刻的状态分布,利用k-1时刻的后估计值进行状态转移变换,得到当前的
此处给出的是预测值,也叫先验状态估计值。
这一步给出的是该状态的最优估计值,也是后验状态估值。公式符号具体含义见表2所列。
表2 公式符号含义
为验证DeepSort目标跟踪算法的可行性,选取其他三种目标跟踪检测算法进行统一测试。见表3所列,所用的指标为MOTA和MOTP,当识别处理效果越好时,MOTA和MOTP这两个指标数值会偏高。而本文所设计的检测算法在MOTA和MOTP指标方面均有提升。
表3 多目标跟踪算法之间对比结果
当前所进行的实验平台主体上由两个部分相辅构成,其中硬件平台CPU为i7-12700H,GPU平台为NVIDIA GeForce RTX3050。软件平台具体配置为:Ubuntu18.04软件操 作 系 统、Cuda10.1、Cudnn7.6、Python3.7、OpenCV3.4、Tensor flow 1.8.0-GPU。
本次项目选用公开的车辆训练集,通过网络爬虫以及实地拍照的方式收集了18 000张照片。通过LableImage标注工具对每张照片进行标记,所产生的目标信息储存于相对应的XML文档。训练设置如下:将YOLOv4.cfg文件中的识别类别改为2,每次迭代训练样本为64,分16个批次,最大迭代次数设置为20 000,动因子设置为0.9。本次研究采用的是VOC格式的数据集,通过编写好的脚本文件训练YOLOv4的权重。
3.3.1 模型算法平均准确率
采用目标识别检测算法时,判断所识别目标的识别精度的主要指标之一是MAP(Mean Average Precision)。经过测试,本次YOLOv4车辆识别算法模型的MAP值达到了96.4%。
3.3.2 模型算法交并比
IoU(Intersection over Union,交并比)用来评价目标检测结果中真实检测框和预测检测框之间的重叠程度。在深度学习以及其他目标检测算法中,IoU被认为是一个算法模型预测区的综合计算测量指标,表示预测区域边界和真实预测边界的一个交集。IoU值越高,说明模型预测越准确;反之,当IoU偏低时,表示模型性能较差。通过脚本测试发现,此次车辆目标检测识别算法模型中的IoU大于0.5。
表4为YOLOv4目标检测识别算法和通过K-means改进的YOLOv4目标检测识别算法的对比结果。通过对比改进前后算法对同一车辆的识别率可得出两者置信率相差16%。识别结果如图3所示。
表4 YOLOv4算法与改进后的YOLOv4算法对比
图3 改进算法前后识别结果对比
本项目在检测识别时,使用DeepSort目标跟踪算法进行相应检测分析,并实施对车辆的跟踪计数,从而完成对车流量数据的统计,结果如图4、图5、图6所示。标出的矩形框代表跟踪检测框,并且在矩形框的右上角标注了识别出来的目标类别以及计数结果。
如图4所示,在白天正常光线下,基于改进的YOLOv4目标识别检测算法和DeepSort目标跟踪检测算法的多车辆目标跟踪算法在实际道路上取得了较好的识别效果,对出现的车辆都可以检测并进行跟踪计数。
图4 白天情景识别跟踪检测结果
图5展示了夜晚光线较差情况下对车辆连续不间断的跟踪结果。可以看到,在光线较差的场景中,本文设计的算法所反映的目标跟踪性及目标识别成功率仍保持稳定,既可以在连续的车辆中识别出该车辆的类别,也做到了在连续识别之后的车辆跟踪和无ID切换。
图5 夜晚情景识别跟踪检测结果
如图6所示,对傍晚的车辆进行连续识别跟踪可得出,本文的算法模型鲁棒性较好,漏检现象更少,在车辆不断加入并且消失的情况下,还是可以保持识别和跟踪计数功能。但是当162号识别目标加入识别区域时,由于傍晚的光线不均匀,亮度偏低,出现了识别错误的情况。
图6 傍晚情景识别跟踪检测结果
针对传统车流检测方法效率相对低下的相关问题,本文提出了基于K-mean聚类的改进YOLOv4目标检测算法和DeepSort目标识别跟踪算法,完成了对车流量的检测。YOLOv4目标检测算法与DeepSort跟踪算法相辅相成,改进后的YOLOv4高精度识别效果弥补了DeepSort的不足,增强了最后测试的识别跟踪精确率。实验证明,即使在所识别目标连续变化环境下该算法仍具有较好的识别及跟踪性能,把这两种算法相结合,提高了目标跟踪的稳定性,漏检现象更少,鲁棒性更好,证明了改进算法的有效性。