王世孚 罗惠铎 黄婷 徐飞儿
摘 要:基于汽车辅助驾驶技术,文章旨在设计出一款能在一定程度上辅助驾驶者“观察”道路情况以及道路发生险情时及时预警的车载汽车辅助驾驶系统。系统采用OpenCV、YOLOv3算法以及语义分割模型,依赖开源学习库、程序库通过YOLOv3算法监测模型和语义分割算法完成车道线检测以及人物、车辆等障碍物的检测与识别,通过识别内容作为判断路况依据并做出相应的提示,达到辅助驾驶的目的。
关键词:汽车辅助驾驶;目标检测;YOLOv3;语义分割;车道线检测
中图分类号:TP391.41;U463.6 文献标识码:A 文章编号:2096-4706(2020)18-0013-04
Abstract:Based on the vehicle assisted driving technology,this paper aims to design an on-board vehicle auxiliary driving system which can help the driver to “observe” the road situation and give early warning when the road is in danger. The system uses OpenCV,YOLOv3 algorithm and semantic segmentation model,relies on open source learning library and program library,completes lane line detection and identification of people,vehicles and other obstacles through the monitoring model and semantic segmentation algorithm of YOLOv3 algorithm. The recognition content is used as the basis for judging road conditions and making corresponding prompts to achieve the purpose of assisting driving.
Keywords:automobile assisted driving;target detection;YOLOv3;semantic segmentation;lane line detection
0 引 言
汽车辅助驾驶系统旨在结合传感器技术、视觉识别技术、定位导航技术等多种先进的科学技术,构建一个庞大的汽车驾驶应用,设计出一款能够辅助驾驶者避免发生交通事故的车载汽车辅助驾驶系统。通过摄像头设备采集获取汽车行驶环境图像数据,经过计算机视觉算法与技术对于行车道路的车道线位置和可能出现的障碍物(包括汽车、行人等)做出识别并判断,快速收集图像中的对象信息,判断车辆的位置是否偏离车道以及障碍物的存在并及时地对驾驶者做出预警提醒。
纵观汽车安全配置发展历程,汽车由此前搭配的简单样式配置时代逐渐发展到了复杂的车载辅助系统的时代,驾驶场景也由此前完全靠人为的观察、预判、行为反应到现在汽车能够自动预警甚至自主控制汽车,保护了驾驶者自身乃至其他道路使用者的安全。要实现这一能力,视觉系统是关键部分。从导航协助到自主化驾驶,必须采用可靠和安全的技术,而视觉处理技术提供了视觉系统应用所需的性能和功能。
基于全球汽车电子市场在未来几年内都将保持着高速增长的预测,桂林电子科技大学组织了由导师教授指导、学生自主研发的创新创业团队,提出并研发汽车辅助驾驶系统。通过整合硬件、软件和算法,结合计算机视觉与主流的检测识别算法YOLOv3,在智能手机上实现辅助驾驶。根据软件工程原型设计的理念,目前已经初步完成了PC端的系统开发,能够做到路况信息的实时采集和分析,现已進入PC端测试阶段。
1 系统技术路线
系统技术路线如图1所示。
先由摄像头组采集信息,接着由摄像头组中的EPS8266模块通过Wi-Fi传输云平台。同时将BOF算法和计算机图像处理构架在云平台中。云平台接收到了摄像头组采集的信息后,使用OpenCV模块读取视频文件,使用YOLOv3算法完成行人、汽车检测模型以获取车辆、行人等坐标框和类别以及置信度,使用语义分割模型来完成车道线检测获取分割掩码图。检测识别的数据发回到用户的手机端APP,由APP为驾驶人进行提醒。
2 汽车辅助驾驶系统设计
系统有四个部分功能构成,具体功能要实现的功能有如下四点:
(1)道路信息采集功能:外置的微型摄像头组合的高清摄像头实时采集车辆附近道路信息,并将信息由ESP8266模块通过Wi-Fi传输云平台。
(2)图像检测识别功能:使用YOLO算法、语义分割等方法,对车道线和障碍物等道路信息进行图像检测识别。由YOLOv3算法的检测模型得到图像中车辆、行人等障碍物的坐标框、类别、置信度;利用语义分割模型得到语义分割掩码图。然后完成在原图像文件上的标注操作,作为可视化结果的复现。
(3)结果可视化功能:PC端使用PyQt5编写的UI界面是用于模拟测试的展示平台,主要由文件、摄像头、检测、控制台输出四个部分组成。文件功能是系统输入环节的操作,可以将本地图像或者视频文件作为道路信息的输入,模拟代替通过现实中摄像头直接获取的图像信息;通过摄像头选项可以对摄像头进行打开关闭操作;检测是对系统输入的图像视频文件进行检测识别操作;控制台输出是展示图像、视频的检测识别结果,并且进行原图像和结果图像进行对比展示,包括同时在图像、视频播放界面显示识别出的车道线、行人等。
(4)预警提示功能:对由图像检测识别算法模块得到的图像信息检测识别结果进行解析判断处理,完成后根据道路情况数据做出相应的提示,主要是常规的汇报道路情况以及特殊情况下的险情规避提示。比如,当检测到前方出车辆行人,系统提醒驾驶员注意车速等。
功能模块设计功能结构图如图2所示。
2.1 道路信息采集模块设计
道路信息采集模块是通过不同角度的外置微型摄像头组合(模拟测试时选择成品STM32智能小车搭载的高清摄像头)实时采集车辆附近道路信息;存储传送方式方面选择由摄像头中的ESP8266模块通过Wi-Fi传输云平台存储。具体的实现流程如图3所示。
2.2 图像检测识别算法模块设计
本图像检测识别算法模块练习过程中,使用YOLOv3算法的检测模型得到图像中车辆、行人等障碍物。首先下载数据集,提取含person数据并把数据格式转化为YOLO支持的格式,下载预训练权重。YOLOv3中,每个单元格对应使用了三个不同比例和大小的预选框,构建了和FPN目标检测算法相似的特征金字塔,利用不同大小、不同深度的特征层进行对不同大小目标的预测,最终得到的是车辆、行人的坐标框和类别和置信度;语义分割模型方法则对车道线进行图像检测识别,从输入图像开始就进行减少输入图像尺寸的操作节省运算,最终得到语义分割掩码图;最后再通过在原图标注的方式,实现检测识别结果的复现。图像检测识别实现流程如图4所示。
2.3 可视化模块设计
可视化展示的UI界面是用于模拟测试用的展示平台,PC端使用PyQt5编写Python脚本的应用界面程序,主要由摄像头、检测、控制台输出三个部分组成。其结构如图5所示。
模拟测试可视化UI界面模块实现了结果的展示,对于每个内容的操作功能描述如表1所示。
已完成的PC端中既可以从本地文件中选取视频文件或图像文件,也可以选择调用摄像头,将识别标注好的路况信息展示在控制台,如图6、图7所示。
2.4 预警模块设计
预警模块的实现是通过对道路信息的识别结果进行分析,目前的功能就有路况信息汇报、车道线偏离预警、行人与车辆碰撞预警。
2.4.1 车辆偏离预警
车道线偏离的判定,是在车道线识别的基础上,对车道线进行提取,得到车道线方程后,根据左右车道线方程的斜率以及行车方向获得车道线夹角,通过车道线夹角定制车道线偏离决策方法来判定车辆是否存在偏离行车道的可能,并借助智能手机的语音播报功能给予驾驶员提醒。图8为车道线偏离判定的方法流程图。
2.4.2 路况信息汇报、行人与车辆碰撞预警
在行人与车辆的检测识别中,一方面是统计流量并实时播报,提醒驾驶员注意车速;另一方面,获取到行人和车辆的坐标和障碍物的类别,将获取到的坐标和类别记录下来,推送到终端,由终端发出预警提醒。
3 结 论
汽车辅助驾驶系统涉及硬件、软件、算法,系统集成化高,通过车辆装载的摄像设备直接获取道路图像信息,然后交由系统图像检测识别算法模块检测识别车道线以及行人、汽车等障碍物并收集数据信息,及时地提示驾驶员注意规避,在一定程度上完成辅助驾驶的职能。本系统的主体任务实现在于图像检测识别算法模块,故设计重点难点主要是该模块的算法实现,在结合主流的算法、模型进行开发的过程中做出了适当的调整与优化。本系统的不足在于没有加入对距离的感知,不能感知前方行人和车辆的距离,这会导致对驾驶员的提醒不是很精准;如果加入距离的感知,就能够根据距离对险情做出普通提醒还是强提醒,能够有效规避险情,提升安全驾驶体验。其次是目前识别的障碍物只有行人和车辆,对一些其他障碍物如石头、墙壁、路灯等没有进行训练,只有完善对障碍物的识别才能更大程度的保障驾驶者的安全。
在辅助驾驶系统研究领域,对于道路信息收集与分析的技术层出不穷,更优质、更高效的算法、模型方法在许多颇有建树的论文中被不断提出,目标检测算法在不断突破。本课题采用的YOLO是目前比较流行的目标检测算法,速度快结构简单,是计算机视觉领域目标检测的首选算法。在百度,上海万兴科技的汽车辅助驾驶方案中,结合了计算机视觉,也都运用了OpenCV、YOLOv3等图形处理技术来实现对路况的实时全方位监控跟踪,并给驾驶者及时发出预警提醒。在汽车智能化的时代背景下,先进的驾驶辅助系统前景十分廣阔。
参考文献:
[1] REDMON J,DIVVALA S,GIRSHICK R,et al. You Only Look Once:Unified,Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016:779-788.
[2] LIU C S,GUO Y,LI S,et al. ACF Based Region Proposal Extraction for YOLOv3 Network Towards High-Performance Cyclist Detection in High Resolution Images [J].Sensors,2019,19(12):2671.
[3] 方卓琳.基于YOLOv3的道路交通环境行人检测技术研究 [D].广州:华南理工大学,2019.
[4] 郑宝玉,王雨,吴锦雯,等.基于深度卷积神经网络的弱监督图像语义分割 [J].南京邮电大学学报(自然科学版),2018,38(5):1-12.
[5] LU J Y,MA C,LI L,et al. A Vehicle Detection Method for Aerial Image Based on YOLO [J]. Journal of computer and Communications,2018,6(11):98-107.
作者简介:王世孚(1998.11—),男,汉族,广西北海人,本科,研究方向:物联网工程;罗惠铎(1998.12—),男,汉族,广西玉林人,本科,研究方向:计算机科学与技术;黄婷(1998. 06—),女,汉族,广西桂林人,本科,研究方向:计算机科学与技术;徐飞儿,(1998.09—),女,汉族,重庆人,本科,研究方向:计算机科学与技术。