徐子睿 刘猛 谈雅婷
摘 要:基于深度学习算法,对智能交通中的车辆检测与流量统计问题进行探讨与解决。首先对YOLOv4算法进行介绍;然后使用YOLOv4算法进行实地的流量检测;之后选取统计区域,对视频中的car、bus、motorbike和truck四种类型事物进行流量统计;最后对实验结果的偏差进行了分析,并对重复识别现象提出了改进方案。该算法能基本满足车辆检测和流量统计的实时性和精度的要求。
关键词:YOLOv4;深度学习;目标检测;流量统计;智能交通
中图分类号:TP391.41 文献标识码:A 文章编号:2096-4706(2020)15-0098-04
Abstract:Based on the deep learning algorithm,this paper discusses and solves the problems of vehicle detection and traffic statistics in intelligent transportation. Firstly,the YOLOv4 algorithm is introduced;then the traffic detection is carried out by using the YOLOv4 algorithm;then the traffic statistics of car,bus,motorbike and truck in the video is carried out by selecting the statistical area;finally,the deviation of the experimental results is analyzed,and the improvement scheme for the phenomenon of repeated recognition is proposed. The algorithm can basically meet the requirements of real-time and accuracy of vehicle detection and traffic statistics.
Keywords:YOLOv4;deep learning;target detection;traffic statistics;intelligent transportation
0 引 言
伴随着人工智能进入国家战略层面的议程,以及人工智能技术的不断革新突破,智能交通系统必然会成为未来的发展趋势,要实现交通系统的智能化和自动化运行,就要将大量的交通信息利用计算机视觉技术进行处理,例如车牌识别、车辆识别与流量统计、无人驾驶等。其中,车辆识别与流量统计是实现降低交通拥堵程度,提高交通运输畅通性的基础,实施有效的交通监控对于解决交通问题具有积极意义。虽然基于深度学习的目标检测和目标跟踪技术得到了一定的发展,但其在智能交通领域的应用和发展尚不成熟,同时也缺乏新技术的引入。
车辆检测是流量统计的基础,属于目标检测的范畴。目前,基于计算机视觉的目标检测算法可分为传统的目标检测算法和基于深度学习的目标检测算法。传统的目标检测算法主要有光流法、帧间差分法和背景差分法,根据目标运动变化的原理进行识别。基于深度学习的目标检测算法是提取目标的深度特征来实现目标检测的,是一种依据目标形态学特征原理的识别方法。
流量统计是在车辆检测的基础上,对小轿车、卡车、公交车等机动车进行数量统计,并计算出车流量。目前,比较常用的车流量统计算法有两种,一是在视频中选取一个长宽比例较为合适的矩形区域,通过检测车辆是否通过该区域来统计车辆数目,这种方法在车流量较小时比较稳定,但在车流量较大时会出现漏检测的情况,对统计结果产生影响。二是设置两条垂直于道路的检测线,间距与车辆长度相当,通过检测车辆是否过线来统计车辆数目,这种方法仅适用于车型变化不大的情况,否则在车辆种类较多的情况下,检测线的间距难以设定。
自2012年以来,深度学习的引入使得目标检测和目标跟踪领域的技术水平不断发展,这为智能交通的发展提供了强大的理论基础。刘磊采用YOLO(You Only Look Once)算法识别车辆,针对YOLO算法在识别车辆方面的不足对网络进行优化,同时提出了一种基于YOLO的车流量统计方法。虽然基于深度学习的目标检测和目标跟踪技术得到了一定的发展,但其在智能交通领域的应用和发展尚不成熟,同时也缺乏新技术的引入。
笔者采用2020年4月开源的YOLOv4算法,以交通路口摄像头为视角,基本实现智能交通中的车辆识别与流量统计。
1 YOLOv4算法简介
深度学习算法在计算机视觉领域的应用已经历了近十年的发展,期间诞生了许多优秀的算法,其中YOLO系列算法以其“简洁”的优势独树一帜,在工业界广受欢迎。2016年5月,YOLO系列的第一个算法YOLOv1问世。YOLO之父Jeseph Redmon认为,之前的检测策略比较慢且难以优化,比如R-CNN为首的候选框+预测位置、分类的这种策略,其被业界称为Two-stage。YOLO作为One-stage的鼻祖,将目标检测看作为单一的回归问题,直接由图像像素优化得到物体边界位置和分类。
在Jeseph Redmon宣布隐退之后,Alexey Bochkovskiy接过了YOLO项目的大旗,并于2020年4月23日推出了YOLOv4。本章将从性能和创新点两个方面对这个在很长一段时间内都备受期待的新技术进行介绍。
首先,YOLOv4的性能给人最直观的感受就是比YOLOv3更快、更准。在COCO数据集上,YOLOv4达到了43.5 % AP,65 FPS。相较于YOLOv3,将AP和FPS分别提高了10%和12%。运行速度则是EfficientNet的2倍。
从创新的角度看YOLOv4,可能会让不少人感到失望,因为YOLOv4在本质上和YOLOv3差距不大。虽然YOLOv4没有给人一种耳目一新的感觉,但它还是做到了守正出奇、吸收先进算法优点的创新。
YOLOv4的网络结构分为输入端、BackBone、Neck和Prediction四部分。输入端的改进主要包括Mosaic数据增强、cmBN、SAT自对抗训练;BackBone主干网络则是将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock;对于Neck部分,目标检测网络在BackBone和最后的输出层之间会插入一些层,比如SPP模块、FPN+PAN结构;对于Prediction部分,输出层的锚框机制和YOLOv3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms。
2 车辆检测与流量统计
本章将使用YOLOv4算法,对交通路口摄像头拍摄的视频进行车辆检测与流量统计实验,并对实验结果进行分析,同时对算法给出一些改进的方案。
2.1 实验原理及仿真
整个算法的主要功能分为车辆检测和流量统计两部分。
2.1.1 车辆检测
车辆检测属于目标识别的范畴,检测精度将直接影响流量统计的结果。相较于光流法等传统的目标检测算法,基于深度学习的目标检测算法在检测精度方面有着质的飞跃,在视觉目标跟踪VOT2015大赛上,深度学习算法的检测效果远超传统算法,以碾压的姿态获胜。
车辆检测部分需要实现对常见机动车的识别,识别对象分别是car、bus、motorbike和truck。使用深度学习算法实现目标检测,重点在于数据集的制作和训练,但该过程工作量巨大、耗时长。而YOLOv4的COCO数据集可以实现对常见的80种物体的识别,如person、bicycle、car等,包含了上述四类目标,所以只需要对YOLOv4进行一些简单的配置,使用官方提供的yolov4.weights权重文件,即可实现对car、bus、motorbike和truck四类机动车的识别。
2.1.2 流量统计
流量统计部分是在车辆检测的基础之上,统计在一段时间内某条公路上所通过的标签为car、bus、motorbike和truck的目标。由于这四种机动车的尺寸差距较大,所以采用在视频中选取一个长宽比例较为合适的矩形区域的方法来进行流量统计。区域选取如图1所示。
在图1所示的路口,选取人行横道的矩形区域作为检测区域,当标签为car、bus、motorbike和truck的检测目标由下向上或由上向下通过该矩形区域时,车辆计数加一。
当统计一段时间内经过该区域的车辆数量之后,使用公式计算出车流量,公式为:
其中N为一段时间内经过该区域的车辆数量,t为对应的时间。算法流程如图2所示。
2.1.3 实验仿真
实验在R740服务器上的ubuntu系统中进行仿真,检测速度约为每秒22帧,能够满足实时性的要求。实验仿真效果如图3所示。
2.2 实验结果分析
从图3的仿真效果图可以看出,整体的检测效果较好,视频中的机动车没有出现漏检测的情况,仅部分motorbike标签的车辆出现了重复检测的现象。
本次实验对江南路与蓬莱路路口、凄江路口、双转盘三个交通场景进行了车辆检测和流量统计,实验统计结果和实际结果如表1所示。
从表1所列的数据不难发现,实验结果均略高于实际结果。从仿真效果图中可以发现,导致计算结果略高于实际情况的原因是motorbike标签的目标检测效果不佳,出现了重复识别的情况。
2.3 算法的改进
在明确了导致实验结果与实际结果存在偏差的原因之后,对现有的算法提出一些改进的方案。
就车辆检测而言,YOLOv4算法在兼顾检测速度的情况下,检测精度已经能够达到比较高的准确率,仅motorbike类别的物体出现了重复识别的情况,而且没有出现漏检测的情况,所以,并不需要花费巨大的精力修改神经网络来提升检测的效果。那么,应该从流量统计部分着手,对算法进行改进。流量统计部分的重点在于统计区域的选取和统计策略的制定,统计区域的选取与重复识别关系不大,那么就需要对统计策略进行完善。
重复识别现象的一个特点是检测框高度重叠,YOLOv4对检测框的存储格式为box结构体:typedefstruct box{float x,y,w,h;}box;其中x和y分别对应着检测框中心点的横坐标和纵坐标,w和h分别对应着检测框的宽和高。那么,针对motorbike标签的检测框的中心坐标可设置阈值,检测框的中心距离过近的目标可算作同一个目标,同时也可根据车上的person目标进行辅助判断。改进后的仿真效果如图4所示。
从改进后的效果图4中可以看出,motorbike重复识别的问题得到了解决。算法改进后的统计结果如表2所示。
从算法改进后的流量统计结果可以看出,实验统计结果与实际结果已经十分接近甚至相等了,实验结果与实际结果的差异是个别的错误识别导致的,但整体的检测效果得到了提升,算法的改进是有效的。
3 结 论
随着深度学习技术的发展,越来越多高性能的算法出现在人们面前。目前,很多基于深度学习的算法还只停留在理论上,设备的运算速度和庞大的数据一直是限制深度学习算法实际应用的主要问题。但伴随着5G技术的出现,深度学习凭借其高精度的优势,在智能交通领域的应用潜力是很巨大的。尤其是日趋成熟的基于深度学习的目标检测和目标跟踪技术,更是找到了用武之地。相信智能交通的发展,会有效的提升交通系统的运行效率和安全性,为人民群众的日常生活带来巨大的便利。
参考文献:
[1] BOCHKOVSKIY A,WANG C Y,LIAO H Y. YOLOv4:Optimal Speed and Accuracy of Object Detection [J/OL].arXiv:2004.10934v1 [cs.CV].(2020-04-23).https://arxiv.org/abs/2004.10934.
[2] 刘磊.基于YOLO网络的智能交通车流量统计研究 [D].西安:西安科技大学,2019.
[3] 张毓峰.基于深度学习的智能交通元素检测与识别 [D].福州:福州大学,2018.
[4] 李玺,查宇飞,张天柱,等.深度学习的目标跟踪算法综述 [J].中国图象图形学报,2019,24(12):2057-2080.
[5] 陈志欣.基于深度学习的视频目标检测算法研究与应用 [D].北京:北方工业大学,2019.
作者简介:徐子睿(1994—),男,汉族,江苏淮安人,硕士研究生,研究方向:计算机视觉。