먼저 해당 포스팅은 CVPR 2021 논문 GAN Prior Network for Blind Face Restoration in the Wild를 참조하여 작성하였음을 밝힙니다.
1. 논문의 개요
매우 낮은 해상도를 가지는 얼굴 이미지에 대한 blind face restoration(BFR)는 해결하기 어려운 문제입니다. 그러한 얼굴 이미지는 복잡한 degradation 문제를 포함하므로 deep neural network(DNN)만을 통하여 학습시키는 것은 만족할 만한 결과를 도출하지 못하였습니다. 만약 GAN을 이용한다면 DNN보다는 더 좋은 결과를 얻어낼 수 있지만, 복원 중 이미지의 일부분에서 과도하게 smoothing이 발생하는 경향이 존재합니다. 이러한 문제를 해결하기 위하여 본 논문에서는 학습된 GAN을 U-Net의 내부에 decoder로서 내장하여 fine-tune 하는 방법을 제안합니다.
2. 논문의 기여
본 논문에서는 GPEN을 통해 기여한 바로서 세 가지를 주장합니다. 첫 번째는 현실 세계의 BFR 문제를 효과적으로 해결하기 위한 방법으로 DNN에 GAN을 내장하고, fine-tune 하는 방법을 제안한 것입니다. 두 번째로는 U 형태의 DNN에 쉽게 내장될 수 있는 GAN block을 설계한 것입니다. 마지막으로 latent code와 nois를 이용하여 global structure와 local face detail, background를 효과적으로 재건한 것입니다.
3. 관련 연구
1. Face Image Restoration
2. Generative Adversarial Network (GAN)
3. GAN Prior for Image Generation
3. Motivation and Framework
$x$ 를 LQ 얼굴 이미지 집합으로, $y$ 는 HQ 얼굴 이미지의 집합이라 하겠습니다. BFR의 목적은 LQ 얼굴 이미지가 주어졌을 때 이에 대응하는 HQ 얼굴 이미지를 찾는 것 입니다. 대부분의 DNN 기반의 방법론에서는 이를 수행하기 위하여 mapping function을 통해 학습을 진행합니다. 하지만 위 문제는 여러 개의 출력(one-to-many)을 가지는 역방향의 문제이므로 LQ에 대응하는 다양한 얼굴 이미지( $y_1$ , $y_2$ , $y_3$ , ... )가 존재할 것입니다. 이에 따라 기존의 방법에서는 보통 픽셀 단위의 loss function을 통하여 매핑을 결정했습니다. 이에 따라 그 결과는 그림. 1과 같이 $y$ 집합 내부의 이미지들의 평균으로 회귀하는 경향을 보이게 됩니다. 이때 이미지는 과도하게 smoothing되며 얼굴의 디테일한 정보들이 사라지게 되는 것을 볼 수 있습니다. 이러한 문제에 대응한 cGAN과 같은 이전의 방법론과는 다르게 본 논문에서는 GAN prior network를 학습 시키고, 이를 DNN 내부에 디코더로서 내장하였고 이를 GPEN이라 명명하였습니다. 그림. 1에서 볼 수 있듯이 GPEN의 첫 번째 부분은 CNN 인코더이며, 이 부분은 $x$ 이미지를 GAN의 latent code $z$로 매핑하는 역할을 수행합니다. GAN prior network는 latent code $z$ 를 받아 $y$ 를 생성하게 됩니다.
4. Network Architecture
GPEN에서는 Figure.3과 같이 입력된 얼굴 이미지에 대하여 CNN을 수행하고, 이를 통해 얻어낸 high-level feature map은 FC layer를 통해 latent code $z$로 매핑됩니다. 다음으로 매핑 네트워크를 통하여 $z$ 는 intermediate code $w$ (less entangled space $W$ )로 매핑됩니다. 그 결과에 해당하는 $w$는 각각의 GAN block에 broadcasting 되는 것을 그림. 2에서 볼 수 있습니다. 매핑 네트워크를 이용하는 부분은 StyleGAN과 동일한 방식이라고 할 수 있습니다. 이러한 방식으로 high-level feature map을 이용함으로써 GPEN에서는 얼굴 이미지의 global structure를 효과적으로 재건할 수 있게 됩니다. 또한 CNN의 convolution 연산 과정에서 추출되는 low-level feature map은 latent code와 마찬가지로 GAN block에 broadcasting 되며, 얼굴의 디테일과 배경의 정보가 담긴 noise로 사용됩니다.
5. Loss Functions
6. Training strategy