Kirin: Animal Motion Generation from In-the-Wild Video¶
会议: ECCV2026
作者: Brian Nlong Zhao, Zhuoyang Pan, James M. Rehg, Jiajun Wu, Shangzhe Wu
官方论文: ECCV 论文页
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/3300.pdf
项目: https://kirin-ani.github.io/
领域: 人体理解(动物关节运动生成)
关键词: 动物运动生成、野外视频、运动扩散模型、图像条件、自动绑定
一句话总结¶
Kirin 将野外视频变成可训练的四足动物三维运动数据,用参考图像补充文本缺失的形态信息,再将生成骨架动作应用于网格动画;在 AiM3D 上,加入图像条件使 FID 从文本版的 11.889 降至 6.248,但运动多样性指标有所下降。
研究背景与动机¶
动物动作生成的瓶颈首先是数据,而不只是生成网络。人体运动可以借助动作捕捉获得统一骨架下的大量轨迹,野生动物却很难进入受控采集环境,也未必在那里表现出自然行为。DeformingThings4D、Truebones Zoo 和 AniMo 使用的人工制作或游戏动作能够提供整洁的运动序列,但动作类型和行为变化受制于创作者;网络视频覆盖面更广,却没有可以直接训练骨架生成器的三维监督。
已有的视频重建方法又不完全适合这一目标。逐帧预测可能在二维图像上大致正确,却在时间上抖动;无模型方法可以恢复外观,却未必提供跨样本一致的关节定义。另一方面,即使三维动作数据足够,文本中的“狗小跑”也没有指定身体比例:长腿犬与短腿犬不应共享完全相同的形态假设。只追求句子与动作类别匹配,仍可能生成无法稳定绑定到具体动物网格的骨架。
Kirin 因而把“从视频取得统一运动表示”和“让动作适合输入动物”一起处理:前者依靠 SMAL 骨架与序列优化,后者用单张图像提供形态条件,而非用一段输入视频直接泄露目标动作。核心 idea:以真实视频重建的统一骨架运动为监督,让文本指定行为、图像补充动物形态,再通过同一骨架接口把动作接到可渲染网格上。
方法详解¶
整体框架¶
Kirin 的训练数据来自 AiM 动物视频,最终用户输入则是一张动物图像与动作描述,输出是带纹理的三维网格动画,而不是新生成的视频像素。系统先完成“视频运动提取”,得到图像、文本与三维动作对应的数据;再训练“图像条件运动扩散”,在生成时将噪声动作逐步还原为受文本和图像约束的骨架轨迹;最后通过“网格动作绑定”把这些轨迹施加到图像生成的动物资产。
这三部分的接口是显式关节,而非某个只供渲染的隐空间。视频重建阶段提供可比较的 SMAL 骨架,生成阶段学习关节运动分布,绑定阶段再处理目标网格与模板之间的静态姿态差异。因此,数据构建、运动采样和网格变形不是一个端到端共同训练的网络,也不能把数据预处理速度当作完整动画生成速度。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["野外动物视频"] --> B["视频运动提取"]
B --> C["AiM3D 训练数据"]
C --> D["图像条件运动扩散"]
E["动物图像与文本"] --> D
E --> F["图像生成三维网格"]
D --> G["网格动作绑定"]
F --> G
G --> H["带纹理的网格动画"]
关键设计¶
1. 视频运动提取:先稳定关节运动,再补回整体位移
直接在原始视频里同时拟合身体形状、关节旋转和全局移动,会让相机变化与动物位移干扰肢体估计。Kirin 先在以动物为中心的裁剪画面里恢复姿态:Grounded-SAM2 的实例掩码和 ViTPose++ 的二维关键点提供图像约束,AniMer 给出逐帧 SMAL 初始化。SMAL 使用 35 个关节和 41 维形状参数;作者将各帧形状初始化取平均,得到整段视频共享的身体形状,并将关节旋转改用连续的六维表示优化。相机参数保持固定,因而拟合不会简单地通过逐帧改相机来掩盖姿态误差。
随后进行序列级优化,而不是接受独立帧预测。投影项拉近 SMAL 关键点与检测关键点,并按检测置信度和掩码可见性加权,避免遮挡点或画外点主导结果;平滑项约束相邻帧旋转以及相邻旋转增量的变化。这里的目标不是让动物不动,而是保留动作同时抑制不受图像支持的瞬时跳变。共享形状也减少了“同一动物每帧身体比例都不同”的自由度,但不能凭空恢复完全不可见的腿部运动。
全局位移另走原始、未裁剪的视频:SpatialTrackerV2 追踪动物表面的三维点,作者平均这些轨迹估计身体整体移动,并进行相机运动平滑、地面方向对齐、借助地面点修正残余漂移以及时间平滑。初始点从首帧的 10 × 10 网格中筛出动物掩码内部的点。由于追踪器坐标与 SMAL 坐标没有天然共享尺度,还需用追踪器中的裁剪尺寸和 SMAL 的头尾距离匹配尺度,之后才把位移与优化后的姿态合并。正文把精确尺度公式留给补充材料,因此这里不把追踪器输出解释成经验证的绝对公制轨迹。
这个过程产生 AiM3D:覆盖 23 类四足动物,共 29,979 段运动,其中训练集 29,749 段、测试集 230 段。每段视频由 Gemini 2.5 Flash 生成 6 条描述,总计 179,874 条文本。描述增强了同一动作的语言覆盖,但没有产生额外独立的运动样本;三维轨迹仍是重建监督而不是动作捕捉真值。正文对随机抽取的 100 个测试样本进行人工检查,86 个重建被判为合格,90 个样本的全部描述正确,这也说明数据清洗和误差分析不能被规模数字替代。
2. 图像条件运动扩散:让行为描述与可见形态共同约束动作
运动生成器在 MDM 的变体上增加图像分支。冻结的 DistilBERT 编码动作文本,冻结的 DINOv3 编码参考图像;线性投影将特征维度对齐后,把全局图像特征和扩散时间步特征广播到每个文本 token 上相加。融合后的条件序列作为各层 Transformer 解码器交叉注意力的条件,噪声运动序列则是需要逐步去噪的对象。用正文明确说明的广播关系,可将这一接口写为:
其中 \(i\) 是文本 token 的位置,三个特征已经投影到相同维度。图像不是另一段待模仿的动作,而是关于动物体型、外观和视角的静态线索;文本则提供动作及方向等语义。这样既保留从不同视频汇聚运动规律的可能,也让生成结果更适合当前图像中的动物。融合操作本身很轻量,主要价值在于条件信息及训练数据的组织,而非提出新的注意力算子。它也不是逐关节的图像对应约束,不能据此推断模型具有精确的形态测量能力。
训练时文本和图像分别以 0.2 的概率独立丢弃,使同一个条件框架能够处理文本、图像或两者同时存在的情形,并支持无分类器引导。图像条件在 FID 与文本动作对齐上的收益并不意味着“条件越多越自由”:固定动物形态相当于缩小可接受的动作分布,实验中 Diversity 与 Multimodality 的下降正与这种收紧相符。仅图像模型也不能指定完整动作语义,因此它不是文本加图像模型的等价替代。
3. 网格动作绑定:显式校正静态绑定姿态,再迁移动作
输入图像还送入现成的 Rodin 图像到三维系统,得到带纹理的 T-pose 网格。但这个网格的静态姿态未必等于 SMAL 的标准姿态,直接套关节旋转容易把静态偏差一并带入动画。Kirin 先联合拟合 SMAL 形状和绑定姿态:双向 Chamfer 距离让模板表面接近资产,边长约束避免模板为了贴合外观而任意拉伸。拟合结果既确定资产对应的骨架形状,也记录每个关节的绑定变换。
然后,把拟合后 SMAL 的蒙皮权重转移给目标网格。每个目标顶点找到 10 个近邻模板顶点,按平方距离倒数归一化加权,继承这些顶点对各关节的依赖关系。生成动作被转换为目标关节位置,再通过关节匹配拟合逐帧 SMAL 参数,得到驱动变换。最后用线性混合蒙皮变形资产:
这里 \(w_j(v)\) 是转移后的蒙皮权重,\(G_{j,t}\) 是当前帧关节的全局变换,\(B_j\) 是资产的绑定变换,\(\tilde v\) 是齐次顶点坐标。关键是先用逆绑定变换消除资产原有的静态姿态,再应用当前动作,而不是把生成关节角直接当作网格顶点位移。如此,图像负责外观资产,生成器负责骨架运动,显式绑定负责把二者接起来;网格几何质量或模板不适配造成的问题仍会传到最终动画。
一个完整示例¶
以论文展示的“驼鹿向前走”为例,生成阶段不需要拿这张参考图像对应的视频作为输入。用户提供图像与句子后,DistilBERT 提供行走语义,DINOv3 提供可见动物形态,扩散模型据此采样一段关节动作;与此同时,同一图像生成静态三维网格。系统随后拟合该网格的 SMAL 绑定姿态,插值转移蒙皮权重,再按每一帧的生成关节变换驱动网格。
这个例子体现了输入图像的双重用途:它既约束动作生成,又决定动画对象的外观,但并不直接给出接下来每一帧的真实运动。输出可以有多种合理的行走方式,其正确性应按动作语义、分布质量和形态稳定性判断,而不是要求复现某段隐藏的参考视频。
损失函数 / 训练策略¶
视频重建使用 Adam,对共享形状和逐帧旋转优化 20 轮,学习率为 0.001;数据项权重为 1.0,平滑项权重为 100.0,旋转增量平滑系数为 0.2。正文报告这一重建过程在 NVIDIA A40 上平均每帧少于 1 秒,包含逐帧初始化后的优化流程,不是完整系统的动画生成延迟。
运动扩散部分按正文使用标准噪声预测目标,并用无分类器引导采样;网格绑定的拟合目标与扩散训练分开。当前全文缓存的若干损失公式有明显排版提取损坏,尤其是扩散目标与引导式,因此本笔记依据可读正文说明目标,不猜测缺失项、范数指数或引导尺度的具体约定。也不能仅凭“其余设置沿用 MDM”补写训练步数和采样预算。
实验关键数据¶
主实验¶
下表摘取原文表 1、表 2 的均值,不列置信区间。AiM3D 使用 230 段测试运动;AnimalML3D 是各方法均未训练过的外部分布测试集,包含 1,260 段人工制作动作。正文说明每条文本生成 10 个动作样本,评估重复 10 次,原表报告均值与 95% 置信区间。
R-Precision 衡量文本与动作的前若干名检索命中率;FID 衡量生成与真实动作特征分布的差异;MM-Dist 是共享文本动作空间中的距离。下表分别标明方向。两个数据集的特征分布及真值参照不同,FID 的跨表绝对值不应拿来计算“泛化下降倍数”;外部测试的 Kirin 行未明确标注输入模态,这里保留原表命名。
| 测试集 | 方法与训练数据 | R-Precision Top-1 ↑ | FID ↓ | MM-Dist ↓ |
|---|---|---|---|---|
| AiM3D | AniMo / AniMo4D | 0.029 | 30.043 | 8.564 |
| AiM3D | AniMo / AiM3D | 0.029 | 30.516 | 8.659 |
| AiM3D | Kirin 文本 / AiM3D | 0.032 | 11.889 | 7.007 |
| AiM3D | Kirin 文本加图像 / AiM3D | 0.043 | 6.248 | 6.218 |
| AnimalML3D | AniMo / AniMo4D | 0.031 | 150.671 | 17.171 |
| AnimalML3D | AniMo / AiM3D | 0.031 | 155.687 | 12.334 |
| AnimalML3D | Kirin / AiM3D | 0.039 | 138.145 | 12.128 |
AiM3D 上,Kirin 文本加图像相对文本版的 FID 绝对减少 5.641,按文本版作分母为约 47.4% 的相对下降;Top-1 从 0.032 到 0.043,对应 1.1 个百分点,而非提升 1.1%。不过,同表真实动作的 Top-1 也只有 0.113,因此需要结合评估器的检索表现理解绝对数值,不能将其等同于人工判定的动作正确率。
消融实验¶
原文第 4.4 节明确比较除图像分支外训练配置相同的文本版与文本加图像版。Diversity 是独立采样动作间的平均距离,Multimodality 衡量同一文本下多次生成动作的变化;原表二者均标为越大越好,但数值更大不自动意味着动作更真实。
| 配置 | FID ↓ | MM-Dist ↓ | Diversity ↑ | Multimodality ↑ |
|---|---|---|---|---|
| Kirin 文本,无图像分支 | 11.889 | 7.007 | 4.693 | 4.609 |
| Kirin 文本加图像 | 6.248 | 6.218 | 4.319 | 4.272 |
| Kirin 仅图像,作为输入模态对照 | 25.089 | 不适用 | 1.761 | 5.804 |
还需检查训练数据的重建质量。以下摘自原文表 3,[email protected] 是投影关键点落在归一化距离阈值内的比例,MPJVE 衡量投影图像空间中的关节速度误差;它们不是动作捕捉坐标中的三维位置误差。
| 重建方法 | 轮廓 IoU ↑ | [email protected] ↑ | MPJVE ↓ | 时间 ↓ |
|---|---|---|---|---|
| AniMer | 0.677 | 0.537 | 0.038 | <1 s/frame |
| Kirin | 0.698 | 0.751 | 0.037 | <1 s/frame |
| SMALify | 0.867 | 0.954 | 0.023 | 约 30 s/frame |
关键发现¶
- 图像条件改善分布质量及文本动作对齐,但 Diversity 从 4.693 降到 4.319,Multimodality 从 4.609 降到 4.272;这是有取舍的改善,不是每项指标均领先。
- 数据集效用不能仅靠 AniMo 换数据的结果宣称:其 AiM3D 测试 FID 从 30.043 变为 30.516,MM-Dist 从 8.564 变为 8.659。原文“换数据已经改善”的概括与这些表项不一致,应以具体数字为准。
- 重建相较 AniMer 显著改善投影关键点,同时保留较低计算成本,但 SMALify 在所列精度项上仍更强。少于 1 秒每帧也不足以单独证明视频帧率意义上的实时处理。
亮点与洞察¶
- 把数据接口统一到骨架。 重建、生成和动画绑定使用可衔接的关节表示,比仅证明图像或视频视觉质量更接近可编辑动画资产的需求;收益来自整个数据与表示链条。
- 静态图像约束动态生成。 图像不提供完整动作轨迹,却能补充文字没说清的动物形态。论文用分支消融说明这种信息确实改善 FID 和对齐,而不是仅把更漂亮的外观用于展示。
- 分开修复不同来源的误差。 全局位移从原图追踪,局部姿态在裁剪图中优化,资产静态偏差再由逆绑定校正;每一步都处理对应坐标或表示中的具体问题,而非依赖生成器隐式解决所有不一致。
局限与展望¶
- 作者的人工检查显示,俯视、正面或背面导致腿部不可见时会缺失肢体动作,快速运动和不稳定相机会引起抖动。该检查只覆盖 100 个测试样本,不能把 86 个合格重建解读为全数据逐条验证通过。
- 方法依赖 SMAL 四足动物模板,覆盖 23 个类别不等于支持任意动物骨架。生成结果也未通过接触、力学或生物力学测量验证,因此“看起来合理”不等于物理正确。
- 与 Puppeteer 的网格动画对比主要是定性展示;图像到三维资产质量、绑定失败率和完整系统耗时没有在当前正文中给出系统量化。它们仍是衡量实际动画制作可用性所需的证据。
- 外部测试虽优于所列 AniMo 基线,但不能据此断言已经消除合成与真实运动的差距。当前正文还存在表文概括不一致,补充材料中的尺度细节也未包含在本地缓存中,复现时需核实。
相关工作与启发¶
- 对比 AniMo:AniMo 采用人工制作的游戏动物运动和两阶段残差向量量化模型;Kirin 采用视频重建监督及图像条件扩散。文中的同数据基线有助于观察模型差异,但不支持把所有收益单独归因于真实视频数据。
- 对比 Ponymation:两者都从网络动物视频学习运动;Ponymation 聚焦单一马类别和无条件生成,图像主要服务于外观恢复,Kirin 则将图像直接用于多类别条件动作生成。
- 对比 Puppeteer:Puppeteer 通过匹配生成视频来优化网格动画,Kirin 先生成可直接驱动骨架的运动,再绑定网格。差异是动作监督和动画驱动信号的来源,而不只是生成器大小。
评分¶
- 新颖性: 4/5。野外视频动作数据、图像条件与资产绑定的组合有明确价值,但主体网络和几何工具较多复用已有方法。
- 实验充分度: 3/5。包含域内、域外、重建及模态消融,仍缺少更全面的动画定量评估和数据误差传播分析。
- 写作质量: 3/5。整体流程明确,但部分“全面提升”式概括与表格不符,本地提取公式也不宜直接用于复现。
- 价值: 4/5。对缺乏动作捕捉的动物运动建模提供实用数据路径,适用范围应限定在模板支持的四足动物与当前验证协议。