收藏和点赞,您的关注是我创作的动力
概要
随着交通工具的普及和道路网络的发展,交通事故已成为一个严重的社会问题。其中,驾驶疲劳是导致交通事故的主要原因之一。因此,开发一种有效的驾驶疲劳检测与预警系统对于提高交通安全水平具有重要意义。
本课题在选用的技术方面使用HOG算法,bert模型,以及YOLOv5进行疲劳训练检测,同时导入OpenCV视频模块进行设计。运用了dlib 库进行了面部欧式距离的节点进行设计, 使用PERCLOS模块进行疲劳程度的划分和检测。在计算眼部的疲劳程度中,使用了闭眼内的帧除以整个循环内的帧,并设置不同阈值来判断疲劳状态。运用PERCLOS设置状态,利用Hog算法检测面部68个节点。与此同时运用YOLOv5对抽烟、喝水、玩手机三种不同的状态进行训练,并且将其进行定义标签。最后将计算结果和训练结果写入GUI中进行检测和设置,在链接视频时使用OpenCV进行实时检测,然后利用前期的计算结果进行实时检测。
通过实验证明,本研究设计的驾驶疲劳检测与预警系统具有较高的准确性和可行性,可以有效地检测驾驶员的疲劳状态并及时发出警报,避免潜在的交通事故发生,对提高交通安全水平具有重要的理论和实践意义。
【关键词】疲劳驾驶;OpenCV检测;眼部检测;PERCLOS
一、研究背景与意义
自二十一世纪以来,汽车工业发展迅速,越来越多的家庭购买汽车,汽车已成为人们日常生活中不可或缺的交通工具,但这也导致交通事故数量呈几何级增长。而在众多的交通肇事原因中,驾驶员疲劳驾驶是其中一个重要原因,驾驶疲劳是指驾驶员由于长时间驾驶或睡眠不足造成的反应能力下降,主要表现为驾驶员困倦、打瞌睡、驾驶操作失误等,但这可通过科技手段进行提前预警和预防。如果不能够及时地从疲劳状态中清醒过来,就容易导致交通事故的发生,严重危害驾驶人和其他道路用户的生命安全。美国每年发生多达10万起由驾驶疲劳引起的交通事故,导致40万人受伤,1550人死亡。在欧洲,英国交通实验室调查表明,在道路交通事故中,约有10%由驾驶疲劳所致。法国国家事故报告指出,因疲劳瞌睡导致的碰撞占了人身伤害事故的14.9%和死亡事故的20.6%。在德国高速公路上导致人员伤亡的交通事故中,大约有25%是由疲劳驾驶引起的,这个数据由德国保险公司协会推算得出。日本的事故统计显示,约有1.0%至1.5%的事故是由驾驶疲劳造成的。对驾驶疲劳检测的研究正在成为世界范围内的一个热门问题。因此,人们迫切希望能够有一种能够实时检测驾驶员疲劳程度,并且在安全隐患增加之前可以及时发现驾驶员处于疲劳驾驶且对其进行预警的系统,那么这种系统将会是预防由疲劳驾驶而引的交通肇事的有效手段[1]。
目前,驾驶疲劳的检测方法主要可分为四类。(1)第一类是基于驾驶员生理信号的方法[2,3]。这种生理信号包括脑电图(EEG)、心电图仪(ECG)和眼电图(EOG)。这些方法通常会产生良好的疲劳检测性能。然而,如何方便地获得干净的信号是实际应用中需要解决的问题[4,6]。(2)第二类是基于驾驶员操作行为的方法。文献报道,驾驶疲劳可以通过驾驶员的操作来检测,如方向盘操作[7,8]。当驾驶员陷入疲劳时,他会降低方向盘的握力或降低控制方向盘的能力[9]。(3)第三类是基于车辆状态的方法。车辆轨迹和车道偏离信息也是检测疲劳的额外有用信息[10]。轨迹和车道信息都与控制方向盘相关;因此,它们也反映了驾驶员的操作,但是是非接触的。(4)第四类是基于驾驶员生理反应的方法。疲劳可以通过眨眼和打哈欠等生理行为来检测,其中最有效的方法是基于眼睛状态的检测[11-14]。
二、相关技术分析
本课题主要基于OpenCV、YOLOv5等技术进行驾驶疲劳检测和预警系统的开发和实现。使用HOG算法以及YOLOv5识别脸部和行为表现,同时导入OpenCV视频模块进行设计。运用了dlib 库的HOG算法检测面部68个节点,然后对眼睛和嘴巴的相关欧氏距离进行计算,使用PERCLOS模块进行疲劳程度的划分和检测并划分不同疲劳状态。与此同时运用YOLOv5对抽烟、喝水、玩手机三种不同的状态进行训练[15],并且将其进行定义标签。最后将计算结果和训练结果写入GUI中进行检测和设置,在链接视频时使用OpenCV进行实时检测。
2.1 PyTorch
PyTorch是由Facebook AI研究院开发的一个开源的深度学习框架,它使用动态计算图的方式来构建模型,简化了模型的构建和调试过程。在基于OpenCV的驾驶疲劳检测与预警系统设计中,PyTorch可以用于训练深度学习模型,如卷积神经网络(Convolutional Neural Network,CNN),用于分析驾驶员的面部表情和眼部状态,以判断其是否疲劳。
2.2 GUI
GUI(Graphical User Interface)即图形用户界面,是指通过图形化的方式来显示计算机程序的用户界面,使得用户可以通过鼠标、