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, 二元分类, 交通安全, 人工智能监控, 凭据扫描, 分心检测, 卷积神经网络, 困倦检测, 基于规则的融合, 多模态融合, 头部姿势分析, 摄像头推理, 时间平滑, 智能驾驶, 机器学习, 深度学习, 计算机视觉, 转向模式分析, 逆向工具, 风险融合逻辑, 驾驶员监控系统, 驾驶安全, 高级驾驶员辅助系统