基于YOLOv5算法的智能安全驾驶监测系统
作者: 赵江月 陈晓晴 袁灿 汪将剩 刘岚清
关键词:智能安全驾驶;监测;YOLOv5算法;辅助驾驶;行为识别
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2023)08-0055-04
0 引言
近年来,我国经济持续增长,人们对便捷交通的需求不断上升,汽车成为居民生活的一部分,机动车数量不断增加,中国汽车保有量将达到3亿辆,安全驾驶就显得尤为重要,例如发生的公交车坠湖,酒后驾驶引发悲痛事故等。机动车数目的增长在一定程度上增加了交通路况的复杂度、驾驶汽车行驶的难度,因此大量交通事故仍在上演。现存的各式各样的辅助驾驶工具就是为了有效解决这个问题。就现下交通情况、数据统计、事故分析来看,驾驶辅助工具创新和研发方向在当代中国交通仍有很大的发展空间。
随着人工智能技术的不断革新突破,智能辅助驾驶的实现也有了更新的突破。本系统的设计目标旨在通过使用计算机视觉及驾驶员行为分析、深度学习网络等多种技术,对车内场景驾驶员的静态与动态行为进行识别和检测分析,通过对驾驶员生理数据指标的检测为驾驶员进行安全辅助,对其进行相对应的反馈、信息提示,增加驾驶员的行车安全性,以防止交通事故的发生。
1 系统功能介绍
本设计在基于移动端、物联网、机器视觉和人脸识别技术的基础上,开发了一套可进行人机交互设备,在终端使用的进行实时监测驾驶员状况,收集数据进行存储分析并实时提醒、拨号预警、实时定位的智能安全驾驶检测系统。
1) 酒后驾驶监控系统:在汽车方向盘安装酒精检测传感器,判别驾驶员是否存在酒后驾驶,若有自动拨号家属联系人;
2) 驾驶员行为状态监控系统:在驾驶员前方增加摄像头,并指向驾驶员的面部,提供驾驶员实时行为状态,如闭眼、打哈欠、注意力不集中、打电话、抽烟等并发出语音警告;
3) 组建制作智能可穿戴设备,可以使用现有成熟产品,测量出车主的体温、心跳、血压、血脂等指标;
4) 将以上收集的信息数据进行存储分析,生成健康报表提供给用户,若驾车行驶指标突发异常,自动拨号家属联系人,并上报实时位置。
2 研究解决的问题
目前研究工作处于中期阶段,初步思想已经形成,以下是主要解决的几个方面。
2.1 研究重点
1) 行为监控系统:针对车载场景,实时识别驾驶员使用手机、抽烟、不系安全带、未佩戴口罩、闭眼、打哈欠、双手离开方向盘等动作姿态,分析预警危险驾驶行为,提升行车安全性;
2) 酒驾监控系统:在汽车方向盘安装酒精检测传感器,判别驾驶员是否存在酒后驾驶,若有自动拨号家属联系人;
3) 健康信息收集分析系统:组建制作智能可穿戴设备,测量出车主的体温、心跳、血压、血脂等指标;将以上收集的信息数据进行存储分析,生成健康报表提供给用户,如若驾车行驶指标突发异常,自动拨号家属联系人,并上报实时位置。
2.2 研究难点
1) 酒精检测器、智能可穿戴设备等硬件的组建制作问题;
2) 由不同硬件产生的数据来源与数据传输;
3) 基于机器视觉、人脸及姿态识别的驾驶员行为检测算法模型、驾驶行为的特征提取;
4) 行为监控系统能否适用于不同出租车、客车、公交车、货车等多种典型车载场景(已解决,主要考虑公共交通汽车);
5) 后台健康指标数据的自动采集与智能分析,正确的医学生理数据处理方法。
3 现有研究借鉴
1) 针对驾驶员行为状态的监测,国内外研究者提出了以下方法:基于深度学习识别驾驶员的驾驶行为。如彭家骏[1]基于深度学习的云端识别模型,使用MTCNN人脸检测网络提取人脸局部与全局特征,并通过深度残差神经网络ResNet识别驾驶员行为,该算法对四种行为(打哈欠、打盹、抽烟和打电话)都可以达到97%及以上的正确率。
2) 为解决云端识别的数据的传输以及传输过程中的信息安全,郑磊[2]等人提出选取轻量级网络模型Mobilenet V3作为驾驶行为识别模型,采用State Farm数据集训练模型。
3) 针对驾驶员健康生理信息数据的收集与分析,国内外研究者提出以下几种方法:李秀静[3]等人通过多种微型传感器测量出车主的体温、体重、心跳、血压、血脂、酒精、视力等指标数据,与云端大数据模型进行比对,进行车主健康分析、车主健康趋势分析、车主指标分析等,之后通过图表、文字、语音等可视化、数据化的形式为车主提供健康报告和建议。
4) 考虑到驾驶员疲劳之后,黄创新[4]等人提出方向盘角度数据和汽车偏移路面中心线位移数据之间存在的关系会明显不同,把驾驶员疲劳系统看成是一个黑箱系统,系统的输入是汽车的方向盘角度ɑ,输出是汽车偏离路面车道中心线的纵向位移S。当车辆驾驶者陷入昏昏欲睡状态时,可以通过车辆方向盘的角度和汽车偏离路面车道中线的位移来探测出这种状态,进而避免交通事故的发生。
4 算法概述
本系统采用的是YOLOv5算法,Yolov5的网络结构主要由Backbone、Neck、Head 构成,其中Backbone主要使用CSPdarknet+SPP 结构,Neck 使用PANet 结构,结构图如图1所示。
Yolov5使用CSPDarknet作为Backbone,从输入图像中提取丰富的信息特征。CSPNet解决了其他大型卷积神经网络框架Backbone中网络优化的梯度信息重复问题,将梯度的变化从头到尾地集成到特征图中,因此减少了模型的参数量和FLOPS数值,既保证了推理速度和准确率,又减小了模型尺寸[5]。
算法思想主要是将一幅图像分成SxS个网格(gridcell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object,如图2所示。每个网络需要预测B个BBox的位置信息和confidence(置信度)信息,一个BBox对应着四个位置信息和一个confidence信息。
5 系统实现
系统模块设计。本系统的辅助场景为车内场景,通过真实车内驾驶员的场景获取驾驶员行为动作、环境酒精浓度生理指标数据,对实时视频解码后获取原始图像数据[6]。对原始图像数据进行数据预处理后,使用YOLO5算法对驾驶员的行为进行识别分类,最后前端给予处理结果反馈。
大数据项目共分三大模块,三者相辅相成,共同构成了智能安全驾驶监测系统的相应功能。
1) 检测模块
通过摄像头与传感器共同工作,检测各种信息,如驾驶员酒精浓度,驾驶员生理指标数据等。通过检测来获取各种数据,并把数据发送给预警模块,使预警模块来完成相应的工作。
2) 识别模块
通过摄像头获取到的信息对信息进行识别,识别到驾驶员的行为动作,如使用手机、抽烟、不系安全带、未佩戴口罩、闭眼、打哈欠、双手离开方向盘等时,将通过识别获取到的数据传给预警模块,使预警模块能正常工作。
3) 预警模块
通过检测模块所获取到的各种数据在预知危险时进行预警:自动拨号预警、语音预警,来确保驾驶员的安全。
① 硬件设计
通过摄像头与传感器共同工作,检测各种信息,如驾驶员酒精浓度,驾驶员生理指标数据等。通过检测来获取各种数据,并把数据发送给预警模块,使预警模块来完成相应的工作。
本系统以单片机为核心,实现对各个模块的协调,在云端接收数据后进行分析反馈,并发送控制数据。
② 软件设计
6 应用效果
1) 车辆定位显示。通过小程序组件布置、调用实时地图和实时位置,显示车辆此时的位置信息,地图的缩放级别为3~20;
2) 健康报告展示。通过外部摄像头和传感器返回数据,并经过后端代码和算法的分析与识别,最终展示了一份完整的健康报告;
3) 行为识别展示。驾驶员点击开始驾车进行酒精检测和身体数据检测,检测完后可以进入识别界面进行监测,当点击停止驾车后,系统将不再识别,并返回地图展示界面。
7 功能测试
7.1 主功能测试
1) 测试用例
①photo test_001
②photo test_002
③photo test_003
2) 功能测试
①photo test_001
测试结果:"both_hands_leaving_wheel"=0.659,"eyes_closed"=0.013,"no_face_mask"=0.996,"not_buck⁃ling_up" =0.965, "smoke" =0.003, "not_facing_front" =0.041,"cellphone"=0.015,"yawning"=0.000,"head_low⁃ered"=0.33
期望结果:
"both_hands_leaving_wheel" <0.7, "eyes_closed" <0.55, "no_face_mask" >0.75, "not_buckling_up" >0.44,"smoke"<0.48,"not_facing_front"<0.5,"cellphone"<0.69,"yawning"<0.5,"head_lowered"<0.55
实际结果与期望结果是否一致:是
②photo test_002
测试结果:
"both_hands_leaving_wheel"=0.774,"eyes_closed"=0.857, "no_face_mask" =0.885, "smoke" =0.9999,"not_buckling_up" =0.198, "not_facing_front" =0.063,"cellphone"=0.1313,"yawning"=0.0165,"head_lowered"=0.001
期望结果:
"both_hands_leaving_wheel">0.75,"eyes_closed">0.55, "no_face_mask" >0.75, "smoke" >0.48, "not_buck⁃ling_up"<0.44,"not_facing_front"<0.5,"cellphone"<0.69,"yawning"<0.5,"head_lowered"<0.55
实际结果与期望结果是否一致:是
③photo test_003
测试结果:
"both_hands_leaving_wheel"=0.067,"eyes_closed"=0.0004,"no_face_mask"=0.002,"not_buckling_up"=001,"smoke"=0.003,"cellphone"=0.857,"not_facing_front"=0.001,"yawning"=0.0001,"head_lowered"=0.000
期望结果:
"both_hands_leaving_wheel"<0.75,"eyes_closed"<0.55, "no_face_mask" <0.75, "not_buckling_up" <0.44,"smoke"<0.48,"cellphone">0.69,"not_facing_front"<0.5,"yawning"<0.5,"head_lowered"<0.55