一种基于单目视觉的前车识别系统设计
2020-03-03程泊静刘红业胡鸿飞刘洋
程泊静 刘红业 胡鸿飞 刘洋
摘 要:在车路协同环境下,为了提高智能汽车的行驶安全性,需要针对前车实时检测与识别进行研究。当前的前车识别系统中存在着成本高昂、系统稳定性差和无法对移动车辆进行准确定位等一系列问题。本文中使用單目摄像头进行前车识别系统设计,并基于YOLOv3来实现前车的实时检测、位置跟踪和识别。通过在车辆端和路侧端上的摄像头布置该系统进行实验与理论验证,发现本系统有较好的识别精度和较高的性价比。
关键词:单目相机 前车识别 YOLOv3
A Design of Vehicle Front Recognition System Based on Monocular Vision
Cheng Bojing,Liu Hongye,Hu Hongfei,Liu Yang
Abstract:In a vehicle-road collaborative environment, in order to improve the driving safety of smart cars, it is necessary to conduct research on real-time detection and recognition of the preceding vehicle. The current front vehicle recognition system has a series of problems such as high cost, poor system stability and inability to accurately locate moving vehicles. In this paper, a monocular camera is used to design the vehicle in front of the system, and based on YOLOv3 to realize the real-time detection, position tracking and recognition of the vehicle in front. Through the arrangement of the camera on the vehicle end and the roadside end of the system for experimental and theoretical verification, it is found that the system has better recognition accuracy and excellent performance.
Key words:monocular camera, vehicle in front recognition, YOLOv3
无人驾驶技术是目前国内外研究的重点技术之一,不论对政府还是企业来说,都具有极大的研究价值与应用意义[1]。跟车工况是指汽车在行驶过程中跟随前车并保持安全车距的一种驾驶工况,这是汽车行驶过程中最常见且最重要的工况之一。对于无人驾驶汽车来说,跟车工况的执行情况直接关系到汽车的安全性和舒适性,因此也决定了人们对无人驾驶技术的接受程度[2]。前车识别是实现跟车工况执行的关键技术之一,良好的前车识别技术让实现自动驾驶普及成为可能[3]。
1 前车识别算法
1.1 传统的前车识别方法
传统的前方车辆识别方法主要通过特定区域框选和手工特征提取后进行机器学习来实现。这些算法主要是包括对前方车辆进行目标提取和目标识别两个过程[4]。常见的算法有:AdaBoost(自适应提升)+Harr(监督分类器)、SVM(支持向量机)+HOG(方向梯度直方图)、DPM(可变组件模型)算法等。这些算法普遍无法适应复杂的实时路况下前车识别,例如:SVM+HOG算法很难处理遮挡问题,车辆方向发生变化时也不易检测;DPM算法虽然直观简单、运算速度快,但激励特征人为设计,工作量大,无法适应大幅度的旋转,稳定性很差。虽然这些算法无法适应车路协同、自动驾驶条件下的前车识别要求,但因为其成本低、技术成熟而被广泛应用于固定车牌识别、人脸识别等应用场景。
1.2 基于深度学习的前车识别方法
当前,基于深度学习的前车识别方法主要有R-CNN、SSD以及 YOLO系列等[5]。R-CNN和Fast R-CNN、Faster R-CNN等模型需要对一个区域进行候选框提名,并将候选框带入卷积神经网络进行运算,因此在复杂环境下容易造成候选框过多、运算量极大,从而导致识别速度降低。而 SSD 和YOLO 系列是一个网络直接回归出目标的类别和位置,不存在R-CNN的问题,因此目前被更广泛的应用于车路协同、自动驾驶环境下的前车识别系统中。值得一提的是,经过学者们反复实验验证发现,SSD模型会因为环境复杂度的增加而导致运行速度下降。因此在目前的软硬件条件下,选择YOLO系列将更加合适。
2 YOLO系列模型概述
YOLO(You Only Look Once),YOLO没有显示求取region proposal的过程,因此与R-CNN相比,YOLO统一为一个回归问题,而R-CNN将检测结果分为两部分求解。
YOLOv1的核心思想是将整张图片作为网络的输入(类似于Faster-RCNN),直接在输出层对BBox的位置和类别进行回归。实现方法是将一幅图像分成SxS个网格(grid cell),如果某个对象的中心落在这个网格中,则这个网格就负责预测这个对象(如下图1所示)。
YOLOv2相对v1版本,提出了联合训练算法,这种算法可以把这两种的数据集混合到一起。使用一种分层的观点对物体进行分类,用巨量的分类数据集数据来扩充检测数据集,从而把两种不同的数据集混合起来。在继续保持处理速度的基础上,识别对象和识别准确度均有较大提升(如图2所示)。
YOLO v3的模型增加了一定的复杂性,可以通过改变模型结构的大小来权衡速度与精度。YOLO v3在识别图像时会利用了图像中的全局信息,通过单一网络评估进行预测。这令 YOLOv3 非常快,一般它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。YOLO v3使用Darknet-53(网络结构如图3所示)作为基础网络来提取图像特征进行识别。
2020年以来,YOLO v4和YOLO v5相继推出,它们的检测速度更快、模型更小因此更适合布置在终端设备上,但在前车识别系统中能否稳定、可靠、精准的应用还有待考证。
3 实验与结果分析
实验环境:模型使用 python3.6 进行编译和测试,对应的开发工具 Pycharm,主计算机视觉库 Python-OpenCv3.4.2,操作系统 Windows10,CPU 为 i9-9900K 的十六核处理器,主频 3.60GHz,显卡 GeForce RTX 2080Ti,内存 64GB,硬盘容量 1TB SSD。
硬件平台:
车载实验平台:北汽EU150自动驾驶汽车,FLIR單目摄像头(如下图4所示)。
路侧实验平台:大华单目摄像头(枪机),如下图5所示。
实验结果:
将路侧视频输入识别系统后,效果如图6所示。
利用line命令统计越线的车辆总数与人工计数,每次计算十分钟,总共截取视频50段,比较后发现系统识别效果如下表1所示。
4 结语
为了提高车路协同、无人驾驶环境下,智能车辆跟车工况的安全性,本文利用YOLOv3模型开发除了一种基于单目视觉的前车识别系统。该系统能极大的提高智能车辆在复杂环境下的车辆识别效率、速度,从而达到提高车辆安全综合性能的目的。目前,车辆识别系统在对于轿车、越野车、公交车等各种车辆识别效果上有不俗的表现,但对于行人识别效果上仍有进一步改进的空间。
湖南省教育厅科学研究课题:基于无人驾驶汽车跟车工况的制动控制技术研究(18C1463)。
参考文献:
[1]程泊静,陈刚,陈标,李治国.纯电动自动驾驶观光车的制动防抱死系统设计与研究[J].装备制造技术,2018(03):54-57.
[2]朱敏,陈慧岩.无人驾驶越野车辆纵向速度跟踪控制试验[J/OL].机械工程学报:1-7[2018-12-04].
[3]顾恭,徐旭东.改进YOLOv3的车辆实时检测与信息识别技术[J/OL].计算机工程与应用:1-17[2020-11-11].
[4]陈高攀,徐美华,王琪,郭爱英.一种基于单目视觉的前方车辆检测算法[J].上海大学学报(自然科学版),2019,25(01):56-65.
[5] 许洋,赵亚男,高利,高峰.基于单目视觉的车辆检测与跟踪[J].激光杂志,2020,41(05):18-22.