跳转至

CoDePose: Multi-View 3D Human Pose Estimation via Coupled 2D-3D Denoising Diffusion

会议: ECCV2026
论文: https://eccv.ecva.net/virtual/2026/poster/5550
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/11345.pdf
作者: Yanlu Cai, Yuxuan Liu, Weizhong Zhang, Yuan Wu, Cheng Jin
领域: 人体理解
关键词: 多视角姿态估计、耦合扩散、非对称初始化、身体坐标一致性、关节置信度

一句话总结

CoDePose 不再把二维检测当作只能接受的固定观测,而是在保留检测条件的同时联合去噪二维与三维姿态,配合跨视角信息融合和稳定化训练,在 Human3.6M 的 ViTPose、四视角、27 帧设置下将 MPJPE 从 FusionFormer 的 15.1 mm 降至 12.1 mm。

研究背景与动机

多视角人体姿态估计可以先在每张图像上检测二维关节,再根据多个相机的关节序列恢复三维骨架。这种提升式方法处理的是紧凑坐标,而不是整段视频的图像特征,因此容易利用时间上下文。但其输入并非几何真值:遮挡、运动模糊和左右肢体混淆会让二维关节点偏离真实投影。即便三维网络产生一副外观合理的骨架,它的投影也未必能解释检测结果;不同相机独立检测的关节还可能彼此矛盾,不存在一副三维骨架能同时满足所有观测。

已有多视角融合方法通常调整不同观测的权重,或降低异常点的影响,却不直接纠正观测。既有姿态扩散方法虽能反复更新三维预测,但二维检测仍作为固定条件反复输入,错误可能在每一步重新进入系统。本文的切入点是:Human3.6M 上 CPN、ViTPose 的大部分检测误差近似零均值高斯分布,因此可以把检测坐标理解为真值附近的带噪样本,而不是不可修改的约束。这里的高斯性是经验近似,并不涵盖所有严重遮挡与异常点。

核心 idea:把二维观测也纳入可更新的扩散状态,在同一个去噪器里联合修正多视角二维关节和三维骨架;推理时直接从检测到的二维姿态出发,再用关节置信度与身体坐标一致性抑制耦合带来的错误传播。

方法详解

整体框架

输入是同步的多视角二维关节序列,标准实验使用四个视角、27 帧、17 个关节;输出是中心帧在各相机坐标系下的三维姿态,而不是直接输出一个已标定世界坐标系中的骨架。方法不依赖相机外参:它先构造包含二维与三维坐标的耦合状态,经跨视角联合去噪预测干净坐标,再用稳定化监督训练这个预测器。

训练时,二维真值投影和三维真值分别加噪,原始二维检测另作条件;推理时,二维状态从检测结果初始化,三维状态才从高斯噪声开始。跨视角联合去噪每次同时输出三维姿态、修正后的二维姿态和关节置信度,DDIM 更新的是耦合状态。置信度监督及身体坐标一致性是训练约束,不是推理后额外执行的一轮几何求解。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["多视角二维关节序列"] --> B["耦合状态与<br/>非对称初始化"]
    B --> C["跨视角联合去噪"]
    C --> D["二维与三维预测<br/>及关节置信度"]
    D -->|DDIM 更新状态| C
    D -.->|训练监督| E["置信度与<br/>身体坐标稳定化"]
    D -->|最终采样步| F["中心帧各视角三维姿态"]

关键设计

1. 耦合状态与非对称初始化:让二维检测成为可修正的状态

对于每一帧、每个视角、每个关节,模型把三维坐标与二维投影拼接为五维状态。二维部分不是从输入图像重新提取的视觉特征,而是与三维骨架描述同一关节的坐标变量。因此,去噪目标不再只是“已知二维点,猜三维点”,而是学习这些变量的联合分布,让二维纠错与三维重建互相提供证据。

\[ x_{\mathrm{joint}}^{\mathrm{gt}}=[x_{\mathrm{3D}}^{\mathrm{gt}};x_{\mathrm{2D}}^{\mathrm{gt}}] \in\mathbb{R}^{T_f\times V\times J\times 5}. \]

这里 \(T_f\)、\(V\)、\(J\) 分别表示帧数、视角数和关节数。训练时,两部分共享扩散时间步和余弦噪声日程,但采样的噪声彼此独立;二维噪声强度可以单独缩放,主实验取 \(\sigma_{\rm 2D}=1.0\)。去噪器直接预测干净坐标,而不是只回归噪声。原始检测 \(c=x_{\mathrm{2D}}^{\mathrm{det}}\) 仍然作为不加噪的条件输入,因此“修正二维状态”不等于“丢弃原始二维证据”:可变状态与固定条件在模型里同时存在,这是区别于固定二维条件的三维扩散基线的关键。

推理时只给三维部分采样纯高斯噪声,二维部分直接设为检测输出。这样,模型不必先从纯噪声重新创造一副二维骨架,再把它对齐到已经存在的检测;它从一个大体合理但有偏差的骨架开始修正。原文把这一策略解释为利用真值附近的扩散轨迹样本,低步数实验确实支持其效率。不过,同一扩散时刻下两种坐标的初始化噪声水平不同,检测误差近似高斯并不等于严格证明训练与推理分布完全一致,应将其理解为有实验支撑的初始化策略。

2. 跨视角联合去噪:用其他相机和相邻帧纠正当前观测

去噪网络首先按视角独立编码。它采用 PoseFormer 风格的空间—时间 Transformer:每帧先让不同关节交互以捕捉运动学关系,再把关节聚合为姿态级 token,让时间注意力利用相邻帧的运动信息。空间位置嵌入区分关节身份,时间步嵌入告诉网络当前处于哪个噪声阶段。这一步的意义不是单纯增加网络深度,而是在跨相机匹配前先形成含有人体结构与动作上下文的视角内表示。

随后,编码器把所有视角的帧序列拼接起来,允许跨视角、跨帧的全局自注意力;解码器以每个视角自己的序列为查询,通过交叉注意力从共享记忆中取回互补证据。遮挡关节在一个相机中不清楚时,另一个相机中更可靠的对应姿态,以及前后帧的动作轨迹,便有机会参与纠错。融合后的特征恢复为逐视角布局,经时间卷积和线性预测头分别输出中心帧的三维坐标、二维坐标与关节置信度。DDIM 据此继续更新二维与三维状态,而不是只更新三维分支。

这套网络并没有通过已知相机矩阵强制做三角化。它用共享表示和联合监督学习二维—三维的相容关系,因此论文所说的“投影一致性”主要来自联合建模,不宜误读成每一步都满足精确重投影约束。不同视角的三维结果仍处于不同相机坐标系,这也是下一项身体坐标监督不可省略的原因。

3. 置信度与身体坐标稳定化:避免错误二维状态反向污染三维骨架

联合更新不必然有益:如果某个二维关节是异常点,耦合关系也可能把错误传入三维分支。论文为每个关节预测一个经 Sigmoid 限制的值,虽然称为 uncertainty head,其输出含义实际更接近置信度,越接近 1 表示二维估计越可靠。监督目标由当前二维重建误差决定:

\[ \sigma^*=\exp\!\left(-\|\hat{x}_{\rm 2D}-x_{\rm 2D}^{\rm gt}\|^2\right). \]

二维预测准确时目标接近 1,误差大时接近 0。作者将它描述为降低不可靠关节影响的稳定器,但正文没有明确展开置信度如何具体乘入特征或回归项,不能据此补造一个加权损失实现。可直接确认的是,该头被训练为感知二维重建可靠性,且移除它会让耦合模型比三维单独扩散基线更差,说明异常点处理确实关系到联合建模能否获益。

身体坐标稳定化处理的是另一种问题:两个相机里的三维坐标不同,不意味着人体姿态真的不同,因而不能直接对它们逐点做一致性惩罚。方法以髋部根关节为原点,由左右髋方向确定一条轴,再把髋—脊柱方向对该轴正交化,最后用叉积补齐正交基。每个视角的预测减去根关节并转入自己的身体坐标系后,才比较不同视角的骨架差异。这是一种无需外参的软正则;如果髋部或脊柱预测退化,坐标系也会不稳定,原文对一致性损失作截断以防不良梯度占主导,而不是声称这种坐标变换对任意姿态都可靠。

一个完整示例

考虑四台相机同时拍摄一个坐下的人,输入窗口为 27 帧,其中一台相机把被躯干遮挡的手腕检测偏了。初始化时保留所有二维检测作为条件,也把它们放入可更新的二维状态;各视角的三维状态从随机噪声开始。第一轮去噪结合该视角前后帧的动作和其他相机里较清楚的手腕观测,同时调整二维手腕位置和三维手臂结构,而不是要求三维手臂始终解释那个错误二维点。

如果继续采样,下一步接收的是更新后的耦合状态,原始检测条件仍保留。标准配置完成 5 步后输出中心帧的逐视角三维骨架。训练时,置信度监督提醒模型哪些关节重建仍不可靠,身体坐标一致性则约束各相机预测的内在骨架形状一致;推理不需要真值。这个例子解释的是机制,不是论文单个样本的定量恢复记录。

损失函数 / 训练策略

总目标包含三维坐标均方误差、二维坐标均方误差、置信度监督和身体坐标一致性,再整体乘以依赖扩散时间步的权重。二维项权重 \(\lambda_{\rm 2D}=0.1\),避免二维回归主导优化;置信度项和一致性项分别取 \(\lambda_{\rm unc}=1\)、\(\lambda_{\rm cons}=0.1\)。低噪声时刻的预测获得更高权重,时间权重上限为 3。缓存中部分完整公式的排版已损坏,因此这里保留可明确核对的机制与系数,不重建不确定的公式细节。

Human3.6M 使用 S1、S5、S6、S7、S8 训练,S9、S11 测试。模型训练 200 个 epoch,采用 AdamW,初始学习率为 \(4\times10^{-4}\),权重衰减为 0.1,每个 epoch 学习率乘 0.99,总批量为 600,使用 12 张 RTX 4090。视角内空间和时间模块各有 2 层,关节嵌入维度为 32;扩散训练有 1000 个时间步,默认确定性 DDIM 使用 \(\eta=0\)、5 个采样步和 1 个假设。

实验关键数据

主实验

MPJPE 是预测关节与真值关节的平均欧氏距离,单位 mm,越低越好;P-MPJPE 在 Procrustes 对齐后计算该误差,同样越低越好。下表 Human3.6M 行来自原文表 1,均为四视角、27 帧;跨数据集行来自表 2,所列两种方法均使用 3 帧输入,且先在 Human3.6M 预训练,再在目标数据集微调 10 个 epoch,不能称为零样本迁移。

数据集与协议 方法 二维输入 / 帧数 MPJPE ↓(mm) P-MPJPE ↓(mm)
Human3.6M FusionFormer CPN / 27 25.4 未列出
Human3.6M PoseIRM CPN / 27 25.1 未列出
Human3.6M CoDePose CPN / 27 24.8 未列出
Human3.6M FusionFormer ViTPose / 27 15.1 未列出
Human3.6M 三维单独扩散基线 ViTPose / 27 13.5 未列出
Human3.6M CoDePose ViTPose / 27 12.1 未列出
HumanEva,目标域微调 FusionFormer 表 2 未列检测器 / 3 15.4 12.7
HumanEva,目标域微调 CoDePose 表 2 未列检测器 / 3 14.4 11.6
MPI-INF-3DHP,目标域微调 FusionFormer 表 2 未列检测器 / 3 5.4 3.2
MPI-INF-3DHP,目标域微调 CoDePose 表 2 未列检测器 / 3 4.2 2.6

同样使用 ViTPose 时,相对 FusionFormer 的误差减少 3.0 mm,即相对下降 19.9%;相对三维单独扩散基线减少 1.4 mm,即相对下降 10.4%。CPN 设置相对 PoseIRM 仅减少 0.3 mm,说明收益依赖检测质量,不能把更换检测器带来的收益全部归于耦合方法。HumanEva 与 MPI-INF-3DHP 相对 FusionFormer 的误差分别下降 6.5% 与 22.2%,仅适用于上述微调协议。

消融实验

下表来自原文表 3,均使用 Human3.6M 和 ViTPose;“二维权重改为 1.0”是取消小权重设置,不是删除二维监督。

配置 MPJPE ↓(mm) 相对完整模型增加(mm)
完整模型 12.1 0.0
无扩散,单次确定性回归 16.7 4.6
三维单独扩散基线 13.5 1.4
二维权重改为 1.0 12.4 0.3
无身体坐标一致性 12.7 0.6
无置信度头 14.1 2.0

初始化对低步数的影响见原文表 4。这里保留两位小数;主结果的 12.1 mm 是更低精度的呈现,并不与默认 5 步的 12.07 mm 冲突。

初始化 1 步 MPJPE ↓(mm) 5 步 MPJPE ↓(mm) 20 步 MPJPE ↓(mm)
对称:二维与三维都从噪声开始 22.15 15.31 12.10
非对称:二维从检测开始 12.15 12.07 12.06

关键发现

  • 去掉整个扩散过程造成最大的绝对退化;在耦合设计的稳定组件中,去掉置信度头影响最大。后者达到 14.1 mm,比三维单独扩散的 13.5 mm 还差,直接反驳了“只要把二维加入状态就一定更好”的理解。
  • 非对称初始化主要节省采样步数,而不是改变高步数下的最佳误差:20 步时两种初始化非常接近,1 步时差距达到 10.00 mm。
  • 视角数量依然关键:表 7 中四视角为 12.1 mm,三视角为 17.2 mm,两视角为 21.4 mm。学习到的先验没有消除少视角时的观测不足。

亮点与洞察

  • 二维检测同时扮演“固定条件”和“可修正状态”,这两个角色并不冲突。前者保留图像证据的锚点,后者允许去噪过程摆脱对错误观测的机械服从。
  • 身体坐标一致性比较的是人体内在结构,而不是相机坐标数值。它绕开外参需求,但仍承认骨架参考轴可能不稳定,因此是软正则而非硬几何保证。
  • 少步推理来自好的初始化,不等于训练时可以不要扩散。确定性回归消融与单步 DDIM 的差异说明,多噪声级训练和推理迭代次数应分开讨论。

局限与展望

  • 对检测分布仍敏感。原文表 8 中,用 CPN 设置训练后测试 Student-T 噪声,误差从 24.8 mm 上升到 32.7 mm;改为 Student-T 匹配训练和测试后为 25.7 mm,这支持分布适配的作用,不支持任意非高斯噪声下天然鲁棒的结论。
  • 自由场景证据有限。跨数据集实验包含目标域微调,动态相机和真实复杂环境仍是作者列出的后续方向;联合学习视频表示与独立二维噪声日程也是原文提出的改进方向。
  • 可复现细节有缺口。缓存的部分公式排版损坏,正文未展开置信度的具体加权连接;身体坐标的髋—脊柱轴方向在文字与抽取公式之间也不够清楚,因此不应从本笔记直接还原逐行实现。
  • 效率应看完整流水线。原文表 9 的姿态提升延迟为单步 12.97 ms、五步 65.82 ms,但二维检测可能成为瓶颈;该表的比较方法名称与主表中相同误差对应的方法存在疑点,这里不据此宣称对某个基线的严格速度优势。

相关工作与启发

  • vs FusionFormer:两者都从紧凑的多视角二维序列出发进行融合。CoDePose 的核心差异是把二维坐标纳入联合生成状态,而不只是换一个融合网络;同检测器比较才有解释力。
  • vs D3DP、DiffPose、DDHPose:这些扩散姿态方法把二维检测保留为外部条件,主要更新三维假设。CoDePose 进一步更新二维状态,但多视角与单视角的观测难度不同,不能用各自主表的绝对误差直接归因到这一设计。
  • vs 基于三角化的多视角方法:显式几何方法依赖相机关系来融合观测;CoDePose 的跨视角 Transformer 和身体坐标正则不需要外参,代价是其一致性更多来自学习而非精确投影约束。

评分

  • 新颖性: 4/5。把二维检测从纯条件提升为耦合状态,并与低步初始化结合,问题切入明确。
  • 实验充分度: 4/5。同检测器比较、组件消融、初始化、视角数和重尾噪声分析较完整,但跨域结果含微调。
  • 写作质量: 3/5。整体论证清楚,置信度接入方式和个别表格、公式细节仍需澄清。
  • 价值: 4/5。对多视角姿态中检测错误传播给出有用方案,效果和适用范围都应绑定观测质量与部署条件。