跳转至

Category-Agnostic Neural Object Rigging

会议: CVPR 2025
arXiv: 2505.20283
代码: https://guangzhaohe.com/canor
领域: 3D视觉
关键词: 物体绑定, 姿态操控, 类别无关, 可变形物体, 神经表示

一句话总结

提出 CANOR(Category-Agnostic Neural Object Rigging),通过将可变形4D物体编码为稀疏的空间定位 blob 集合和实例感知特征体,以完全类别无关、数据驱动的方式自动发现可变形物体的低维姿态空间,实现直观的姿态操控。

研究背景与动机

动态 4D 世界中各种可变形物体(人类、动物、关节物体等)的运动都处在低维流形中。传统方法为此设计了骨骼绑定(rigging)等启发式表示,但这些方法依赖领域专家知识,为每个类别分别设计结构,扩展性极差。

尽管已有一些方法尝试自动发现类似结构(如骨骼提取方法),但大多仍依赖某种程度的类别先验知识(如人体模型 SMPL),限制了对通用类别的适用性。核心矛盾是:如何在不依赖任何类别先验知识的情况下,从有限的动画3D序列中自动发现低维可解释的绑定表示?

本文的切入角度:借鉴骨骼绑定的思想,引入稀疏的空间定位 blob(各向异性球体)作为中间层表示,将物体的姿态和身份信息解耦。用户可以直接拖动 blob 来修改姿态,而身份特征保持不变。

方法详解

整体框架

给定点云输入 \(\mathbf{P} \in \mathbb{R}^{n_p \times 3}\),编码器 \(\mathcal{E}\) 将其映射为一组 blob \(\mathcal{B}\)。每个 blob 编码一个语义部件的空间位置和局部特征。blob 被体素化为特征体后,通过 Transformer 解码器加上身份条件特征,重建为占据场输出3D网格。用户编辑 blob 的位置和旋转即可重新摆姿势。

关键设计

  1. Blob 姿态表示:

    • 功能:用稀疏的参数化球体集合表示物体的动态姿态
    • 核心思路:每个 blob \(\mathbf{b} = (\mathbf{x}, \mathbf{r}, \mathbf{s}, \mathbf{o}, \mathbf{f})\) 由位置、旋转(四元数)、半径、不透明度和特征向量组成;将参数分为姿态相关 \(\mathcal{B}_P = \{(\mathbf{x}_i, \mathbf{r}_i)\}\) 和身份相关 \(\mathcal{B}_I = \{(\mathbf{s}_i, \mathbf{o}_i, \mathbf{f}_i)\}\),实现姿态与身份的显式解耦
    • 设计动机:相比骨骼需要严格的层次结构且需要为每个类别手动设计,blob 将物体建模为半刚性部件的集合,更灵活、更易学习,且天然支持跨类别泛化
  2. 可学习 Codebook 编码器:

    • 功能:从点云提取点级特征并聚合为稀疏 blob 参数
    • 核心思路:使用 PointTransformer 提取点级特征 \(\mathbf{F}\),然后通过一组可学习的 codebook tokens \(\mathcal{Q}\) 与点级特征进行交叉注意力,得到注意力权重 \(\mathbf{W}\);姿态特征 \(\mathcal{F}_P[i] = \sum_j \mathbf{W}[i,j] \cdot \gamma(\mathbf{P}[j])\) 聚合位置编码,身份特征 \(\mathcal{F}_I[i] = \sum_j \mathbf{W}[i,j] \cdot \phi(\mathbf{F}[j] \oplus \gamma(\mathbf{P})[j])\) 聚合语义+几何信息;各参数由独立的 MLP 回归
    • 设计动机:跨类别共享的 codebook 确保了不同实例间 blob 语义的一致对应,每个 token 对应特定的语义部件
  3. Blob 特征体素化 + Transformer 解码:

    • 功能:将编辑后的 blob 解码回 3D 网格
    • 核心思路:通过可微体素化,每个网格点的特征为 blob 特征的加权和 \(\mathbf{F}_G[i] = \frac{\sum_j w_{ij} \mathbf{f}_j}{\sum_j w_{ij} + \epsilon}\),权重 \(w_{ij} = \mathbf{o}_j \cdot \exp(-c \cdot \|\frac{\mathbf{g}_i - \mathbf{x}_j}{\mathbf{s}_j}\|^2)\);用位置编码增强 blob 特征(解决紧凑 blob 表示的细节丢失问题);通过自注意力层迭代细化,并用交叉注意力引入编码器的身份特征进行条件化;最终通过 MLP 预测占据值,Marching Cubes 提取网格
    • 设计动机:可微体素化确保 blob 参数(位置、旋转、大小)具有显式可解释的效果;身份条件化保留细粒度几何细节

损失函数 / 训练策略

  • 重建损失:二元交叉熵 \(\mathcal{L}_\text{recon}\) 监督占据场预测
  • 体素化正则化:\(\mathcal{L}_\text{vox}\) 约束体素权重分布与 GT 占据一致(余弦相似度)
  • 总损失 \(\mathcal{L} = \mathcal{L}_\text{recon} + \lambda_\text{vox} \mathcal{L}_\text{vox}\)
  • 训练策略:采样同一身份不同姿态的两帧,一帧提供身份参数 \(\mathcal{B}_I\),另一帧提供姿态参数 \(\mathcal{B}_P\),模拟用户编辑场景
  • 近表面采样比例从 0(前200k迭代)渐增到 0.8,确保先稳定 blob 初始化再捕捉高频细节

实验关键数据

主实验

方法 DeformingThings4D IoU↑ CD₁↓ FaMoS IoU↑ CD₁↓ Fish IoU↑ CD₁↓
KeypointDeformer 0.536 0.060 0.923 0.029 0.499 0.062
NeuralDeformGraph 0.875 0.020 0.800 0.019 0.686 0.040
SkeRig 0.802 0.057 0.790 0.045 0.782 0.049
CANOR (Ours) 0.937 0.017 0.960 0.018 0.860 0.024

消融实验

配置 IoU ↑ CD₁ ↓ CD₂ ↓
无身份条件化 0.853 0.025 0.018
各向同性 blob 0.934 0.017 0.012
K=8 blobs 0.845 0.028 0.020
K=16 blobs 0.927 0.020 0.013
K=24 blobs (完整) 0.937 0.017 0.011

关键发现

  • CANOR 在所有五个数据集(四足动物、人脸、鱼、冰箱、眼镜)上均大幅领先所有基线
  • 身份条件化对重建质量至关重要(去掉后 IoU 从 0.937 降至 0.853)
  • blob 数量增加带来显著收益(K=8 → K=24,IoU 从 0.845 提升到 0.937)
  • 各向异性 vs 各向同性影响较小,但各向异性更好
  • 在手工捏制的"clay-monster"上仅用 iPhone 扫描即可训练出可操控的绑定表示

亮点与洞察

  • 完全类别无关的设计是最大亮点:同一框架在四足动物、人脸表情、鱼、冰箱、眼镜上都能工作,无需任何类别先验
  • Blob 作为中间层表示在骨骼绑定和纯隐式表示之间找到了优雅的平衡:既有空间可解释性,又不需要拓扑结构设计
  • 共享 codebook + 交叉注意力的设计巧妙地实现了同类别不同实例间的语义对应
  • "clay-monster"实验展示了该方法对非专业用户的友好性和实际应用潜力

局限与展望

  • 不同类别需要分别训练(无跨类别泛化)
  • 需要同一类别的多个动画序列作为训练数据
  • blob 数量需要人工设定上界
  • 不支持拓扑变化(如物体分裂/合并)
  • 训练时间较长(2×A6000 约 7 天)

相关工作与启发

  • BlobGAN 在 2D 图像中使用 blob 建模室内场景布局,本文将其扩展到 3D 可变形物体
  • KeypointDeformer 用关键点做变形但局限于静态形状的变形
  • NeuralDeformationGraph 优化节点表示但缺乏类别先验,容易过拟合
  • 该工作的解耦思想(姿态 vs 身份)可推广到4D重建和动画生成任务

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 类别无关的自动绑定发现是全新任务,blob 表示设计优雅
  • 实验充分度: ⭐⭐⭐⭐ 五个多样类别验证充分,消融完整
  • 写作质量: ⭐⭐⭐⭐ 动机清晰,方法描述详尽
  • 价值: ⭐⭐⭐⭐ 对动画制作和4D理解有重要启发

相关论文