Paper/Human

PhysAvatar: Learning the Physics of Dressed 3D Avatars from Visual Observations

침닦는수건 2024. 4. 29. 11:39
반응형

내 맘대로 Introduction

 

multiview video 입력을 받아 animatable avatar를 복원하는 내용이 큰 골조인데, 매 프레임 reconstruction 결과를 tracking할 수 있도록 연결하고 전체 tracked avatar를 갖고 옷의 변형을 역추정하는 것이 핵심인 논문이다.

 

다시 말하면 multiview reconstruction -> tracking -> physical parameter estimation -> animation 순서다. 

 

tracking이 용이하게 만들기 위해서 첫 프레임에서 만든 mesh (아마 NeRF 같은 걸로 복원했을 것으로 추정) face에 3D Gaussian을 할당하는 방식을 활용했다. position과 rotation이 face에 고정되도록, densification 없이 gaussian property들을 찾아내고 이후 프레임부터는 gaussian property 대다수도 고정하고 color만 업데이트하는 식이다.

 

simulation tool도 많이 활용하므로 완성도가 꽤 높다.

 

메모

1) Mesh tracking (1st frame recon + tracking)

2) physics based dynamic modeling (옷 property 최적화)

3) physics based appearance refinement (그림자로 인한 변형 없애기)

mesh가 vertex 단위로 tracking이 되어야 매 프레임 정보를 전부 다 엮어서 분석이 가능하므로 mesh tracking은 핵심 전제 조건.

1) 첫 프레임 multiview만 모아서 mesh recon ( Neural recon했을 것으로 추정) 먼저 한다.

2) recon. mesh 의 각 face에 3DGS 할당 (position, rotation은 face 값으로 고정)

첫 프레임에서 color, opacity, scale까지 추정함

3) 다음 프레임부터는 position, rotation, scale, opacity까지 고정. color만 매 프레임에서 새로 최적화되도록 함 (조명 변화나 자세 변화, 그림자 변화 때문에 자유도를 남겨둠)

첫 프레임 외 나머지 프레임 최적화를 할 때 그냥 돌리면 mesh가 들쭉 날쭉 해짐 따라서 regularization 추가

1) edge 길이가 첫프레임 복원 결과와 유사하도록

2) 주변 face와 normal이 유사하도록 (smooth surface)

옷 재질에 대한 physical modeling은 

1) density
2) membrane stiffness
3) bending stiffness 

로 표현되는 모델을 사용했다고 함. (자세히는 모름)

그리고 이 모델을 simulation할 수 있는 differentiable tool은 C-IPC을 사용함

gradient 계산이 좀 아쉬워서 직접 구현한 걸 추가해서 사용했다고 함.

1) mesh face 중 옷에 해당하는 face를 사전에 구해둠 (손으로 한 듯)

2) SMPL-X body를 mesh 안에 fitting해서 body collider guidance로 씀 (최적화 중간에 mesh가 뒤틀리는걸 막는 도움)

3) tracked mesh sequence를 가지고와서 옷 property 3종류 scalar 값을 최적화로 찾음

- 이 때 사용하는 gradient는 수식(7)과 같이 approximated form으로 구현해서 사용했다고 함.

----------------------------

옷 property 값들이 찾아지고 나면

수식(5)에 다시 넣어서 unseen pose로 변형하는 걸 예측하는데 활용하면 됨

그러면 animation 되는 것.

위 과정까지 하면 웬만치 모델링되는데 빛을 직접 다루지 않기 때문에 약간의 artifact들이 있음. (그림자)

이를 풀어주기 위해서 canonical texture를 최적화로 다시 한 번 구해주는 후처리를 해줌

Mitsuba3 라는 또 다른 simulation tool을 써서 이번엔 새로운 texture map과 빛을 찾아주는 최적화를 돌림.

여기서 texture map만 꺼내서 사용하는 것.


데이터셋에 있는 SMPLX 쓰지 않은 이유는 성능이 구려서임. 그래서 2d keypoint + 온갖 prior 최적화로 새로 찾아서 씀.
반응형