Paper/Human

SNARF: Differentiable Forward Skinning for Animating Non-Rigid Neural Implicit Shapes

침닦는수건 2024. 5. 2. 18:22
반응형

내 맘대로 Introduction

3D mesh + joint set이 sequence로 있을 때 skinning weight를 찾아내는 방법이다. 각 frame mesh마다 correspodence를 찾는 일이 쉽지 않기 때문에 일단 explicit mesh (vertex)를 이용해 correspondence를 찾진 않고 implicit field를 이용해 correspondence를 찾는다. 그리고 correspondence를 기반으로 forward skinning을 수행한 뒤 loss를 먹여 skinning weight를 업데이트하는 방식.

 

말이 길었는데 진짜 skinning weight 자동으로 찾는 논문이다. backward skinning이 아니라 forward skinning을 사용한 이유가 돋보이는 논문.

 

메모


네트워크가 입력으로 받는 것은 canonical space volume, position x로 정해두고 갖고 있는 deformed mesh를 gt로 이용한다.

보통 deformed mesh가 있으니 deformed space, position x'를 입력으로 쓰곤 하는데 여기선 backward로 안하고 forward로 한다. (이유는 후술)

------------
네트워크는 canonical point + pose를 받아 skinning weight를 예측하고, 해당 위치의 occupancy까지 예측하는 역할
왜 굳이 backward (deform을 보고 canonical 맞추기)로 안하고 forward (없는 canonical 보고 deformed 맞추기)로 하느냐

직관적으로도, 변형된 결과를 보고 원형을 맞추는 건 어렵다.
반면 원형을 보고 어떻게 변형될 지 맞추는 건 그것보다 쉽다.

왼쪽 그림만 봐도 deformed space를 이용해서 찾아낸 skinning은 원형을 표현하기에 약간의 bias가 있다. 

반면 canonical space에서 찾아낸 skinning weight는 그보단 표현력이 더 좋다.


f(canonical) -> deformed 이게 좋은 이유 하나 더.

canoncial 2 point 가 deformed 1 point로 대응될 수도 있다. 
예를 들어 손을 허리 짚고 있으면 canoncial 허리, canonical 손이 deformed space에선 겹친다.

따라서 canonical 대 deform은 many-to-one이기 때문에 

many -> one은 풀 수 있지만

one -> many는 못푼다.
canoncial vs deformed space 간 correspondence 찾는 것이 핵심인데 이 부분은 수식(4)가 analytic 하게 풀 수 없는 (one-to-many) 관계이므로 gradient 계산도 만만치 않다. 

따라서 Newton method로 linearize해서 gradient를 연결해주는 식으로 풀었다. 

canonical (many) vs deformed (one) 대응 관계 문제는

canonical point 여러개를 초기값으로 잡고 최적화를 병렬로 돌린다. 

그러면 각자 다른 위치에 수렴하거나 발산할텐데 발산하는건 버리고, 수렴하는 것 중에서도 특정 threshold 안으로 들어오는 애들만 남기면

many - to - one 대응관계를 풀 수 있다. 

이 부분 전부 최적화임 
--------------------------------

대응은 여러개지만 deformed space에서는 한 점이라는 사실은 맞다.

따라서 deformed space 상에서 occupancy는 1개가 나와야 한다.

canoncial point 여러개의 occupancy 중 가장 큰 값을 deformed space 상의 1개 값으로 사용한다.
loss는 defomred space 상에서 occupancy BCE loss 하나다.

중간에
skinning weight 추정, 
대응 관계 최적화
occupancy 추정 + max operation
이 껴있지만 loss는 간단함. 
LBS 최적화 과정에서 gradient를연결해주는 것을 linearize해서 구현했다고 말했었다.

그 정확한 이론적 수식. 
 
반응형