基于深度学习的安全驾驶监测预警系统的设计与实现

2023-09-14 07:35周扬
电子元器件与信息技术 2023年6期
关键词:驾驶员心率精度

周扬

江苏科技大学,江苏镇江,212003

0 引言

随着中国国民经济的稳步提升和道路交通的快速发展,机动车数量、驾驶员数量、道路里程和交通流量、道路客货运输量均逐年增加,机动车已经处于饱和状态。2021年,中国机动车保有量达到4亿辆,同比增长6.2%;汽车保有量达到3亿辆,同比增长7.5%;机动车驾驶员数量达到4.81亿人,同比增长5.5%;新领证驾驶员数2750万人,同比增长23.3%[1]。主要职能部门注重法治引导、标本兼治、综合治理,进一步夯实了道路交通安全的基础。道路交通安全形势总体稳定,主要道路和特殊道路的特重大交通事故逐年减少。然而,中国道路交通安全管理的基础还比较薄弱,还存在许多根本性的问题,道路交通事故总量仍然很大,造成集体伤亡的道路交通事故仍然频发多发。

危险驾驶是当今交通安全的严重隐患。当驾驶员疲劳或分心时,对周围环境的感知能力、情况判断能力和操控车辆的能力都有不同程度的下降,因此很容易引发交通事故。统计数据表明,近三年,中国交通事故发生数量在20万起以上,其中2020年中国交通事故发生数量244674起;交通事故直接财产损失金额为131360.6万元[2],而疲劳驾驶、酒后驾驶等因素占据较大比例(图1)。因此,研究和开发高质量的驾驶员疲劳和危险驾驶行为的实时监测预警系统,对于改善中国的交通安全状况具有重要意义[3]。

图1 道路交通事故成因及比例

目前,疲劳驾驶检测方法大致可以分为以下三类:基于驾驶员生理信息的疲劳检测、基于驾驶行为及行车状态的疲劳检测和基于分析驾驶员面部特征的疲劳检测。

(1)基于驾驶员生理信息的疲劳检测

该方法主要利用动态心电仪、脑电波扫描仪等检测设备对脑电图、心率、肌电图和脉搏等[4]各项生理指标进行信息采集,然后对数据进行分析,判断驾驶员是否处于疲劳状态。这种方法最接近疲劳的本质,能够高精度识别疲劳状态[5],但需要驾驶员在驾驶汽车时穿戴检测设备,这无疑会干扰驾驶操作,增加事故发生的风险[6]。此外,此类数据的检测设备价格昂贵,检测成本高,难以应用到实际的驾驶疲劳状态检测中。

(2)基于驾驶行为及行车状态的疲劳检测

当驾驶员长时间行车疲劳时,他们的肌肉和神经反应会延迟,导致他们对车辆控制能力显著下降[7]。基于驾驶行为及行车状态的疲劳检测方法通过监测汽车踏板使用频率、方向盘转动规律等驾驶行为,以及分析车辆行驶轨迹、速度等行车状态,实现对驾驶员疲劳状态的判定[8]。这种方法只需要少量的硬件设备,且不会对驾驶员产生干扰,是一种非接触式的检测方法。然而,这种方法也存在一定的局限性,检测过程容易受到驾驶员驾车习惯、车辆差异、天气变化、道路场景等多方面因素影响,检测结果的可靠性难以保证。

(3)基于驾驶员面部特征的疲劳检测

当驾驶员处于疲劳状态时,会表现出一系列如目光呆滞、频频点头、打哈欠、长时间闭眼等非常明显的面部特征。基于面部特征的疲劳检测方法就是基于这些面部特征,通过摄像头采集人脸信息,利用图像处理技术挖掘面部信息中最具特征的部分,最后通过打哈欠、闭眼时间及闭眼频率等指标来进行驾驶员疲劳状态的判定[9-10]。基于面部特征的疲劳检测方法在检测过程中不会对驾驶员产生干扰,可实现性高。

此外,在驾车时吸烟、接打电话会分散驾驶员注意力,增加出行风险,严重影响道路交通安全,实时检测吸烟、接打电话等危险驾驶行为是保证行车安全不可缺少的一部分。疲劳驾驶以及危险驾驶行为检测模型需要快速、准确地完成目标检测与识别,为安全驾驶提供实时检测服务。本文提出并设计了一款疲劳驾驶和驾驶人异常生理数据多元检测、深度学习算法与传感器监测相结合的安全驾驶监测辅助系统。

1 总体设计

本智能安全驾驶监测预警系统采用深度学习算法与传感器监测相结合,设计了软件端和硬件端。在车辆驾驶舱内设置摄像头(实时监测驾驶人行为)和酒精传感器(监测驾驶人是否酒驾),为驾驶人设置颈枕,颈枕中装有心率传感器和温度传感器。监测数据经蓝牙实时传输到APP上处理。

智能安全驾驶监测预警系统选取ResNet50模型来对司机状态进行检测,使用拓展后的数据集进行初步训练,检测司机危险行为影响安全行驶的状态,搜寻相关的数据集,在训练以后得到检测模型,将检测模型接入边缘计算端,通过调用摄像头,将司机当前行驶中的照片传入模型并进行检测。根据模型的结果,进行参数调优,在验证集上优化精度,提高模型精度,解决在复杂背景下司机异常行为监测的问题,并搭配边缘计算端、传感器、单机片等硬件设施,以及APP软件开发。

硬件设施利用摄像头、MQ3型酒精传感器、DS18B20温度传感器[11]、LCD显示模块等各类硬件,实现酒精浓度检测、温度测量等核心模块功能。将PC端的检测模型部署到边缘计算端运行,同时借助Android开发,实现APP数据传输、紧急拨号报警、实时显示检测数据等多个模块功能。系统服务的结构框图如图2所示。

图2 系统服务的结构框图

2 系统模块设计

2.1 监测模块

监测模块对疲劳驾驶、发短信、打电话、操作收音机、喝酒/饮料、伸手到后面等多种类别的危险驾驶行为识别。训练迭代流程如图3所示。

图3 训练迭代流程

用Pytorch自带的迁移学习模型,采用多个卷积神经网络进行识别,使用拓展后的数据集进行初步训练。根据这些多个迁移学习模型的结果,改造了模型和自己建模,进行参数调优,在验证集上优化精度,提高模型精度,解决在复杂背景下司机异常行为监测的问题,并采用CAM可视化的方案分析各个模型的情况(图4)。

图4 CAM 可视化示意图

通过CAM可视化及各个模型的最终精度选择ResNet50模型作为检测端模型对司机危险行为进行监测。残差网络改变了梯度值随着网络的不断增加而出现梯度爆炸或梯度消失进而使网络训练难以收敛的现状,采用ResNet网络进行特征提取时,网络的深度获得了极大增加,从最初的十几层,增加到现在的151层,并且不会产生过拟合现象。而在本设计中,选择精度高而模型体量小的ResNet50网络来解决边缘端算力不足的问题。ResNet50的结构图如图5所示。

图5 ResNet50 网络结构图

2.2 智能颈枕端

颈枕端设备模块如图6所示。

图6 颈枕端设备模块

2.2.1 控制模块

单片机STC89C52具有价格低、速度快、可靠性高、抗静电强、抗干扰能力强等特点,因此被选为控制模块的核心部件。STC89C52芯片采用Flash ROM,它可以在3V的超低电压下工作,与MCS-51系列单片机能够完全兼容,芯片内存是8KB的ROM,具备STC89C52的功能,并支持在线编程可擦除技术。在调试电路时,不需要因为程序错误或需要在程序中刻录新功能而对芯片进行多次插拔,芯片故障率低。

2.2.2 酒精检测模块

对于驾驶员的酒驾检测,本系统选用MQ3酒精传感器置于驾驶位附近,对呼出的气体进行检测。MQ3酒精传感器是一种气敏传感器,具有灵敏度高、选择性好、使用时间长、稳定性可靠等特点[12]。监测系统对气体进行检测的基本步骤如图7所示,首先单片机采集酒精传感器的响应信号,然后将其转换并存储在数据存储器中,最后单片机通过特定的算法识别气体浓度,将检测值与设定值进行比较,超过设定值则报警,并将结果输出到屏幕。酒精检测设备模块如图7所示。

图7 酒精检测设备模块

2.2.3 心率检测模块

心率检测模块采用光电容积法对人体组织在血管搏动时造成透光率不同来进行脉搏测量。脉搏是随心脏的搏动而周期性变化的信号,动脉血管容积也周期性变化,因此光电变换器的电信号变化周期就是脉搏率。心率检测使用的传感器由光源和光电变换器两部分组成,固定在颈枕上,对颈部血管进行检测。心率传感器如图8所示。

图8 心率传感器

当心率传感器采集到当前的数据后,把模拟量传输给ADC0832进行处理,ADC0832进行初始化后逐位读取数据,把当前读取的信息转换为数字量,换算成当前的电压值,进而转换为数据显示当前的心率[13-14]。心率检测设备模块如图9所示。

图9 心率检测设备模块

2.2.4 温度检测设备

用心率传感器和温度传感器来监测心率与体温,再通过模数转换电路送到单片机里,同时通过蓝牙发送到手机端显示,并激发报警电路。DS18B20温度传感器如图10所示。

图10 DS18B20 温度传感器

体温检测设备选用DS18B20温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点。DS18B20温度传感器通过温度对振荡器的频率影响来测量温度。DS18B20内部有两个温度系数不同的振荡器。低温系数振荡器输出的时钟脉冲信号通过高温系数振荡器产生的开闸周期进行计数,通过该计数值来测量温度。

3 软件端

软件端信息传输流程如图11所示。数据采集模块监测的数据通过蓝牙与APP实现连接(图12),按照图13流程传输到客户端。

图11 信息传输流程

图12 蓝牙连接的开发实现

图13 信息传输客户端的实现

4 算法测试分析

4.1 CAM可视化测试对比

为了使算法模型的效果更具可视性、更加直观,我们选择对两个模型进行了CAM可视化测试。

从图14和图15可以清晰地看出,VGG16模型的关注点主要集中在司机的前面到方向盘这片区域,而ResNet50模型的专注点在司机头部、收音机处、手臂处,以及若发生喝饮料动作时饮料所在的位置。因此可以判断ResNet50模型的关注点要比VGG16模型的关注点更加精准有效。

图14 VGG16 模型CAM 可视化

图15 ResNet50 模型CAM 可视化

4.2 算法精度测试对比

算法精度对比表如表1所示。

表1 算法精度对比表

算法精度对比雷达图如图16所示。其中,红色代表VGG16模型,蓝色代表ResNet50模型。从图中可以看出,在右手发短信、操作收音机这两类的测试集中,VGG16模型的精度要稍优于ResNet50;但在整理发型化妆、和乘客说话这两类测试集上,VGG16的精度远低于ResNet50;在其他类别上,两种模型的精度不相上下。而在平均准确率上,VGG16模型为0.9856,ResNet50为0.9889。在模型体量上,VGG16模型大小在900MB左右,而ResNet50模型大小为92MB,由此可以看出ResNet50模型小而精的特点。因边缘端存储容量和算力有限,最终选择了ResNet50模型,并将其成功部署到边缘端。

图16 算法精度对比雷达图

4.3 算法时延对比

算法时延对比表如表2所示,从表中可看出推理时间比较少,VGG16推理一张图片平均要用到近3s,而ResNet50推理一张图片平均只需要用到1.23s。并且在部署到边缘端后,利用边缘端的模型加速功能,ResNet50最终的推理时间只需0.9s,基本可以做到实时监测。

表2 算法时延对比表

5 系统软件实现

本系统装置通电后,各模块初始化,具体实现工作如图17所示。

图17 智能安全驾驶监测预警系统总体流程

6 总结

精确度高:对多种卷积神经网络进行了准确率对比,采用残差神经网络ResNet50,得到了最优的结果。高效:基于传感器检测的单片机系统的解决方案,通过实时收集并分析现场数据的方式,解决司机行为监测领域特有问题,打造基于深度学习和移动开发的智慧安全驾驶平台,保障司机安全。用户友好:UI界面简洁美观,整体控件按钮触控及使用情况非常友好,司机行为及生理指标一目了然。全面性:项目涉及APP端、监控管理端等,可以实时监测司机的行车情况并返回,实现多方联动。监测类别广:实现了包括安全驾驶、发短信、打电话、操作收音机、喝酒/饮料、伸手到后面、发型化妆和乘客说话等多种类别的危险驾驶行为识别。

猜你喜欢
驾驶员心率精度
基于高速公路的驾驶员换道意图识别
心率多少才健康
驾驶员安全带识别方法综述
离心率
离心率相关问题
基于DSPIC33F微处理器的采集精度的提高
探索圆锥曲线离心率的求解
起步前环顾四周是车辆驾驶员的义务
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器