오늘 리뷰할 논문은 Microsoft Azure AI와 Nanyang Technological University에서 발표한 DisCO라는 논문입니다. Generative AI 분야가 현재 엄청난 발전을 하고 있는데요, 아직 Dance synthesis와 같은 분야에서 human-centric content를 생성하는 것은 여전히 어려움을 겪고 있다고 하네요. 기존의 dance synthesis 방법은 합성된 콘텐츠와 실제 댄스 시나리오간의 gap이 존재하기 때문에 어려움을 겪고 있습니다. 그래서 본 논문에서 풀어야 하는 문제를 다음과 같이 설정하고, 이를 가능하게 하는 DisCO라는 모델을 제안합니다.
Faithfulness(충실성) : 합성 문제는 참조하는 이미지에서 사람 대상으로 전경과 배경 모두 모양을 유지하고, 대상 포즈를 정확하게 따라야함
Generalizability : 모델은 unseen human subject, background, pose에 대해 일반화 될 수 있어야함
Compositionality : seen/unseen subject, background, 다양한 source로 부터의 pose를 구성할 수 있어야함
이 3가지가 잘 안 와닿을 수 있는데 아래 그림을 보시면 조금 이해가 더 갑니다.
Introduction 부터 살펴보겠습니당
Introduction
GAN 연구들은 source video에서 target individual로 dance movement를 transfer 하기 위해 시도해왔고, 최근 연구에서는 사전 훈련된 diffusion 기반 T2I(text-to-image)/T2V(text-to-video) 모델을 활용하여 text prompt에 따라 dance image, video를 생성합니다. 이러한 조잡한 조건(coarse-grained condition)은 제어 가능성(controllability)의 degree를 크게 제한하여 사용자가 예상 되는 대상(i.e. human appearance)과 춤 동작(i.e. human pose)을 정확하게 지정하는 것을 불가능하게 만듭니다. ControlNet이 등장하면서 이러한 문제가 부분적으로 완화되었지만, text prompt dependency로 인해 reference image에서 rich semantics(such as human appearance)의 일관성을 보장할 수 있는 방법이 여전히 불확실하다고 하네요.
또한 dance video dataset은 제한되어 있으며, 여기서 학습된 모든 기존의 방법들은 제한된 subject attribute 또는 지나치게 단순한 장면 및 배경으로 인해 어려움을 겪고 있어서 human subject, pose, background에 대한 zero-shot 일반화 가능성이 낮다고 합니다.
그래서 본 논문에서는 user-specific short video content generation을 위해 아까 잠시 언급했던 3가지(Faithfulness, Generalizability, Compositionality)를 모델에서 주로 다루게 되고, DisCO 모델은 faithfulness와 compositionality를 위해 model architecture with disentangled control, 더 나은 일반화 성능을 위해 효과적인 pre-trained strategy 즉 human attribute pre-training 기법을 소개합니다.
Model Architecture with Disentangled Control 방법은 Cross-Attention 기법과 ControlNet을 통합하는 방법이며 T2I diffusion 모델의 text condition을 U-Net의 Cross Attention 모듈을 통해 human subject 대상으로 CLIP 이미지 임베딩을 적용하게 됩니다. 배경 및 포즈는 2개의 별도 ControlNet branch에 입력됩니다. 이러한 방법은 인간의 전경과 배경을 잘 나타낼 수 있으며, human subject, background, dance-move를 임의로 구성할 수 있게 됩니다.
또한 모델이 별도의 전경 및 배경 영역에서 있는 작업을 설계하고 이미지를 완전하게 구성하기 위해서 모델이 pre-training 되는 도중에 복잡한 인간의 얼굴과 옷을 더 잘 디코딩, 인코딩 하는 방법을 배우게 하고, 포즈를 제어하는 것은 fine-tuning 과정에서 배우게 합니다. 이러한 방식을 Human Attribute Pre-training 라고 명명합니다.
본 논문의 주요 Contribution은 다음과 같습니다.
user specific short video 제작을 잘 할 수 있도록 3가지 조건을 설정
DisCo 프레임 워크 제안 및 unseen human에 대한 일반화를 위해 human attribute pre-training
다양한 평가 및 application 제공
Related works
관련 연구로는 Follow-your-pose가 있는데, 이는 image-pose pair 및 pose-free video를 이용하여 비디오 생성 조건에 pose condition을 도입하려고 시도했습니다.
DreamPose는 스틸 패션 이미지를 이용하여 기본적인 pose들만 다루기 때문에 task가 어려워보이진 않습니다.
그래서 본 연구에서는 관련 연구들에서 더 나아가 인간의 속성(identity, clothing, makeup, hairstyle, etc.)과 dance 모두를 정밀하게 제어할 수 있는 모델을 제안하게 됩니다.
DISCO
먼저 문제를 공식하기 위해 foreground는 $f$로, background는 $g$로 나타냅니다. 그 다음 specific(or a swquence of) pose keypoint인 $p$가 주어지면 모델에서는 $f, g, p$의 condition으로 realistic image $I$를 생성하는 것을 목표로 합니다.
Preliminary: Latent Diffusion Models & ControlNet
Latent Diffusion Models (LDM)은 U-Net 구조로 구성된 Stable Diffusion과 같은 구조를 말하는데, 이는 T2I용으로 설계되었기 때문에 CLIP ViT-L/14 text encoder를 사용하여 input text query를 text embedding condition $c{text}$에 투영시킵니다. 학습하는 동안 이미지 $I$와 text condition $c{text}$가 주어지면 image latent $z_0 = \varepsilon(I)$는 noisy latent $z_T ~ N(0,1)$을 생성하기 위해 deterministic Gaussian process를 사용하여 T time step에서 diffusion 됩니다. 그러고 나서 Stable Diffusion은 아래 식과 같이 reverse denoising process를 학습하게 됩니다.
여기서 $\epsilon \theta $는 학습 가능한 모듈을 나타내며, 이는 ResBlock과 self-/cross-attention(TransBlock)으로 구성된 U-Net 아키텍처를 포함하게 됩니다. noisy latent $zt$ 및 text embedding condition $c{text}$을 input으로 설정하게 됩니다. 학습 후 deterministic sampling process(e.g. DDIM)을 적용하여 $z_0$을 생성하고, 최종 이미지를 위해 decoder $D$로 전달합니다.
SD 기반으로 구축된 ControlNet은 SD의 전체 동작을 추가로 제어하기 위해 U-Net의 중간 계층에 대한 입력을 조작하게 됩니다. U-Net의 down/middle block을 학습가능하도록 copy block을 생성하고, 가중치와 편향이 모두 0으로 초기화 된 1x1 conv layer 인 "zero convolution" layer를 추가합니다. 그 다음 각 copy block의 출력이 원래 U-Net의 skip connection에 추가됩니다. SD의 cross-attention module에서 포착된 text condition 외에도 edge map, pose, depth map 등 많은 유형의 condition을 지원할 수 있도록 external condition vector c로 학습됩니다. c의 특정 도메인에 대한 학습은 효과적으로 T2I 생성을 가능하게 합니다.
Model Architecture with Disentangled Control
CLIP text embedding은 SD condition으로 CLIP image embedding으로 대체할 수 있으며, 이는 reference image에서 high-level semantic을 유지할 수 있도록 해줍니다. 그럼에도 불구하고 생성된 이미지에 대한 geometic/structural control이 아직 없기 때문에 DISCO 모델을 도입했다고 합니다. 또한 기존의 human matting method(e.g. SAM)을 이용하여 human을 background에서 분리할 수 있다고 합니다. 그 다음에 f, g, p가 각각 어떻게 DISCO에 통합되는지 살펴보겠습니다.
Referring Foreground via Cross Attention
모델이 CLIP image feature space에 쉽게 적응 할 수 있도록 먼저 U-Net 매개변수 초기화를 위해 사전 학습된 image variation latent diffusion model을 사용합니다. 이러한 방법에서 사용하는 global CLIP image embedding을 사용하는 것과 달리 여기서는 global pooling layer 바로 전에 local CLIP image embedding을 채택하여 보다 더 세분화된 human semantics encoding을 수행한다고 하네요.
즉, original text embedding $c_{text}$은 human foreground의 local CLIP image embedding으로 교체되어 cross-attention layer에서 key, value 값으로 사용됩니다.
Controlling Background and Pose via ControlNets
pose $p$의 경우 ControNet의 vanilla design을 채택하게 됩니다. pose image를 4개의 conv layer를 통해 U-Net의 입력과 동일한 latent space에 포함시키고 pose control을 학습하기 위해 ControlNet branch를 사용합니다. background의 경우 다른 ControlNet의 branch를 사용합니다. 특히 복잡한 세부사항 같은 것들을 보존 시키려면 background image를 dense feature map으로 변환하기 위해 랜덤으로 초기화된 4개의 conv layer 대신 SD에서 사전 학습된 VQ-VAE encoder E를 사용할 것을 제안하게 됩니다. background ControlNet branch에 대한 나머지 아키텍처는 원래 ControlNet 구조를 따르게 됩니다.
disentangled control로 설계된 아키텍처인 DISCO를 아래와 같이이 fine-tuning 시킵니다.
disentangled control architecture를 이용하여 pose를 control하고, background를 재구성 할 수 있다는 것을 보여주었으나 unseen human subject foreground에 대해 이미지를 생성하는 것이 여전히 어렵고 일반화 가능성이 낮다는 것을 지적합니다. 또한, human dance generation에 사용되는 현재 학습 데이터세트가 인간의 속성에 대해 다 나타낼 수 없고, 복잡한 포즈를 보장할 수 없다는 것을 지적합니다. 이러한 데이터세트를 직접 구성하는 것 보다 human attribution을 직접 학습하기로 합니다.
pose control을 위한 ControlNet branch가 제거되고 나머지 아키텍처는 동일하게 유지됩니다. 그래서 결과적으로 목표를 다음과 같이 수정합니다.
경험적으로 본 연구에서는 사전 학습 중에 U-Net에서 ResNet block을 freezing 시키면 사람의 얼굴과 미묘함의 reconstruction quality를 향상시킬 수 있다는 것을 발견했습니다. 학습이 완료되면, background control을 위한 U-Net, ControlNet branch(파란색으로 된 부분)을 초기화하고, fine-tuning을 위해 사전 학습된 U-Net 가중치로 pose ControlNet branch를 초기화 시킵니다.
Experiments
본 논문에서는 TikTok dataset을 활용하여 학습했고, 이는 1인 댄스를 캡쳐해놓은 약 350개의 댄스 비디오로 이루어져 있습니다. (10초-15초 정도). 각 비디오에 대해 30fps로 프레임을 추출하고, 각 프레임에서 Grounded-SAM 및 OpenPose를 실행하여 foreground, background, pose skeleton을 분리해냅니다. 학습은 input size를 256x256으로 설정하고, 8개의 NVIDIA V100에서 학습했다고 합니다.
또한 human attribute를 학습하기 위해 여러 공개 데이터세트 (TikTok 1[24], COCO[35], SHHQ[10], DeepFashion2[13], LAION[52])를 사용합니다. 먼저 human foreground mask를 자동으로 생성하기 위해 "person"이라는 prompt로 Grounded-SAM을 실행한 다음 인간이 없는 이미지를 필터링 합니다. 그렇게 해서 필터링된 이미지들(700K)를 가지고 256x256 사이즈로 4x8개의 V100으로 학습을 수행합니다.
그리고 Stable Diffusion Image Variation으로 미리 학습된 가중치로 U-Net 모델을 초기화 하고, ControlNet branch에 따라 zero conv layer를 제외하고 U-Net 모델과 동일한 가중치로 초기화를 수행합니다.
HAP(human attribute pre-training)
FID(Fréchet Inception Distance)
SSIM(Structual Similarity)
PSNR (Peak Signal-to-Noise Ratio)
Conclusion
현재 DISCO 모델은 한계가 있는데 이는 앞으로의 방향성을 나타내기도 한다고 합니다. hand pose를 더 잘 나타내기 위해 hand keypoint 정보 통합, 큰 움직임이 일어날 때 temporal consistency를 개선하기 위해 명시적으로 temporal modeling을 수행하는 것, multi-person dance generation, human-object interaction으로의 확장성 등이 있습니다.
또한 human-centric generation 및 editing이 가능하지만 이는 인권 침해와 같은 다른 문제를 발생시킬 수 도 있기 때문에 적절한 규정이 필요하다고 하네요 😢
Project page : https://disco-dance.github.io/ GitHub : https://github.com/Wangt-CN/DisCo Paper : https://arxiv.org/abs/2307.00040
오늘 리뷰할 논문은 Microsoft Azure AI와 Nanyang Technological University에서 발표한 DisCO라는 논문입니다. Generative AI 분야가 현재 엄청난 발전을 하고 있는데요, 아직 Dance synthesis와 같은 분야에서 human-centric content를 생성하는 것은 여전히 어려움을 겪고 있다고 하네요. 기존의 dance synthesis 방법은 합성된 콘텐츠와 실제 댄스 시나리오간의 gap이 존재하기 때문에 어려움을 겪고 있습니다. 그래서 본 논문에서 풀어야 하는 문제를 다음과 같이 설정하고, 이를 가능하게 하는 DisCO라는 모델을 제안합니다.
이 3가지가 잘 안 와닿을 수 있는데 아래 그림을 보시면 조금 이해가 더 갑니다.
Introduction 부터 살펴보겠습니당
Introduction
GAN 연구들은 source video에서 target individual로 dance movement를 transfer 하기 위해 시도해왔고, 최근 연구에서는 사전 훈련된 diffusion 기반 T2I(text-to-image)/T2V(text-to-video) 모델을 활용하여 text prompt에 따라 dance image, video를 생성합니다. 이러한 조잡한 조건(coarse-grained condition)은 제어 가능성(controllability)의 degree를 크게 제한하여 사용자가 예상 되는 대상(i.e. human appearance)과 춤 동작(i.e. human pose)을 정확하게 지정하는 것을 불가능하게 만듭니다. ControlNet이 등장하면서 이러한 문제가 부분적으로 완화되었지만, text prompt dependency로 인해 reference image에서 rich semantics(such as human appearance)의 일관성을 보장할 수 있는 방법이 여전히 불확실하다고 하네요.
또한 dance video dataset은 제한되어 있으며, 여기서 학습된 모든 기존의 방법들은 제한된 subject attribute 또는 지나치게 단순한 장면 및 배경으로 인해 어려움을 겪고 있어서 human subject, pose, background에 대한 zero-shot 일반화 가능성이 낮다고 합니다.
그래서 본 논문에서는 user-specific short video content generation을 위해 아까 잠시 언급했던 3가지(Faithfulness, Generalizability, Compositionality)를 모델에서 주로 다루게 되고, DisCO 모델은 faithfulness와 compositionality를 위해 model architecture with disentangled control, 더 나은 일반화 성능을 위해 효과적인 pre-trained strategy 즉 human attribute pre-training 기법을 소개합니다.
Model Architecture with Disentangled Control 방법은 Cross-Attention 기법과 ControlNet을 통합하는 방법이며 T2I diffusion 모델의 text condition을 U-Net의 Cross Attention 모듈을 통해 human subject 대상으로 CLIP 이미지 임베딩을 적용하게 됩니다. 배경 및 포즈는 2개의 별도 ControlNet branch에 입력됩니다. 이러한 방법은 인간의 전경과 배경을 잘 나타낼 수 있으며, human subject, background, dance-move를 임의로 구성할 수 있게 됩니다.
또한 모델이 별도의 전경 및 배경 영역에서 있는 작업을 설계하고 이미지를 완전하게 구성하기 위해서 모델이 pre-training 되는 도중에 복잡한 인간의 얼굴과 옷을 더 잘 디코딩, 인코딩 하는 방법을 배우게 하고, 포즈를 제어하는 것은 fine-tuning 과정에서 배우게 합니다. 이러한 방식을 Human Attribute Pre-training 라고 명명합니다.
본 논문의 주요 Contribution은 다음과 같습니다.
Related works
관련 연구로는 Follow-your-pose가 있는데, 이는 image-pose pair 및 pose-free video를 이용하여 비디오 생성 조건에 pose condition을 도입하려고 시도했습니다.
또한 Text2Video-Zero 연구는 T2I 모델을 수정하여 비디오를 생성합니다.
DreamPose는 스틸 패션 이미지를 이용하여 기본적인 pose들만 다루기 때문에 task가 어려워보이진 않습니다.
그래서 본 연구에서는 관련 연구들에서 더 나아가 인간의 속성(identity, clothing, makeup, hairstyle, etc.)과 dance 모두를 정밀하게 제어할 수 있는 모델을 제안하게 됩니다.
DISCO
먼저 문제를 공식하기 위해 foreground는 $f$로, background는 $g$로 나타냅니다. 그 다음 specific(or a swquence of) pose keypoint인 $p$가 주어지면 모델에서는 $f, g, p$의 condition으로 realistic image $I$를 생성하는 것을 목표로 합니다.
Preliminary: Latent Diffusion Models & ControlNet
Latent Diffusion Models (LDM)은 U-Net 구조로 구성된 Stable Diffusion과 같은 구조를 말하는데, 이는 T2I용으로 설계되었기 때문에 CLIP ViT-L/14 text encoder를 사용하여 input text query를 text embedding condition $c{text}$에 투영시킵니다. 학습하는 동안 이미지 $I$와 text condition $c{text}$가 주어지면 image latent $z_0 = \varepsilon(I)$는 noisy latent $z_T ~ N(0,1)$을 생성하기 위해 deterministic Gaussian process를 사용하여 T time step에서 diffusion 됩니다. 그러고 나서 Stable Diffusion은 아래 식과 같이 reverse denoising process를 학습하게 됩니다.
여기서 $\epsilon \theta $는 학습 가능한 모듈을 나타내며, 이는 ResBlock과 self-/cross-attention(TransBlock)으로 구성된 U-Net 아키텍처를 포함하게 됩니다. noisy latent $zt$ 및 text embedding condition $c{text}$을 input으로 설정하게 됩니다. 학습 후 deterministic sampling process(e.g. DDIM)을 적용하여 $z_0$을 생성하고, 최종 이미지를 위해 decoder $D$로 전달합니다.
SD 기반으로 구축된 ControlNet은 SD의 전체 동작을 추가로 제어하기 위해 U-Net의 중간 계층에 대한 입력을 조작하게 됩니다. U-Net의 down/middle block을 학습가능하도록 copy block을 생성하고, 가중치와 편향이 모두 0으로 초기화 된 1x1 conv layer 인 "zero convolution" layer를 추가합니다. 그 다음 각 copy block의 출력이 원래 U-Net의 skip connection에 추가됩니다. SD의 cross-attention module에서 포착된 text condition 외에도 edge map, pose, depth map 등 많은 유형의 condition을 지원할 수 있도록 external condition vector c로 학습됩니다. c의 특정 도메인에 대한 학습은 효과적으로 T2I 생성을 가능하게 합니다.
Model Architecture with Disentangled Control
CLIP text embedding은 SD condition으로 CLIP image embedding으로 대체할 수 있으며, 이는 reference image에서 high-level semantic을 유지할 수 있도록 해줍니다. 그럼에도 불구하고 생성된 이미지에 대한 geometic/structural control이 아직 없기 때문에 DISCO 모델을 도입했다고 합니다. 또한 기존의 human matting method(e.g. SAM)을 이용하여 human을 background에서 분리할 수 있다고 합니다. 그 다음에 f, g, p가 각각 어떻게 DISCO에 통합되는지 살펴보겠습니다.
Referring Foreground via Cross Attention
모델이 CLIP image feature space에 쉽게 적응 할 수 있도록 먼저 U-Net 매개변수 초기화를 위해 사전 학습된 image variation latent diffusion model을 사용합니다. 이러한 방법에서 사용하는 global CLIP image embedding을 사용하는 것과 달리 여기서는 global pooling layer 바로 전에 local CLIP image embedding을 채택하여 보다 더 세분화된 human semantics encoding을 수행한다고 하네요.
즉, original text embedding $c_{text}$은 human foreground의 local CLIP image embedding으로 교체되어 cross-attention layer에서 key, value 값으로 사용됩니다.
Controlling Background and Pose via ControlNets
pose $p$의 경우 ControNet의 vanilla design을 채택하게 됩니다. pose image를 4개의 conv layer를 통해 U-Net의 입력과 동일한 latent space에 포함시키고 pose control을 학습하기 위해 ControlNet branch를 사용합니다. background의 경우 다른 ControlNet의 branch를 사용합니다. 특히 복잡한 세부사항 같은 것들을 보존 시키려면 background image를 dense feature map으로 변환하기 위해 랜덤으로 초기화된 4개의 conv layer 대신 SD에서 사전 학습된 VQ-VAE encoder E를 사용할 것을 제안하게 됩니다. background ControlNet branch에 대한 나머지 아키텍처는 원래 ControlNet 구조를 따르게 됩니다.
disentangled control로 설계된 아키텍처인 DISCO를 아래와 같이이 fine-tuning 시킵니다.
여기서 ϵθ, τθ, μθ은 tranable network module이고, ϵθ은 U-Net 아키텍처를 포함하며, noisy latent $z_t$와 foreground condition $c_f$를 input으로 합니다. τθ와 μθ는 2개의 ControlNet branch를 나타냅니다. (pose condition p, background condition g)
Human Attribute Pre-training
disentangled control architecture를 이용하여 pose를 control하고, background를 재구성 할 수 있다는 것을 보여주었으나 unseen human subject foreground에 대해 이미지를 생성하는 것이 여전히 어렵고 일반화 가능성이 낮다는 것을 지적합니다. 또한, human dance generation에 사용되는 현재 학습 데이터세트가 인간의 속성에 대해 다 나타낼 수 없고, 복잡한 포즈를 보장할 수 없다는 것을 지적합니다. 이러한 데이터세트를 직접 구성하는 것 보다 human attribution을 직접 학습하기로 합니다.
pose control을 위한 ControlNet branch가 제거되고 나머지 아키텍처는 동일하게 유지됩니다. 그래서 결과적으로 목표를 다음과 같이 수정합니다.
경험적으로 본 연구에서는 사전 학습 중에 U-Net에서 ResNet block을 freezing 시키면 사람의 얼굴과 미묘함의 reconstruction quality를 향상시킬 수 있다는 것을 발견했습니다. 학습이 완료되면, background control을 위한 U-Net, ControlNet branch(파란색으로 된 부분)을 초기화하고, fine-tuning을 위해 사전 학습된 U-Net 가중치로 pose ControlNet branch를 초기화 시킵니다.
Experiments
본 논문에서는 TikTok dataset을 활용하여 학습했고, 이는 1인 댄스를 캡쳐해놓은 약 350개의 댄스 비디오로 이루어져 있습니다. (10초-15초 정도). 각 비디오에 대해 30fps로 프레임을 추출하고, 각 프레임에서 Grounded-SAM 및 OpenPose를 실행하여 foreground, background, pose skeleton을 분리해냅니다. 학습은 input size를 256x256으로 설정하고, 8개의 NVIDIA V100에서 학습했다고 합니다.
또한 human attribute를 학습하기 위해 여러 공개 데이터세트 (TikTok 1[24], COCO[35], SHHQ[10], DeepFashion2[13], LAION[52])를 사용합니다. 먼저 human foreground mask를 자동으로 생성하기 위해 "person"이라는 prompt로 Grounded-SAM을 실행한 다음 인간이 없는 이미지를 필터링 합니다. 그렇게 해서 필터링된 이미지들(700K)를 가지고 256x256 사이즈로 4x8개의 V100으로 학습을 수행합니다.
그리고 Stable Diffusion Image Variation으로 미리 학습된 가중치로 U-Net 모델을 초기화 하고, ControlNet branch에 따라 zero conv layer를 제외하고 U-Net 모델과 동일한 가중치로 초기화를 수행합니다.
Conclusion
현재 DISCO 모델은 한계가 있는데 이는 앞으로의 방향성을 나타내기도 한다고 합니다. hand pose를 더 잘 나타내기 위해 hand keypoint 정보 통합, 큰 움직임이 일어날 때 temporal consistency를 개선하기 위해 명시적으로 temporal modeling을 수행하는 것, multi-person dance generation, human-object interaction으로의 확장성 등이 있습니다.
또한 human-centric generation 및 editing이 가능하지만 이는 인권 침해와 같은 다른 문제를 발생시킬 수 도 있기 때문에 적절한 규정이 필요하다고 하네요 😢