StreamPPG 精读:一致性特权学习把逐帧 rPPG 推上 Jetson AGX Orin——53 FPS 端到端背后,是一个被消融实验证明的因果掩码命门
StreamPPG 精读:一致性特权学习把逐帧 rPPG 推上 Jetson AGX Orin——53 FPS 端到端背后,是一个被消融实验证明的因果掩码命门
摄像头 rPPG 有两类推理范式,部署视角下各有一笔难看的账。clip-wise 方法(PhysNet、PhysFormer、RhythmMamba)要先攒够 128–160 帧视频窗口再出一次数,30 FPS 相机下这是 4–5 秒的信息延迟——对健康趋势展示无所谓,对要与 ADAS 告警、L3 无响应驾驶员干预共享时延预算的舱内闭环,直接出局。frame-wise 方法(TS-CAN 一系)延迟为零,但精度长期掉队:StreamPPG 论文 Table IX 里 TS-CAN 在 UBFC 上 RMSE 2.72 bpm,比同期 clip 方法差 4–10 倍。arXiv 2606.23186(StreamPPG,Li、Yang、Chu、Hu、Yu、Zhang、Shen,v1 2026-06-22,v2 2026-09-28,未挂 venue、未放代码)给的是一个两边都要的答案:逐帧因果推理(严格一帧进一帧出),UBFC RMSE 0.27 bpm,在 NVIDIA Jetson AGX Orin 上含前后处理端到端 53 FPS。
这对我们 IMS 团队意味着什么:站内 rPPG 系列已写完四篇——训练端(Flow-OT 域泛化)、验收端(信号质量 ML 评估)、准入门(FDA QME 临床转译路线)、信息极限端(Template Collapse,16 架构无一还原个体波形形态)——都在回答”能不能测、敢不敢承诺”;本文补的是第五个维度”什么时候能出数”。它决定舱内生理监测是仪表盘功能还是闭环功能。更值得搬走的是它的训练配方:一致性特权学习(Consistent Privileged Learning,CPL)在训练时把接触式真值信号作为特权输入喂给模型、推理时抽掉,而这套路数的命门——因果掩码——被消融实验压到了台面上:去掉掩码,MMPD MAE 从 3.39 崩到 10.50。
信源声明:本文全部数字出自 arXiv 2606.23186 全文 HTML(abs 页 + v2 全文两次通读,表格数字逐条对照);RhythmMamba 的存在性、venue(AAAI 2025)与开源仓库经其 arXiv abs 页(arXiv:2404.06483,经 export API 抓取)独立核证,其 MMPD/UBFC 对比数字为 2606.23186 引述,未读 RhythmMamba 原文全文,文中标注”据其引述”;TS-CAN 出自 EfficientPhys(arXiv:2110.04447,Liu 等,2021,abs 页已读)。2606.23186 无代码、无 venue,按”待同行评议的预印本”对待,但其消融结构(掩码/损失配方)不依赖结论方向,可直接复用。
背景:5 秒税、精度悬崖,和 Mamba 带来的新变量
三代范式的账目(Table IX,滑动窗口流式协议:逐帧模型对 1000 帧序列做 999 次前向,clip 模型做 841 次窗口前向;UBFC RMSE):
| 范式 | 代表 | 推理单元 | 参数量 | 计算量 | GPU 吞吐 | UBFC RMSE |
|---|---|---|---|---|---|---|
| clip 3D-CNN | PhysNet | 160 帧窗口 | 0.77 M | 70.12 G | 102 FPS | 3.67 |
| 逐帧 CNN | TS-CAN(EfficientPhys,arXiv:2110.04447) | 单帧 | 1.98 M | 0.74 G | 1356 FPS | 2.72 |
| clip Mamba | RhythmMamba(AAAI 2025,arXiv:2404.06483) | 160 帧窗口 | 1.07 M | 12.94 G | 51 FPS | 0.75 |
| 逐帧流式 Mamba | StreamPPG | 单帧 | 2.92 M | 1.59 G | 290 FPS | 0.27 |
三个观察。第一,TS-CAN 证明了逐帧路线的吞吐天花板(1356 FPS),但它丢弃了长程周期结构——RMSE 差距说明脉搏节律的信息在单帧里根本不存在,必须靠时序状态积累。第二,RhythmMamba 把 Mamba 状态空间模型带进 rPPG(Zou、Guo、Hu、Ma,AAAI 2025,11077–11085,代码开源在 github.com/zizheng-guo/RhythmMamba),精度上去了,但它仍是 clip 范式:51 FPS GPU 吞吐,Jetson 上 6 FPS(见下文 Table X),端侧不实用。第三,StreamPPG 的位置是取两条线的交集:逐帧的延迟 + 状态空间的记忆,1.59 G MACs 比 PhysNet 低 44 倍、比 RhythmMamba 低 8 倍,同时精度最高。
clip 范式的 5 秒税在舱内场景不是常数:窗口越准需要越长(呼吸率甚至要 30 秒窗),而心率告警环路通常要求 1–2 秒内响应。延迟与闭环的这笔账,是本文判定”部署端是 rPPG 系列缺失一角”的依据(本文推测,依据=舱内告警/干预的时延预算与 clip 窗口长度量级不匹配)。
核心机制:逐帧流式架构 + 一致性特权学习
架构:差分帧、特权注意力、Mamba-2 状态空间
flowchart LR
A[第 t 帧原始图像<br>128×128] --> B[2D-CNN 编码器<br>带通道注意力]
A2[相邻帧差分<br>V_diff] --> C[2D-CNN 编码器]
B --> D[视觉 token F_v^t]
C --> D
D --> E[AAEB<br>拼接特权信号 token F_s<br>可学习模态/时间嵌入<br>因果注意力掩码 M]
Z[训练期:真值 rPPG 信号 token<br>推理期:置零] --> E
E --> F[TSSB<br>Mamba-2 状态空间<br>h^t = Ā^t h^t-1 + B̄^t F^t]
F --> G[轻量 MLP 解码器<br>输出标量 s^t]
G --> H[0.75–2.5 Hz 二阶<br>Butterworth + Welch PSD<br>→ 心率]
推理时输入严格是”当前帧 + 相邻帧差分”,没有任何窗口缓冲——这是它与 TS-CAN 的本质区别:TS-CAN 用时间位移在通道维上搬运时序信息,StreamPPG 把时序记忆放在 Mamba-2 的隐状态里逐帧滚动。训练时为了批处理仍切 128 帧段,但注意力掩码保证任意时刻的视觉 token 只能看见过去时刻的信号 token(因果掩码 M,公式 11)。通道注意力在编码器里不是装饰:去掉它 MMPD MAE 3.77 → 3.39。TSSB 换成 LSTM 会小幅退步(3.98 / ρ 0.76),说明状态空间的选型有效但不是决定性的。
CPL:训练时把”答案”喂进去,推理时抽掉
特权信息(privileged information)的思路:训练时模型同时有视觉输入 V 和接触式真值信号 z(作为 token 喂给 AAEB),推理时只有 V。理论骨架是 Lipschitz 上界 R_fr(θ) ≤ R_pr(θ) + L·δ(θ):带特权信息的模型风险更低,一致性约束把两条路径拉近,让无特权路径继承这部分收益。总损失 = L_Pearson(f(V, z), s_gt) + λ·L_MSE(f(V, z), f(V, 0)),λ = 0.8(消融最优)。训练配置:30 epochs、batch 8、AdamW、lr 2×10⁻⁴、cosine 退火带 3 epoch 线性 warmup、RTX A6000。
flowchart TB
subgraph train[训练时]
V1[视频帧 V] --> G1[引导路径 f V,z]
Z1[接触式真值 z] --> G1
V1 --> G2[自由路径 f V,0]
G1 -- Pearson 损失 --> L[总损失]
G1 -- MSE 一致性 λ=0.8 --> L
end
subgraph infer[推理时]
V2[视频帧 V] --> F1[单一 f V,0 逐帧输出]
end
train -- 推理时丢弃特权分支 --> infer
损失配方的消融(Table V,MMPD)有一处反直觉,值得整段抄给做蒸馏的同事:只监督引导路径 MAE 9.58(过拟合到特权输入);三项全加(引导 Pearson + 自由 Pearson + 一致性)MAE 4.97(互相干扰);最优是引导路径监督 + 仅一致性项(3.39)——自由路径从头到尾不直接接触真值标签,全靠一致性拉。换句话说,特权学习的收益不是”多加一路监督”就能白拿的,配比错了比不加还糟。
命门:因果掩码
训练时特权 token z 是”平移过的真值信号”,包含未来信息;如果 AAEB 的注意力掩码去掉,视觉 token 在训练时能偷看未来信号,推理时却偷看不了——训练/测试分布错配。消融数字:去掉掩码 M,MMPD MAE 3.39 → 10.50、RMSE 15.95、ρ 0.33,直接回到不可用区间。这是全文最贵的一个消融:它证明 CPL 这类”训练时给特权”的方案在流式设定下,因果性不是工程洁癖,而是性能存在的前提。长序列稳定性(Fig. 9)显示与 32 帧参考的波形 RMSE 无明显累积漂移,说明 Mamba 状态滚动没有把误差滚大。
实验与证据:四个公开数据集 + Jetson 实测
数据集与协议
| 数据集 | 被试 | 视频 | 相机/参考 | 划分 |
|---|---|---|---|---|
| PURE | 10 | 60×1 min,640×480@30 Hz | — | 前 60% 训 / 后 40% 测 |
| UBFC-rPPG | 42 | 42 段 ~2 min,640×480@30 Hz | 血氧仪 60 Hz | 前 30 训 / 后 12 测 |
| COHFACE | 40 | 160×1 min@20 Hz | Logitech C525 | 60/40 |
| MMPD | 33(Fitzpatrick 3–6) | 660×1 min,320×240@30 FPS | — | 70/10/20 |
跨数据集协议沿用 rppg-toolbox:分别以 PURE、UBFC 训练,互测并测 MMPD。
精度:逐帧方法第一次在标准基准上压过 clip 方法
单数据集(StreamPPG,心率 MAE/RMSE bpm、Pearson ρ):
| 数据集 | MAE | RMSE | ρ |
|---|---|---|---|
| PURE | 0.20 | 0.33 | 0.99 |
| UBFC | 0.14 | 0.27 | 0.99 |
| COHFACE | 0.71 | 1.97 | 0.99 |
| MMPD | 3.39 | 8.35 | 0.78 |
对照(据 2606.23186 引述):MMPD 上 RhythmMamba 3.16/7.27/0.84 仍是第一,TS-CAN 12.03/0.17、DeepPhys 22.00/−0.07;UBFC 上 EfficientPhys RMSE 1.81、TS-CAN 2.72。即:受控数据集上逐帧流式已是最高精度,野外数据集(MMPD,含运动/光照/肤色分层)上与 clip Mamba 互有胜负、总体仍差一步。
跨数据集泛化是短板,给 IMS 团队划重点:PURE→UBFC 0.33/ρ 0.99、UBFC→PURE 2.00/ρ 0.94 都不错,但 →MMPD 全面崩掉(PURE→MMPD MAE 10.42/ρ 0.33;UBFC→MMPD 9.29/16.46/ρ 0.39)。CPL 的收益也集中在可控运动:消融里 Stationary 1.86→0.90 增益最大,Talking 2.62→1.77、Rotation 4.39→3.18,Walking 10.97→10.20 基本没救(子集 ρ 0.04);光照上 300–800 lm 5.59→3.78、100 lm 4.26→3.35。论文训练集越小时跨库测试置信区间越宽(训练只用 UBFC 时在 PURE 上 CI 明显更宽,Fig. 6)——车载数据训练多样性不足的问题会原样复现。
效率:Jetson AGX Orin 端到端实测(Table X,含前后处理)
| 分辨率 | FPS | UBFC RMSE |
|---|---|---|
| 64×64 | 56 | 0.31 |
| 96×96 | 54 | 0.27 |
| 128×128 | 53 | 0.27 |
| 256×256 | 54 | 0.22 |
同表对照:TS-CAN 128×128 上 227 FPS(RMSE 2.72),RhythmMamba 仅 6 FPS(RMSE 0.75)。三个读数:第一,53 FPS 端到端意味着 30 FPS 相机链路上有约 1.7 倍余量,逐帧实时成立;第二,分辨率到 256×256 精度反而更好(RMSE 0.22)且帧率不掉——空间分辨率对 rPPG 的边际收益还没吃满;第三,RhythmMamba 的 6 FPS 是 clip Mamba 在端侧不实用的直接实证。代价清单也要列全:内存 405.75 MB,高于 TS-CAN(186.60)和 RhythmMamba(283.00),低于 PhysNet(432.96)与 PhysFormer(598.53)——与 DMS 主模型共享内存预算时不是免费午餐。
与已有方案的关系
| 维度 | PhysNet 系 | TS-CAN 系 | RhythmMamba | StreamPPG |
|---|---|---|---|---|
| 推理延迟 | 4–5 s 窗口税 | 零 | 4–5 s 窗口税 | 零(因果逐帧) |
| UBFC RMSE | 3.67 | 2.72 | 0.75 | 0.27 |
| 端侧实时(Jetson) | — | 227 FPS | 6 FPS ✗ | 53 FPS ✓ |
| 野外鲁棒(MMPD) | 差 | 极差 | 3.16/0.84 | 3.39/0.78 |
| 开源 | ✓ | ✓(EfficientPhys) | ✓ | ✗ |
与站内系列的关系:StreamPPG 预测的是逐帧心率级标量流,不承诺单周期波形形态——这与 Template Collapse 文的结论(消费级 RGB 链路还原不了个体脉搏形态,能承诺的是心率与时间比特征)完全兼容,它没有撞信息论墙。但验收口径的教训原样适用:文中 0.99 级 ρ 是按标准基准协议(rppg-toolbox)报的 per-video/per-dataset 平均,若要进舱内验收,应按那篇文章论证的 cross-subject 口径重测。训练数据一端的呼应:CPL 本质上是”接触式传感器当训练期老师”的蒸馏范式,与选题池里 Beyond Contact Sensors(arXiv 2609.10026,伪标签边界)是同一枚硬币的两面——一个解决”训练期教师怎么用”,一个解决”教师标签什么时候可信”。
对 IMS 团队的启示
- 闭环时延预算重排:若舱内 rPPG 只进仪表盘(趋势展示),clip 范式的 5 秒税可接受;若要进告警/干预闭环(疲劳、L3 无响应驾驶员干预的生理佐证通道),逐帧流式现在是唯一同时满足延迟与精度的选项,StreamPPG 是第一个完整证据。验收时按 Jetson 实测口径(含前后处理)算时延,别用 GPU 吞吐数。
- 因果掩码检查项进评审清单:任何”训练时给特权信息”(接触 ECG/PPG 老师、未来帧、ADAS 真值、标注层)的流式模型,评审第一问就是注意力掩码是否因果。10.50 vs 3.39 这组数字应写进团队内部消融模板——训练/测试信息差是这类方案的头号崩塌模式,且指标不会警告你,只会安静地差。
- 蒸馏配比模板:特权蒸馏不要给自由路径直接加监督(4.97 比 3.39 差),一致性项是唯一桥梁,λ=0.8 的量级可作为起点扫参。
- 验收清单(按硬标准给可测项):① 自己的车载场景复测,重点看 Walking 等效场景(颠簸/操作运动)——论文里 MAE 10.20、ρ 0.04,不要假设它能用;② 光照分档测(论文 300–800 lm 增益明显,弱光待验);③ 训练集多样性直接决定跨场景 CI 宽度,车载数据要覆盖皮肤色调/光照/运动矩阵再谈泛化;④ 分辨率扫到 256×256 再定链路(0.27→0.22 是免费精度)。
- 复现门槛:无代码、无 venue,单组结果。立复现项时的最小验证集建议:UBFC(协议最标准)+ 自采车载 30 分钟,先看 UBFC RMSE 能否落在 0.3 量级、再看跨域掉点曲线,再决定是否进 DMS 联合管线。
- 路线判断(第一人称):我认为 2027 年前逐帧流式会成为舱内 rPPG 部署默认范式,依据是效率表的量级差(1.59 G MACs vs 12.94–70.12 G)与 Jetson 实测,以及 clip 范式与闭环时延预算的量级冲突;但”StreamPPG 这套具体配方”能否存活,取决于代码开源与第三方复现——在此之前,把它当架构方向参考,不当可落地实现。
参考
- StreamPPG: Low-Latency rPPG Estimation via Consistent Privileged Learning (Yiming Li et al., 2026), arXiv:2606.23186, https://arxiv.org/abs/2606.23186
- RhythmMamba: Fast, Lightweight, and Accurate Remote Physiological Measurement (Bochao Zou et al., AAAI 2025), arXiv:2404.06483, https://arxiv.org/abs/2404.06483;代码 https://github.com/zizheng-guo/RhythmMamba
- EfficientPhys: Enabling Simple and Fast Physiological Measurement (Xin Liu et al., 2021), arXiv:2110.04447, https://arxiv.org/abs/2110.04447