疲劳驾驶是引发重特大交通事故的重要原因之一,尤其在长途货运、客运公交、网约车和环卫作业等场景中,驾驶员长时间连续作业后容易出现闭眼、打哈欠、注意力下降等状态,事后追责难以举证,事前预警又缺乏低成本手段。传统DMS驾驶员监测方案多依赖专用红外硬件或车载前装设备,成本高、改装门槛高,难以在存量车辆和个人车主中普及。
本项目面向车载驾驶员状态监测(DMS)这一细分场景,旨在用普通电脑摄像头+纯视觉算法的低成本方式,验证基于深度学习的疲劳行为识别方案在真实驾驶坐姿下的可行性,为后续车载边缘设备部署提供算法原型与软件参考。
本系统基于YOLOv10目标检测算法,实现驾驶员疲劳状态的实时识别与预警。通过摄像头采集驾驶员面部画面,模型自动识别闭眼、打哈欠等疲劳行为特征,在桌面端实时标注并展示检测结果。
主要功能模块:
1. 多源检测输入:支持本地图片、视频文件与实时摄像头三种方式,单帧推理毫秒级;
2. 疲劳行为识别:基于自定义数据集训练,区分闭眼/睁眼、打哈欠/未打哈欠四类状态,在画面上用中文框实时标注;
3. PyQt5桌面客户端:检测结果表格实时列出每个目标的类别、置信度与坐标,支持多目标下拉切换、各类别占比统计与检测耗时显示;
4. 批量检测与结果保存:支持批量图片检测,检测视频可录制保存到本地;
5. Gradio Web演示界面:可切换YOLOv10n/s/m/b/l/x不同规格模型,调节输入尺寸与置信度阈值,快速体验效果;
6. 模型训练脚本:基于ultralytics框架,支持自定义数据集训练,可灵活切换不同规模的YOLOv10模型。
技术栈:Python、PyTorch、YOLOv10、ultralytics、OpenCV、PyQt5、Gradio。
本人作为毕设独立完成人,负责从数据集构建、模型训练到桌面客户端交付的全流程:
1. 数据与训练:采集并标注驾驶员面部图像,构建闭眼/睁眼、打哈欠/未打哈欠四类数据集,基于ultralytics框架使用YOLOv10s进行训练调优,并对比n/s/m/b/l不同规格模型的精度与速度;
2. 桌面端开发:使用PyQt5开发客户端,集成图片检测、视频检测、实时摄像头、批量图片检测四种模式,通过QTimer定时读取视频帧,在子线程外刷新界面避免卡顿;
3. 结果可视化:用OpenCV画框、PIL加载中文字体解决标签乱码问题,右侧表格实时列出每个目标的类别、置信度与坐标,并统计各类别占比和单帧推理耗时;
4. Web演示:基于Gradio搭建在线Demo,支持切换模型规格、输入尺寸与置信度阈值。
难点在于实时摄像头场景下的检测流畅度与中文标注渲染,通过模型预热、帧缩放和QSS样式优化解决。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论