본문 바로가기
A·I

[3D face] Morphable Model For The Synthesis Of 3D Faces 리뷰 2편

by 방구석 몽상가 2020. 2. 17.
3DMM 리뷰2

3D face reconstruction의 기초가 되는 1999년도 논문인 A Morphable Model For The Synthesis Of 3D Faces에 대한 리뷰이다.

이전 글 : Morphable Model For The Synthesis Of 3D Faces 리뷰 1편

Matching morphable model to images

이 논문의 프레임워크의 중요 요소는 하나 이상의 이미지에 morphable face model를 자동적으로 매칭하는 알고리즘이다. 해당 알고리즘을 개략적으로 설명하자면, 3D model의 coefficients는 rendering 파라미터 집합에 따라 최적화되고, model을 통해 이미지를 생성할 때 input 이미지와 가능한 가깝게 생성하는 것이 목적이다. Loop는 다음과 같다.

In Analysis-by-synthesis loop

  1. 알고리즘은 현재 모델 파라미터로부터 텍스쳐가 매핑된 3D face를 만든다.
  2. 이미지를 렌더한다.
  3. Residual 차이(실제와 만들어진 것의 차이)에 따라 파라미터를 업데이트한다.
    • 처음에는 평균 head와 유저에 의해 아무렇게나 추정된 rendering 파라미터로 시작한다.

위 그림은 단일 이미지에서 새로운 얼굴의 3D shape와 texture를 reconstructing 하는 processing steps이다. 평균 3D head의 rough manual alignment 후에, automated matching procedure는 3D morphable model을 해당 이미지로 적합시킨다. 모델은 입력 이미지 위에 렌더링된다. 텍스처에 대한 details는 input으로부터 illumination-corrected texture extraction에 의해 향상될 수 있다. 이에 대한 자세한 사항은 뒤에서 이야기한다.

Parameters for optimization

최적화해야 되는 파라미터는 coefficients , 그리고 rendering 파라미터 가 있다. Rendering 파라미터는 다음 요소들을 포함한다.

Camera position, object scale, image plane rotation and translation, intensity, of ambient light, intensity, of directed light, color contrast, offset and gain in the red, green, and blue channel

파라미터 로부터, perspective projection과 Phong illumination 모델을 사용하여 다음 colored image가 렌더링된다.

여기서 perspective projection은 원근법을 고려하여 2D image로 사영시키는 것이다. Phong illumination 모델에 대해서는 간단히 설명하겠다.

Phong illumination model

Phong model은 빛의 반사를 계산하여 객체가 사실적으로 보이도록 해준다. Diffuse, Specular, Ambient 세 요소로 계산이 가능하다.

A) Diffuse Reflection (난반사)
: illumination의 intensity, color (r, g, b)
: normal vector
: diffuse coefficient (빛을 얼마나 반사하는가에 대한 정도)
: 빛의 방향 (단위 벡터)

B) Ambient Reflection (간접 반사)

: ambient reflection coefficient (표면으로부터 반사되는 빛의 비율)
: 반사되는 빛의 intensity

C) Specular Reflection (정반사)

: 입사되는 빛의 밝기 정도
: 물질 특성에 따른 specular reflection coefficient / 1일 때 90도
: 표면의 광택
: 반사광의 방향

Phong illumination은 모든 것을 합친 다음 식이 된다.

Optimization

Reconstructed image는 input image와 가장 가깝게 만들어져야 하는데 이 때 가까운 거리 정도를 유클리디안 거리로 측정한다.

여기서 제한점이 model의 vector space는 데이터베이스에 의해 생성된 것이라 아주 가깝게 만드는 것은 무리가 있다. 그렇기 때문에 matching quality와 사전 확률 간에 tradeoff가 존재한다.
Bayes decision theory에 의해, 해당 문제는 image 주어질 때, maximum posterior probability를 가진 파라미터 의 집합을 찾는 것이다. 즉, 다음 확률이 최대가 되는 이미지를 만들어야 한다.

, , 가 예측된 이미지 를 완전히 결정하는 반면, 관찰된 이미지 는 노이즈에 의해 변할 수 있다. 표준 편차 를 가진 Gaussian noise에 대해, 를 관찰할 likelihood는 다음과 같고

그러면 Maximum posterior probability는 다음 cost 함수를 최소화함으로써 성취된다.

Optimization algorithm

일단, surface points에 대한 랜덤 선택에 기반하여 에 대한 추정을 사용한다.
predicted color values 은 삼각형 중앙에서 평가하는 것이 가장 쉽다. 삼각형 k의 중앙의 텍스쳐 와 3D location 는 각 코너 값의 평균이다. Perspective projection은 해당 points를 image location 로 매핑한다. 각 삼각형 k의 surface normals 는 코너의 3D locations에 의해 결정된다. 이제 위에서 설명한 Phong illumination에 따라 color components (Red)는 다음과 같다.

물론 , 도 동일하게 계산된다. 여기서 은 illumination의 방향, 는 카메라 위치와 삼각형 중앙의 위치 간에 일반화된 차이, 그리고 로 반사광의 방향이다. 는 surface 밝기를 표시한다. 은 표면 재질로, specular reflection의 각도 분포를 제어한다. 원래 논문에서는 로 표기되어있으나 와 헷갈려 표기를 바꿨다. 만약, 그림자가 삼각형 중앙에 드리우면 위 color components의 식은 로 줄어든다. 그림자가 존재하는 위치에는 ambient reflection만 고려하기 때문이다.
고해상도 3D meshes는 각 삼각형 의 변위가 작아서 는 대략적으로 다음과 같다.

여기서 는 삼각형 k가 커버하는 image area다. 만약 삼각형이 가려져있다면(occluded), =0이다.
그러나 Gradient descent에서 mesh의 다른 삼각형들로부터 contributions가 중복될 것이다. 그러므로 각 반복에서 40개의 삼각형 중 random subset 를 선택하고 다음 식으로 를 대체한다.

를 선택하는 확률은 이다. 이 방법이 SGD보다 계산이 더 효율적이고 gradient estimate에 noise를 추가함으로써 local minima를 피하도록 도와준다고 한다.

Before Learning

현재 모델의 full 3D shape와 모든 정점의 2D positions 를 계산한다.
그리고나서, 를 결정하고 숨겨진 surfaces를 탐지하고 two-pass z-buffer 기술로 그림자를 드리운다. 여기서 z-buffer는 color buffer에 저장되어 있는 픽셀의 z 값을 저장한다. 쉽게 말하자면 어떤 것이 앞에 있는지를 저장하는 기술이라고 생각하면 된다. 여기서 occlusions와 cast shadows는 반복의 각 하위 집합동안 일정하다고 가정한다.

Update

파라미터는 cost 함수 의 analytical derivatives에 의존하여 업데이트한다. 도 아래 식과 동일

Coarse-to-Fine strategy

local minima를 피하기 위해, 알고리즘은 여러 측면에서 더 정밀하게 하는 전략을 따른다.
a) 반복의 첫 세트는 낮은 해상도의 morphable model과 input image의 down-sampled 버전에 대해 수행한다.
b) 와 함께, 첫 번째 주성분을 제어하는 만 최적화하면서 시작한다. 뒤이은 반복에서 점점 주성분이 추가된다.
c) 상대적으로 큰 으로 시작하고 추후 최대 매칭 quality를 얻도록 를 줄인다.
d) 마지막 반복에서 face model을 segments로 나눈다. 이때, 는 고정되고 coefficients 는 각 segment별로 독립적으로 최적화된다.

Multiple Images

한 사람의 여러 이미지를 이용할 수 있을 때, 최적화 알고리즘이 약간 변경된다.
일단, 는 공통으로 놔두고 는 각 input image마다 분리하고, 는 image distances의 합으로 대체된다.
모든 파라미터는 동시에 최적화된다.

Illumination-Corrected Texture Extraction

Morphable model에 의해 캡쳐되지 않는 개개인의 얼굴의 특정 features는 texture adaptation process에서 image로부터 추출된다. Pose나 illumination을 바꿀 수 있게 하기 위해, 이미지 내 shading과 cast shadows의 영향으로부터 어떠한 주어진 point에서의 순수 입사광의 비율을 분리하는 것이 중요하다. 이것은 matching procedure가 3D shape, pose, illumination conditions의 추정을 제공하기 때문에 성취될 수 있다.
Matching 후에, 각 정점 에 대한 예측 를 비교하고, 텍스쳐 에서의 변화를 계산한다. 이미지 내 가려진 부분은 모델에 의해 만들어진 예측에 의존하며, 다수의 이미지로부터 혼합될 수도 있다.

 

이후 morphable model을 build하기 위해 correspondence가 계산되어야 하고, 이를 위해 optical flow 알고리즘을 사용한다는 내용으로 정리할 수 있겠다.

아직 많은 3D face reconstruction 논문을 자세히 보진 못 했지만, survey 도중 읽었던 여러 paper에서 3DMM이 거의 빠지지 않고 언급될 만큼 기초가 되는 논문이다. 논문의 결과 예시를 보면 굉장히 잘 되는 듯 보이지만 examples의 영향을 많이 받아 그렇게 잘 되지는 않는다고 한다. 그래도 3D face reconstruction을 한다면 꼭 읽어봐야 할 논문임에는 틀림없다.


댓글