疲劳检测数据集全景对比:NTHU-DDD/YawDD/SUST-DDD基准与IMS选型

数据集总览

数据集 机构 主体数 场景 模态 标注 年份
NTHU-DDD 清华大学(台湾) 36 模拟器 RGB视频 帧+片段级 2016/2018
YawDD 阿拉伯联合酋长国大学 34 实车+模拟 RGB视频 哈欠标注 2015
SUST-DDD 沙特科技大学 10 真实驾驶 RGB+生理 多模态 2024
KEC-DDD Kongu工程学院 20 模拟器 RGB视频 帧级 2023
DRD(自建) 多个 变化 实车 多模态 定制 -

NTHU-DDD:行业基准

数据集规格

参数 值
主体数 36人(22训练/14测试)
种族 多种族(亚洲/欧洲/非洲)
眼镜 有/无眼镜/太阳镜
光照 白天/夜间/隧道
分辨率 640×480
帧率 30fps
场景 5种(含转时段)
标注 帧+片段级(疲劳/非疲劳)
总时长 ~6.5小时
获取 公开免费(学术)

SOTA性能对比

方法 NTHU-DDD准确率 参数量 帧率 来源
EffRes-DrowsyNet (2025) 84.7% ~30M 25fps PMC12197288
Fisher-Gabor+LDCRF (2025) 86.3% - 30fps Frontiers in CS
CNN (基线) 73.1% ~5M 60fps 多个来源
ViT-Base 82.5% ~85M 15fps 2024研究
MobileNetV3+LSTM 79.8% ~2M 45fps 量产候选

关键发现

  1. EffRes-DrowsyNet (EfficientNetB0+ResNet50混合) 在三个基准上均表现优秀
  2. Fisher-Gabor特征+LDCRF 轻量化方法达到SOTA,适合边缘部署
  3. NTHU-DDD准确率上限约85-87%,超过后有严重过拟合

YawDD:哈欠专用

参数 值
主体数 34
标注 哈欠起始/结束帧
场景 实车驾驶+模拟器
分辨率 640×480
特点 覆盖多种哈欠类型(遮挡/无遮挡)

SUST-DDD:真实驾驶多模态

参数 值
主体数 10
场景 真实道路驾驶
模态 RGB视频 + EEG + ECG
标注 帧级疲劳 + 生理标注
特点 首个真实驾驶+生理信号数据集
限制 主体少,泛化性待验证

IMS数据集选型策略

推荐组合方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""
疲劳检测数据集选型策略

策略: 公开数据集预训练 + 自有数据微调
"""

DATASET_STRATEGY = {
'预训练': {
'primary': 'NTHU-DDD',
'reason': '主体多(36人),场景多样,公开免费',
'expected_coverage': '60%场景',
},
'哈欠检测': {
'primary': 'YawDD',
'reason': '专用哈欠标注,覆盖遮挡场景',
'expected_coverage': '哈欠检测80%',
},
'真实场景验证': {
'primary': 'SUST-DDD',
'reason': '真实驾驶+生理信号ground truth',
'expected_coverage': 'sim-to-real gap评估',
},
'自建微调': {
'source': '实车采集',
'n_subjects': '50+',
'coverage': 'IMS目标车型+目标用户群体',
'expected_coverage': '量产场景90%+',
}
}

# 训练流程
TRAINING_PIPELINE = """
1. NTHU-DDD预训练 → 通用疲劳特征
2. YawDD联合训练 → 哈欠检测增强
3. SUST-DDD验证 → 真实场景gap评估
4. 自有数据微调 → IMS场景适配
5. Isaac Sim合成 → 边缘case补充
"""

数据量需求估算

阶段 数据量 来源 用途
预训练 50K图片 NTHU-DDD 通用特征
哈欠增强 10K图片 YawDD 哈欠分类
合成补充 100K图片 Isaac Sim 边缘case
实车采集 20K图片 自有 量产适配
验证集 5K图片 SUST-DDD+自有 性能评估
总计 ~185K - 量产级DMS

各数据集评估代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
"""
疲劳检测数据集评估工具

评估指标:
- 准确率/精确率/召回率/F1
- 帧率(FPS) vs 准确率权衡
- 模型大小 vs 部署可行性
"""

import numpy as np
from typing import Dict, List, Tuple

class FatigueBenchmark:
"""
疲劳检测基准评估

对比多个模型在NTHU-DDD/YawDD/SUST-DDD上的表现
"""

BENCHMARKS = {
'NTHU-DDD': {
'subjects': 36,
'classes': 2, # drowsy/non-drowsy
'fps': 30,
'resolution': (640, 480),
},
'YawDD': {
'subjects': 34,
'classes': 3, # no-yawn/yawn-with-mouth/yawn-with-hand
'fps': 30,
'resolution': (640, 480),
},
'SUST-DDD': {
'subjects': 10,
'classes': 2,
'fps': 30,
'resolution': (1280, 720),
'modalities': ['rgb', 'eeg', 'ecg'],
},
}

@staticmethod
def evaluate_model(model_name: str,
accuracy: float,
params_m: float,
fps: int,
dataset: str) -> Dict:
"""
评估模型在各维度的表现

Args:
model_name: 模型名
accuracy: 准确率 0-1
params_m: 参数量(百万)
fps: 推理帧率
dataset: 数据集名
"""
# 部署可行性评分
deploy_score = 0
if params_m < 5:
deploy_score += 40 量化友好
elif params_m < 20:
deploy_score += 25
elif params_m < 50:
deploy_score += 10

if fps >= 30:
deploy_score += 40 量产帧率要求
elif fps >= 15:
deploy_score += 25
elif fps >= 10:
deploy_score += 10

if accuracy > 0.85:
deploy_score += 20
elif accuracy > 0.75:
deploy_score += 10
elif accuracy > 0.65:
deploy_score += 5

# 量产推荐
if deploy_score >= 80:
recommendation = 'production_ready'
elif deploy_score >= 60:
recommendation = 'prototype_ready'
elif deploy_score >= 40:
recommendation = 'research_only'
else:
recommendation = 'not_suitable'

return {
'model': model_name,
'dataset': dataset,
'accuracy': f'{accuracy:.1%}',
'params': f'{params_m:.1f}M',
'fps': fps,
'deploy_score': deploy_score,
'recommendation': recommendation,
'model_size_mb': params_m * 4, # FP32
'model_size_int8_mb': params_m * 1, # INT8量化
}


# 测试
if __name__ == "__main__":
benchmark = FatigueBenchmark()

# 评估多个模型
models = [
('EffRes-DrowsyNet', 0.847, 30, 25),
('Fisher-Gabor-LDCRF', 0.863, 0.1, 30),
('CNN-Baseline', 0.731, 5, 60),
('ViT-Base', 0.825, 85, 15),
('MobileNetV3-LSTM', 0.798, 2, 45),
]

print("=== 疲劳检测模型基准对比 ===\n")
print(f"{'模型':<20} {'准确率':<8} {'参数':<8} {'FPS':<5} "
f"{'部署分':<6} {'推荐':<15} {'INT8大小':<10}")
print("-" * 80)

for name, acc, params, fps in models:
result = benchmark.evaluate_model(name, acc, params, fps, 'NTHU-DDD')
print(f"{name:<20} {result['accuracy']:<8} {result['params']:<8} "
f"{result['fps']:<5} {result['deploy_score']:<6} "
f"{result['recommendation']:<15} "
f"{result['model_size_int8_mb']:.1f}MB")

print(f"\n=== 量产推荐 ===")
for name, acc, params, fps in models:
result = benchmark.evaluate_model(name, acc, params, fps, 'NTHU-DDD')
if result['recommendation'] == 'production_ready':
print(f"✅ {name}: 准确率{acc:.1%}, INT8={params:.1f}MB, {fps}fps")
elif result['recommendation'] == 'prototype_ready':
print(f"⚠️ {name}: 可原型验证,需优化")

IMS推荐方案

短期量产(3-6月)

组件 选择 理由
模型 MobileNetV3+LSTM 2MB INT8,45fps,79.8%
预训练 NTHU-DDD 36人,多场景
哈欠增强 YawDD联合训练 专用哈欠标注
微调 自有50人+IMS车型 场景适配
部署 高通8255 Hexagon 2MB模型<2W功耗
目标 准确率>80%,25fps Euro NCAP达标

中期优化(6-12月)

组件 选择 理由
模型 EffRes-DrowsyNet 84.7%,更平衡
合成补充 Isaac Sim 100K图 边缘case覆盖
多模态 +PERCLOS+眨眼 准确率>85%
目标 准确率>85%,30fps Euro NCAP高分

长期研究(1-2年)

方向 方法 目标
时序建模 Transformer+LSTM混合 准确率>88%
个性化 在线自适应基线 减少误报50%
多模态融合 视频+雷达+CO2 准确率>90%

参考文献

  1. NTHU-DDD: http://cv.cs.nthu.edu.tw/php/callforpaper/datasets/DDD/
  2. EffRes-DrowsyNet: https://pmc.ncbi.nlm.nih.gov/articles/PMC12197288/
  3. Fisher-Gabor+LDCRF: https://www.frontiersin.org/journals/computer-science/articles/10.3389/fcomp.2025.1437084/full
  4. SUST-DDD: https://www.academia.edu/114534045/SUST_DDD_A_Real_Drive_Dataset_for_Driver_Drowsiness_Detection
  5. YawDD: Multiple references on ResearchGate
  6. Real-time driver drowsiness: https://www.mdpi.com/1424-8220/25/3/812

https://dapalm.com/2026/10/03/2026-10-03-05-fatigue-detection-datasets-benchmark-nthu-yawdd-sust-ims/
作者
Mars
发布于
2026年10月3日
许可协议