Paper/Human

Instant Multi-View Head Capture through Learnable Registration

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

내 맘대로 Introduction

 

head template model을 만드는 순서는 보통 3D scan을 하고 MVS로 mesh를 얻은 다음 미리 만들어둔 template mesh를 registration하는 과정을 거친다. 이 때 MVS에 noise가 있는 것을 사람이 수작업으로 보통 거르고, registration 과정에서도 손으로 파라미터 튜닝을 해줘야 한다. 즉 수작업이 굉장히 많이 든다고 할 수 있다. 

 

이 논문은 MVS-registration 순서를 통째로 대체해서 images to registrated model로 한 방에 가는 방법을 소개한다. 학습 과정에서 3D SCAN이 필요하긴 하다. 대신 MVS를 건너뜀.

 

메모

이미지 feature를 aggregation해서 feature volume을 만들고 3D convolution을 이용해 template mesh vertex 각각 위치가 어딘지 추정하는 방식 

3D conv로 수천개 vertex 위치를 추정한다는 것이 다소 무식해보이나 메모리를 신경쓰지 않은 것 같다.  

입력은 이미지
출력은 template mesh vertex의 위치다.

face는 사실 미리 정해져있음.





1) 각 이미지는 shared Unet으로 featuer map으로 바뀜
2) feature cube의 cell 하나마다 각 카메라로 projection-interpolation->mean/std을 거쳐 값을 채움 (mean, std concat)
feature cube 안에 머리에 해당하는 volume은 조금 더 작을 것인데 이 위치에 집중할 수 있도록 scale, rotation, translation을 추정해서 head box가 어딨는지 알아냄

head box에 해당하는 영역 값만 3D CONV 통과시켜서 

N개 mesh vertex 위치 추정하도록 함.

출력은 feature cube의 어느 cell이 n번째 vertex위치 인지 확률 값을 표현함

d x d x d x probabilty N개 형태임. (엄청 큼...)

refine stage

앞서 찾은 coarse vertex 주변으로 작은 grid를 펼침.

작은 grid내 각각 위치의 기여도 (3D scan을 이용해서 normal을 보고 각 카메라와 이루는 각도를 종합한 점수) 를 보고 feature를 local weighted sum 형태로 업데이트한다.

업데이트된 새 feature + coarse vertex를 또 새로운 feature volume을 삼아 3D CONV 수행 -> 최종 vertex 위치를 추정

이땐 조금더 높은 해상도를 씀


1) vertex - GT vertex와 상관없이 가장 가까운 surface까지 거리가 0이도록 

2) edge 단위로 보았을 때 edge 길이가 일정하도록. 이게 있으면 움푹 파이거나 뒤틀리는게 적어짐

3) 기본적인 vertex to vertex, index를 이용해서 1개 1개가 다 맞아떨어지도록.

이렇게 하면 template mesh가 3D scan에 달라붙음. 배우다 보면 이미지만 보고도 붙음.

 

반응형