EraW-Net:W-Net 双编码器架构驾驶员注意力估计——场景关联视线区域检测(论文解读)

论文信息

  • 标题: EraW-Net: Enhance-Refine-Align W-Net for Scene-Associated Driver Attention Estimation
  • 作者: Jun Zhou, Chunsheng Liu, Faliang Chang, Wenqian Wang, Penghui Hao, Yiming Huang, Zhiqiang Yang
  • 发表: arXiv(2024年8月),BMVC 2024
  • 核心贡献: W-Net 双编码器架构,将驾驶员视线与场景语义关联,实现像素级注意力区域估计

1. 核心创新

1.1 研究背景

传统驾驶员视线估计只输出视线方向或区域分类,但不知道驾驶员在看场景中的什么物体。EraW-Net 提出场景关联注意力估计:

传统方案 EraW-Net
输出:视线方向(角度) 输出:像素级注意力图
8区域分类 场景语义关联
不关联外部环境 关联道路/车辆/行人/标志

1.2 W-Net 架构

2. 技术方案

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

class EraWNet(nn.Module):
"""
EraW-Net: Enhance-Refine-Align W-Net

双编码器结构:
- Encoder 1 (Enhance): 增强面部/视线相关特征
- Decoder (Refine): 精化注意力图
- Encoder 2 (Align): 对齐场景语义
"""

def __init__(self):
super().__init__()

# Encoder 1: Enhance
self.encoder1 = nn.Sequential(
nn.Conv2d(3, 64, 3, padding=1), nn.ReLU(),
nn.Conv2d(64, 64, 3, stride=2, padding=1), nn.ReLU(),
nn.Conv2d(64, 128, 3, padding=1), nn.ReLU(),
nn.Conv2d(128, 128, 3, stride=2, padding=1), nn.ReLU(),
nn.Conv2d(128, 256, 3, padding=1), nn.ReLU(),
)

# Decoder: Refine
self.decoder = nn.Sequential(
nn.ConvTranspose2d(256, 128, 3, stride=2, padding=1, output_padding=1), nn.ReLU(),
nn.ConvTranspose2d(128, 64, 3, stride=2, padding=1, output_padding=1), nn.ReLU(),
nn.Conv2d(64, 1, 1), nn.Sigmoid() # 注意力图
)

# Encoder 2: Align
self.encoder2 = nn.Sequential(
nn.Conv2d(1, 32, 3, padding=1), nn.ReLU(),
nn.Conv2d(32, 64, 3, stride=2, padding=1), nn.ReLU(),
nn.Conv2d(64, 128, 3, stride=2, padding=1), nn.ReLU(),
nn.AdaptiveAvgPool2d((1, 1)),
)

# 场景对齐头
self.align_head = nn.Sequential(
nn.Linear(128, 64), nn.ReLU(),
nn.Linear(64, 8) # 8 个场景类别
)

def forward(self, x):
# Enhance
feat = self.encoder1(x)

# Refine
attn_map = self.decoder(feat) # (B, 1, H, W) 注意力图

# Align
align_feat = self.encoder2(attn_map)
align_feat = align_feat.flatten(1)
scene_logits = self.align_head(align_feat)

return {
'attention_map': attn_map,
'scene_class': scene_logits
}


# 测试
if __name__ == "__main__":
model = EraWNet()
x = torch.randn(2, 3, 224, 224)
out = model(x)

print(f"注意力图: {out['attention_map'].shape}")
print(f"场景分类: {out['scene_class'].shape}")
print(f"参数: {sum(p.numel() for p in model.parameters()):,}")

3. 场景关联视线区域

3.1 场景类别定义

类别 描述 安全等级
道路前方 正常驾驶 ✅ 安全
后视镜 观察后方 ✅ 安全
仪表盘/HUD 获取信息 ⚠️ 短暂安全
中控屏幕 操作设备 ⚠️ 短暂安全
手机 严重分心 🔴 危险
腿部/膝上 严重分心 🔴 危险
乘客 交谈分心 ⚠️ 中等
闭眼/疲劳 瞌睡 🔴 危险

3.2 与 LISA 对比

维度 LISA EraW-Net
输出 8区域分类 像素级注意力图+场景分类
注意力 空间+频域 W-Net 双编码器
语言引导 ✅ CLIP 文本 ❌
场景关联 通过文本 通过第二编码器
实时性 较快 中等
部署难度 中 中

4. IMS 集成建议

4.1 两篇论文融合方案

4.2 开发优先级

优先级 任务 时间
P0 评估 EraW-Net 注意力图在座舱的适用性 2026 Q4
P0 LISA 频域注意力模块集成 2026 Q4
P1 像素级注意力图+区域分类联合训练 2027 Q1
P1 Euro NCAP 5个分心场景验证 2027 Q1

5. 总结

  1. 像素级注意力图 > 区域分类:EraW-Net 提供更丰富的视线信息
  2. W-Net 双编码器有效:Enhance 提取特征,Align 关联场景
  3. 与 LISA 互补:LISA 解决光照鲁棒性,EraW-Net 解决场景关联
  4. 联合方案最优:频域注意力 + W-Net + 场景语义

参考来源:

  • Zhou et al., arXiv(2024-08),”EraW-Net: Enhance-Refine-Align W-Net”,BMVC 2024
  • 相关:LISA(Ma et al., 2026-05),SGAP-Gaze(2026-04)