Paper/Human

Dense Semantic and Topological Correspondence of 3D Faces without Landmarks

침닦는수건 2024. 7. 11. 17:25
반응형

내 맘대로 Introduction

 

template mesh와 SCAN이 있을 때 보통 registration은 keypoint를 이용한 rigid ICP 후  non-rigid ICP를 돌리는 것이 일반적이다. 하지만 keypoint를 뽑아내는 전처리가 필요하고 이 정확도에 따라서 성능이 좌지우지되는 부분이 있다.

 

이 논문은 ECCV 2018년 논문으로 조금 되긴 했지만, 딥러닝 붐 이후로도 뚝심있게 여전히 최적화 노하우를 소개한다. Keypoint 없이 그냥 registration하는 ICP 노하우이자, topology까지 최대한 유사하게 맞추면서 fitting하는 노하우를 소개한다. 

 

얼굴같이 geometry가 사람마다 유사한 mesh여서 가능한 기법.

 

메모


시작은 역시나 ICP다. 얼굴만 대상으로 하기 때문에 얼굴 끼리는 대충 icp 돌려도 대략의 R, t 정도는 나오기 때문에

초기화 정도로 그냥 ICP를 돌려준다. 

2단계에 돌입하기 전, face mesh 상의 각 vertex마다 score를 부여한다.

score가 의미하는 건 높을수록 변화무쌍한 vertex, 낮을수록 smooth하게 변하는 vertex다.

예를 들어 높은 score는 눈, 입, 코에서 나오고, 낮은 score는 이마, 볼에서 나온다. 



thresholding 통해서 low score, smooth region은 일반적인 ICP로 돌도록 그대로 냅두고

high score, high region은 gaussian kernel을 씌운 뒤 ICP를 돌도록 한다. 

high score region만 kernel을 씌우는 이유는, 해당 vertex만 보정하도록 집중하게 만들기 위해서다.

안그러면 smooth하게 달라붙는데, 이 영역은 그보다 detail하게만 달라붙어주는게 도움이 된다.
그 다음 스텝, 앞선 2단계 weighted ICP까지 돌고 나면 대략의 priliminary correspondence가 형성되어 있을 것이다. 

이 값을 초기값으로 correspondence끼리, offset을 최소화하도록 업데이트를 한다. 

업데이트될 때마다 cloest point를 다시 뽑아서 correspondence도 업데이트해준다. 

수렴때까지 반복.

3단계인 nonrigid robust deformation 수식(7)은 최적화로 푸는게 아니다. closed form으로 풀리기 때문에 그냥 계산해내면 된다.

속도가 빠름~

당연히 해는 현재 correspondence가 그대로 옳은 correspondence일테니까 diagonal value가 크게 나오는 형태여야 한다. 
위 전체 과정을 거칠 때 vertex 별로 weight가 조금씩 다름

1) high score이면 high weight

2) correspondence끼리 거리가 너무 멀면 오히려 0으로 만들어서 무시하도록

3) 얼굴 경계 vertex는 0으로.


이렇게 마무리 하는 것이 아니라 마지막은 topology까지 유사하도록 최적화를 한 번 더 해준다. 

template vertex 하나 1-ring neighbor를 뽑고

corresponding vertex에서도 1-ring neighbor를 뽑는다. 

그리고 두 set을 tangent plane으로 평평하게 proejction. 

target plane을 그대로 template plane에 덮어쓰기 하고 수식(12)로 최적화 한 번 더.


topology가 점점 target을 닮아감.



 

반응형