Deep Learning study

Face aging with conditional generative adversarial networks(cGAN) 본문

AI/papers

Face aging with conditional generative adversarial networks(cGAN)

HwaniL.choi 2019. 4. 20. 09:31
반응형

인공지능 수업의 프로젝트로.. Face aging 모델을 만들어 보려 한다.


논문이 사실 특별한 내용이 있는것은 아니고 생각보다 간단하다.


일단 본론으로 들어가기 전에 conditional GAN부터 조금 알아보자.


Conditional Generative Adversarial Nets


원래 GAN은 임의의 노이즈를 input으로 주면 generator도 역시 임의의 값을 생성해 낸다. 즉, 어떠한 output을 가져올지는 모른다는 말이다.


그래서 이 논문에서 하고자 하는것은, 노이즈와 함께 임의의 condition을 같이 주어 output을 원하는 방향으로 뽑아내보자 하는것이다. 



방법은 간단하다. input 에 condition에 해당하는 y를 concat하여 Discriminator 와 Generator에 같이 넣어서 학습시키면 된다. 


이러한 condition 조건하에 수행되므로, y일때의 x를 생성하는 것이 된다. 

따라서 object funtion 도 위의 식에서 아래의 식으로 변형된다. 즉, 조건부확률이 되는 것 이다. condition y일때의 값이 되므로.



그래서 할 수 있는 결과물의 예시로는, 원하는 숫자를 MNIST데이터로부터 생성해 낼 수 있도록 할 수 있다.

z vector와 함께 생성해내고 싶은 숫자를 y값으로 주면 될 것이다.



Face Aging with Conditional GAN


먼저 이 논문에서 주로 하고자 하는것은 , conditional GAN을 이용하여 사람의 늙은 모습을 나이대별로 추정하는 것과 그 원본 이미지의 얼굴의 정체성(identity)를 잃어버리지 않게 하는것이다.


이전의 GAN을 베이스로한 face modification은 원래 사람의 정체성을 잘 잃어버린다는 문제가 있었다. 그래서 여기서 중점적으로 할것은 identity-preserving 이라고 한다.


1. Age-cGAN으로각 나이대별로 맞는 이미지들을 생성해 낸다.


2. latent vector 최적화를 제안한다. 이것은 Age-cGAN이 input 이미지의 identitiy-preserving을 수행 할 수 있게 한다.


그렇다면 여기서 주는 condition y는 나이가 될것이다. 이 부분은 cGAN과 같은것 같고, 여기서 중요한것은 Initial Latent Vector Approximation인것 같다.




위의 그림을 보면 input 이미지를 그냥 encoding 한 vector z0를 condition y0(나이) 와 함께 concat해서 reconstruction을 했을때는 원본 이미지의 얼굴과는 다소 차이가있는 이미지를 생성해 냈다. 하지만 Identity Preserving Optimization을 거친 z*와 y0를 concat해서 reconstruction을 수행하면 원본과 거의 유사한 얼굴을 재생성해 냄을 볼 수 있다.

 


 

Latent Vector Optimization


 

처음에는 ground truth와 reconstruct된 image와의 차이를 pixel wise로 Eucliean distance를 이용해 구해서 최적화 하였지만 , 이 방식대로 하면 두가지의 문제점이 생겼다.

 

1. Blurriness현상이 증가한다.

 

2. 사진속 사람의 특징이 아닌 다른 디테일(배경이나, 악세사리 같은 것)에 더 집중해버리는 현상이 생긴다.

 

 

그래서 이 논문에서는 Face Recognition neural network(FR)을 이용해, original image와 reconstructed image의 identity를 비교함으로써 성능을 향상시켰다.

ground truth image와 reconstruct된 image의 FR score의 차이를 distance로 정의하고 그것을 minimizing 하는 방식으로 최적화 시킨다. 

 


크게 새로운 내용은 없고, identity를 유지하기 위해서 latent vecgtor 를 optimization했다는 것 이 핵심이므로 이 부분에 대해서 중점적으로 보면 될 것 같다.


아래는 실험 결과들이다.




 

Reference

[1]  Conditional Generative Adversarial Nets(Mehdi Mirza, Simon Osindero)

[2] Face Aging With Conditional Generative Adversarial Networks (Grigory Antipov, Moez Baccouche, Jean-Luc Dugelay)


반응형
Comments