The Beautiful Future
FLAME: Learning a model of facial shape and expression from {4D} scans 본문
FLAME: Learning a model of facial shape and expression from {4D} scans
Small Octopus 2022. 7. 3. 11:26Graphics, 2017. (Proceeding SIGGRAPH Asia)
Faces Learned with an Articulated Model and Expression
현존하는 그래픽 소프트웨어와 함께 동작하며 쉽게 데이터에 핏 될 수 있다.
3800 명의 스캔데이터로 부터 만들어졌으며 이는 선형 공간을 구성한다.
이 선형공간과 더불어 아티큘레이트 되는 턱, 목, 눈, 자세에 종속적이게 교정되는 블렌드셰입,
그리고 추가적인 전역 표정 블렌드셰입.
D3DFACS 데이터셋에 있는 4D 얼굴 시퀀스에서 자세와 표정에 종속적인 아티큘레이션을 배운다.
템플릿 메쉬를 시퀀스에 정확하게 등록하고 D3DFACS 등록들을 연구에 활용할 수 있게 했다.
전체적으로 모델을 만드는데 총 33000 스캔이 사용되었다.
FaceWarehouse model 그리고 Basel Face Model과 비교해서FLAME은 차원수가 적지만 보다 더 표현력이 좋다.
static 3D scan과 4D scan에 같은 최적화 알고리즘을 적용하여 다른 모델보다 좋음을 보였다.
Video description
기존 3D face model은 모든 얼굴에 형태적 측면과 표정에 잘 일반화 되지 않는다.
키포인트는 얼굴 모션과 표정을 다른 원인으로 나누는 것이다.
데이터로부터 형태변화를 배울수 있다.
손수 만든 얼굴 리그에서 시작을 했다. 그래서 목, 머리, 눈을 돌릴수있다.
목과 턱의 위치와 눈 조인트는 학습데이터로 부터 배웠다.
그리고 자동으로 다양한 머리 모양에 적응한다.
FLAME은 적은 차원의 선형 셰입을 포함한다.
- 선형 셰입 모델링
Cesar데이터셋의 4000개 정도의 3d body 스캔으로부터 얼굴 선형 모델을 학습했다.
Cesar데이터셋은 뉴트럴 페이스 표정은 충분했다. 해상도도 좋았다.
리그 템플릿을 Cesar데이터셋에 얼라인해서 대응을 가져왔고 포즈를 정규화할 수있었다.
PCA을 이용해서 저차원 공간에 맵핑했다.
남성과 여성을 나눠서 모델링했다. 49개의 PCA 컴퍼넌트는 전체 선형 공간의 98%를 차지한다.
300 개를 사용하면 100%가 된다.
- 모델 포즈(턱 포즈), 얼굴 표정 모델링
모델 포즈와 얼굴 표정을 위해 D3DFACS 40개의 스캔과 추가적인 우리가 만든 시퀀스을 사용했다.
자체제작 캡쳐된 시퀀스는 몇몇 익스트림한 표정과 턱 자세을 커버한다.
자세와 얼굴표정을 배우기위해 얼굴 템플릿을 4d 스캔테이터의 대응으로 가져왔다.
정렬할때 구조적인 면과 텍스쳐 정보를 둘다 사용했다.
정렬 스텝은 3스테으로 구성되어있다.
1. 프레임의 파라미터만을 3d 기하학 구조와 2d 랜드마크로 최적화했다.
2. optimize free vertices coupled or regular eyes to the model
3. optimize a photometric error term to reduce sliding error along the surface by exploiting geometry landmarks and photo metric data
미세한 얼굴표정도 잘 트랙킹되었다.
아티스티트로부터 시작된 표정과 블렌드 셰입 모델을 초기화하기위해 플레임을 반복적으로 학습했다.
모델은 주어진 이니셜 플레임 모델에서 스캔 시퀀스로 퍼져나갔다.
레규러라이즈된 새로운 얼라이먼트를 위해 시퀀스와 해결을 위해
중요 기여점은 턱과 목의 움직임을 linear blend skinned model으로 표현한 것이다.
정렬된 학습데이터로부터 턱과 목의 움직임을 skinned model을 학습한다.
linear blend weight joint points을 포함하여 학습, 목, 턱을 위해 포즈에 의존적하여 수정가능한 블렌드 셰입을 배운다.
pose dependent blend shapes subtle dtails도 함께 학습한다.
이 블렌드 셰입은 애니메이션 또는 모델 피팅하는동안 자동으로 적용 할수있다.
신원, 포즈에서 모델링안된 표정을 학습할수 있다. 얼굴 부위만 따로 PCA 적용.
43개의 표정 컴퍼넌트는 95%를 차지한다.
개요
2017년 SIGGRAPH Asia에 발표되었고 Graphics 저널에 기재되었다.
MPI 에서 만든 블렌드 셰입 머리 모델이다.
다른 머리 모델들과 달리 목과 뒤통수를 포함한 머리 전첼르 모델링했다.
총 버텍스 수는 5023개이다.
신원을 나타내는 셰입 파라미터, 표정을 나타내는 익스프레션 파라미터, 목 턱 눈 회전을 나타내는 포즈 파라미터, 그리고 텍스쳐를 나타내는 컬러 파라미터로 이루어져있다.
다른 머리 모델들과 달리 포즈파라미터가 추가 되었으며 smpl 모델과 같이 조인트를 가지고 회전값을 설정하여 페이스리그를 조작할 수 있는 방식이다.
베타는 셰입 파라미터로 300개(49개 98%표현)
세타는 포즈 파라미터로 눈 두개 목 하나 턱하나 4개
프시는 표정 파라미터로 100개(43개 95%표현).
Tp 계산후 J로 조인트 위치 추정함. 추정 조인트 위치에서 세타만큼 회전 함.
회전시 각 버텍스에 적용되는 가중치 W에 따라 회전 강도가 다르며 관련되 버텍스만 회전됨.
공식 홈페이지
홈페이지 온라인 데모
웹페이지에서 파라미터를 조절해서 flame 모델이 변형된는 것을 직접 볼수 있다.
https://flame.is.tue.mpg.de/interactivemodelviewer.html
파이토치 버전 코드 제공(텐서플로우 버전 코드도 제공)
파이토치에서 하나의 레이어로 구성하여 출력 버텍스와 입력 파라미터를 연결하는 백프로파게이션이 가능하다.
프레임 자체은 학습이 안되는 하나의 상수 레이어로 생각하면된다.
basel face model 에서 flame model로 변환하는 코드를 다른 깃헙에서 제공.
파이토치 버전 텍스쳐 피팅 제공 (Photometric FLAME Fitting)
그냥 파이토치 버전은 텍스쳐 없는 모델만 제공.
analysis-by-synthesis을 이용해 이미지에 flame 모델을 핏팅하는 코드. (딥러닝을 사용하는 DECA와 다름)
이미지 하나에 피팅하는 것뿐만이 아리나 flame의 텍스쳐 공간을 만들수도 있음.
chumpy를 이용한 피팅 제공
파이토치 텐서플로우가 아닌 파이썬 자체 chumpy로 구현한 flame 코드( 이게 오리지날)
- Landmark fitting: Fit FLAME to 3D landmarks
- Scan fitting: Fit FLAME to a 3D scan