Paper/Human

3D Face Tracking from 2D Video through Iterative Dense UV to Image Flow

침닦는수건 2024. 10. 30. 17:33
반응형

내 맘대로 Introduction

 

내용을 보면 densepose의 face 버전 논문이다. 컨셉 자체는 당연히 있을 법한데 face 추세가 3DMM을 활용하는 방식으로 흘러가다보니 그동안 나오지 않아나 보다. 내가 해볼까 했는데... 2024년에 딱 나와버려 아쉽기도 하다.

 

이미지가 들어갔을 대 face uv map가 출력이다. 근데 방식을 unwrap uv map 에서 image로 가는 flow를 계산하는 방식이다. face unwrap map도 정면 얼굴 구조를 잃지 않을 것이고, 이미지들은 정면 얼굴 위주일 것이기 때문에 optical flow가 심하게 뒤집히는 경우가 적어 합리적인 방식 같다. 

 

Segformer, RAFT 같은 검증된 구조를 차용한 것도 안정적인 성능에 한 몫 한 것 같다. supplementary가 정말 탄탄하니 읽어보는게 좋다.

flowface_cvpr_2024_supp.pdf
5.05MB

메모


1) 이미지 feature 뽑기
2) uv map feature와 correlation
-> C H W H W 4차원
3) RAFT에 입력으로 넣어서 optical flow 예측 N회 

optical flow는 uv map to image 방향으로.
Segformer 구조를 가져다 encoder를 씀.

feature dimension은 128

uv map feature를 만들 명시적인 input이 없기 때문에

learnable H*W map을 만들어두고 이를 네트워크로 처리해서 uv map feature, context, hidden state를 만들어서 씀

이 때 learnable map을 texture라고 부르며 1, 1/2, 1/4, 1/8 총 4개 해상도로 구성해서 upsample+concat해서 사용함.



RAFT 구조를 차용해서 optical flow를 만듦

correlation에서는 uv map과 엮인 feature를
context에서는 uv map meta data를 뽑아가는 컨셉.
uv map (x,y) + optical flow(dx,dy)로 옮긴 지점이 실제 GT와 같은지 비교.

수식 (5)와 수식(6)은 사실 같은 것.

uv map domain(64x64x2)에서 예측한 optical flow map에서 vertex 별로 sampling해서 supervision한 건 (5)

pixel space에서 그대로 supervision하면 (6)

vertex sampling하면서 자연스레 interpolation이 끼기 때문에 결과가 smooth하게 나오도록 강조되는 효과가 있음.





결과가 정확하게 모든 vertex의 pixel space 상 위치를 알려주므로 피팅해버리면 3D model 결과를 얻을 수 있다.

이 때 FLAME coefficient만 사용하면 표현력이 부족하니 delta displacement까지 같이 최적화.

추가적으로 regularization이 FLAME coefficient 억제하는데 들어가고 MICA 결과와 멀지 않도록 (초기값 개념)

time sequence가 존재하면 tracking이 정확하도록.



이미지 1장씩 처리하는 알고리즘이지만 트래킹에 붙여도 정말 안정적으로 잘된다는 것을 보여주기 위해서 tracking evaluation metric을 새로 정의한 내용.




model fitting할 때 delta displacement는 multiview가 가능할 때만 썼다고 한다. (안하면 뭉개질 것 같긴 함)


 

반응형