rPPG 头姿鲁棒的两条几何路线:CanonicalPhys 四点单应 vs Cantrill UV 纹理展开——3D 表面对齐是舱内的正解吗

本站凌晨发布的 CanonicalPhys 深读文把”转头杀 rPPG”的问题定性为坐标-结构性错位,并拆解了它的修法:四个解剖锚点拉出一个 2D 单应,把每帧脸拉回规范坐标系。但那篇论文在 Related Work 里认了一个”最近亲”——Cantrill 等(CSIRO Data61/澳国立)2024 年的 UV 纹理图路线(Cantrill et al., 2024):不满足于把四个点拉正,而是把整张脸的 468 个 3D 关键点展开到一张固定的 UV 纹理图上,让卷积的接收野直接铺在 3D 面表面上。这条路线当时只经 CanonicalPhys 转述进过站内,原文直到本轮才逐节读完。读完的第一个发现:两条路线的分歧比”简单 vs 复杂”深刻得多——它们对”rPPG 信号住在哪”给出了不同的几何回答,而且各自的失败边界几乎互补。

这篇对比文回答三个问题:UV 纹理展开路线到底怎么工作、它的数字成色如何(哪些提升是实的、哪块是诚实面);它与四点单应在机制和代价上的逐项差异;以及 CanonicalPhys 自己承认不解决的 >60° 偏航段,”3D 化”是否就是正解——顺着这条线,Cantrill 组 2026 年 1 月的后续 MeshPhys(arXiv 2601.13724)已经把表示从 UV 平面推进到了真正的 3D 网格图,本文只做摘要级定位、不引其具体数字(见信源声明)。对舱内团队,这直接对应一个正在发生的选型决策:几何前端上”2D 够用档”还是”3D 上限档”,以及验收链要为”域内倒贴、跨域赚钱”这种收益结构准备好分桶账本。

本文为 A 型(论文深读/对比型)。信源亲读:arXiv 2404.09378v3(Cantrill et al. 2024)全文 HTML 一轮,全部引用数字出自其正文表格;arXiv 2607.15995(CanonicalPhys)全文 HTML 增加一轮核对(分桶表/跨库表/Related Work 原话/开销声明逐条复核一致);arXiv 2601.13724(MeshPhys)仅摘要页 + 官方项目页 + GitHub 仓库 README——其 PDF 11.8MB 超出本站抓取通道上限,HTML 渲染不存在,故本文对 MeshPhys 只引用摘要与仓库可验证事实,不引用任何实验数字。限制必须声明:Cantrill 2024 的 venue 不在 arXiv comments 字段(仅”12 pages, 8 figures, 6 tables; minor corrections”),CVPRW 2024 的归属以官方仓库 README 的引用条目为准;两篇论文虽然共用 PURE→MMPD 迁移方向,但裁剪与预处理协议不同,跨论文的绝对 MAE 不可直接互比,文中只在明确标注处做指示性对照。

背景:同一个干扰源,两种几何回答

rPPG 从面部皮肤的颜色微变化里恢复脉搏,而这个信号天然住在3D 面部表面上。头一动,深度模型的输入坐标和解剖位置错位,三条经典物理先验(二色反射的按解剖位置缩放、跨区域脉搏同相、色度投影的适定性)全部动摇——这是 CanonicalPhys 文已拆解的部分。两条路线对”怎么把坐标拉回去”给出了不同回答:

两条路线不是简单的”轻量版 vs 重量版”。路线 A 的论证是:MMPD 上超过 95% 的帧 |yaw|<45°(MediaPipe 诊断,CanonicalPhys 原文),这个区间内刚体平面内分量主导,2D 单应严格精确;路线 B 的论证则是卷积核的接收野应该与 3D 表面对齐,平面裁剪框(XY crop)里的背景、头发、随姿态游移的皮肤区域都在稀释信号。下面逐个拆机制,再看数字站在哪边。

路线 B 机制拆解:UV 纹理展开 + 朝向条件化掩码

Cantrill 2024 的完整管线(Cantrill et al., 2024,arXiv:2404.09378v3):

  1. 逐帧 3D 关键点:MediaPipe FaceMesh 出 468 个 3D 关键点(注意:这是轻量级回归器的”非公制”3D,不是 3DMM 拟合),置信度阈值 0.45,连续丢检用线性插值补最多 3 帧;
  2. UV 展开:把图像平面上的关键点按 mesh 三角形做分片仿射变换,映射到预定义的 128×128 UV 纹理空间,双线性插值填充,凸包外置零(顺带完成了人脸分割);
  3. 朝向条件化:从三角形法线均值算出每顶点法线,相对相机的倾角 θ 变换到 UV 空间,θ≥45° 的区域整块置零——把”斜面上的投影畸变”直接从输入里删掉;
  4. 进入骨干:UV 图做一阶归一化帧差、离群裁剪、逐窗标准化,缩到 72×72,喂给原版 PhysNet 3D-CNN(训练配置:rPPG-Toolbox 惯例,batch 4、30 epochs、Adam + OneCycleLR,无数据增强),记作 PhysNet-UV;对照 PhysNet-XY 用首帧静态 1.5 倍框裁剪。

设计的灵魂在第 3 步。掩码阈值不是拍的,消融给了一条完整的 U 型曲线(MMPD 跨库 MAE):不掩 12.687、30° 掩 13.300、45° 掩 12.187(最优)、60° 掩 12.890、90° 掩 13.038。掩得太少,斜面畸变留在输入里;掩得太多,训练信息损失反噬——90° 掩码(理论上”只留正对相机的面”)反而比不掩还差。这与 CanonicalPhys 的 Lambertian 权重是同一直觉的两种实现:斜面信息要降权,但降权是连续的(sigmoid),掩码是离散的(置零)——后者更狠,也因此在阈值上更敏感。

实验与证据:提升是实的,但有明确的适用域和诚实面

跨库迁移(PURE 训练 → MMPD 测试)——主战场

方法 MAE (bpm) r SNR
PhysNet-XY(静态框裁剪) 14.905 0.155 −6.882
PhysNet-UV 12.187 0.294 −6.265
参考:PhysNet(rPPG-Toolbox 复现) 13.93 — —
参考:TS-CAN 13.93 — —
参考:EfficientPhys-C 14.03 — —
参考:PhysFormer 14.57 — —
参考:POS(经典) 12.36 — —

(来源:Cantrill et al. 2024,arXiv:2404.09378v3,跨库表;相对 PhysNet-XY:MAE −18.2%、RMSE −11.9%、r +89.8%,论文摘要口径一致)

按 MMPD 运动条件拆(PhysNet-XY → PhysNet-UV,MAE):

条件 XY UV 变化
静止 7.501 5.887 −21.5%
运动后静止 17.281 15.522 −10.2%
旋转 12.251 8.627 −29.6%(最大单项)
说话 8.979 8.308 −7.5%
行走 28.490 22.565 −20.8%(仍然 22+ bpm,没修好)

两个读法。第一,“旋转”桶 −29.6% 是全文最强证据,直接对应舱内最关心的转头场景;且管消融中”UV 展开(12.187)压过动态检测+分割(14.683)和动态检测+PadSquare 填充(17.988)”,说明增益来自几何展开本身,不只是”多做了分割”。第二,诚实面同样清楚:行走条件修完还有 22.565 bpm,全身级运动仍是两条几何路线共同的失败域——几何规范化解决的是”脸在坐标系里怎么摆”,解决不了”脸本身在剧烈刚体运动+表情中”。

域内(PURE 5 折)——UV 路线付出的代价

PURE 域内全测试集:PhysNet-XY MAE 1.318 / r 0.945,PhysNet-UV 1.639 / r 0.924——UV 在域内反而更差。作者自己给出两条解释:PURE 太小(10 人),FFT 分辨率 ~0.88 bpm 让域内区分本身失义(剔除 S7-Talking 后 XY 0.341 / UV 0.500,差距仍在但都在”近满分”区);更重要的是结构性的——域内近正脸时,UV 展开的插值/掩码损耗没有对手可赚。这与 CanonicalPhys 的域内表现(UBFC 域内 1.18→0.96,反而变好)形成有趣反差,但注意两者切分协议不同(rPPG-Toolbox 切分 vs 被试独占 5 折),这个反差只能定性读:几何先验的收益全部来自跨域,域内要么持平要么倒贴。

指示性对照:与 CanonicalPhys 在 MMPD 上的数字(协议不同,只看方向)

指标 CanonicalPhys(四点单应) Cantrill UV
PURE→MMPD 迁移 MAE 13.69±0.21 → 10.91±0.81(r 0.18→0.33) 14.905 → 12.187(r 0.155→0.294)
姿态/旋转最强单项 大偏航桶劣化 1.60×→1.33× 旋转桶 MAE −29.6%
域内代价 UBFC 域内 −18.6%(变好) PURE 域内 +24%(变差)
运动最重条件 —(未单独报 walking) walking 28.49→22.57,未修复

(⚠️ 两篇的裁剪、预处理、切分均不同,绝对值不可互比;表中只呈现”各自论文内”的前后变化方向。)

两条路线的逐项对照

维度 CanonicalPhys(2D 四点单应) Cantrill 2024(3D UV 展开)
几何信号 4 个关键点/帧 468 个 3D 关键点/帧
变换 全局 2D 单应(闭式 DLT) 分片仿射(逐三角形)
对斜面的处理 连续 Lambertian 权重(sigmoid) 离散朝向掩码(≥45° 置零)
可训练参数增量 零 零(骨干仍是原版 PhysNet)
关键点失败的行为 锚点四边形退化→回退恒等变换 线性插值补 ≤3 帧,再失败则该段不可用
推理开销声明 墙钟 <10%(有明确数字) 未报(论文无推理时延/开销数字)
适用域声明 |yaw|<45° 主导(>95% 帧),>60° 明确不声明 未按 yaw 分桶声明;旋转桶是实证最强项
>60° 偏航 回退基线(恒等变换) 大偏航下大面积表面被掩码,信息量骤降
传感域 RGB + 近红外 OBF(增益最小 −5.8%) 仅 RGB(MediaPipe FaceMesh 依赖)

三处值得单独说的差异:

  1. CanonicalPhys 对 Cantrill 的转述有一处需要校准。CanonicalPhys Related Work 原话是 Cantrill 等”warp each frame onto an UV texture map from a fitted 3D face mesh and discard oblique surface patches”,并以此把”每帧 3D mesh 拟合”列为代价。对照 Cantrill 原文,其 3D 几何来自 MediaPipe FaceMesh 的 468 个关键点——一个单目轻量回归器,不是 3DMM 拟合。也就是说,3D 路线的真实工程成本比”每帧 mesh 拟合”的表述要低;反过来说,它的 3D 也只是”非公制 3D”,表面法线的精度上限受制于 MediaPipe。这是两篇论文对垒时本站首次校准的一点。
  2. 失效行为的设计哲学不同。CanonicalPhys 的四锚点方案失效即回退恒等(等于没做,退回基线,不会更差);Cantrill 的 468 点依赖失效后用插值硬撑 3 帧,关键点噪声的影响论文自认”unexplored”。舱内视角:前者是失效安全(fail-safe)设计,后者是失效硬撑(fail-stretch)设计——车规验收会更喜欢前者,但前者在大偏航段同样静默退化。
  3. 开销的可审计性不对等。CanonicalPhys 给了”墙钟 <10%”的可引用声明;Cantrill 2024 全文没有推理开销数字,而它的管线多了逐帧 468 点回归 + 数百次分片仿射变换 + UV 重建,这一步在嵌入式 SoC 上的代价是公开文献当前空白——部署侧选型时这是两篇论文之间最大的信息不对称。

3D 化的下一步:MeshPhys 已经越过 UV 平面(摘要级定位)

顺着”信号住在 3D 表面”的逻辑推到底,UV 展开其实是个中间态:它把 3D 表面重新压平成一张图,再让 2D 卷积去处理——接收野对齐了,但压平引入的拓扑畸变(鼻翼、眼周的高曲率区)回来了。Cantrill 组 2026-01-20 挂出的后续 MeshPhys(arXiv 2601.13724,CSIRO Data61 + ANU + Turku)把这个中间态也去掉了:** Facial Spatiotemporal Graph(STGraph)直接在 3D 面部网格序列上建图,节点编码颜色与结构(位置/法线/朝向属性),MeshPhys 是跑在图上的轻量时空图卷积网络**;摘要声明在四个基准上取得 SOTA 或有竞争力的域内与跨库表现,消融显示”把接收野限制在面部表面上”是强结构先验。代码已放出(csiro/facial-stgraph-rppg,package + experiments 双分支,预处理覆盖 PURE/UBFC-rPPG/UBFC-Phys/MMPD/VIPL-HR/BP4D+/VitalVideos 七个库)。

按本站规范必须划清的界限:该论文 PDF 超出本站抓取通道上限(11.8MB)、无 HTML 渲染,本轮只读到摘要页与仓库 README,其实验数字一律不引;venue 未标注(arXiv comments 字段为空);仓库目前 2 stars/3 commits,社区检验未发生。它在此处出场,只为标注路线图上”UV 平面 → 3D 网格图”这一步的存在与方向。

对 IMS 团队的启示

  1. 选型先问传感器与关键点器的可用性,再谈路线。两条路线都以人脸关键点器为单点依赖:CanonicalPhys 用 68 点(4 个参与 warp),Cantrill 用 468 点 3D(MediaPipe FaceMesh)。舱内近红外相机下 MediaPipe FaceMesh 的可用性没有公开证据——而 CanonicalPhys 在近红外 OBF 上增益本就最小(−5.8%),Cantrill 全部实验在 RGB。近红外舱内链路上,先自测关键点质量,再决定是否值得接几何前端。
  2. 把”域内倒贴”写进验收预期。UV 路线域内 +24% 的倒贴说明几何先验不是免费午餐:它用域内插值/掩码损耗换跨域鲁棒。舱内自采数据通常是”分布窄+近正脸多”的一端,引入几何前端后域内指标可能不涨反跌,验收链要按分桶设计(见下一条),不要用单一聚合 MAE 判生死。
  3. 朝向掩码阈值是可调旋钮,用你们的姿态分布定它。Cantrill 的 U 型消融(30°/45°/60°/90°)给出的方法论是:阈值应匹配目标域的姿态分布。舱内数据先按 yaw 分桶(15°/30°/45° 三条线,CanonicalPhys 官方仓库的 evaluate_pose_stratified.py 可直接复用),再据此调掩码阈值——45° 是 MMPD(手机自拍、手持)的最优,不是车舱的最优。
  4. 两条路线都没有解锁大偏航,别被”3D”两个字误导。CanonicalPhys >60° 回退基线;Cantrill 的掩码在大偏航下把大部分面部信息删掉。若舱内需求包含”回头看后排”的 >60° 段(CPD 场景),几何规范化两条路线都只是”把 <45° 段做稳”,那段要靠雷达/热通道分工,而不是指望 rPPG 单独扛。
  5. 开销审计点:3D 路线缺一张推理成本账。CanonicalPhys 有 <10% 墙钟声明,Cantrill/MeshPhys 都没有。若评估 3D 路线,第一件事是补测:468 点回归 + UV 展开(或建图)在目标 SoC 上的毫秒数与内存占用——这个数字公开文献里不存在,只能自己测。
  6. 失效行为写进需求:回退恒等(fail-safe)与插值硬撑(fail-stretch)是两种不同的舱内失效语义,前者在关键点器退化时静默退回基线性能,后者可能产出带伪影的信号。车规 HARA 分析里这两者的处置完全不同,选型时作为显式条目。

路线判断

我认为:2D 单应与 3D 表面对齐不是替代关系,是同一个”输入端几何先验”家族的两个成本档位。CanonicalPhys 的四点单应是”够用档”——在 |yaw|<45° 覆盖 >95% 帧的驾驶场景里,它以零参数、<10% 墙钟、fail-safe 失效拿到大部分收益;Cantrill/MeshPhys 的 3D 线是”上限档”——旋转桶 −29.6% 的实证说明它在姿态变化更剧烈的域有真实增量,但开销未报、域内倒贴、社区检验未发生。舱内落地的现实排序:先上 2D 档,同时用 3D 线的开源代码(CSIRO 仓库覆盖七个库的预处理)在自采数据上测增量与开销,用分桶账本决定是否升级。

保留意见有三:两篇论文的全部数字都在 72×72 低分辨率裁剪与手机/桌面拍摄协议下,舱内宽视野相机的缩水幅度无公开证据(与池内”斜视角舱内基准空白”条目同构);MeshPhys 的四基准数字本轮未核(抓取受限),其 SOTA 声明保持存疑;以及 MediaPipe FaceMesh 在舱内 IR/低光下的关键点质量是整个 3D 线的前置假设,这个假设本身没有车舱实证。

参考

  1. Wei, Jodeiri Seyedian, Li, Zhao. CanonicalPhys: Canonicalizing Head Pose for Remote Physiological Sensing. arXiv:2607.15995, comments 标注 Accepted by IJCB 2026. https://arxiv.org/abs/2607.15995
  2. Cantrill, Ahmedt-Aristizabal, Petersson, Suominen, Armin. Orientation-conditioned Facial Texture Mapping for Video-based Facial Remote Photoplethysmography Estimation. arXiv:2404.09378v3(venue:CVPRW 2024,据官方仓库 README 引用条目;arXiv comments 无 venue 标注). https://arxiv.org/abs/2404.09378 ;项目页 https://samcantrill.github.io/orientation-uv-rppg/
  3. Cantrill, Ahmedt-Aristizabal, Petersson, Suominen, Armin. Facial Spatiotemporal Graphs: Leveraging the 3D Facial Surface for Remote Physiological Measurement. arXiv:2601.13724(仅摘要页 + 仓库级事实入文). https://arxiv.org/abs/2601.13724 ;代码 https://github.com/csiro/facial-stgraph-rppg
  4. CanonicalPhys 官方代码仓库(MIT,含 pose-stratified 评估脚本). https://github.com/infraface/CanonicalPhys
  5. Joshi, Agaian, Cho. FactorizePhys. arXiv:2411.01542(comments 标注 Accepted at NeurIPS 2024). https://arxiv.org/abs/2411.01542
  6. Tang, Chen, Wang, Shi, Patel, McDuff, Liu. MMPD: Multi-Domain Mobile Video Physiology Dataset. arXiv:2302.03840. https://arxiv.org/abs/2302.03840
  7. 站内:CanonicalPhys 四点单应深读(2026-11-07)、Template Collapse 信息论极限(2026-10-31)、接触式教师伪标签边界(2026-10-31)、VITAL 数值对齐(2026-11-04)——见正文内链。