본문 바로가기
A·I

[3D face] Generating 3D faces using Convolutional Mesh Autoencoders (COMA) 리뷰 1편

by 방구석 몽상가 2020. 3. 8.
coma_1

Graph CNN을 이용한 3D face generation 논문인 Generating 3D faces using Convolutional Mesh Autoencoders에 대한 리뷰이다. 여기서 제안된 모델인 Convolutional Mesh Autoencoders를 줄여 COMA라고 부른다.

Abstract

이전의 전통적인 모델들은 선형 부분공간을 사용한 얼굴의 latent representation 혹은 고차원 텐서(higher-order tensor) 일반화를 학습했다. 그러나 이 선형성(linearity) 때문에, 극적인 변형(extreme deformations)과 비선형 expression을 캐치할 수 없다. 이것을 해결하기 위해, mesh 표면에서 spectral convolutions를 사용하여 얼굴의 비선형 표현을 학습하는 융통성 있는(versatile) 모델을 제안한다. 또한 세부적으로는 shape와 expression 내 다양한 크기의 비선형 variations를 캐치하는 계층적 mesh representation이 가능하도록 mesh sampling operations을 제안한다.

학습을 위한 데이터셋은 여기에서 다운받을 수 있다. 간단한 회원가입 후에 받을 수 있고 용량이 꽤나 크므로 충분한 저장공간을 확보하는 것을 추천한다.

Mesh operators

원래는 graph CNN이나 이전 논문을 차례로 보면서 필요한 기초 지식을 천천히 쌓아나가는 것이 좋겠지만 논문에서 필요 지식에 대한 설명을 상세히 해주고 있기 때문에 차근차근 찾아가면서 공부를 해보았다. 이를 바탕으로 논문을 보는데 필요한 기본 개념들과 함께 mesh에 대한 연산을 설명하겠다.

Graph Laplacian

3D facial mesh은 그래프 구조인 정점과 간선의 집합 로 나타낼 수 있다. 여기서 는 3D 유클리디안 공간에 있는 n개의 정점들이며, 는 sparse adjacency 행렬이다. 정점 와 정점 가 간선으로 서로 연결되어있으면 이고 그렇지 않으면 0을 갖는다.

(unweighted) Laplacian 행렬은 다음과 같이 정의된다.

여기서 는 대각 행렬로, 각 대각항은 각 정점의 차수 로 정의된다. 또한, 둘 다 대칭 행렬이므로 Laplacian 행렬은 대칭 속성을 지닌다. 해당 행렬을 구하는 이유는 그래프를 하나의 행렬로 표현하기 위함이다. Laplacian을 깊이 알고 싶다면 Chung, Spectral graph theory의 chapter 1을 참고하자.

Diagonalization

대각화에 대해서는 대각화와 스펙트럼 정리 글에 따로 정리해두었다. Laplacian은 로 대각화된다. 여기서 이 대칭 행렬이므로 의 orthogonal eigenvectors를 column으로 하는 eigenvector 행렬이다. 는 대각항이 real, non-negative eigenvalue인 대각 행렬이다.

Graph Fourier transform

먼저, Laplacian 행렬 의 eigenvalues를 , eigenvectors를 라 정의한다.
그래프 퓨리에 변환은 우리가 흔히 알고 있던 퓨리에 변환과는 조금 다른 것이다. 함수 의 그래프 퓨리에 변환은 graph Laplacian의 eigenfunctions에 관한 의 확장으로 정의된다. 수식으로 정의하면 다음과 같다.

그래프 퓨리에 변환은 Laplacian의 spectrum 의 values만으로 정의된다는 점에 주목하자. 여기서 으로 표기된다. 로 생각한다면, 해당 정의는 다음과 같이 된다.

또한, 역 퓨리에 변환(inverse Fourier transform)은 로 정의된다. 여기서 는 orthogonal eigenvector다.

다시 본문으로 돌아오면, mesh vertices 의 graph Fourier transform은 로 정의되고, inverse Fourier transform은 로 정의된다. 는 위에서 언급한 행렬이다.

<참고>
The Laplacian spectrum of a graph
Norbert Wiener Center 강의노트

Fast spectral convolutions

convolution operator 은 Fourier 공간에서 아다마르 곱(Hadamard product)으로 정의될 수 있다.

여기서 는 eigenvector 행렬임을 기억하자. 따라서 는 sparse하지 않으므로 정점 수가 크면 계산 비용이 클 수 밖에 없다. 해당 문제는 recursive Chebyshev polynomial을 사용하여 kernel 로 mesh filtering을 공식화하여 해결된다.
여기서 잠깐 Chebyshev polynomial(체비쇼프 다항식)에 대해 간단히 설명하고 넘어가겠다. 먼저 제1종(the first kind)과 제2종(the second kind) 체비쇼프 다항식이 있는데 제1종은 cos을 이용하는 것이고 제2종은 sin을 이용하는 것이다. 제1종 체비쇼프 다항식만 살펴보자.

음이 아닌 정수 n에 대해 를 만족하는 n차 정수 계수 다항식 이 존재한다.

[증명]
수학적 귀납법을 사용, 먼저 n=0, n=1일 때 자명학 존재,
일 때, 삼각함수 덧셈 정리에 의해
따라서,

Recursive Chebyshev polynomials pseudocode

[성질]

일 때, 의 최고차항 계수는

Filter 는 다음 식과 같은 K차 체비쇼프 다항식으로 매개변수화된다.

여기서 은 scaled Laplacian, 는 체비쇼프 계수 vector, 은 k차 체비쇼프 다항식이다. 이를 이용한 spectral convolution은 다음과 같이 정의된다.

여기서 번째 feature, input 개의 feature를 가진다. Input face mesh는 3D vertex 위치에 대응하는 개 features를 가지고 있다. 각 convolutional layer는 훈련가능한 파라미터로, 체비쇼프 계수 vectors와 를 가지고 있다.

다음 글에 Mesh sampling과 network 아키텍쳐를 설명하겠다.

 

댓글