基于YOLOv11与LSTM的驾驶员疲劳检测系统
项目概述
本项目实现了一个智能驾驶员疲劳状态检测系统,结合了YOLOv11目标检测模型和LSTM时序建模能力。系统能够处理视频或图片序列输入,通过多阶段分析实现疲劳状态的精准识别与可视化展示。
技术架构
核心组件
- YOLOv11目标检测:实时检测视频帧中的驾驶员面部特征
- LSTM时序建模:分析驾驶员状态的时序变化模式
- 多级分类系统:将检测结果映射为可理解的疲劳等级(清醒/轻度疲劳/重度疲劳)
数据处理流程
- 目标检测 → 2. 特征编码(one-hot) → 3. 时序建模 → 4. 疲劳分类 → 5. 可视化输出
数据集
- 来源:drow数据集
- 授权:Public Domain (公共领域)
- 存放要求:需按data/README.dataset.txt说明放置数据集文件
开发环境
基础要求
- Python 3.13.2
关键依赖
# PyTorch (CUDA 11.8版本)
pip install torch==2.2.0+cu118 torchvision==0.17.0+cu118 --index-url https://download.pytorch.org/whl/cu118
# 其他依赖
pip install -r requirements.txt
使用指南
1. 模型训练
- YOLO训练:
python yolo_train.py
- YOLO测试:
python yolo_test.py
2. 特征提取
python features_get.py
3. LSTM模型训练
python data_sorted.py # 数据时序整理
python lstm_train.py # LSTM模型训练
4. 推理与可视化
- 基础推理:
python predicate.py
- 增强推理(含时序分析):
python predict_fatigue_sequence.py
输出说明
系统将生成:
- 命令行文本输出(疲劳等级预测结果)
- 带标注的MP4视频文件(可视化检测结果)
疲劳等级映射
详见predicate.py中的fatigue_level_map,实现检测类别到疲劳等级的转换逻辑。