반응형
내 맘대로 Introduction
이 논문은 video -> SMPLX(+offset) + LBS. 비디오에서 해당 사람의 animatalbe avatar를 얻어내는 것이 목적.
핵심 아이디어는 1) HybrIK-X + DECA + mmpose를 다 활용한 강한 초기화 (registration) 2) triplane으로 per-vertex offset, isotropic 3DGS 값 찾기 이다.
알고리즘적 진일보보다 기존 알고리즘들 잘 활용하고, 섬세하게 최적화해서 완성도를 높이는데 기여한 논문이라고 생각한다. 논문에 기재된 전처리, 후처리, 최적화 노하우 밑에 한 스텝 한 스텝 보다 높은 완성도를 위해 구른 내용이 있어 보인다.
HybrIK-X, DECA에서 발생하는 noise 뿐만 아니라 mmpose 튀는 것, 2D pose에 mesh registration할 때 smoothness며 일그러지는 것 등 잡아내야 할 것들이 많았을텐데, 그런 것들 다 잡아내서 결과물을 완성해낸 노력이 보이는 논문.
메모
|
초기화 방법 1) HybrIK-X를 사용해서 SMPL-X 파라미터 찾기 + 얼굴은 DECA로 찾기 2) 2D keypoint 갖고 한 번 더 fitting 3) 모든 canonical joint에 offset 부여 4) 모든 face vertex에 offset 부여 5) 2D keypoint 갖고 3)~4) 최적화 ---- 대충하는게 아니라 엄청 정확하게 fitting될 때까지 반복 매 프레임을 해야하는 것은 매프레임, shape parameter같이 공유되는 것은 묶어서 |
|
표현력 증대를 위해 사용하는 SMPL-X는 subdivision 을 통해 upsample해서 사용했음. 여기까지가 초기화 ----------- 초기화된 값에서 한발더 나아간 offset 계산으로 최종 완성하는 단계는 triplane을 이용해서 해결한다. triplane에서 query point feature를 뽑아내서 대응되는 vertex의 vertex offset, 3DGS 를 추정한다. 이 때 하나 주의점이 query point feature는 초기화에서 만든 mesh를 쓰지 않는다. 계속 변화하니까 수렴이 방해됨. 따라서 query point 뽑아낼 때는 그냥 neutral SMPL-X 이용해서 고정된 위치에서 계속 뽑았음. 3DGS는 isotropic하지 않으면 LBS 시에 회전 까지 신경써야 하므로 그냥 isotropic으로 했음. |
per-vertex offset은 당연히 pose-dependent로 또 생길수도 있으니, 이를 해결하기 위한 3D pose conditioned MLP도 추가. 이건 vertex offset, 3DGS offset + NORMAL VECTOR도 내뱉는다. |
초기화 + 2개의 per-vertex offset이 계산되면 skinning weight를 원래 갖고 있던 per vertex skinning weight를 그대로 사용하지 않고 초기화 까지만 수행한 vertex와 nearest neighbor를 이용해 업데이트 해준다 -> 이유는 변형된 최종 mesh는 옷을 입고 있기 때문에 거리가 충분히 멀어졌다면 새로 업데이트해주는 게 낫다고 판단한 것 같음. -> 얼굴이나 손은 당연히 그대로. |
|
|
찾아내야 될게 많다. triplane 수렴시켜야지 per vertex offset 2가지 3DGS offset 2가지 translation shape parameter joint offset 다 찾아내야 한다. 초기화하고 고정해두는게 아니다. (그러니 수렴시키기 얼마나 어려웠을까) ----------------------- image loss가 핵심. 사실 SMPLX fitting으로 끝나버릴 일을 옷과 같은 형상 복원까지 나아가게 한 핵심은 per-vertex 3DGS를 부여해서 image loss를 사용할 수 있게 만든 점이다. image loss로 인해서 geometry 추정이 더 정확해진 것 l1, ssim LPIPS 다 썼다. ------- face loss는 위 image loss만으론 얼굴 geometry가 잘 안만들어지는 문제가 있어서 추가한 것 그냥 냅두면 geometry랑 rendered image랑 따로 노는 불상사 발생. geometry랑 rendered image랑 잘 맞아떨어지도록 하기 위해 differentiable renderer로 geometry vs color 1대1 매치를 시켜버리는 loss를 가해줌 이러려면 texture map이 있어야 하는데 이걸 아까 섬세하게 준비해둔 registration 결과의 UV map을 뗘와서 사용함. -------------- per-vertex offset을 사용하는 한 무조건 필수적인 regularization laplacian smoothness 추가 offset 더하기 전, 한 번 더 한 후, 다 더한 후 총 3단계에 걸쳐 전부 다 걸어준다. |
데이터 박치기한 논문보다 섬세하게 한 스텝 한 스텝 다 준비한 결과가 성능으로 이어진게 아닐까. |
반응형