第41卷 第2期 高 师 理 科 学 刊 Vol. 41 No.2 2021年 2月 Journal of Science of Teachers′College and University Feb. 2021
文章编号:1007-9831(2021)02-0041-05
基于OpenCV与STM32的驾驶员健康监控系统设计孙洋,李汉林,邓晓慧,李秋慧,王传敏,王彩凤
(滨州学院 航空工程学院,山东 滨州 256600)
摘要:针对疲劳驾驶的危害,设计了一套基于OpenCV与STM32的驾驶员健康监控系统.该系统利用人脸识别和面部表情捕捉建立起一套完整的疲劳值检测体系,当驾驶员达到疲劳驾驶阈值时可进行有效提醒.另外,该系统可实现长途车与公交车驾驶员快速签到,并可通过手环实时监测驾驶员的身体状况,如血氧、心率等.驾驶员还可以通过语音助手语音播报以便了解自身当前的身体状况.通过测试验证,该系统人脸辨别、疲劳检测、心率检测等功能稳定可靠,在汽车安全驾驶方面具有良好的市场应用前景.
关键词:疲劳驾驶;OpenCV;STM32;人脸识别
中图分类号:TP391.4 文献标识码:A doi:10.3969/j.issn.1007-9831.2021.02.009
The design of driver health monitoring system based on OpenCV and STM32 SUN Yang,LI Hanlin,DENG Xiaohui,LI Qiuhui,WANG Chuanmin,WANG Caifeng
(School of Aeronautical Engineering,Binzhou University,Binzhou 256600,China)
Abstract:A driver health monitoring system has been designed based on OpenCV and STM32 for the hazards of fatigue driving.This system uses face recognition and facial expression capture to establish a complete set of fatigue value detection system,which can be used as an effective reminder when drivers reach the fatigue threshold.In addition,the system can realize the quick check-in of long-distance bus and bus drivers,and it can monitor the physical conditions of the drivers in real time using the hand ring,such as blood oxygen,heart rate,and so on.Drivers can also learn about their current health status through the voice broadcasts by voice assistants.The test results show that,the system is stable and reliable in face recognition,fatigue detection and heart rate detection,and it has a good market application prospect in the field of vehicle safety driving.
Key words:fatigue driving;OpenCV;STM32;face recognition
随着汽车行业在我国的迅速发展,各类交通事故几乎每天都在发生,而疲劳驾驶在这些事故中占有相
当大的比重.疲劳驾驶主要原因包括睡眠不足、长时间驾驶、生理节律等.而且凌晨2~6点,下午3~4点是发生疲劳驾驶事故的高峰期[1].针对疲劳驾驶现象,本文设计了一套基于OpenCV[2]与STM32的驾驶员健康监控系统,可以在驾驶途中对驾驶员疲劳驾驶危险行为进行有效提醒,尽可能地避免因疲劳驾驶产生的事故.目前,对于疲劳检测应用较多的方法有行为特征检测和生理检测.行为特征检测由PERCLOS检测睡意程度,利用奇异值分解方法,从人眼图像的训练阶段,分为完全睁眼、部分睁眼和全闭眼建立特征眼空间[3],从而判断驾驶员的睡意程度.另外,基于稀疏表示的眼睛状态识别方法[4]是利用K-SVD(Singular
收稿日期:2020-08-31
基金项目:山东省2020年大学生创新创业计划项目(S202010449004)
作者简介:孙洋(1997-),男,山东淄博人,在读本科生.E-mail:**************
通信作者:王彩凤(1982-),女,山东临沂人,副教授,博士,从事电子技术应用研究.E-mail:*******************
42 高 师 理 科 学 刊 第41卷
Value Decomposition,SVD)算法结合OMP(Orthogonal Matching Pursuit)[5]算法进行疲劳识别.
还有利用Gabor小波滤波采取面部纹理特征来进行面部表情识别,从而判断是否疲劳[6].本系统主要借助OpenCV函数库利用PERCLOS与Boosting算法的Haar分类器[7]进行相关人脸面部特征计算,判断驾驶员是否处于疲劳驾驶状态并进行相应提醒.
1 系统结构与功能
驾驶员健康监控系统结构见图1.该系统检测疲劳驾驶部分采用树莓派4B+OpenCV+Python 环境进行人脸识别算法编写.利用LBPH(Local Binary Patterns Histogram)算法[8]采集驾驶员面部特征,并生成多个模型记录驾驶员面部信息.对于需要签到的驾驶员进入签到系统时,可直接利用该信息对驾驶员进行身份识别.在车辆行驶过程中,系统通过摄像头采集到驾驶员视频图像,利用Boosting算法的Haar分类器通过预置模型完成驾驶员的头、眼、嘴的识别与跟踪,并配合PERCLOS算法进行疲劳值检测,当疲劳值达到阈值时,会通过震动模块提醒驾驶员安全靠边休息,若驾驶员仍进行疲劳驾驶的危险行为,加大语音播报的声音,并提醒随车人员对司机进行劝阻.另外,还将心率传感器、温度传感器等集成在手环上,系统可通过心率传感器与温度传感器检测驾驶员的身体信息.在汽车内部,将乙醇气敏模块与STM32连接,可进行酒后驾驶监测.利用STM32将各模块传回的数据进行处理,通过串口与树莓派进行通信,也可直接通过语音助手播报身体状况.
图1 驾驶员健康监控系统结构
2 系统硬件分析
2.1 STM32F103ZET6最小系统板与树莓派4B
STM32F103ZET6最小系统见图2.其最高工作频率可达72 MHz;2个USART接口可进行全双工通用同步/异步串行收发;2个SPI接口可以使MCU与各种外围设备进行信息交换,如系统与LD3320模块的通信;2个IIC接口可进行简单、双向二线制同步串行通信.树莓派4B用来搭载OpenCV坏境,其配备四核CPU处理器,最高主频可达1.5 GHz,具有多个USB端口可直接使用与摄像头相连,进行人脸图像采集. 2.2 MAX30102心率血氧传感器模块
本系统采用的是红光与红外光集成LED、光电检测器、光器件以及环境光抑制的低噪声电子电路的MAX30102模块,主要检测的信号类型为光反射信号[9],其原理见图3.系统加入这个模块的目的是为了随时监测驾驶员的心率,当驾驶员心率异常时,对其提供紧急预警.另外,当模块接到语音读取心率等指令时,便会通过中断利用IIC把从MAX30102模块读取到的数据经STM32处理后反馈给语音模块. 模块通过IIC总线与STM32进行数据传输,其SCL与SDA分别接入STM32的PB6与PB7 I/O端口.使能GPIOB端口时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);设置端口速度与模式分别为50 MHz与开漏输出模式.
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD.
第2期 孙洋,等:基于OpenCV 与STM32的驾驶员健康监控系统设计 43
图2 最小系统原理
2.3 LD3320语音模块
LD3320芯片具有高精度的语音识别效果[10]
,并具有可动态编辑识别关键词列表,对于系统查询身体状况与疲劳值来说非常适用.模块主要接口见图2最小系统原理U5.
该模块与STM32采用SPI 通信,其模块端口初始化配置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;//MISO
GPIO_InitStructure.GPIO_Speed
GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//MOSI GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//SCK
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//WR GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure).
端口初始化完成之后,将SPI 设置为全双工主模式,当空闲状态时,SCK 保持低电平,数据采样控制从第一个时钟边沿开始.波特率设置为SPI_BaudRatePrescaler_64,64分频即0.562 5 MHz. 2.4 M
疲劳驾驶预警系统Q-3乙醇气敏模块
MQ-3乙醇气敏模块在较宽浓度范围内有良好的灵敏度,而且驱动电路简单,并且乙醇浓度越高,模
44 高 师 理 科 学 刊 第41卷
拟量AO口输出电压越高[11].模块接线图见图2最小系统原理U6.STM32连接了4个气敏模块,放置在4 个不同方位,通过比较车内4个方位电压高低初步判断是否为驾驶员酒驾,并发出警报.
2.5 震动模块
当STM32收到的疲劳数值大于设定的阈值时,震动模块开始工作.其通过PWM波设定为2种模式,分别为弱提醒与强提醒.当驾驶员开始疲劳时先进行弱提醒,给驾驶员循序渐进的震动提醒过程,防止突然强提醒造成意外.
2.6 MLX90614温度传感器
非接量的红外温度传感器,不干扰测温对象,对体表温度测量具有较高精确度[12].其接线图见图2最小系统原理U7.温度传感器采用SMBUS协议进行传输,SDA数据线连接PB12,SCL控制线连接PB13,配置为:
GPIO_InitStructure.GPIO_Pin = SMBUS_SCK | SMBUS_SDA;
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(SMBUS_PORT, &GPIO_InitStructure).
3 系统总体设计
系统总体设计流程见图4.
图4 系统设计流程
当车辆启动时,系统随之启动,并初始化各个模块.树莓派通过将摄像头采集到的人脸信息与已有的的人脸库中的信息做对比,从而识别驾驶员身份并开始评估疲劳值.未疲劳状态和疲劳状态见图5a~b.该疲劳阈值的设定是利用树莓派对人眼部区域与嘴部区域进行追踪,通过人眼与嘴闭合程度生成不同的疲劳 值.人眼闭合与嘴部张大都会致使疲劳值增加.当疲劳值达到50且小于80时,系统显示处于疲劳状态, 此时系统将进行弱震动提醒;经再次判断,若疲劳值大于80(眼部区域面积远小于正常眼部面积,同时接收到不间断的张嘴信号)时,进行强震动提醒,并进行语音播报,提醒驾驶人员与随车人员.
第2期 孙洋,等:基于OpenCV 与STM32的驾驶员健康监控系统设计 45
当驾驶人员疲劳值小于50时,MAX30102模块、MLX90614模块、MQ-3模块等开始工作,实时监测身体状态.若数值异常,系统立刻通过LD3320语音模块进行报警.
4 结语
本文针对驾驶员疲劳驾驶问题,利用STM32与树莓派4B 完成了基于OpenCV 与STM32的驾驶员健康监控系统的总体设计.该系统能为驾驶员实时提供本地提醒与报警,从而保障了驾驶员的驾驶安全,有效避免了因疲劳驾驶所造成的危险. 参考文献:
[1] 李都厚,刘,袁伟,等.疲劳驾驶与交通事故关系[J].交通运输工程学报,2010,10(2):104-109 [2] 冯婧,顾梅花.基于OpenCV 的人脸识别算法研究与实现[J].电脑知识与技术,2020,16(14):9-11 [3] 肖东,张堃.基于面部特征信息的疲劳检测算法研究[J].光电技术应用,2020(1):51-55
[4]
王冬梅,冯偲,王海鹏,等.疲劳驾驶检测中基于稀疏表示的眼睛状态识别研究[J].影像科学与光化学,2016,34(1):95-96
[5] 何双双,熊兵,张建明,等.基于子空间追踪的人脸识别[J].计算机工程与应用,2016,52(1):219-223
[6] 倪永婧,孙袆,岳莹,等.基于二维Gabor 小波与AR-LGC 的人脸特征提取算法研究[J].河北工业科技,2019,36(4):
258-262
[7] Thilagavathi B,Suthendran K.Boosting Based Implementation of Biometric Authentication in IoT[J].Journal of Cyber Security &
Mobility,2018,7(1):131-144
[8] Shan C,Gritti T.Learning Discriminative LBP-Histogram Bins for Facial Expression Recognition[C]// British Machine Vision
Conference.DBLP,2008
[9] 王亚文,庞宇,李国权,等.一种可穿戴多体征参数采集装置的设计[J].电子技术与软件工程,2019(5):82-85 [10] 潘锋.智能语音控制系统设计与研究[J].电子设计工程,2019,27(22):6-9 [11] 吕晓颖.基于MQ-3的酒精检测系统设计[J].科技视界,2019(21):31-32
[12] Zhong Jun,Cai Li-Ming,Yu Yong.Design of wireless temperature acquisition system based on MLX90614[J].Transducer and
Microsystem Technologies,2015,34(3)
:87-89
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论