3D face reconstruction의 기초가 되는 1999년도 논문인 A Morphable Model For The Synthesis Of 3D Faces에 대한 리뷰이다.
Introduction
해당 논문은 다음 face synthesis 자동화의 한계점들을 해결하고자 하였다.
The problem of finding corresponding feature locations in all faces
The problem of separating realistic faces from faces that could never appear in the real world
첫 번째 문제는 모든 얼굴에 일치하는 feature location을 찾는 문제로, 정해놓은 feature points는 다른 얼굴에도 정확히 일치해야 한다. 하지만 개인 얼굴 간 편차 때문에 쉽지는 않다. 두 번째 문제는 실제 얼굴과는 거리가 먼 것들로부터 현실적인 얼굴을 분리해내는 문제다. 또한, 실 세계에는 없어 새롭지만 자연스러워 보이는 얼굴을 만들어내야 한다.
이 논문에서 제안하는 parametric face model이 두 문제를 도울 수 있다고 한다. 이 모델은 생성된 얼굴들의 likelihood를 제어하고 새로운 얼굴들에 대해 일치율을 계산할 수 있다. 해당 모델을 Morphable face model 이라 하고 3D face scan 데이터 셋의 선형결합을 기반으로 한 multidimensional 3D morphing 함수 라고 정의할 수 있다.
Database
앞서 말했듯 morphable model은 3D face 데이터 셋을 기반으로 만들어진다. 모델을 building하는데 사용된 데이터 셋은 200명의 머리로 구성되며, 남녀 비율이 1:1로 구성되어 있다. 모든 얼굴들은 화장, 악세서리, 머리카락 없이 스캔되었고 얼굴만 나타내도록 전처리되었다.
해당 laser scan은 head structure data in cylindrical representation을 제공한다. 하나의 얼굴은 약 7만 개의 정점으로 표현되었고 텍스쳐를 표현하기 위해 각 점에는 채널 당 8 bits RGB color 값이 내포되어 있다. 각 정점의 좌표는 로 표시되고, h와 각도는 512 분할로 샘플링되었다.
Cylindrical coordinates
Cylindrical coordinates에 대해 조금만 설명하면, 해당 좌표계로 표현되는 점 P는 로 나타낼 수 있고 각 성분이 의미하는 바는 다음과 같다.
r : Z축에서 점 P까지의 유클리디안 거리
h : 점 P에서 선택된 평면까지의 직선 거리
: 선택된 평면 위의 reference direction(X축)과 원점에서 평면 위로 사영시킨 점까지 이은 선 사이의 각도
Morphable 3D Face Model
3D Morphable model은 다음 Shape vector S와 Texture vector T로 나타낼 수 있다.
하나의 정점은 X, Y, Z로 이루어져 있고 하나의 face는 약 7만개의 정점으로 이루어져 있으므로 한 얼굴의 shape vector와 texture vector는 대략 21만 차원의 벡터이다. 각 face의 shape vector, texture vector를 , 라 하고 morphable model을 m개의 exemplar faces로 building한다고 하면 morphable model은 다음과 같이 나타낼 수 있다.
coefficients에 의해 파라미터화된 얼굴 집합은 coefficients 와 를 조정함으로써 임의의 새 얼굴을 생성해낼 수 있다. 생성된 얼굴의 그럴듯함(plausibility)에 관해서 정량화하는 것은 exemplar set의 coefficients 와 의 확률 분포를 추정하여 성취할 수 있다. 해당 분포는 coefficient 의 likelihood를 제어하는 것을 가능하게 하며, 생성된 얼굴들의 likelihood를 규정할 수 있도록 한다. 쉽게 말하자면, 실제 얼굴의 coefficients는 어떠한 확률 분포를 따르고 이 분포에 따라 새 얼굴을 생성해내면 실제 얼굴과 비슷하게 만들어낼 수 있다는 것이다. 이 분포에서 벗어날 수록 있을 법한 얼굴과 멀어진다고 생각하면 된다.
Probability distribuion
논문에서 200개의 얼굴 데이터에 다변량 정규 분포를 적합시킨다(We fit a multivariate normal distribution to data set of 200 faces) 라고 표현하였는데 추측하기로는 PCA의 이론적 배경으로, PCA의 모형은 다변량 정규 분포를 따르는 확률 벡터이기 때문이거나 사전 확률을 예측하기 위한 것(probability distribution fitting)으로 생각된다. 이 문장이 의미하는 바를 정확히 이해하지는 못 했다. 다음은 설정된 변수를 바탕으로 확률 함수를 표현해본 것이다. 각 파라미터의 의미는 논문을 참고하자.
위에 정의한 선형 결합은 non-faces를 포함할 수 있다. 즉, coefficients에 대한 규제가 없어 이상한 얼굴이 생성될 수 있다. 그래서 coefficient vectors에 얼굴을 설명하는 확률을 할당해주는 것이 필요하다. 또한, 초기 얼굴 인식에서 PCA(Principle Component Analysis)를 사용한 것처럼 데이터를 저차원 공간으로 축소시켜야 한다. PCA를 통해 morphable model과 Shape coefficient vector의 사전 확률은 다음과 같이 나타내어진다.
위에서 는 shape covariance matrix 의 고유값이다.
Segmented morphable model
모델의 표현력을 높이기 위해 얼굴을 독립적인 subregions으로 나누어 독립적으로 morphing한다. 다음과 같이 총 4개의 subregions으로 나눈다.
Eyes, Nose, Mouth, Surrounding region
각 분리된 segment에 대해 선형 결합을 계산하고 이미지 결합 알고리즘 [P.J Burt et al.,1985]을 통해 다시 합쳐 3D face를 완성시킨다.
Facial Attributes
Shape와 texture coefficients는 인간 언어에서 사용되는 얼굴 속성에 대응되지 않는다. 얼굴 속성의 예를 들자면, 마르거나 통통한 특징, facial femininity 등이 있다. 이러한 속성들을 morphable model의 파라미터 공간에 매핑하는 방법을 설명한다. 여기서 속성들은 hand-labeled set of example faces에 의해 정의된다. 얼굴 표정은 다른 표정를 가진 한 개인의 두 스캔을 기록함으로써 얻어낼 수 있다. 어떠한 표정을 가진 shape vector를 라 하고 중립적인(neural) 얼굴에 대한 shape vector를 이라 할 때, 이 둘을 빼면 해당 얼굴 표정에 대한 shape의 표현을 얻을 수 있다.
얼굴 표정과 달리, 각 개인에 대한 불변 속성은 분리하기 어렵다. 예를 들면, 남성적 특질이나 여성적 특질이 이에 해당한다. 그래서 속성의 markedness를 설명하는 수동적으로 할당된 label 를 가진 face set을 기반으로 하면 다음과 같이 고유 속성을 얻을 수 있다.
이 method에 대한 근거를 제시하기 위해, 한 얼굴에 있는 속성의 markedness를 설명하는 전반적인 함수를 다음과 같이 정의한다.
해당 함수는 모든 에 대해 그 자체로 이용할 수 없기 때문에 라벨링된 얼굴들의 샘플 셋에서 해당 함수를 추정하는 regression 문제를 해결해야 한다. 여기서 이 함수는 선형 함수라고 가정하고, 따라서 그 속성의 변화 를 성취하기 위한, 얼굴들의 전체 공간에 대한 단일 최적 방향이 존재한다. 여기서 최적 방향은 minimal variance-normalized length를 가진다. 다음은 minimal variance-normalized length의 수식이다.
<>는 inner product를 의미한다.
이제 다른 종류의 얼굴 속성인 "distinctiveness"가 있다. 해당 속성은 평균 얼굴에서의 거리를 증가시킴으로써 증가될 수 있다.
다음 글에서 morphable model을 통해 생성된 얼굴과 input image 사이의 매칭에 대해 작성하겠다.
'A·I' 카테고리의 다른 글
[3D face] Generating 3D faces using Convolutional Mesh Autoencoders (COMA) 리뷰 1편 (0) | 2020.03.08 |
---|---|
[3D face] Morphable Model For The Synthesis Of 3D Faces 리뷰 2편 (0) | 2020.02.17 |
[object detection] YOLO에서 YOLOv2로의 변경점 (0) | 2019.11.12 |
[object detection] Single Shot Multibox Detector (SSD) 아키텍쳐 분석 (0) | 2019.08.08 |
[object detection] YOLO 모델의 원리 (9) | 2019.07.22 |
댓글