반응형
내 맘대로 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에 달라붙음. 배우다 보면 이미지만 보고도 붙음. |
![]() |
![]() |
반응형