Cineon × Smart Eye:航空座舱眼动追踪新合作,非穿戴式飞行员性能评估(EATS 2026)

来源:Halldale Group / Cineon / Smart Eye | 航空座舱研究

资讯信息

  • 来源: Halldale Group - Civil Aviation Training News
  • 发布日期: 2026年9月15日
  • 合作方: Cineon (英国) × Smart Eye (瑞典)
  • 产品: Cineon ELE (Empathic Learning Engine) + Smart Eye MicroBird
  • 展示场合: EATS 2026 (European Airline Training Symposium)

核心创新

Cineon 与 Smart Eye 合作,将 Empathic Learning Engine (ELE) 与 MicroBird 非接触式眼动追踪系统集成,用于飞行员模拟训练中的性能评估。关键突破:非穿戴式方案——无需眼动眼镜或VR头显,座舱内安装摄像头即可,且支持佩戴处方眼镜的飞行员。

1. 技术方案

1.1 系统架构

graph LR
    A[MicroBird 眼动摄像头<br/>座舱内安装] --> B[视线/面部数据]
    B --> C[Cineon ELE 平台]
    C --> D[飞行员性能评估]
    C --> E[认知状态分析]
    C --> F[仪表扫描模式]
    
    G[座舱3D模型] --> C
    G --> H[视线→仪表映射]
    
    D --> I[ competency assessment ]
    E --> J[注意力/疲劳/认知负荷]
    F --> K[扫描效率/遗漏检测]

1.2 与传统方案对比

维度 VR眼动 眼动眼镜 MicroBird
硬件 VR头显 Tobii眼镜 座舱内摄像头
穿戴感 需戴VR 需戴眼镜 ✅ 非接触
处方眼镜 ❌ 不兼容 ⚠️ 受限 ✅ 兼容
视野限制 VR范围内 眼镜视野 无限制
飞行员接受度 低 中 高
部署成本 高(VR设备) 中(每人1个) 低(座舱固定)
数据类型 注视点+VR 注视点+实景 注视点+座舱仪表
实时性 ✅ ✅ ✅
仪表映射 VR内坐标 需标定 3D座舱模型映射

2. Smart Eye MicroBird

2.1 技术规格

参数 MicroBird
类型 非接触式环境眼动追踪
安装 座舱内固定安装
被测者 支持处方眼镜
输出 注视点 + 面部数据
实时性 实时(60Hz+)
标定 快速标定或无标定模式
接口 SDK + 实时数据流

2.2 汽车座舱已部署

Smart Eye 在汽车DMS领域已是量产供应商,MicroBird是其在航空领域的扩展:

领域 产品 状态
汽车DMS Smart Eye DMS 量产(多家OEM)
航空训练 MicroBird + Cineon ELE 早期商用
神经科学 研究级眼动 科研
行为研究 眼动分析平台 科研

3. Cineon ELE 平台

3.1 Empathic Learning Engine

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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
"""
Cineon ELE: Empathic Learning Engine
飞行员性能评估平台

核心功能:
1. 眼动数据 → 仪表扫描模式分析
2. 面部数据 → 认知状态推断
3. 飞行操作数据 → competency评估
4. 综合报告 → 训练改进建议

关键指标:
- 扫描效率: 仪表间切换频率/覆盖率
- 注视停留: 关键仪表注视时长
- 认知负荷: 瞳孔直径变化
- 疲劳指标: 眨眼频率/闭眼时长
- 情境感知: 视线分配比例
"""

from dataclasses import dataclass
from typing import List, Tuple, Optional
import numpy as np

@dataclass
class GazeData:
"""单帧眼动数据"""
timestamp: float # 时间戳
gaze_x: float # 注视点X (像素)
gaze_y: float # 注视点Y (像素)
confidence: float # 置信度
pupil_diameter: float # 瞳孔直径 (mm)
blink: bool # 是否眨眼

@dataclass
class InstrumentRegion:
"""座舱仪表区域定义"""
name: str # 仪表名
bbox: Tuple[float, float, float, float] # x1,y1,x2,y2
priority: int # 优先级 (1=主要, 2=次要, 3=辅助)

class ScanPatternAnalyzer:
"""
仪表扫描模式分析器

基于眼动数据评估飞行员的仪表扫描效率

关键指标:
- 扫描路径: 仪表间切换序列
- 停留时间: 各仪表注视时长
- 覆盖率: 查看的仪表比例
- 切换频率: 仪表切换速率
- 主要仪表优先级: 是否优先查看关键仪表
"""

# 标准仪表扫描模式(Boeing 737 简化)
STANDARD_INSTRUMENTS = [
InstrumentRegion("ADI", (0.4, 0.3, 0.55, 0.5), 1), # 姿态指示器
InstrumentRegion("HSI", (0.55, 0.3, 0.7, 0.5), 1), # 水平状态指示器
InstrumentRegion("ALT", (0.7, 0.3, 0.85, 0.5), 1), # 高度计
InstrumentRegion("ASI", (0.25, 0.3, 0.4, 0.5), 1), # 空速指示器
InstrumentRegion("VSI", (0.85, 0.3, 1.0, 0.5), 2), # 升降速率
InstrumentRegion("ENGINE", (0.3, 0.55, 0.7, 0.7), 2), # 发动机仪表
InstrumentRegion("NAV", (0.1, 0.1, 0.3, 0.25), 3), # 导航显示
InstrumentRegion("COM", (0.7, 0.55, 0.9, 0.7), 2), # 通信面板
]

def __init__(self):
self.current_instrument = None
self.dwell_times = {inst.name: 0.0 for inst in self.STANDARD_INSTRUMENTS}
self.scan_path = []
self.blink_count = 0
self.pupil_sizes = []

def process_gaze(self, gaze: GazeData, dt: float = 1/60):
"""处理单帧眼动数据"""
# 确定注视的仪表
instrument = self._find_instrument(gaze.gaze_x, gaze.gaze_y)

if instrument:
self.dwell_times[instrument.name] += dt
if instrument != self.current_instrument:
self.scan_path.append(instrument.name)
self.current_instrument = instrument

# 眨眼计数
if gaze.blink:
self.blink_count += 1

# 瞳孔数据
if gaze.confidence > 0.5:
self.pupil_sizes.append(gaze.pupil_diameter)

def _find_instrument(self, x: float, y: float) -> Optional[InstrumentRegion]:
"""根据注视点查找仪表"""
for inst in self.STANDARD_INSTRUMENTS:
x1, y1, x2, y2 = inst.bbox
if x1 <= x <= x2 and y1 <= y <= y2:
return inst
return None

def generate_report(self, duration_sec: float) -> dict:
"""生成性能评估报告"""
total_gaze = sum(self.dwell_times.values())

# 覆盖率
viewed = sum(1 for v in self.dwell_times.values() if v > 0.5)
coverage = viewed / len(self.STANDARD_INSTRUMENTS)

# 主要仪表优先级
primary_time = sum(
self.dwell_times[inst.name]
for inst in self.STANDARD_INSTRUMENTS
if inst.priority == 1
)
primary_ratio = primary_time / (total_gaze + 1e-8)

# 扫描效率
scan_rate = len(self.scan_path) / (duration_sec / 60) # 切换/分钟

# 眨眼率
blink_rate = self.blink_count / (duration_sec / 60) # 次/分

# 认知负荷(瞳孔变化)
if self.pupil_sizes:
pupil_std = np.std(self.pupil_sizes)
cognitive_load = min(pupil_std / 0.5, 1.0)
else:
cognitive_load = 0.0

return {
'dwell_times': self.dwell_times,
'coverage': coverage,
'primary_ratio': primary_ratio,
'scan_rate_per_min': scan_rate,
'blink_rate_per_min': blink_rate,
'cognitive_load': cognitive_load,
'scan_path': self.scan_path,
'fatigue_risk': blink_rate > 20 or primary_ratio < 0.5,
'competency_score': self._compute_competency(
coverage, primary_ratio, scan_rate, blink_rate
)
}

def _compute_competency(self, coverage, primary_ratio,
scan_rate, blink_rate) -> float:
"""综合competency评分 (0-100)"""
score = 0
score += coverage * 25 # 覆盖率 25分
score += primary_ratio * 25 # 主要仪表优先 25分
score += min(scan_rate / 20, 1) * 25 # 扫描频率 25分
score += (1 - min(blink_rate / 30, 1)) * 25 # 疲劳(低眨眼) 25分
return round(score, 1)


# ===== 实际测试 =====
if __name__ == "__main__":
analyzer = ScanPatternAnalyzer()

# 模拟60秒眼动数据 (60Hz)
np.random.seed(42)
for i in range(3600):
t = i / 60

# 模拟扫描模式:在主要仪表间循环
cycle = (t * 0.5) % 4 # 每2秒切换一次
if cycle < 1:
x, y = 0.47, 0.4 # ADI
elif cycle < 2:
x, y = 0.62, 0.4 # HSI
elif cycle < 3:
x, y = 0.77, 0.4 # ALT
else:
x, y = 0.32, 0.4 # ASI

# 添加噪声
x += np.random.normal(0, 0.02)
y += np.random.normal(0, 0.02)

gaze = GazeData(
timestamp=t,
gaze_x=x,
gaze_y=y,
confidence=0.9,
pupil_diameter=4.0 + 0.1 * np.sin(t * 2),
blink=(np.random.random() < 0.005)
)
analyzer.process_gaze(gaze, dt=1/60)

report = analyzer.generate_report(60)

print("=== Cineon ELE 飞行员性能报告 ===")
print(f"仪表停留时间:")
for name, time in report['dwell_times'].items():
print(f" {name}: {time:.1f}s")
print(f"\n覆盖率: {report['coverage']:.1%}")
print(f"主要仪表占比: {report['primary_ratio']:.1%}")
print(f"扫描频率: {report['scan_rate_per_min']:.1f} 次/分")
print(f"眨眼率: {report['blink_rate_per_min']:.1f} 次/分")
print(f"认知负荷: {report['cognitive_load']:.2f}")
print(f"疲劳风险: {'是' if report['fatigue_risk'] else '否'}")
print(f"Competency评分: {report['competency_score']}/100")

print(f"\n扫描路径 (前20个): {report['scan_path'][:20]}")

4. 航空→汽车迁移

4.1 飞行员→驾驶员的迁移可行性

维度 飞行员 驾驶员 迁移价值
仪表扫描 6-8个主要仪表 3-5个区域 ✅ 简化版
注视区域 仪表盘+窗外 道路+后视镜+仪表 相似
扫描模式 标准化扫扫描 更自由模式 ⚠️ 需适配
认知负荷 瞳孔直径 瞳孔直径 ✅ 直接迁移
疲劳检测 眨眼率 眨眼率+PERCLOS ✅ 增强
情境感知 视线分配 视线落点 ✅ 直接迁移
训练评估 competency评分 驾驶评分 ✅ 类比

4.2 汽车座舱部署

组件 航空版 汽车版 成本变化
眼动摄像头 MicroBird (高端) Smart Eye DMS (量产) ↓ 60%
标定 手动标定 无标定/自动 ↓ 复杂度
3D座舱模型 飞机座舱定制 汽车座舱通用 ↓ 复杂度
分析平台 ELE (训练用) DMS+OMS (安全用) —

5. IMS 开发启示

优先级 方向 输入 输出 验证标准
🟡 P1 扫描模式分析 眼动数据 扫描效率 与专家评估一致率 > 80%
🟡 P1 认知负荷估计 瞳孔直径 负荷等级 区分度 > 0.5
🟢 P2 competency评分 综合眼动 0-100分 与驾校评分相关性 > 0.7
🟢 P2 疲劳预警 眨眼+闭眼 PERCLOS Euro NCAP ADDW标准

6. 关键洞察

  1. 非穿戴式方案是航空眼动追踪的突破:支持处方眼镜消除长期障碍
  2. Smart Eye从汽车→航空的跨域迁移:DMS技术成熟后扩展到航空
  3. competency评估比简单疲劳检测更全面:扫扫描+认知+情境感知
  4. 3D座舱模型映射是关键技术:将2D注视点映射到具体仪表
  5. EATS 2026吸引50+国1000+人说明航空训练对眼动需求强烈
  6. 汽车座舱可借鉴扫描模式分析:评估驾驶员注意力分配是否合理

参考资料

  1. Halldale Group, “Eye Tracking Partnership Targets Cockpit Pilot Performance”, 2026-09-15
  2. Cineon, Empathic Learning Engine (ELE)
  3. Smart Eye AB, MicroBird Environmental Eye Tracking
  4. EATS 2026, European Airline Training Symposium
  5. Smart Eye, “Human Insight AI for Automotive DMS”, 2026

https://dapalm.com/2026/09/28/2026-09-28-03-cineon-smart-eye-cockpit-eye-tracking-eats-2026-ims/
作者
Mars
发布于
2026年9月28日
许可协议