李富 付璇 覃建宁 喻丛兵 谭劲松
摘 要:智能安全驾驶监测系统基于酒后驾驶监测模块、驾驶员行为状态监控模块、智能可穿戴模块和服务器端来实现系统的功能。酒后驾驶监测模块基于MQ-3型气敏传感器收集车内气体酒精浓度信息;驾驶员行为状态监控模块基于Dlib人脸识别和OpenCV计算机视觉实时计算驾驶员注意力集中程度;智能可穿戴模块基于各种内嵌式传感器芯片收集驾驶员的心率血压和体温等指标;服务器端基于阿里云ECS服务器,使用JAVA语言编程,为移动端APP提供优质的后台服务。
关键词:安全驾驶;汽车;传感器;物联网;智能可穿戴设备
中图分类号:TP277 文献标识码:A 文章编号:2096-4706(2023)06-0013-05
An Intelligent and Safe Driving Monitoring System
LI Fu, FU Xuan, QIN Jianning, YU Congbing, TAN Jinsong
(Wuxi University, Wuxi 214105, China)
Abstract: The intelligent and safe driving monitoring system is based on drink-driving monitoring module, driver behavior state monitoring module, intelligent wearable module and server terminal to realize the functions of system. The drink-driving monitoring module collects vehicle gas alcohol concentration information based on MQ-3 gas sensor. The driver behavior state monitoring module calculates the focusing degree of driver concentration in real time based on Dlib face recognition and OpenCV computer vision. The intelligent wearable module collects driver heart rate, blood pressure, body temperature and other indicators based on various embedded sensor chips. The server terminal is based on AliCloud ECS server, and it uses JAVA language programming to provide quality background service for mobile APP.
Keywords: safe driving; vehicle; sensor; Internet of Things; smart wearable device
0 引 言
据公安部统计,截至2022年6月底,全国机动车保有量达4.06亿辆,其中汽车3.10亿辆,新能源汽车1 001万辆;机动车驾驶人4.92亿人,其中汽车驾驶人4.54亿人[1]。2022年上半年全国新注册登记机动车1 657万辆,新领证驾驶人1 103万人[1]。随着我国宏观经济的快速稳定发展、居民收入水平的大幅度上升、道路交通设施的日益完善、城镇化进程的加快以及置换需求的持续增加,未来我国汽车产销量将保持持续稳定增长。一直以来,安全都是汽车行业发展的第一主题,汽车为人们的生活和工作带来了极大便利,其基础保障就是安全。在相关调查结果中显示,大多数交通安全事故的发生与驾驶员之间都存在直接的联系,由此可以看出驾驶员在交通安全当中的重要性。面对数量如此庞大的驾驶员人群,如今的智能安全驾驶系统并不全面,没有完整的体系,只是单纯的酒精检测或疲劳驾驶检测,也没有完善的处理和应对方式,对于突发情况不能有效的处理。针对这个现象,我们团队推出了一款智能安全驾驶系统。我们相信,这款智能安全驾驶系统的问世将会为安全驾驶领域增添更多的活力,加快行业在汽车领域的布局与发展。
1 系统组成及功能
这款智能安全驾驶监测系统主要包括酒后驾驶监测模块、驾驶员行为状态监控模塊、智能可穿戴设备模块(测量出车主的体温、心跳、血压、血脂等指标)和服务器端。各模块之间单独工作,互不干扰,将收集的数据传送给移动端,共同实现系统目标功能。
酒后驾驶监测模块主要功能是在汽车启动前,对驾驶员呼出气体进行酒精浓度检测,杜绝驾驶员出现酒后驾车的危险行为。当气体中酒精浓度达到阈值时,系统会触发警报并自动拨号给亲属。当然,酒精浓度阈值可以根据实际需要进行适当调整,但不予超过交警查酒驾的标准。并将检测记录将上传给后台APP。
驾驶员行为状态监控模块主要功能是通过摄像头采集驾驶员实时行为动态,防止驾驶员出现疲劳驾驶的危险行为。利用人脸检测算法,参考疲劳认定标准参数,实时精准检测驾驶员眯眼、哈欠、点头等行为,触发语音警告。并将行为日志传给后台。在汽车行驶过程中,通过驾驶员上前方摄像头(指向驾驶员的面部),提供驾驶员实时行为状态,如眯眼,哈欠,点头等,并发出语音警告。
通过智能可穿戴设备,实时测量车主的体温、心跳、血压、血脂等生理健康指标。将收集的生理数据进行存储分析,在客户端生成健康报表提供给用户,若生理指标突发异常,自动拨号给家属,并在客户端上报实时位置。
服务器端主要功能是在网络中为手机APP提供计算和应用服务。对海量数据进行处理,并通过APP反馈给用户,方便用户掌握和了解自己的情况。
系统整体架构如图1所示
2 系统各模块功能实现
该系统以Jetson控制处理模块为核心中枢,以手机APP和移动通信模块作为外设与用户进行信息交互,原理图如图2所示。手环、酒精度检测传感器后和摄像头首先各自进行数据采集,之后将数据上传到Jetson控制处理模块,Jetson控制处理模块将数据进行处理之后传到手机APP反馈给用户,当数据出现异常时,通过移动通信模块直接提醒用户,并拨号给亲属。
2.1 酒后驾驶监测模块
该模块酒精浓度检测装置是一款实用性强、安全可靠的气体乙醇浓度检测工具[2],可安装在汽车方向盘,使用MQ-3型气敏传感器收集酒精濃度信息,通过使用A/D转换器完成到数字信号的转换,控制系统根据单片机系统接收到的数字信号对应的酒精浓度检测值同预先设定的浓度值进行比较[3]。最后通过检测结果判断是否拨号告知家属。同时该模块还具有酒精浓度阈值设定功能,可以根据相关法律法规或用户需要设定修改酒精浓度阈值,并进行保存。
酒精浓度检测装置框图如图3所示。MQ-3气体传感器输出信号经信号调理电路处理,输出随酒精浓度变化的电压信号,将电压信号送入单片机系统,经A/D转换,与设定的酒精浓度阈值进行比较,判断是否触发警报。
2.2 驾驶员行为状态监控模块
驾驶员行为状态监控模块基于主流的OpenCV计算机视觉库开发,采用基于Dlib机器学习库的人脸检测模块,运用SVM特征分类方法,实现驾驶员驾驶状态的精准判别和疲劳驾驶的预警防范[4]。经查阅相关文献,疲劳在人体面部表情中表现出大致三个类型:哈欠(嘴部保持一定时间的大幅度张开状态)、眯眼(眼部在一段时间内保持眯眼状态的行为)、点头(头部在一段时间内保持上下晃动)[5]。该模块从人脸朝向、位置、瞳孔朝向、眼睛开合度、眨眼频率、瞳孔收缩率等数据入手,基于Dlib人脸识别68特征点检测、分别获取左右眼、面部和嘴巴标志的索引,通过OpenCV计算机视觉对视频流进行灰度化处理,获取特征点位置数据,并通过这些数据,实时地计算出驾驶员的注意力集中程度,分析驾驶员是否疲劳驾驶和及时作出安全提示,疲劳认定标准如表1所示,疲劳监测流程如图4所示。
2.3 智能可穿戴模块
该模块主要是基于穿戴式智能手环内嵌传感器芯片来进行驾驶员的心率、血压和体温数据指标的检测。检测结束后将数据传输给移动端APP,通过特定算法对数据进行分析,如若发现异常,将自动拨号给家属,并上传实时位置。内嵌的芯片主要包括YK1801脉搏传感器芯片、HR6707脉搏芯片、SFB9712算法芯片和WD3703温度传感器芯片。YK1801脉搏传感器芯片采用光电式容积脉搏波描记(PPG)的方式感应人体的脉搏信息并加以提取,通过模拟前端芯片HR6707和算法芯片SFB9712输出血压、心率等串口信号[6]。WD3703温度传感器通过GPIO接口和SFB9712算法芯片连接,从算法芯片SFB9712的串口UART或者IIC接口输出温度数据。
2.4 服务器端
该系统主要采用的是阿里云ECS服务器,使用docker-compose将微服务容器化自动化部署,并进行微服务编排,使用了阿里云容器服务提供的弹性计算应对不同规模的访问灵活的伸缩服务集群,并且使用redis分布式数据库来进行数据库唯一ID的生成。
后台服务器采用ECS处理后台业务流程与逻辑。ECS服务器使用CentOS 7作为服务器操作系统,CentOS 7有着一系列独特的特性,例如支持PTPv2,支持40G以太网卡以及在兼容的硬件上支持以UEFI安全模式启动安装,当然这其中最令人瞩目的就是在内核层面支持Docker技术了,将应用程序与系统完全隔离,让其在系统之间实现迁移的时候不需要停机,提高了应用程序的移动性和灵活性。使用java8jdk+redis+rabbitmq+mysql+docker-compose+nginx搭建环境,为移动端APP提供优质的服务支持。项目后台使用了时下比较流行的微服务框架SpringCloud作为主要开发技术,它不仅继承了SprintBoot部署方便、开发便利、维护成本极低和容错率高的优点,而且还有着活跃的开发社区,更新频率极快,支持跨语言的服务调用,可拓展性,稳定性极强,可较好的实现高并发高可用。后台服务器使用了目前流行的RESTful风格。前后端分离,减少耦合度,降低前后沟通造成的一系列不必要的成本,同时确保了项目服务集群之间更好的通信,使后台应对高并发高可用的能力增强。
采用分布式数据库设计,本项目的分布式数据库基于redis+MySQL,同时利用redis的lua脚本执行功能,在每个节点上通过lua脚本生成唯一ID来确保分布式数据库数据的最终一致性,很好的处理了多台应用服务器的并发访问,保证了数据的安全性与高可靠性。
使用Nginx进行反向代理,直接解决了一切由微服务架构和前后端分离开发所带来的跨域问题,同时实现负载均衡,使集群之间的访问更流畅与自然。
使用docker-compose进行微服务编排,本项目的部署采用docker这一当下较为热门的虚拟化容器技术,由于考虑到了有高并发访问的产生和高可用需求的提出,所以采用了doker-compose技术进行编排,使繁杂的部署简化,减少日后迁移服务器的成本,同时架构更为契合。
使用swagger2进行后台接口的文档化,自动化文档的生成,降低了开发和维护成本。
3 实验与测试
在系统功能开发完成后,我们对系统进行了功能测试。系统实际效果如图5所示。
3.1 酒精检测功能
实验人员向方向盘附近喷洒酒精喷雾,酒后驾驶检测模块检测到酒精气体,Jetson控制处理模块接收到酒后驾驶检测模块上传的数据,对其进行处理和判断,通过APP反馈给用户,蜂鸣器发出警报,并通过通信模块联系亲属,如图6所示。
3.2 驾驶员行为状态检测功能
实验人员分别做出哈欠,点头,打电话,抽烟等行为,通过OpenCV计算机视觉对视频流进行处理,获取特征点位置数据,并通過这些数据,实时地计算出驾驶员的注意力集中程度,分析驾驶员是否疲劳驾驶和及时作出安全提示,实际效果如图7所示。
3.3 心率血压体温检测功能
实验人员分别模拟正常情况和突发情况,对其功能进行全面检测。正常情况下,手环会将用户的健康指标上传给Jetson控制处理模块,Jetson控制处理模块会将数据与标注健康指标数据区间进行对比,若数据正常,将数据上传到APP生成健康报表。当遇到突发情况时,Jetson控制处理模块将对通信模块发出指令,发送信息和实时位置给亲属,实际效果如图8所示。
4 工作原理
在汽车启动时,酒后驾驶监测模块会首先开始工作,对车内气体中酒精含量进行检测,若酒精浓度超标,则会通过通信模块,直接联系亲属,并在APP端形成日志记录。若车内气体未检测出酒精,则汽车开始正常运行。在运行过程中,驾驶员行为状态监测模块将实时监测驾驶员行为,若出现非正常行为,将通过蜂鸣器及时发出警报,以提醒驾驶员,纠正当前行为。同样在APP形成日志记录。运行过程中,智能可穿戴模块也将实时上传健康指标,如若发现异常,将通过发送信息和实时位置联系亲属。用户通过APP查看其行车状态,APP也将为用户生成专属建议,为下次行车安全保驾护航。
5 结 论
随着现代科技的发展,汽车行业迎来了一系列革新,各方面技术的逐步完善大幅降低了因技术原因导致的交通事故。那如何规避人为因素引发的交通事故,是我们当下不得不面临的一个问题。对此,我们团队开发了这样一款智能安全驾驶监测系统。通过实际场景测试了系统的各项功能,均达到了预期结果,在后续的工作中,我们将继续关注汽车安全领域的发展,进一步完善该系统,使其早日投入市场,发挥其应有的价值。
参考文献:
[1] 公安部公布2022年上半年全国机动车及驾驶人数据 [J].道路交通管理,2022(7):5.
[2] 高伟群,陈成成,刘斌,等.酒精浓度检测语音报警系统 [J].中外企业家,2018(21):118.
[3] 铁争鸣.汽车防酒驾控制装置设计研究 [J].微型电脑应用,2020,36(5):120-123.
[4] 孙世若,王天琪,张淼,等.“守卫者”智能行车守护系统 [J].物联网技术,2019,9(3):12-15.
[5] 吴士力,唐振民,刘永.多特征融合的随机森林疲劳驾驶识别算法 [J].计算机工程与应用,2020,56(20):212-219.
[6] 杨林,纪小敏,张新锋.浅谈社区老年人健康管理系统设计与实现 [J].中国设备工程,2019(23):183-185.
作者简介:李富(1979—),男,汉族,山东高密人,高级工程师,硕士,主要研究方向:嵌入式系统设计。
收稿日期:2022-11-02