반응형
내 맘대로 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이 빠졌을때 성능 하락수준이 엄청 크진 않은 것 같기도... |
반응형