BeLFusion: Latent Diffusion for Behavior-Driven Human Motion Prediction
本文关注的问题是human motion prediction(HMP),也就是在给定观测到的人体运动的前提下,预测人体的后续运动。本文的思路是,将人的behavior从motion中motion和pose中解耦出来,然后在给定观测到的人体behavior的条件下,利用conditional latent diffusion,预测之后的behavior,结合motion和pose从而实现Stochastic human motion prediction(HMP)
1. Introduction
已有方法的缺点:
- 已有的方法利用分散骨骼关节来预测高度多样化的运动,这导致了这些方法在预测快速和多样化的运动的时候,预测的结果并不现实,并且与已经观测到的运动不一致。
- 已有的方法还忽略了需要预测具有细微关节位移的各种小范围的动作和行为。
本文的贡献:
- 本文提出了BeLFusion(Behavior Latent Diffusion),与之前的工作相比,可以生成更加真实和连贯的人体行动预测,同时达到SOTA的准确率。
- BeLFusion是在behavior层面应用了Latent Diffusion从而具有behavioral diversity。这样可以同时支持小范围和大范围的运动。
- 本文扩展了对于Stochastic HMP的评测。并且提出了一些新的指标。
2.Methodology
2.1 Problem definition
2.2 Behavioral Latent Diffusion
首先需要从人体的motion中解耦出Behavior的隐编码。
定义Observation window X中最后C个pose为target motion x m = { p t − C , . . . , p t − 2 , p t − 1 } ⊂ X x_m = \lbrace p_{t-C}, ..., p_{t-2}, p_{t-1} \rbrace \subset X xm={pt−C,...,pt−2,pt−1}⊂X,这C个pose给出了人体移动的速度和方向,而预测出来的Prediction window中的人体的移动速度和方向需要与之保持一致。定义 Y e = x m ∪ Y Y_e = x_m \cup Y Ye=xm∪Y。
为了将Y中的behavior从motion和pose中解耦出来,本文用了一种对抗的思路。
如图中, Y e Y_e Ye 经过behavior encoder p θ p_{\theta} pθ 得到隐式编码 z z z ,再由auxiliary decoder r ω r_{\omega} rω 重建出 Y e Y_e Ye。这部分可以看做是一个VAE,不同之处在于只训练解码器 r ω r_{\omega} rω部分。
接下来为了能让隐式编码 z z z 中只包含有behavior相关的信息,作者利用另一个编码器 g α g_{\alpha} gα x m x_m xm 编码出速度和方向等信息,与behavior隐编码 z z z 一起,经过behavior coupler B ϕ B_{\phi} Bϕ,得到输出重建的 Y e Y_e Ye。
以上两个损失在一个iteration内交替使用一次,分别在固定网络 α , θ , ϕ \alpha, \theta, \phi α,θ,ϕ 参数的情况下,利用 L a u x L_{aux} Laux 训练网络 ω \omega ω , 以及在固定 ω \omega ω 参数的情况下,利用 L m a i n L_{main} Lmain 训练 α , θ , ϕ \alpha, \theta, \phi α,θ,ϕ 的参数。
得到了产生隐编码 z z z 的编码器 p θ p_{\theta} pθ 之后,就可以用conditional latent diffusion来预测人体的behavior。
本文主要感兴趣的就是这个解耦的部分,后边的有需要再看。