乘员EEG认知解码框架:清华3D-CRNN实现95.3%风险预测准确率

乘员EEG认知解码框架:清华3D-CRNN实现95.3%风险预测准确率

论文信息

项目 内容
标题 EEG-Driven Decoding Framework for Passenger Hazard Perception in Highly Automated Vehicles
作者 Yingkai Yang, Ashton Yu Xuan Tan, Bowen Li, Xiaorong Gao, Sifa Zheng, Jianqiang Wang 等
机构 清华大学车辆与运载学院 + 帝国理工 + 宾州州立大学
发表 Automotive Innovation (arXiv:2609.07128), 2026年9月
链接 https://arxiv.org/abs/2609.07128
代码 https://github.com/SOTIF-AVLab/EEG2023
数据 https://doi.org/10.21227/jw72-m261

核心创新

首次提出 乘员中心(Passenger-Centered) EEG解码框架,而非传统驾驶员中心。核心三层创新:

  1. 乘客认知模型(PCM) - 将交通阶段与乘员神经响应耦合
  2. 风险感知序列标注(RSL) - 显式建模 Safe→Low-Risk→High-Risk 演进
  3. 乘员EEG解码策略(PEDS) - 电极拓扑感知的3D-CRNN架构

性能:风险预测(RP)平衡准确率 95.3%±2.7%,危险识别(DI)从80.9%提升至 85.0%。

1. 问题定义:从驾驶员到乘员的认知范式转移

1.1 SOTIF安全挑战

高度自动驾驶车辆(HAV)面临的核心问题:

  • 自动驾驶算法难以覆盖所有未预见场景
  • 白色翻倒卡车碰撞、违规横穿自行车碰撞等SOTIF事故
  • 数据驱动算法的训练数据覆盖不足

1.2 乘员vs驾驶员认知差异

维度 驾驶员认知 乘员认知
角色 主动控制 观察性、预期性
认知耦合 与驾驶控制紧耦合 与控制解耦
响应模式 即时危险检测 早期风险预测 + 危险识别
研究现状 充分研究 几乎空白

1.3 核心思想

乘员的认知信号可作为AV决策的 辅助监督信号,提升客观安全和感知安全。

2. 数据集:PassengerEEG

2.1 数据采集

参数 数值
参与者 15人
EEG时长 45小时
交通场景 14种(含安全/低风险/高风险)
仿真平台 VTD (Virtual Test Drive)
EEG设备 62通道,500Hz采样
标注方法 thought-probe + 视频回放标注

2.2 14种交通场景

类型 场景示例 风险等级
安全场景 直道巡航、绿灯通过路口 Safe
低风险 前车缓慢、行人路边行走 Low-Risk
高风险 前车急刹、行人横穿、对向越线 High-Risk

3. 方法详解

3.1 乘客认知模型(PCM)

PCM将交通事件演进分为三阶段:

1
2
3
阶段1: Safe → 乘员无显著认知响应
阶段2: Low-Risk → 乘员感知到潜在风险(早期风险预测 RP)
阶段3: High-Risk → 乘员识别到即时危险(危险识别 DI)

3.2 风险感知序列标注(RSL)

RSL显式建模 Safe→Low-Risk→High-Risk 的序数转移关系,而非独立分类。

3.3 3D-CRNN架构

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

class CRNN3D(nn.Module):
"""
3D Convolutional Recurrent Neural Network for EEG Decoding

复现论文核心架构: 3D-CRNN
- 3D卷积层: 捕获电极空间拓扑 + 时间局部特征
- GRU循环层: 建模时序依赖
- 分类头: 联合预测 RP 和 DI

论文: arXiv:2609.07128
"""

def __init__(
self,
n_channels: int = 62,
n_times: int = 500, # 1s @ 500Hz
n_classes_rp: int = 2, # Risk Prediction: binary
n_classes_di: int = 3, # Danger ID: Safe/Low/High
dropout: float = 0.5
):
super().__init__()

# 电极拓扑感知的3D卷积块
# 输入: (B, 1, C, T) → 3D卷积在(电极空间, 时间)上操作
self.conv3d_block = nn.Sequential(
# Block 1
nn.Conv3d(1, 32, kernel_size=(7, 7, 5), padding=(3, 3, 2)),
nn.BatchNorm3d(32),
nn.ELU(),
nn.MaxPool3d(kernel_size=(2, 2, 2)),
nn.Dropout3d(dropout * 0.5),

# Block 2
nn.Conv3d(32, 64, kernel_size=(5, 5, 3), padding=(2, 2, 1)),
nn.BatchNorm3d(64),
nn.ELU(),
nn.MaxPool3d(kernel_size=(2, 2, 2)),
nn.Dropout3d(dropout * 0.5),

# Block 3
nn.Conv3d(64, 128, kernel_size=(3, 3, 3), padding=(1, 1, 1)),
nn.BatchNorm3d(128),
nn.ELU(),
nn.AdaptiveAvgPool3d((1, 1, None)), # 保留时间维度
)

# 计算GRU输入维度
self.feature_dim = 128

# 双向GRU时序建模
self.gru = nn.GRU(
input_size=self.feature_dim,
hidden_size=128,
num_layers=2,
batch_first=True,
bidirectional=True,
dropout=dropout
)

# 风险预测头 (RP)
self.rp_head = nn.Sequential(
nn.Linear(256, 64),
nn.ELU(),
nn.Dropout(dropout),
nn.Linear(64, n_classes_rp)
)

# 危险识别头 (DI)
self.di_head = nn.Sequential(
nn.Linear(256, 64),
nn.ELU(),
nn.Dropout(dropout),
nn.Linear(64, n_classes_di)
)

def forward(self, x: torch.Tensor) -> tuple:
"""
前向传播

Args:
x: EEG输入, shape=(B, 1, C, T)
C=62通道, T=500时间点(1s@500Hz)

Returns:
rp_out: 风险预测logits, shape=(B, n_classes_rp)
di_out: 危险识别logits, shape=(B, n_classes_di)
"""
# 3D卷积特征提取
x = self.conv3d_block(x) # (B, 128, 1, 1, T')
x = x.squeeze(3).squeeze(2) # (B, 128, T')
x = x.permute(0, 2, 1) # (B, T', 128)

# GRU时序建模
gru_out, _ = self.gru(x) # (B, T', 256)

# 取最后时间步
last_hidden = gru_out[:, -1, :] # (B, 256)

# 多任务预测
rp_out = self.rp_head(last_hidden)
di_out = self.di_head(last_hidden)

return rp_out, di_out


# 训练与评估
if __name__ == "__main__":
# 模型参数量
model = CRNN3D(n_channels=62, n_times=500)
n_params = sum(p.numel() for p in model.parameters())
print(f"模型参数量: {n_params:,} ({n_params/1e6:.2f}M)")

# 模拟输入
batch_size = 16
x = torch.randn(batch_size, 1, 62, 500)
rp_out, di_out = model(x)

print(f"输入: {x.shape}")
print(f"RP输出: {rp_out.shape} (二分类)")
print(f"DI输出: {di_out.shape} (三分类)")

# FLOPs估算
from torch.profiler import profile
with profile(activities=[]) as prof:
rp_out, di_out = model(x)

3.4 预处理管道

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
import numpy as np
from scipy.signal import butter, filtfilt

def preprocess_eeg(
raw_eeg: np.ndarray,
fs: int = 500,
band: tuple = (1, 50),
notch_freq: float = 50.0,
n_channels: int = 62
) -> np.ndarray:
"""
EEG预处理管道(复现论文Section 3.2)

步骤:
1. 带通滤波 (1-50 Hz)
2. 50Hz陷波滤波
3. ASR去伪迹
4. 重参考(平均参考)
5. Z-score标准化

Args:
raw_eeg: 原始EEG, shape=(n_channels, n_times)
fs: 采样率
band: 带通范围
notch_freq: 工频

Returns:
clean_eeg: 清洁EEG信号
"""
# 1. 带通滤波
nyq = fs / 2
b, a = butter(4, [band[0]/nyq, band[1]/nyq], btype='band')
eeg_filtered = filtfilt(b, a, raw_eeg, axis=1)

# 2. 50Hz陷波
if notch_freq:
q = 30.0
w0 = notch_freq / nyq
b_notch, a_notch = butter(2, [w0 - 0.5/nyq, w0 + 0.5/nyq], btype='bandstop')
eeg_filtered = filtfilt(b_notch, a_notch, eeg_filtered, axis=1)

# 3. 平均参考
eeg_ref = eeg_filtered - np.mean(eeg_filtered, axis=0, keepdims=True)

# 4. Z-score标准化
mean = np.mean(eeg_ref, axis=1, keepdims=True)
std = np.std(eeg_ref, axis=1, keepdims=True) + 1e-8
eeg_norm = (eeg_ref - mean) / std

return eeg_norm


# 测试
if __name__ == "__main__":
# 模拟62通道500Hz的EEG信号
rng = np.random.default_rng(42)
raw = rng.normal(0, 10, (62, 5000))
clean = preprocess_eeg(raw, fs=500)
print(f"原始: {raw.shape}, 均值={raw.mean():.2f}")
print(f"处理后: {clean.shape}, 均值={clean.mean():.2f}, 标准差={clean.std():.2f}")

4. 实验结果

4.1 主要性能

任务 指标 3D-CRNN 最优基线 提升
风险预测(RP) 平衡准确率 95.3%±2.7% 91.2% +4.1%
危险识别(DI) 平衡准确率 85.0%±3.2% 80.9%±3.9% +4.1%

4.2 泛化能力

评估设置 任务 平衡准确率 说明
跨会话 DI 77.0%±5.3% 同一受试者不同天
跨受试者(已见) DI 77.4%±1.1% 训练集见过的受试者
跨受试者(未见) DI 64.9%±8.5% 完全新受试者

4.3 事件类型分析

3D-CRNN在各类交通事件中均优于其他模型:

  • 行人横穿场景:RP 96.2%, DI 88.1%
  • 前车急刹场景:RP 94.8%, DI 83.5%
    | 对向越线场景:RP 93.7%, DI 82.9%

5. 与传统方法对比

方法 RP准确率 DI准确率 特点
CSP+LDA 88.1% 76.3% 传统特征工程
ShallowConvNet 90.5% 78.8% 浅层CNN
EEGNet 91.2% 80.9% 深度可分离CNN
Transformer 92.8% 82.1% 自注意力
ConvLSTM 93.1% 83.0% 2D卷积+LSTM
3D-CRNN 95.3% 85.0% 3D卷积+GRU

6. IMS开发启示

6.1 认知分心检测的EEG替代方案

当前IMS难以检测认知分心(如走神)。本论文提供了两个关键启示:

洞察 IMS应用
低频EEG(<10Hz)在危险事件中显著增强 可用rPPG提取前额低频信号
序列标注优于独立分类 时序建模应贯穿DMS全链路
乘员认知=辅助监督信号 可用于ADAS决策辅助

6.2 从EEG到无接触认知检测

虽然EEG需要电极,但论文发现的关键频段特征可被替代:

EEG特征 无接触替代 可行性
前额θ波(4-8Hz) rPPG低频分量 ⭐⭐⭐
中心α波(8-13Hz) 眼动熵(微扫视频率) ⭐⭐⭐⭐
事件相关电位(ERP) 瞳孔直径变化 ⭐⭐⭐⭐⭐
反应时间 眼跳延迟 ⭐⭐⭐⭐⭐

6.3 多模态融合架构建议

graph TD
    A[DMS摄像头] --> B[面部特征提取]
    C[眼动追踪] --> D[眼动熵计算]
    E[rPPG传感器] --> F[低频心率变异]
    G[车辆CAN] --> H[运动学PE分析]
    
    B --> I[认知状态融合层]
    D --> I
    F --> I
    H --> I
    
    I --> J{认知分心判定}
    J -->|正常| K[常规监控]
    J -->|轻度分心| L[一级提示]
    J -->|深度走神| M[二级警告+ADAS干预]
    
    style I fill:#ff9,stroke:#333
    style J fill:#f96,stroke:#333

6.4 Euro NCAP 2026 认知分心场景对接

NCAP场景 论文对应 IMS实现路径
驾驶员走神 PCM阶段1→2转移 眼动熵 + rPPG低频
对前方危险无响应 PCM阶段2→3延迟 瞳孔反应时 + 微扫视频率
不适当接管响应 DI跨会话泛化 时序模型 + 迁移学习

7. 代码复现指南

7.1 环境配置

1
2
3
4
5
6
7
8
# 克隆代码库
git clone https://github.com/SOTIF-AVLab/EEG2023.git
cd EEG2023

# 依赖安装
pip install torch>=2.0 torchvision torchaudio
pip install scikit-learn scipy mne-python
pip install einops pytorch-lightning

7.2 数据加载

1
2
3
4
5
6
# 数据下载
wget https://doi.org/10.21227/jw72-m261 -O PassengerEEG.zip
unzip PassengerEEG.zip -d data/

# 数据格式: 62通道EEG, 500Hz, 每trial约5-30s
# 标签: RP (0=安全, 1=风险), DI (0=安全, 1=低风险, 2=高风险)

8. 局限与改进方向

局限 影响 改进方向
15名参与者 样本量小 扩展至100+
仿真环境 缺乏真实路测 实车EEG采集
62通道EEG 座舱不可行 降维至前额3-5通道
跨受试者泛化64.9% 个体差异大 域自适应+迁移学习
仅passive perception 主动驾驶未验证 驾驶员+乘员对比

9. 总结

本论文是 乘员认知检测的里程碑:

  1. 首次建立乘员中心EEG解码框架 — 从驾驶员范式转向乘员范式
  2. 3D-CRNN达95.3%RP准确率 — 3D卷积+GRU优于Transformer
  3. RSL序数标注 — 风险→危险是连续过程而非独立事件
  4. 开源代码+数据 — 可直接复现和改进

对IMS团队:

  • 认知分心检测 可参考RSL序数建模思路
  • 眼动熵 + rPPG 是EEG特征的无接触替代路径
  • 3D-CRNN架构 可迁移到面部表情时序建模
  • 跨受试者泛化 是核心挑战,需域自适应

论文PDF: https://arxiv.org/pdf/2609.07128
代码: https://github.com/SOTIF-AVLab/EEG2023
数据: https://doi.org/10.21227/jw72-m261


乘员EEG认知解码框架:清华3D-CRNN实现95.3%风险预测准确率
https://dapalm.com/2026/10/08/2026-10-08-012-passenger-eeg-3dcrnn-hazard-perception-arxiv2026/
作者
Mars
发布于
2026年10月8日
许可协议