Video Diffusion Models (VDM)

Video Diffusion Models (VDM)
 
notion image

task

diffusion model로 temporally coherent 하고 high-fidelity 한 비디오 생성하기.
이미지 diffusion의 표준 공식을 최대한 유지하면서, 비디오용 architecture와 long video generation 방법을 제안한 논문임.

기존 연구 흐름 / 이 논문이 푸는 문제

  • diffusion은 이미지/오디오에서 성과가 좋았는데, 비디오는 상대적으로 검증이 덜 된 상태였음
  • 비디오는
    • frame 수가 많고
    • spatial resolution도 크고
    • temporal coherence까지 맞춰야 해서
      • 계산량과 modeling 난이도가 높음
  • 특히 모델은 보통 짧은 clip 단위로만 학습 가능한데, 실제로는 긴 비디오고해상도 비디오 를 생성해야 함
  • 이 논문은
      1. image diffusion U-Net을 video용으로 확장하고
      1. unconditional model만으로도 conditional generation처럼 쓸 수 있는
        1. reconstruction-guided sampling 을 제안함

Video diffusion model

image U-Net → video U-Net

기존 image diffusion에서 denoiser는 보통 U-Net임.
이 논문은 이 구조를 비디오로 확장해서 3D U-Net 으로 만듦. 다만 full 3D conv 위주가 아니라 space-time factorized 방식임.

architecture 변경점

1) 2D conv를 space-only 3D conv로 변경

  • 예: (3X3) conv → (1X3X3) conv
  • 첫 축은 frame, 뒤 두 축은 height/width

2) spatial attention 뒤에 temporal attention 추가

  • spatial attention: 프레임 내부 공간 관계 모델링
  • temporal attention: 프레임 간 시간 관계 모델링
  • temporal attention에는 relative position embedding 사용
    • → 절대 frame index보다 frame 간 순서/상대 거리 정보를 더 자연스럽게 반영함

왜 factorized structure를 쓰는가

  • full spatiotemporal attention보다 계산 효율이 좋음
  • 더 중요한 장점은 이미지 모드로 쉽게 mask 가능 하다는 점임
  • temporal attention을 끄면 독립 이미지처럼 처리할 수 있어서
    • image + video joint training 이 가능해짐

joint training

  • 논문은 random image frame을 video sample 뒤에 붙이고
  • temporal attention을 mask해서
    • video frame끼리만 섞이고, independent image끼리는 서로 안 섞이게 학습함
    • 16프레임 이미지가 있다면, 앞 뒤로 4/8개의 서로 독립적인 프레임을 추가하여 학습
      • 16은 시간적 attention하고, 나머지는 안 함 (독립적인 이미지 취급)
  • 비디오 데이터만으로 부족한 spatial prior를 이미지 데이터가 보강해주는 셈임
    • 더 다양한 샘플을 한 배치에 넣어주는 것

Reconstruction-guided sampling

문제의식

학습은 보통 16-frame 같은 짧은 clip으로 함.
그런데 실제로는
  • 더 긴 비디오 생성
  • temporal interpolation / super-resolution
  • spatial super-resolution
이 필요함.
그래서 conditional sampling이 필요한데, 별도 conditional model을 새로 학습하는 대신
unconditional model에서 conditioning을 유도하고 싶었던 것임.

기존 replacement method의 문제

  • 한 번에 16프레임만 만들 수 있다면, 먼저 16프레임을 만들고(A) A를 바탕으로 그 뒤의 16프레임(B)를 만들면 긴 비디오를 만들 수 있지 않을까?
  • 근데 그게 제대로 안 됨
    • A,B를 따로보면 자연스러운데 A랑 B의 연결이 자연스럽지 않음 (예를 들어 다른 방향으로 걸어간다던가)
  • 이유는 A의 latent만 보아서, Xa를 고려하지 못하기 때문
    • notion image
    • 근데 q(Xa|Zt)를 구하기 어려움 (closed form이 없다)
  • 따라서 근사치를 구함
    • notion image
    • 모델이 잘 학습되었다면, zt를 기반으로 재구성한 Xa는 평균이 Xa인 가우시안 분포(노이즈 스케일만큼 uncertainty 반영)일 것이다
  • 그래서 가우시안에 gradient를 취해서 정리하면
    • notion image
    • z^bt의 변화에 따른 Xa를 복원 정도
    • wr은 gudiance strength로, 작으면 기본 denoiser, 크면 condition consistency를 강조
  • 고해상도 비디오를 생성할 때도 사용
    • notion image
    • 예를 들어 64x64 비디오(zt)를 128x128(xa)로 만들 때도 사용

실험

Unconditional video generation

notion image
  • 기존 방법들은 FID가 수천~수만 수준이라 차이가 큼
  • 초기 diffusion video paper인데도 기존 방식 대비 결과가 좋음

Video prediction

notion image
  • BAIR Robot Pushing
    • 1 frame condition, 다음 15 frame 생성
  • Kinetics-600
    • 5 frame condition, 다음 11 frame 생성
  • conditional model을 따로 안 만들고도 SOTA

Text-conditioned video generation

  • 1천만 개 captioned video dataset 사용
  • text conditioning은 BERT-large embedding + attention pooling 사용
  • small / large model 두 가지로 실험함
  • joint training 효과
    • notion image
    • 16x64x64 text-to-video에서, video마다 독립 image frame을 추가해 같이 학습한 실험임.
  • 즉 independent image frame을 더 넣을수록 video / image quality metric이 모두 좋아짐.
  • independent image를 추가하면 gradient variance를 줄이는 효과가 있음
  • 약간의 bias를 감수하고 더 많은 independent example을 batch에 넣는 memory optimization처럼 볼 수 있다고 설명함
  • → 더 다양한 이미지로 배치에 다양성을 줌

CFG 효과

notion image
guidance weight를 높이면
  • Inception Score metric은 올라가고 FID metric은 어느 정도까지 좋아지다가 너무 크면 다시 나빠짐
    • IS: 사진을 넣었을 때, 분류기가 얼마나 잘 그 클래스를 맞추는가
    • FID: 생성이미지와 실제이미지를 넣고 feature가 얼마나 유사한지 비교
즉 text 반영은 강해지지만 fidelity / diversity / temporal metric 간 trade-off가 생김.

Long video generation

notion image
notion image
Share article

kjyong