반응형
내 맘대로 Introduction
이 논문은 3D SCAN을 입력으로 넣으면, 단일 topology mesh로 나오도록 하는 모델이다. 사실 상 pointcloud to mesh에 가까운 논문. 컨셉은 그렇다만 방식은 point grouping은 아니고 scan to latent to mesh 방식이다. scan을 latent로 압축하고 정해진 topology의 mesh를 내뱉는 decoder를 붙인 형태다. 그래서 설명하길 nonlinear face model이라고 설명한다.
2019년 논문으로 시간이 조금 됐지만 그래도 컨셉 자체가 좋은 것 같아서 읽었다. 개선 버전 논문이 나오면 좋을 것 같다는 생각이 들기도 한다.
메모
|
입력은 3D SCAN에서 무작위로 N개 point를 뽑아 flatten한 것. encoder를 통과하면, shape latent, expression latent로 변환됨. shape, expression latent는 개별 decoder를 통해 Nx3의 위치값, displacement값을 예측함. shape + d expression 형태 이 때 decoder를 MLP를 안쓰고 기존 모델의 eigenvector를 써도 되겠지만 그러면 표현력이 모델에 한정되기 때문에 그냥 열린 상태로 MLP 쓴 것 같음. |
|
encoder는 PointNet decoder는 MLP다. |
데이터는 싹 긁어 모은 느낌. 사용할 수 있는 모든 SCAN 데이터를 직접 사용했다. 이들은 topology 통일이 안되어있으니까 weakly supervision 데이터로 사용됨. |
|
|
그림3에서 봤다시피 얼굴 외 영역이 많기 때문에 각 scan에다 template model을 대충 (scale, rotation) 갖다 붙이고, 얼굴 영역을 대충 잘라낸 걸 데이터로 썼다. |
loss 구성은 복원 전 후 vertex 위치 변화 -> topology가 같으면 1대1 -> topology가 다르면 cloest point와 1대1 복원 전후의 normal 변화 -> topology가 같으면 1대1 -> topology가 다르면 cloest point와 1대1 복원전 후의 edge 길이 변화 -> topology가 같으면 edge 별로 -> topology가 다르면 template model의 edge 길이와 |
bfm으로 만든 synthetic data일 경우 (topology가 같은 데이터가 있을 경우) 위 모든 loss는 topology graph를 따라서 1대1 대응으로 계산된다. 수식은 간단함. |
topology가 다른 real scan data일 경우 vertex loss를 cloest point로 계산하는 chamfer distance를 사용하고 normal 역시 cloest point 간의 normal edge는 비교대상이 없으므로 template 모델이 갖고 있는 edge 길이와 비교한다. (이게 기본 template을 사용했을 것 같진 않고 registration해서 썼지 않을까) |
|
근데 하나 topology가 다를 경우 사용하는 cloest distance 기준은 문제 되는 상황이 있다. 바로 surface 굴곡이 심할 경우, cloest point가 원래 대응되어야 할 위치에 매칭되는 상황이 줄어듦. 따라서 이 경우 cloest point를 쓰는게 아니라 normal ray 와 가장 가까운 point를 할당했다. -> 이건 왠지 plucker coordinate 써서 했지 않을까? 계산이 쉬우니까. -------------- cloest point로 일단 학습을 시작하고 나서 어느정도 loss가 saturation에 접어들면 그 때 normal ray를 활용한 matching 기준으로 전환한다고 한다. + laplacian 추가 |
구조적 특징은 깔끔하다. 가볍고. |
1) id 만 먼저 학습 (무표정 데이터 써서) 2) expression은 id holding한 상태로 다시 (표정 데이터 써서) 3) synthetic 데이터로만 먼저 학습 4) 수렴되고 나면 나중에 real 3d scan 데이터 추가. |
만약 shape, expression latent를 뽑아주는 image encoder가 있을 경우 image to mesh도 가능한 시나리오. sphereface (일종의 arcface 이전 작) 을 이용해 image to latent로 바꾸고 붙여서 데모를 했다. |
|
|
반응형