Paper/Human

PSAvatar: A Point-based Morphable Shape Model for Real-Time Head Avatar Animation with 3D Gaussian Splatting

침닦는수건 2024. 4. 23. 18:07
반응형

내 맘대로 Introduction

 

FLAME vertex + 얼굴 표면 normal 따라 추가 point 에 3DGS을 할당해서 얼굴 아바타를 복원한 논문이다. 크게 보면 3DGS 복원 논문인데 3DGS 하나하나가 FLAME 모델 vertex이거나 FLAME 모델 특정 표면에 binding 되어 있는 형태이기 때문에 pose, expression parameter에 따라 변형이 가능하다는 점이 장점이다. 그래서 Morphable!

 

핵심 아이디어는 3DGS의 기준이 되는 point들을 model vertex만 쓴 것이 아니라 얼굴 주변 point까지 확장했다는 점이다. 안경, 머리 표현력을 훨씬 좋을 것 같음.

 

densification은 안하는 듯?

 

메모

기존에는 위 그림에서 파란점들에만 3DGS를 할당하고 아바타를 복원했었는데 (pointavatar) 검은 점들처럼 얼굴 주변을 둘러싸는 point cloud도 3DGS를 부여한다. 

필요한 애들만 pruning 속에서 살아남는다.


FLAME pose, expression, shape 그대로 사용함

다만 FLAME 자체의 shape 표현력이 아쉬울 수 있다는 점(스캔 당시 사람 수가 무한대는 아니었으니)을 염두해서 

새로운 데이터로 인해 shape dependent "residual displacement"가 계산 될 수 있도록 했다. 

per-vertex geometry correction이라고 된 부분이 그거. 새로운 보정 basis를 찾는 것. (데이터가 엄청 많으면 의미가 있을 듯)
3D GS 기준 위치는 mesh surface에서 고르게 뽑았음. 
(그냥 vertex위치로 쓰지 왜 face에서 barycentric coordinate 이용해서 뽑았는지는 의문 개수를 더 늘리려고 했나.)

그리고 각 face normal을 갖고 앞서 뽑은 점 주변으로 또 uniform하게 추가 생성함. (얼굴 주변 구름같이)

추가 생성된 point들은 특정 face와 binding되어 있음. 같이 움직임.


이 때 사용한 normal 역시 barcy centric coordinate로 vertex normal 평균 내서 구한 것

color는 SH 아니고 RGB
그 다음. FLAME surface point + extra point를 갖고 point splatting 먼저 돌림. (수렴이 빠르기 때문)

뒤에서 rotation, scale 살려서 한 번 더 돌리므로 상관없음.

point splatting 이후 Gaussian splatting 한번더.

지금 정의되어 있는 point들은 face normal 방향에 dependent한 좌표계이므로 global 좌표계로 맞춰주고 시작.

기본적인 loss는 

1) rendering loss (color loss)
2) VGG loss
3) scale regularization 임

근데 CNN(rendered image) 을 추가함. 한마디로 후처리하는 CNN이 따라 붙음, super resolution net같음. (렌더링 결과 더 좋아보이게 하려고 한듯.) 

 
반응형