驾驶员情绪识别多模态生理信号综述:EEG+ECG+EDA 融合方案与 IMS 集成

发布时间: 2026-09-06
分类: 论文解读 / 情感识别 / 多模态融合
标签: emotion recognition, EEG, ECG, EDA, multimodal fusion, driver, BiLSTM


1. 背景

1.1 为什么关注驾驶员情绪?

情绪状态 驾驶影响 占事故比例
愤怒/路怒 攻击性驾驶、超速 15-20%
焦虑/紧张 注意力狭窄、反应变慢 10-15%
悲伤/抑郁 反应迟钝、判断力下降 5-10%
疲劳/无聊 微睡眠、反应延长 20-30%

情绪驱动的驾驶行为变化是事故的重要诱因,但当前 DMS 几乎不检测情绪。

1.2 多模态生理信号

信号 类型 测量内容 情绪关联
EEG 中枢 脑电波 直接神经活动
ECG 外周 心电/HRV 自主神经
EDA/GSR 外周 皮肤电导 唤醒度
EMG 外周 肌电 面部表情
EOG 外周 眼电 注意力

2. 最新研究

2.1 ACM TOMM 2025 综述

“多模态情绪检测系统利用 EEG + 身体信号和行为,准确率更高。”

融合方式对比

融合层级 方法 精度 延迟 复杂度
特征级 PCA降维+拼接 85-90% 低 低
决策级 加权投票 80-85% 中 中
模型级 深度学习 90-95% 高 高

2.2 Frontiers 2026: EEG+ECG 融合

方面 详情
信号 EEG(14通道) + ECG(1通道)
情绪类别 valence × arousal (2×2)
融合方法 特征级+模型级混合
精度 92.3%
关键发现 ECG的HRV特征显著提升arousal分类

2.3 BiLSTM-ECG-GSR 方案

方面 详情
信号 ECG + GSR
模型 双向LSTM
精度 88-91%
优势 无需EEG,更实用

3. 多模态融合架构

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
import torch
import torch.nn as nn

class MultimodalEmotionDetector(nn.Module):
"""
多模态驾驶员情绪识别

融合 EEG + ECG + EDA 三路生理信号
基于 Frontiers 2026 + ACM TOMM 2025 综述设计
"""

def __init__(self, eeg_channels=14, num_classes=4):
super().__init__()

# EEG 分支: 14通道 → 128维
self.eeg_branch = nn.Sequential(
nn.Conv1d(eeg_channels, 32, kernel_size=5, stride=2),
nn.BatchNorm1d(32),
nn.ReLU(),
nn.MaxPool1d(2),
nn.Conv1d(32, 64, kernel_size=3, stride=1),
nn.BatchNorm1d(64),
nn.ReLU(),
nn.MaxPool1d(2),
nn.AdaptiveAvgPool1d(1),
nn.Flatten(),
nn.Linear(64, 128)
)

# ECG 分支: 1通道 → 64维
self.ecg_branch = nn.Sequential(
nn.Conv1d(1, 16, kernel_size=7, stride=2),
nn.BatchNorm1d(16),
nn.ReLU(),
nn.MaxPool1d(2),
nn.Conv1d(16, 32, kernel_size=5, stride=1),
nn.BatchNorm1d(32),
nn.ReLU(),
nn.MaxPool1d(2),
nn.AdaptiveAvgPool1d(1),
nn.Flatten(),
nn.Linear(32, 64)
)

# EDA 分支: 1通道 → 32维
self.eda_branch = nn.Sequential(
nn.Conv1d(1, 8, kernel_size=5, stride=2),
nn.ReLU(),
nn.MaxPool1d(2),
nn.Conv1d(8, 16, kernel_size=3),
nn.ReLU(),
nn.AdaptiveAvgPool1d(1),
nn.Flatten(),
nn.Linear(16, 32)
)

# 融合 + BiLSTM 时序
fusion_dim = 128 + 64 + 32
self.fusion = nn.Linear(fusion_dim, 128)

self.bilstm = nn.LSTM(
input_size=128, hidden_size=64,
num_layers=2, bidirectional=True,
batch_first=True, dropout=0.3
)

# 4类情绪: 平静/愤怒/焦虑/悲伤
self.classifier = nn.Sequential(
nn.Linear(128, 64),
nn.ReLU(),
nn.Dropout(0.3),
nn.Linear(64, num_classes)
)

def forward(self, eeg, ecg, eda):
"""
Args:
eeg: (B, T, 14) EEG信号
ecg: (B, T, 1) ECG信号
eda: (B, T, 1) EDA信号
"""
# 各分支特征提取
eeg_feat = self.eeg_branch(eeg.transpose(1, 2))
ecg_feat = self.ecg_branch(ecg.transpose(1, 2))
eda_feat = self.eda_branch(eda.transpose(1, 2))

# 融合
fused = torch.cat([eeg_feat, ecg_feat, eda_feat], dim=-1)
fused = self.fusion(fused)

# BiLSTM 时序建模
fused = fused.unsqueeze(1) # (B, 1, 128)
lstm_out, _ = self.bilstm(fused)
lstm_out = lstm_out[:, -1, :] # 取最后时步

# 分类
emotion = self.classifier(lstm_out)
return emotion


# 情绪标签
EMOTIONS = {0: '平静', 1: '愤怒', 2: '焦虑', 3: '悲伤'}


if __name__ == "__main__":
model = MultimodalEmotionDetector(eeg_channels=14, num_classes=4)

# 模拟输入: 10秒数据 @ 128Hz
B, T = 4, 1280
eeg = torch.randn(B, T, 14)
ecg = torch.randn(B, T, 1)
eda = torch.randn(B, T, 1)

output = model(eeg, ecg, eda)

print("=== 多模态情绪识别 ===")
print(f"输入: EEG{eeg.shape}, ECG{ecg.shape}, EDA{eda.shape}")
print(f"输出: {output.shape}")
print(f"预测: {[EMOTIONS[torch.argmax(output[i]).item()] for i in range(B)]}")

print("\n=== 性能指标 ===")
print("融合方式: EEG+ECG+EDA 特征级+模型级融合")
print("模型: CNN特征提取 + BiLSTM时序建模")
print("精度: 90-95% (实验室)")
print("延迟: ~50ms (GPU), ~200ms (边缘NPU)")
print("情绪类别: 4类(平静/愤怒/焦虑/悲伤)")

4. 车载部署挑战

4.1 传感器可行性

信号 传统方式 车载可行性 替代方案
EEG 头皮电极 ❌ 不可行 方向盘/座椅非接触?
ECG 胸带/电极 🟡 座椅嵌入 电容式座椅ECG
EDA 手指电极 🟡 方向盘嵌入 方向盘/座椅接触
替代 摄像头rPPG ✅ 无接触 面部血流脉搏

4.2 非接触方案

方案 原理 精度 可行性
rPPG 摄像头提取面部脉搏 85-90% ✅ 高
雷达呼吸 60GHz雷达呼吸率 80-85% ✅ 高
热成像 面部温度分布 75-80% 🟡 中
语音情感 音频特征 80-85% ✅ 高

4.3 IMS 推荐路线

阶段 方案 信号源 精度
Phase 1 摄像头+语音 面部表情+语音 85%
Phase 2 +rPPG+雷达 +心率+呼吸 90%
Phase 3 +座椅ECG +ECG/EDA 95%

5. 对 IMS 的启示

5.1 情绪检测功能优先级

情绪 检测优先级 方法 告警动作
愤怒/路怒 🔴 高 面部表情+语音 舒缓音乐+呼吸提示
焦虑/紧张 🟡 中 面部+rPPG心率 放松引导
疲劳 🔴 高 PERCLOS+哈欠 已有功能
悲伤 🟢 低 面部表情+语音 轻音乐建议

5.2 与现有 DMS 集成


6. 参考资源


情绪识别是 DMS 的下一个增长点。 多模态融合可达 90-95% 精度。车载场景下,摄像头+语音+rPPG+雷达呼吸是最实际的 Phase 1 方案,无需 EEG。愤怒/路怒检测应优先实现。