samardeepgarcha/hybrid_driver_monitoring_system

GitHub: samardeepgarcha/hybrid_driver_monitoring_system

一个基于计算机视觉和机器学习的实时驾驶员注意力监测系统,用于检测困倦和分心。

Stars: 1 | Forks: 0

# ADAS 驾驶员注意力监测系统 一个基于计算机视觉、机器学习、头部姿态/分心检测及转向模式分析的先进驾驶员注意力监测系统原型。 ## 功能特性 - 基于 ResNet18 模型的二元困倦分类。 - 基于摄像头的实时困倦监测。 - 基于人脸与眼部的头部分心检测。 - 基于游戏手柄的转向模式分析,用于异常转向行为识别。 - 融合机器学习、头部状态与转向状态信号的风险评估逻辑。 - 用于模型分析的训练与评估图表。 ## 项目结构 ``` . ├── create_labels.py # Converts OpenLABEL annotations to binary drowsiness labels ├── extract_frames.py # Extracts video frames for training ├── train.py # Trains the drowsiness classifier ├── test.py # Runs model predictions on sample frames ├── visualize.py # Generates evaluation plots from training_log.json ├── webcam_demo.py # Integrated webcam demo with ML, head, and steering checks ├── drowsy_labels.csv # Prepared frame-level labels ├── plots/ # Generated evaluation plots └── minor/ ├── main_driver_monitor.py # Head + steering monitoring demo ├── head.py # Head distraction detection ├── steeringanalysis.py # Joystick steering analysis └── face_landmarker.task # MediaPipe task asset ``` ## 环境配置 创建并激活虚拟环境: ``` python -m venv .venv source .venv/bin/activate ``` 安装依赖: ``` pip install -r requirements.txt ``` ## 使用方法 根据标注文件生成标签: ``` python create_labels.py ``` 从视频中提取帧: ``` python extract_frames.py ``` 训练模型: ``` python train.py ``` 训练后生成评估图表: ``` python visualize.py ``` 运行集成摄像头演示: ``` python webcam_demo.py ``` 运行头部与转向监测: ``` python minor/main_driver_monitor.py ``` ## 注意事项 - `frames/`、视频文件、训练好的模型权重及训练日志已被忽略,因为它们是生成文件或可能体积较大。 - `webcam_demo.py` 要求项目根目录下存在 `drowsiness_model.pth` 文件。可通过运行 `train.py` 生成该文件。 - 转向分析使用 `pygame`,配合连接的游戏手柄或转向控制器效果最佳。 - 部分脚本使用本地数据集路径,在其他计算机上使用时可能需要更新路径。
标签:ADAS技术, Apex, MediaPipe, OpenCV, PyTorch, ResNet18, WSL, 二元分类, 交通安全, 人工智能监控, 凭据扫描, 分心检测, 卷积神经网络, 困倦检测, 基于规则的融合, 多模态融合, 头部姿势分析, 摄像头推理, 时间平滑, 智能驾驶, 机器学习, 深度学习, 计算机视觉, 转向模式分析, 逆向工具, 风险融合逻辑, 驾驶员监控系统, 驾驶安全, 高级驾驶员辅助系统