基于机器视觉的疲劳驾驶检测系统
2020-12-07谢豆陈晓凤郑嘉怡刘文军
谢豆 陈晓凤 郑嘉怡 刘文军
摘 要:汽车保有量的持续增加为人们出行带来了极大便利,同时因疲劳驾驶等不当行为引发的交通事故亦频繁发生,严重威胁着广大群众的生命财产安全。考虑到传统的视频监控无法对此进行实时监测与预警,针对这一情况,利用机器视觉和边缘计算模型来实现对驾驶员驾驶行为的监测和预警。文中给出了完整的系统架构设计和实现方案,可显著降低交通事故发生的概率,具有很好的应用价值。
关键词:机器视觉;边缘计算;实时监测;驾驶行为分析;疲劳驾驶检测;实时显示
中图分类号:TP399文献标识码:A文章编号:2095-1302(2020)11-00-03
0 引 言
由《2019—2025年中国交通事故现场勘查救援设备行业市场专项调研及投资战略研究报告》可知:每年发生的交通事故平均高达19万起,其中每年因交通事故而死亡的人数达到6万之多。事故的发生多因驾驶员疲劳驾驶等行为造成。据统计,截至2017年,我国六大省市民用汽车保有量超过1 000万辆,机动车驾驶人数量达3.85亿人,汽车驾驶人数超3.42亿人。汽车产业的发展不仅有助于经济增长,更为人们的出行带来了极大便利,但频发的交通事故也为我国交通治理带来巨大挑战。
行车记录仪和道路摄像头等传统的監测方式普遍存在智能效果不足等弊端,容易造成存储和计算资源的巨大浪费。通过机器视觉等新技术对驾驶员的疲劳驾驶等典型不当行为进行判定,从而规范驾驶员的驾驶行为,大大降低交通事故的发生概率。基于机器视觉的驾驶行为分析受到了相关行业企业的关注[1-5],其中文献[2]给出了该领域的最新研究进展,文献[3]和文献[4]基于人脸识别和特征点给出了驾驶行为检测解决方案。文献[5]则采用人眼状态信息的非接触式方法给出疲劳驾驶识别方案。在产业界方面,诺思达公司提出使用机器视觉分析驾驶行为,其分析深入,模式多样,但功能不够丰富,设备费用成本较高,且易受驾驶环境的影响。此外,文献[6]基于边缘计算模式给出了视觉推理方面的相关探索。
本文根据实际需要,使用车载终端获取车内摄像头的视频数据,运用机器视觉技术对驾驶行为进行监测和预警,采用边缘计算模型对获取的数据进行有效分析和利用。该模型将数据传入就近设备进行分析,提醒驾驶员并反馈,以有效解决传统方案中存在的高延迟、传输代价高、宽带需求高等问题。此举不仅减少了驾驶员因驾驶行为不当而引发的交通事故,更降低了交通管理难度,提高了运行效率。
1 总体方案
1.1 系统架构
基于机器视觉的驾驶行为监测服务平台分为边缘端、云端两大部分。驾驶行为分析平台结构如图1所示。
1.1.1 边缘端
边缘端硬件平台包含摄像头、数据处理终端、GPS单元、通信模块以及边缘计算服务器等。为传统车辆环境下的摄像头增加处理单元并与边缘计算服务器交互,可解决车辆内部多路摄像头视频流采集、编码及协同工作等问题。该层负责驾驶行为视频数据的采集、存储,并提供硬件设备支撑。视频设备开启后,对司机的驾驶行为数据进行采集和预处理,并基于算法或预训练模型进行边缘端推理,必要时与边缘服务器进行计算交互。
1.1.2 云平台
边缘端进行本地驾驶行为数据分析后,需要把分析结果、宏观信息以及实时性要求低的其他分析任务上传云端,借助处理性能更强的云服务器完成进一步分析。云平台通过对计算、存储和网络资源进行池化整合,为应用服务提供支撑。基于实际需要将计算结果推送至Web端展示,管理人员可以通过数据大屏、手机APP等方式查看,为运营管理、决策提供数据支持。同时,也可以通过语音等方式对驾驶员本人的不当驾驶行为进行实时预警。
1.2 系统功能模块
本平台以疲劳驾驶实时检测为主要目标,具有驾驶行为数据采集、存储、分析以及展示等功能,具体如图2所示。
1.2.1 驾驶行为识别
基于视频数据完成疲劳驾驶行为识别是本平台的核心,实现思路如下:
(1)使用典型的视觉库准确识别出人脸,并精确定位需要判断的区域;
(2)借助视觉处理库对图片进行裁剪、缩放、灰度化、归一化等预处理,提高识别准确率;
(3)抽象计算公式,通过算法完成特定行为的识别,如对眨眼、打哈欠等行为的识别。
1.2.2 违规警报
系统完成不当驾驶行为识别后,需要及时发出预警。基于边缘分析设备的支持,系统对获取的本地视频进行分析。使用已经训练好的识别模型对司机的驾驶行为进行实时分析,当发现违规驾驶行为时,语言模块会向司机发出语音警报,并将违规数据上传至云平台备份。系统的语音合成是基于HTTP请求的REST API接口,使用Python将设定好的文本转换为特定格式的音频文件,将合成的语音内容嵌入边缘设备脚本中用于及时对司机的违规驾驶行为进行报警。语音提示的音色与音量可由用户通过硬件设备调节。
1.2.3 实时监控
除了本地的行为识别和实时预警功能,系统可以通过后台程序获取车内视频流的地址,将处理后的视频推送到前台调用,并在Web端显示。监管人员无须安装应用程序即可通过浏览器页面查看车载终端实时上报的指标数据,特别是运营车队,监管部门能够实时了解驾驶员的驾驶情况。系统不仅支持实时车内视频显示,还可对司机的历史违规情况进行查阅,实现了安全驾驶的准确监控。
2 系统设计
2.1 疲劳驾驶检测
疲劳驾驶预测流程如图3所示。系统读取视频后,从视频中跳帧读取图片,检测到人脸后提取眼睛和嘴巴区域,并对该区域进行判断,之后根据判断情况给出相应的提示。参照文献[1],本系统根据眼睛纵横比(Eye Aspect Ratio,EAR)以及嘴巴纵横比(Mouth Aspect Radio,MAR)来判断驾驶员是否存在疲劳驾驶行为。为提高检测效率,系统对读取的视频采用跳帧方式提取图片,并用Dlib模型提取人脸坐标的68个坐标点。从坐标轴中提取眼睛和嘴巴区域进行开合度计算。
公式(1)给出了EAR的计算方法,其中(P1, P2, ..., P6)为采用Dlib模型提取的人脸坐标点中眼睛的坐标。文献[1]经实验得出,当产生困意时,眼睛开合度减小,当眼睛开合度小于设定的阈值(经试验,本系统的最佳阈值为0.275)且小于阈值的次数大于8(经试验,本系统的最佳阈值为8)时则认为驾驶员疲劳驾驶,系统将进行提示报警。同理,公式(2)中嘴巴纵横比表示嘴巴的开合度,其计算方法也运用了同样的原理。通过提取相应坐标点并计算嘴巴开合度,将它与设定的阈值(经试验,本系统的最佳阈值为0.65)进行对比,如果大于阈值,且哈欠的次数大于设定值,打哈欠的时间小于等于限值(600 ms),则表示驾驶员存在睡意。
2.2 边云协同
车载端通过网络与车内外环境连接。车载端主要负责采集驾驶行为视频数据,并进行预处理和本地推理,基于识别算法进行违规驾驶行为识别和报警。由于设备端计算资源不足,难以保证复杂识别任务的执行和分析效率,因此选择在公交站点等局部区域设置边缘服务器,完成更为复杂任务的分析。设备端与边缘服务器通过局域网络连接,该模式有助于解决远距离通信带宽限制和隐私数据的保护等问题。边云协同计算架构如图4所示。
云端主要负责视频数据的宏观分析、离线分析、复杂计算以及查询显示等任务。云端支持海量设备的实时显示以及对历史数据进行备份等。边云协同的做法发挥了边缘侧和云端各自的优势,不仅节约了传输成本,更大大提高了检测效率,减少了数据与资源的浪费。
3 系统实现
图5右侧区域展示的为驾驶员违规驾驶行为的历史记录。
驾驶行为识别模块采用Python作为开发语言,运用机器视觉对获取的视频数据进行处理和分析,以此来判断驾驶员驾驶行为是否规范,并给出相应预警。云平台端使用Java语言进行开发,通过消息组件实现可靠和并发的数据接收。Web端采用Spring MVC框架实现业务分离,提供简单明了的显示界面。图5所示为驾驶行为分析系统可视化展示界面。图5左侧区域显示接入車辆的车牌号;中间区域为各车辆所对应的摄像头实时监测画面,如摄像机01检测到驾驶员处于正常行驶状态,摄像机02检测出驾驶员疲劳驾驶,摄像机03对驾驶员是否抽烟进行判断,摄像机04对画面内的人脸进行检测。
4 结 语
针对疲劳驾驶识别应用的实际需求,本文给出了一种基于机器视觉和边云协同架构的平台设计与实现。首先,提供了系统的总体架构和主要功能模块构成;然后,给出了系统设计的细节部分,其中包括疲劳驾驶行为识别算法、边云协同架构等;最后,给出了疲劳检测与预警系统的实现结果,通过界面演示了识别情况。初步应用表明,该系统适用于多种车辆场景,具有较高的准确率和响应效率,较好地满足了实际需求。
参考文献
[1] TEREZA S and CECH J. Real-Time Eye Blink Detection using Facial Landmarks [C]// In 21st Computer Vision Winter Workshop, February,2016.
[2] RAMZAN M,HIKMAT U K, SHAHID A,et al. A Survey on State-of-the-Art drowsiness detection techniques [J]. IEEE Access,2019(7):61904-61919.
[3] CONSTANTIN L,FOSALAU C,ZET C,et al. Driver Monitoring Using Face Detection and Facial Landmarks [C]// 2018 International Conference and Exposition on Electrical And Power Engineering (EPE),October,2018.
[4]黄家才,旷文腾,毛宽诚.基于人脸关键点的疲劳驾驶检测研究[J].南京工程学院学报(自然科学版),2017,15(4):8-13.
[5]李建平,牛燕雄,杨露.基于人眼状态信息的非接触式疲劳驾驶监测与预警系统[J].激光与光电子学研究进展,2015,52(4):83-88.
[6] LI E,ZHOU Z,CHEN X. Edge Intelligence:On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy [C]// ACM SIGCOMM Workshop on Mobile Edge Communications,Budapest,Hungary,August 21-23,2018.
[7]朱文杰.基于机器视觉的物体识别与抓取控制系统[J].物联网技术,2019,9(3):37-38.
[8]王坤.基于机器视觉的疲劳驾驶检测系统研究[D].杭州:杭州电子科技大学,2016.
[9]刘洪榛.基于机器视觉的疲劳驾驶检测算法研究[D].广州:华南理工大学,2012.
[10]岳翼.基于图像识别的模拟驾驶疲劳检测系统设计及实现[J].电子世界,2016,38(22):69-70.