Paper/Human

DiffusionAvatars: Deferred Diffusion for High-fidelity 3D Head Avatars

침닦는수건 2024. 4. 25. 17:03
반응형

내 맘대로 Introduction

 

multiview + video 입력을 받아 3D animatable head avatar를 만드는 논문. NPHM (implicit head model) 에 feature를 할당하고, differentiable renderer를 통해 depth, normal, rendered feature를 만든 뒤 이를 diffusion하는 방식이다.

 

사실 특별한 내용은 아닌데 뒤에 rendered image에서 바로 loss를 계산하는 것이 아니라 diffusion 통과 후 loss를 계산하는 식으로 바꿔서 diffusion prior를 학습에 응용했다는 것이 차이점이다. 

 

NPHM 같은 impliti head model을 굳이 큰 이유는 뚜렷하지 않음. 그냥 continuous feature space 표현하기 편해서 그런 듯함.

 

메모

1) expression code -> NPHM decode

2) feature 할당

3) depth, normal, feature map rendering 

4) diffusion 입력으로 넣고 (ControlNet + IPadapter)

5) 최종 결과에서 rendering loss


diffusion recap으로 분량 채워주고.



1) multiview video 입력에서 각 frame 별로 모아 COLMAP 복원

2) pcd에 NPHM 피팅 (이 과정에서 model vertex와 대응관계를 따지지 않아도 되니까 implicit 모델을 쓴듯함)

3) NPHM -> explicit mesh by marching cube.
nvdiffrast를 이용해 explicit mesh rendering 함.

1) depth
2) normal
3) coordinate (visibility check했을 듯.)
4) ambident coordinate +2 

4) coordinate 2차원을 추가한 것은 눈, 입술 같이 변형이 예측하기 쉽지 않은 부분이 커버될까 해서 추가한 듯.

coordinate map (3+2차원)은 그대로 diffusion 입력으로 사용되지 않고 한 번 feature map으로 encoding 됨.

xyz를 물리적으로 의미하는 첫 3차원은 tri-plane을 이용하여 feature화 하고

뒤 ambient coordinate 2차원은 그냥 CNN 써서 feature화 함.

feature화된 coordinate가 앞의 depth normal과 합쳐서 diffusion 입력으로 들어감

뒤에 따라 붙는 diffusion model은 당연히 pretrained + freezed임.

따라서 controlnet이나 IPAdapter 같은 방식으로 튜닝되도록 붙여야 함.

근데 둘 다 썼음

NPHM expression code를 condition으로 받도록 IPAdapter 붙임.
앞서 렌더링한 무더기들은 controlnet으로 condition으로 줌.

IPAdapter를 추가해도 되겠지만 그냥 채널수가 많으니 controlnet처럼 그래도 파라미터 써서 하는 식을 선택하는 ㄷ.ㅅ


use study 오랜만에 본다.
diffusion이 빠졌을때 성능 하락수준이 엄청 크진 않은 것 같기도...
반응형