Super Kawaii Cute Cat Kaoani [논문 리뷰] Taming Diffusion Probabilistic Models for Character Control

연구/논문 리뷰

[논문 리뷰] Taming Diffusion Probabilistic Models for Character Control

치킨고양이짱아 2024. 7. 22. 17:29
728x90
728x90

SIGGRAPH 2024에 발표된 해당 논문의 코드를 사용하려고 한다. 그 전에 모델의 동작에 대해 확실하게 이해할 필요가 있어서 그 내용에 대해 정리하고자 한다.

3.1 Motion Diffusion Model

Motion Diffsuion Model은 diffusion probabilistic model을 통해 모션 데이터를 생성하며,

확산 과정과 디노이징 과정으로 나뉘는데

  • 확산과정에서는 초기 모션 데이터에 노이즈를 점진적으로 추가하고
  • 디노이징 과정에서는 신경망을 사용하여 노이즈를 역으로 제거하게 된다.

3.2 Conditional Autoregressive Motion Diffusion Model

본 논문에서 사용하는 구조는 Motion Diffusion Model을 확장한 Conditional Autoregressive Motion Diffusion Model이다. 해당 네트워크의 목표는 캐릭터의 과거 포즈를 입력으로 받아, 사용자의 입력에 기반한 다양한 미래 포즈를 출력할 수 있는 diffusion probabilistic model을 만드는 것이며, 런타임동안 자기회귀 방식으로 동작한다. 

 

 

 

network input

각 denoising step마다 모델이 input으로 받는 data는 다음과 같다.

  • noisy motion sample x_t
  • diffsuion step t
  • various condition
    • past motion p
    • style label c_l
    • future root displacement c_rv (projected on the ground)
    • future root orientation c_ro (projected on the ground)

network output

diffusion model에서 제거할 nosie를 출력하는 경우가 많은데 해당 네트워크에서는 nosiy motion sample에서 noise를 한단계제거한 original clean xhat_0를 출력한다.

수식으로 나타내면 다음과 같다.

Training Loss

1) L_samp.: denosing objective는 predicted x hat_0 와 clean sample x_0 사이의 MSE loss를 최소화하는 것이다.

2) L_pos: 3D joint position loss로 training 동안 differentiable forward kinematic function을 사용하여 local joint rotation을 global joint posiiton으로 transform 시켜 joint position loss를 계산하여 사용하였다. 아래의 수식에서 S는 rest skeleotn으로 training 중에 변경하지 않았다.

3) L_foot: foot contact loss

4) L_vel: velocity loss

또한 제어 안정성과 스타일 전환을 위한 추가 기법을 사용하였는데 사용한 기법은 아래와 같다.

1) Seperate Condition Tokenization (SCT)

: 모델이 안정적으로 동작하고, 다양한 제어 신호를 효율적으로 처리하도록 돕는 기법이다. SCT는 각 제어 입력(velocity, orientation, style 등..)을 개별 토큰으로 분리하여 모델에 입력한다. 이를 통해 특정 제어 신호가 과도하게 영향을 미치는 것을 방지하고, 모든 제어 신호가 균등하게 고려되도록 한다.

2) Classifier-free Guidance on Past Motion (CFG-PM)

transitional motions between different style을 생성하는 것은 transitional motion in the mocap dataset의 부족으로 굉장히 어려운 일이다. 기존의 CFG 기술은 모델이 조건부와 무조건부 샘플링을 수행하여 두 샘플링의 결과를 결합해 조건에 따른 결과를 생성하는 방법인데(예를 들어, 조건부 샘플링에서는 스타일 조건을 추가해서 샘플링을 하고, 무조건부 샘플링에서는 스타일 조건을 추가하지 않고 샘플링을 생성한 다음 두 결과를 결합하여 최종 샘플을 생성하는 식) 이러한 방법은 효과적이지 않았다.

논문의 조건부 자기회귀 생성에서 과거 모션의 영향을 조절하는 것이 중요하다는 것을 발견하였다. 이를 위해 training 중에 과거 모션 토큰을 15%의 확률로 무작위로 비활성화 시키고, runtime에는 style label이 변경될때 guidance scale 𝛾로 future motion을 sampling한다.

(과거 배제하고 생성한 모션) + gamma(과거 고려해서 생성한 모션 - 과거 배제하고 생성한 모션) -> 보통 과거에 속박된 모션이 만들어지는 어려움이 있기 때문에 보통의 CFG가 1보다 큰 gamma 값을 사용하는 것과 다르게 여기서는 1보다 작은 gamma값을 사용하였다.

이를 통해 past motion의 영향을 완화시키면서도 smooth transition between different styles을 달성할 수 있다.

3) Heuristic Future Tarajectory Extension(HFTE)

intra-style motion diversity를 증가시키기 위해 자기회귀를 지연시키는 "lazy" trigger를 사용하였다. (이해 더 할 필요가 있음)

728x90
728x90