别再用 EAR 了:Eyelid Angle(ELA)——用3D眼睑平面法线做视角鲁棒眨眼检测,附Blender合成数据管线精读
别再用 EAR 了:Eyelid Angle(ELA)——用3D眼睑平面法线做视角鲁棒眨眼检测,附Blender合成数据管线精读
0. 一句话结论
arXiv 2511.19519(Wolter, Berrio Perez, Shan,2025-11-24 提交,8页/5图/3表)提出 Eyelid Angle(ELA):用 MediaPipe 3D 面部关键点拟合上/下眼睑平面,取两平面法线夹角作为眼睛开合度指标。在相机围绕头部 ±40° 扫描的合成基准上,恒定真实 ELA=60° 时平均误差仅 2.8°(垂直扫描)/ 3.3°(水平扫描),而同类 2D 指标 EAR 在头部旋转下的投影畸变是结构性的。配套的 Blender 逐帧驱动管线能以已知真值生成任意视角、任意眨眼动力学的训练数据。
对 IMS 开发者的直接含义:EAR 这个从 2016 年沿用到今天的”事实标准”,在 DMS 的真实安装几何下(相机在 A 柱/仪表台/方向盘柱,头部有 yaw/pitch 自由度)天然带视角偏差——你的 PERCLOS 阈值标定可能一直在被头姿污染。 本文把这篇论文拆到公式级,并给出可直接落地的替换路径。
论文:Blinking Beyond EAR: A Stable Eyelid Angle Metric for Driver Drowsiness Detection and Data Augmentation,
https://arxiv.org/abs/2511.19519(2025-11-24 提交,cs.CV,交叉 cs.LG / eess.IV,8页/5图/3表)。作者:Mathis Wolter(Hamburg University of Technology)、Julie Stephany Berrio Perez、Mao Shan(University of Sydney);DAAD RISE Worldwide 与 Australian Research Council(IC230100001)资助。代码承诺接收后开源。
1. 为什么现在必须重审眨眼指标:三条法规时间线
眨眼/眼睑指标不是学术玩具,它是三条准入线的底层传感器量:
| 法规/评测 | 要求 | 时间点 | 对眼睑指标的依赖 |
|---|---|---|---|
| EU GSR II / DDAW(Commission Delegated Regulation (EU) 2021/1341) | 新车型强制驾驶员疲劳警示 | 2024-07-07 新车型 / 2026-07-07 全部新车 | 疲劳判定需量化眼睑闭合状态(PERCLOS 类指标为主流实现) |
| EU ADDW(Delegated Regulation (EU) 2023/1470) | 分心警示扩展 | 与 DDAW 同窗口 | 眼睑+视线联合判断,眼睑开合是”视线是否有效”的前提量 |
| 日本 DMS 强制 | 新车强制 DMS(据 Seoul Economic Daily 2026-08 报道) | 2031 | 丰田等厂商已在申请中提交眨眼/视线检测证据 |
此外,中国 GB 44721 / GB 47955 系列已把 DMS 疲劳检测写入强制标准(本站 2026-10-13 已解读),Euro NCAP 2026 的 DSM 疲劳项也要求 OEM 在 Dossier 中声明检测阈值。这些框架共同点:它们审计的是”指标 → 阈值 → 告警”链条,而链条的输入端——眼睑开合度——如果随头姿漂移,你的阈值声明在验收场景里就是不可复现的。
一个真实失效样本:Tech Times 2026-07 报道,加拿大 BC 省一名戴墨镜的驾驶员在 100 km/h 睡着,DMS 摄像头未检出——墨镜只是极端案例,未戴墨镜时的头姿漂移是每天都在发生的”隐形失效”。EAR 对此几乎没有防御。
2. EAR 到底错在哪:结构性的投影问题
Soukupová & Čech(2016)的 EAR 是纯粹的 2D 几何:
1 | EAR = (‖p2−p6‖ + ‖p3−p5‖) / (2·‖p1−p4‖) |
p1–p6 是 dlib 68 点里的 6 个眼角/眼睑点。问题在于:这个比值里的三条边长都是图像平面上的投影距离。当头部绕 yaw/pitch 旋转时:
- 上下眼睑连线(纵向)在图像上的投影长度按 cos(θ) 收缩;
- 内外眼角连线(横向)按另一角度收缩;
- 两个收缩不同步,所以 EAR 的”闭眼/睁眼”分界随头姿滑动。
这在桌面应用(相机正对屏幕,用户头姿受限)里无伤大雅,但 DMS 的安装几何决定了头姿范围远大于此:方向盘柱后置相机看到的是俯仰 15°–30° 的脸,A 柱相机看到的是 40°–60° 的侧脸。同一个驾驶员,同样的眼睛开合度,在不同头部姿态下 EAR 读数不同——你的标定阈值在躲着这一项走。
3. ELA 方法精读:从关键点到法线夹角
3.1 输入:MediaPipe 3D 关键点
论文用 MediaPipe Face Mesh V2 + BlazeFace(取代 dlib 的稀疏 2D 输出)。每片眼睑取 7 个关键点(上、下各 7)。关键点坐标:x、y 归一化到图像宽高;z 是相对所有关键点质心、按面部宽度缩放的近似深度。论文对 z 做了启发式重标定:
1 | z = 1.7 · z_raw · T₂,₂ |
其中 T 是 MediaPipe 推理输出的变换矩阵。作者明说这是”保证几何一致性,不是真实深度”——这是后面误差的来源之一(见 §3.4)。
3.2 平面拟合与法线夹角
对每片眼睑的 7 个 3D 点做最小二乘平面拟合:
- 质心去均值:
A = L − (1/n)·L·Jₙ(Jₙ 为全 1 矩阵) - SVD:
A = UΣVᵀ,平面法线取n⃗ = U*,ₙ(U 的最后一列) - 法线定向:按关键点从内眼角到外眼角的顺序,取相邻关键点向量叉积判断符号:若
s = n⃗·(A*,ᵢ₊₁ × A*,ᵢ) < 0,翻转法线。这一步保证”上眼睑平面法线朝外、下眼睑平面法线朝外”的约定一致 - 原始夹角:
1 | ELA_raw = arccos( n⃗_lower · n⃗_upper ) |
直觉:眼睛完全睁开时,上下眼睑近似组成一个张角较大的楔形;闭眼时两平面趋于共面,夹角趋近 0°。论文的特征表里 PERCLOS 的判据就是 ELA < 20°。
3.3 双眼融合与平滑
- 头姿 yaw 加权融合:
ELA_combined = σ(−4β)·ELA_left + σ(4β)·ELA_right,β 为 yaw 角,σ 为 sigmoid,4 是启发式缩放系数。效果:头向左转时左眼被遮挡/透视压缩,权重自动滑向右眼。 - 平滑:1D 高斯滤波,σ = FPS/30。作者试过 Savitzky–Golay,在低帧率下闭眼前会出现明显的正向尖峰(对相位检测是灾难),故弃用。
3.4 已知的误差结构(诚实摘录)
论文 Table II 是全篇最有价值的表——恒定真实 ELA、相机 ±40° 扫描下的 MAE:
| GT ELA | 0° | 10° | 20° | 30° | 40° | 50° | 60° | 70° |
|---|---|---|---|---|---|---|---|---|
| MAE (°) | 18.3 | 14.6 | 10.8 | 13.1 | 11.6 | 7.6 | 4.1 | 6.1 |
| MSE | 442 | 340 | 194 | 237 | 171 | 80 | 30 | 50 |
三个读法:
- 睁眼区(≥50°)精度极好(MAE 4–6°),这正是 EAR 最容易漂移的区域;
- 小 ELA 区(0–20°,即闭眼/半闭眼)误差翻三倍(MAE 10.8–18.3°)——但注意 PERCLOS 阈值 20° 恰好落在这个”误差大区”边缘,这是一个必须在自己的数据上重新验证的点,不能直接照抄 20°;
- 极端垂直旋转下误差上升,来源是 MediaPipe 启发式 z 坐标 + 关键点定位噪声。
4. 实验与数据集:在两个公开 DMS 数据集上的成绩单
4.1 眨眼检测(DMD)
DMD(Driver Monitoring Dataset,Ortega et al.,ECCV 2020 Workshop,arXiv:2008.12085):37 名驾驶员、41 小时、3 摄像头(面部/身体/手部,RGB+深度+IR)。论文用其 drowsiness 子集做眨眼基准:16 段视频、每段 5441±183 帧 @30Hz、共 1578 个标注眨眼。判定成功 = 检出窗口与标注窗口重叠。结果:
平均检出率 DA = 89.4%(DA = TP/(TP+FN+FP)·100%)
注意 DMD 标注本身有质量问题(论文承认存在相邻眨眼被合并标注的情况),89.4% 是在”标注欠完美”条件下取得的。
4.2 疲劳分类(UTA-RLDD)——这里必须泼冷水
UTA-RLDD:约 30 小时、60 名被试、三分类(清醒/低警觉/疲劳,KSS 标注),按 Ghoddoosian 协议 5 折交叉验证。ELA 特征 + kNN(k=10,每 60s 判一次,90s 滑窗,z 标准化 + PCA 降 5 维)的成绩:
| 任务 | 本文 | 文献基线 |
|---|---|---|
| 三分类 | 52.5% | 65.2%(Ghoddoosian et al.) |
| 二分类(清醒 vs 疲劳) | 80.4% | 93.05%(Dreißig et al.,另一数据集 @50Hz) |
三分类低于基线约 13 个点。 原因论文说得坦白:只用眨眼相关 ELA 特征 + kNN 这种弱分类器,且 UTA-RLDD 有 169/182 段视频帧率不均(12–30fps 被当作恒定均值处理),时序保真度受损。结论要摆正:ELA 的贡献在指标层(视角鲁棒、可合成),不在分类 SOTA 层。 想拿好成绩,把 ELA 时序喂给现代时序模型即可——这正是给开发者的机会(见 §7)。
4.3 一个被低估的发现:帧率依赖性
论文 Table III 在合成数据上量化了帧率对分类器的影响:
| 帧率 | AC1(同帧率训练/测试) | AC2(混合帧率训练) | DA |
|---|---|---|---|
| 10 fps | 77% | 69% | 51% |
| 30 fps | 98% | 69% | 95% |
| 50 fps | 92% | 46% | 95% |
更致命的是:闭眼时长 d₂(一个核心判别特征)从 30Hz 到 50Hz 检出值直接缩水 32%——因为相位边界是从导数极值点切的,帧率改变导数形态。AC2 在 50fps 测试时跌到 46%(≈瞎猜)的根因就是训练集里 30fps 特征分布污染了分类器。
这条对量产 DMS 是一票否决级的教训:你的训练数据和产线帧率必须严格对齐,跨帧率混训眨眼特征分类器会静默崩掉。
5. Blender 合成数据管线精读:真值已知的眨眼信号发生器
疲劳数据的采集困境是行业共识:让真人困到能标注为”drowsy”既不安全也不合规(本站 2026-10-15 已有多篇数据合成方向的解读,这篇的独特价值是眨眼动力学的物理级可控生成)。论文的管线:
| 组件 | 实现 |
|---|---|
| 渲染 | 开源 Blender + Python 脚本 API(作者承诺接收后开源场景与管线) |
| 模型 | Sketchfab 某 rigged 人形 avatar,一盏灯 + 一个虚拟相机 |
| 眨眼信号 | 由 Caffier et al. 的统计分布驱动:闭眼/闭合/睁眼三段线性段 + 闭合段样条插值;眨眼间隔从清醒/疲劳两组经验分布采样——信号是”状态条件化”的,不是随机抖动 |
| 噪声 | 信号上叠加零均值随机噪声 |
| 相机 | 位置从启发式正态分布采样并线性插值,朝向自动跟踪头部 |
| 真值 | avatar 眼睑角度直接由输入 ELA 信号驱动 → 逐帧真值天然已知 |
基准用法:真值恒定 60°,相机在垂直/水平 ±40° 扫描(得到 §3.4 的 MAE 表);再做 0°–70° 每 10° 一档的扫描。
与已有合成方案的差异化:论文在相关工作里点名 SynBlink、UnityEyes、Borges et al.——这些方案解决了”多视角眼部图像”,但缺乏细粒度眨眼时间动力学(对疲劳检测恰恰是核心信息)。ELA 管线的卖点是:时间轴上的动力学(三段时长、间隔分布、A/V 比)是逐帧可控的。
局限同样要记录:目前只用了一个 avatar、未合成打哈欠等其他疲劳行为,信号生成走的是统计模型而非 GAN(future work 提了 GAN 生成 ELA 信号)。
6. 技术路线对比:五条眼睑量化路线的选型表
| 路线 | 代表 | 视角鲁棒性 | 特殊硬件 | 时序精度 | 量产风险 | 判断 |
|---|---|---|---|---|---|---|
| 2D EAR | dlib 6点 + SVM | ❌ 投影畸变结构性存在 | 无 | 中(2D点噪声) | 阈值随头姿漂移,DDAW 审计风险 | 只适合固定视角场景 |
| ELA(3D法线夹角) | MediaPipe Face Mesh V2 | ✅ 恒真值扫描 MAE 2.8–3.3° | 无(纯RGB) | 高(三段相位可分) | 小ELA区误差 10–18°,需重标定阈值 | RGB DMS 的默认升级项 |
| IR 虹膜覆盖率(EyeClosure) | Baccour et al. | ✅(近红外主动光) | ⚠️ 需 IR 成像 | 高(50fps + SG 滤波) | BOM 增加,但抗光照/墨镜最好 | 高端配置/夜视要求高时用 |
| 二值眼态分类器 | 各家 CNN | 中(看训练分布) | 无 | 中(逐帧分类,无相位) | 边界抖动需后处理 | 轻量场景可用,时序信息丢失 |
| 端到端时序深度模型 | CNN+LSTM/Transformer | 依赖数据覆盖 | 无 | 高(理论上限) | 数据饥渴,视角泛化靠合成数据喂 | 终态方案,ELA 是它的优质输入/监督源 |
关键观察:ELA 与端到端时序模型不是竞争关系。 ELA 提供两样端到端模型最缺的东西:①一个物理可解释、视角不变的中层表征(可直接当特征);②一条合成数据的监督信号(Blender 管线生成的逐帧真值)。论文用 kNN 只是证明指标有效,上限远没摸到。
7. 对 IMS 开发者的七条直接启示
审计你的 EAR 阈值标定协议。 如果你现在按”驾驶员正对相机”标定 PERCLOS/眨眼阈值,把头部 yaw 拉到 ±30° 重新测一遍读数漂移。漂移超过 10% 就该考虑替换指标或做头姿补偿。ELA 给了一个可量化的替换基准:恒真值扫描 MAE 2.8–3.3°。
PERCLOS 的 20° 阈值不能直接抄。 ELA 定义下的
ELA < 20°判据来自论文自己的信号分布;Table II 显示 10–30° 区间 MAE 有 10–18°,你在自己的传感器/安装角/人群上重新拟合这个阈值(建议:用 §5 的合成管线在固定真值下扫一遍,找出你系统里 MAE<5° 的可信区间,再把阈值放在可信区间内)。帧率是合同级参数。 训练数据帧率 = 产线帧率,写进模型卡和验收用例。跨帧率混训眨眼特征分类器的实测后果是 92% → 46%(§4.3)。如果产品有 30/60fps 两档配置,要么分模型,要么把特征全部归一化到时间域并验证相位边界提取的帧率不变性。
MediaPipe 是当下性价比最高的 3D 关键点底座,但 z 坐标只是启发式。 论文明确把误差来源指向
z = 1.7·z_raw·T₂,₂这个启发式。短期可接受;中期两条路:(a) 双目/多目 DMS(本站 2026-10-15 已有 OmniVision/OX05C1S 与 Valens VA7000 链路解读)做三角化拿真深度;(b) 在 SoC 上跑 MediaPipe 的同时用轻量深度头做残差校正。把 Blender 管线当”标定工装”而不只是数据增广。 这篇论文最容易被忽略的用法:任何眼睑指标(EAR/ELA/虹膜覆盖)都可以在已知真值的合成扫描下画出”MAE–视角–ELA 真值”三维误差面,这张图应该进你的 DMS 设计文档——它就是你向 Euro NCAP/GB 标准声明检测条件的证据基础。
低帧率产品的下限要想清楚。 10fps 下 DA 只有 51%(合成基准)。如果为了省带宽/算力把 DMS 摄像头降到 10fps,眨眼相位特征(闭眼时长、A/V 比)基本不可用——疲劳检测不是”检测一次眼睑状态”,而是”测量一段时间内的时序统计量”,帧率直接决定统计量的有效性。
标签质量要当成一等公民。 DMD 的标注不一致(眨眼合并)让 89.4% 这个数字的解读必须打折。自建数据集时,眨眼标注建议用 ELA/眼态信号半自动复核一遍标注窗口——一晚上的自动质检比重新标注便宜得多。
8. 路线判断
短期(0–12 个月):在现有 RGB DMS 上把 EAR 替换为 ELA 是一次”纯软件升级”——MediaPipe 在主流车规 SoC(高通 8155/8255 级别的 NPU)上跑 Face Mesh V2 没有算力障碍,替换面只到特征提取层,下游疲劳分类器可以不动。预期收益:跨头姿阈值一致性,直接服务 DDAW/GB 44721 的审计链。
中期(1–3 年):ELA 作为中层表征 + 合成真值,喂给时序深度模型(本站 2026-10-14 已解读 LTC-CGMN 轻量时序卷积,是天然宿主)。合成管线解决疲劳数据的安全采集困境,这比指标本身更有长期价值。
判断依据:EAR → ELA 的迁移成本几乎只有工程时间,而它同时改善法规符合性(阈值可复现)、跨用户泛化(头姿不再污染基线)、数据合成(真值可生成)三个方向。这种”三点同时受益、无一受损”的替换在 DMS 工程里很少见。唯一需要警惕的是小 ELA 区的精度退化——闭眼检测恰好是疲劳检测最不能出错的区域,所以任何替换都必须在你的真实安装几何 + 真实人群上重跑 Table II 那张误差面,而不是相信论文的合成基准。
参考
- Wolter, M., Berrio Perez, J.S., Shan, M. Blinking Beyond EAR: A Stable Eyelid Angle Metric for Driver Drowsiness Detection and Data Augmentation. arXiv:2511.19519, 2025-11-24.
https://arxiv.org/abs/2511.19519 - Ortega, D. et al. DMD: A Large-Scale Multi-Modal Driver Monitoring Dataset for Attention and Alertness Analysis. ECCV 2020 Workshops. arXiv:2008.12085.
https://arxiv.org/abs/2008.12085 - Soukupová, T., Čech, J. Real-Time Eye Blink Detection using Facial Landmarks. ICIAP 2016.
- Ghoddoosian, R., Galib, M., Athitsos, V. A Realistic Dataset and Baseline for Real-Time Driver Drowsiness/Fatigue Detection. arXiv:1904.07312(UTA-RLDD 数据集).
- Commission Delegated Regulation (EU) 2021/1341(DDAW,2024-07-07 新车型 / 2026-07-07 全部新车强制).
- Commission Delegated Regulation (EU) 2023/1470(ADDW).
- Seoul Economic Daily(2026-08-24):Japan to Require Driver-Monitoring Systems in Cars From 2031(Google News RSS 检索).
- Tech Times(2026-07-07):Sunglasses Defeat Tesla’s Safety Camera, B.C. Driver Asleep at 100 km/h with Two Kids(Google News RSS 检索,原文未逐字核对,引用以标题事实为限).