基于深度学习的驾驶员状态监测预警系统(正文)

摘 要

近年来驾驶员因疲劳驾驶而造成的交通事故逐年增多,驾驶员的驾驶状态对道路和人身安全产生重大影响,因此做好驾驶员驾驶状态的管理及预警是非常有必要的。

随着深度学习在目标检测算法应用的不断深入,YOLOv5等目标检测算法也相继具有了广泛的应用前景。PyQt则以它丰富的组件库,多样式的设计风格、灵活便捷的使用方式在Python前端搭建过程被得到广泛使用。本系统基于YOLOv5进行实现,通过PyQt搭建的前端采集图像数据传入后端,利用Dlib人脸库以及YOLOv5预训练图集模型对图像进行处理及判断,最终将处理结果返回前端进行预警提示。为更好的适配系统的各类摄像头类型,本系统还加入了Python cv2库的VideoCapture做外接摄像头硬件的检测和适配。

本文研究了基于深度学习的驾驶员状态检测预警系统,旨在提高驾驶员道路行驶的安全性。该系统能够使用多种传感器,包括摄像头等硬件设施来获取驾驶员的生理和行为数据,利用深度学习和人脸模型来进行状态识别和预警提示。研究结果表明,该系统能够高效地检测出驾驶员的疲劳、分心和不适应等状态,及时进行预警,从而有效减少由驾驶员分心驾驶酿成交通事故等不良事件发生。

关键词: 深度学习;驾驶员状态检测;目标检测;PyQt

ABSTRACT

In recent years, the number of traffic accidents caused by drivers' fatigue driving is increasing year by year. Drivers' driving status will have a significant impact on road and personal safety, so it is very necessary to do a good job in the management and early warning of drivers' driving status.

With the continuous deepening of deep learning in the application of object detection algorithms, YOLOv5 and other object detection algorithms have also shown broad application prospects. PyQt is widely used in the Python front-end construction process with its rich component library, multi style design style, and flexible and convenient usage. This system is implemented based on YOLOv5, where image data is collected from the front-end built by PyQt and transmitted to the back-end. The Dlib face library and YOLOv5 pre trained atlas model are used to process and judge the images, and the processing results are ultimately returned to the front-end for warning prompts. In order to better adapt to various cameras in the system, the system has added VideoCapture from the CV2 library for external camera hardware detection and adaptation.

This paper studies the driver status detection and early warning system based on deep learning, aiming at improving the safety of drivers on the road. The system can use a variety of sensors, including cameras and other hardware facilities to obtain drivers' physiological and behavioral data, use deep learning and face models for state recognition and early warning. The results show that the system can effectively detect drivers' fatigue, distraction and inadaptability and give timely warning, so as to effectively reduce the occurrence of adverse events caused by drivers' distracted driving.

Keywords ****:****deep learning;driver status detection;object detection; PyQt

目录

[1 引言](#1 引言)

[1.1 国内外研究现状](#1.1 国内外研究现状)

[1.2 研究背景和意义](#1.2 研究背景和意义)

[1.3 研究内容](#1.3 研究内容)

[2 需求分析](#2 需求分析)

[2.1 系统非功能需求分析](#2.1 系统非功能需求分析)

[2.2 系统功能需求分析](#2.2 系统功能需求分析)

[3 系统设计](#3 系统设计)

[3.1 系统总体设计](#3.1 系统总体设计)

[3.2 系统详细设计](#3.2 系统详细设计)

[4 系统实现](#4 系统实现)

[4.1 YOLOv5预训练](#4.1 YOLOv5预训练)

[4.2 后端实现](#4.2 后端实现)

[4.3 前端实现](#4.3 前端实现)

[5 软件测试](#5 软件测试)

[5.1 黑盒测试](#5.1 黑盒测试)

[5.2 白盒测试](#5.2 白盒测试)

[6 结束语](#6 结束语)

参考文献

致谢

1 引言

驾驶员的状态对于道路安全产生重要影响。如果驾驶员因疲劳、睡眠不足等原因出现问题,将会危及到道路和人身安全。交通事故是社会面临的一大安全隐患,尤其是道路交通事故更是频繁发生。据统计,全球每年有数百万人死于道路交通事故,而其中许多事故都是由驾驶员疲劳、分心或不适应等因素引起的。因此,为了提高道路行驶的安全性,开发一种能够实时监测驾驶员状态并进行预警的系统是非常必要的[1]。

1.1 国内外研究现状

通过研究国内外驾驶行为识别技术的发展,可以发现该领域已经取得了丰富的研究成果。但是由于异常驾驶行为的持续性和复杂性,以及车辆数据收集还不够广泛,异常驾驶行为研究仍存在一定问题:

  1. 深度学习算法日益成熟,但是在道路安全方面的应用和实践相对较少。
  2. 很多研究采用了聚类研究的方法,这种研究方法只能从宏观上分析驾驶员的驾驶行为,无法根据现实情况具体的反馈驾驶员的驾驶途中某段时间具体的驾驶行为,存在一定的局限性。
  3. 当前的主要数据源集中在图像、视频和仿真数据。其中图像和视频等数据易受环境因素影响且无法覆盖现实中的所有场景,这将大大的影响检测结果。而且图像视频等数据源本身数据量又非常大,深度学习预训练模型训练起来比较费时间且计算量巨大,时效性差。仿真数据则来自虚拟场景,不能完全反应现实驾驶场景中的相关数据。
  4. 现存的神经网络模型在提取异常的驾驶行为的数据特征方面还不够强,仅通过不断加深网络来解决问题容易导致模型梯度消失或者爆炸等问题。

1.2 研究背景和意义

本系统主要通过检测驾驶员在驾驶过程中的眼部、嘴部以及各种运动性的驾驶行为数据来检测驾驶员的状态情况,并对影响驾驶员安全驾驶的行为进行预警提示。系统开始于驾驶员开始行驶的瞬间,并在行驶途中时刻检测驾驶员的疲劳及分心情况,若中途中检测到驾驶员出现疲劳驾驶、抽烟、喝水、玩手机等行为并在某段时间范围内超过了一定值时。系统便会进行驾驶员状态预警提示。预警系统将驾驶员驾驶途中的各种影响安全驾驶的分心和疲劳因素做综合衡量,以提高道路和人身的安全性。

在国外,十年前Mercedes-Benz就推出了全球首款驾驶员注意力辅助系统(AttentionAssist),当驾驶员注意力出现问题时会第一时间弹出一个咖啡标志警告,系统的传感器通过直观的数据来确定驾驶员是否疲惫。如果系统检测到相应的标志,它将发出声音警告信号,并在组合仪表的显示屏上闪烁一条清晰的咖啡杯信息"ATTENTIONASSIST.Pause!"。为了提高道路安全,梅赛德斯-奔驰在车辆上安装了AttentionAssist注意力辅助系统以监测驾驶员疲劳状态,这些系统主要通过监测驾驶员的面部运动、眼部运动以及生理信号来判断驾驶员是否疲劳,与监测生理信号相比,监测面部运动和眼部运动更简单且精度更高,所以目前大多数系统采用这种方法。与仅基于驾驶行为监测驾驶员疲劳状态的德系车不同,福特采用了直接监测与间接监测结合的方法,综合考虑了车辆状态、驾驶行为以及驾驶环境、生理信息等四大方面因素的影响,使用大量的全面数据来提高监测算法的准确性。丰田在Lexus以及商用车上使用的Driver Monitor系统属于直接监测方法,通过监测驾驶员面部状态及眼部运动,结合红外传感器跟踪头部位置和运动判断驾驶员的情况[2]。

在国内,对于驾驶员注意力辅助系统方面的研究起步较晚。虽然部分国产车已经投入使用此系统,但大多都是依赖国外的供应商进行购买,自主研发且投入使用的产品较少,且国内在这方面的研发主要集中在各高校,如清华大学、同济大学、上海交通大学等,也有一定的成果和进展,但是距离实现产品化还有一定的距离,目前仅清华大学成波教授团队通过清华大学苏州学院下属的清研微视公司实现了相关成果的产品化。

本系统主要是利用驾驶员的面部特征、头部运动性等推断驾驶员的驾驶状态,并进行报警提示和采取相应措施的装置。采取了国内汽车普遍能够适配的基础硬件设施进行的系统软件设计,旨在将未来的驾驶预警系统更好的推进产品化。

利用机器视觉技术,检测驾驶员面部的生理反应特征也存在一些不可避免的不足之处:如眼睛特征、视线方向、嘴部状态、头部位置去判断驾驶员的疲劳状态这种检测方法,优点是表征疲劳的特征直观明显,并可实现非接触测量,不足之处在于检测识别的算法复杂,疲劳特征提取困难,且检测结果受光线变化和个体生理状况的变化影响较大,对技术的要求很高[3]。

与此同时,该行业也面临着诸多痛点:

  1. 影响驾驶员安全驾驶行为的生理特征有很多,提取相应特征数值较困难,很难保证数据精度。
  2. 市场相关行业技术人员较少,人才资源较为单薄。
  3. 现有的驾驶员状态预警系统在产品化和成本之间纠舍难分。

本系统致力于解决以上痛点,优势如下:

  1. 采用YOLOv5目标检测算法训练人物图像集,极大的解决了系统运行的速度和精度问题。
  2. 使用PyQt、GUI等界面类库做前端,让用户能够可视化的去操作和得到相关数据信息,布局简介清晰[4]。

1.3 研究内容

本文研究的是基于深度学习的驾驶员状态监测预警系统的研究与实现,包括前端的界面显示部分和后端的数据处理部分。

用户通过调用摄像头可视化的采集自己当前驾驶状态信息、显示状态信息,经服务器处理完数据后,用户能够通过前端实时观察实时状态和提示信息。如果当前属于疲劳驾驶或者其他危险驾驶行为,系统将启动警报装置。

后端状态检测图像识别采用预先训练好的数据图集,将提取的人脸特征传送到服务器进行对比检测。检测内容有打哈欠、点头、抽烟、喝水等危险驾驶行为。

相关推荐
waterHBO1 小时前
python 爬虫 selenium 笔记
爬虫·python·selenium
编程零零七2 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
AIAdvocate4 小时前
Pandas_数据结构详解
数据结构·python·pandas
小言从不摸鱼4 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
FreakStudio6 小时前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
python·嵌入式·面向对象·电子diy
redcocal8 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
artificiali8 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
RaidenQ8 小时前
2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
图像处理·python·算法·课程设计
花生了什么树~.9 小时前
python基础知识(六)--字典遍历、公共运算符、公共方法、函数、变量分类、参数分类、拆包、引用
开发语言·python
Trouvaille ~9 小时前
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
图像处理·python·机器学习·numpy·信号处理·时间序列分析·科学计算