2021. 2. 19. 16:38ㆍDeep Learning/Paper Review

Single Image Super-Resolution(SISR)은 저해상도(Low Resolution, LR)의 이미지를 고해상도(High Resolution, HR)로 복원하는 컴퓨터 비전 분야의 유서 깊은 문제입니다. 이 분야는 2014년에 혜성처럼 등장한 SRCNN1을 통해 딥 러닝과 CNN이 도입되기 시작하였고, 2016년 SRGAN2의 등장 이후로 GAN(Generative Adversarial Networks) 역시 SR 분야에 적극적으로 활용되기 시작했습니다. 여기서 GAN을 활용한 모델들은 GAN의 뛰어난 이미지 생성 능력을 기반으로 기존 모델보다 더 실제 사진과 같아 보이는 결과를 낼 수 있었고, 곧 SR 분야의 큰 비중을 차지하게 됩니다.
SR 모델들은 기본적으로 LR 이미지를 입력 받고, 이를 복원한 결과물을 원본 HR 이미지와 비슷하게 만들 수 있도록 하는 것을 목표로 합니다. 이 때 결과물과 원본이 얼마나 유사한 지, 즉 consistency를 평가의 기준으로 삼게 됩니다. 이 때 가장 널리 쓰이는 기준이 바로 거리 기반 오차(distance-based error)입니다. SR에서는 일반적으로 모든 픽셀값의 L2 거리의 평균인 MSE(Mean Squared Error)를 손실 함수로 사용하게 되므로, 거리 기반 오차는 MSE 기반 오차라고 불리기도 합니다. 또한 SR의 성능 지표로 많이 쓰이는 PSNR(Peak Signal-to-Noise Ratio)이 MSE를 통해 계산되므로 PSNR 기반 오차라는 말도 쓰입니다.
그러나 이러한 거리 기반 오차에는 명백한 한계가 존재한다는 것이 알려져 있습니다. 바로 이미지의 높은 주파수 영역의 정보를 제대로 복원하지 못한다는 점입니다. 다시 말해서 결과물이 마치 Low pass filter를 씌운 것처럼 흐릿하게 나온다는 것인데, 이는 MSE가 말 그대로 '평균' 제곱 오차이기 때문에 생기는 문제라고 해석할 수 있습니다. 어차피 평균으로 퉁쳐서 평가하니까 픽셀 하나하나의 오차를 신경쓰지 않고 대충 뭉개서 넘긴다는 느낌이지요.
2020년 arXiv에 공개된 논문인 Perceptual Image Super-Resolution with Progressive Adversarial Network는 거리 기반의 오차를 사용하는 기존의 SR 모델들이 이러한 문제점을 통해 제 성능을 발휘하지 못했다고 주장하면서, 이를 완전히 배제한 새로운 방법을 소개했습니다. 그렇다면 결과물이 원본 이미지와 얼마나 비슷한지를 측정하지 않으면서 SR 모델을 학습시키는 것이 가능하다는 것인데, 과연 어떻게 가능하다는 걸까요? 이번 포스트를 통해 자세히 살펴보도록 하겠습니다.
Introduction
이 논문의 저자들은 거리 기반 오차가 가지는 한계점을 차원의 저주(Curse of Dimensionality)의 관점에서 분석했습니다. 차원의 저주는 데이터의 차원이 높아질수록 전체 공간에서 데이터의 밀도가 낮아짐과 동시에 모든 데이터 간의 거리가 비슷해지기 때문에 거리 기반의 학습의 안정성이 떨어지게 된다는 이론으로, k-NN과 같은 문제에서 특히 더 치명적이라고 알려져 있는 문제입니다.
이미지는 많게는 수백만 개의 픽셀을 가지는 아주 거대한 데이터입니다. 이는 수백만의 차원을 가지는 공간 상에 놓인 하나의 점으로 표현이 가능할 것입니다. 이 공간에서 임의의 두 점을 샘플링하여 계산한 L2 거리(Euclidean distance)를 그 중에서 가장 큰 값으로 나눠서 0과 1 사이로 표준화시킨 normalized distance를 생각해봅시다. 그에 관한 확률밀도함수를 여러 차원에 대해서 구해보자면 아래의 그림처럼 정리가 됩니다.

위의 확률밀도함수들을 통해 차원이 높아질수록 normalized distance의 표준편차(SD; Standard Deviation)가 0으로 수렴하면서 그 밀도가 일정한 값으로 집중되는 것을 확인할 수 있습니다. 즉, 우리가 다루는 수백만 차원의 공간의 경우에는 이러한 차원의 저주에 의해 사실상 어떤 데이터 쌍을 뽑더라도 거리가 같을 거라고 봐도 무방할 것입니다. 이렇게 되면 점 사이의 거리라는 것은 그 의미를 잃게 될 것이고, 이를 기반으로 하는 학습 역시 어려워지게 될 것입니다.
이런 이유로 거리 기반의 모델이 내는 결과물은 질감이나 테두리와 같이 인접한 픽셀 사이의 값이 급변하는 부분에서는 복원력이 떨어진다는 한계를 가지고 있습니다. 즉, 실제 사진과 같은 디테일을 살릴 수 없다는 것입니다. 반면에 GAN 기반의 모델은 이러한 문제점을 어느 정도 극복할 수 있었습니다. 이는 GAN을 이용해 실제 사진이 가지고 있는 분포를 모방하여 디테일한 부분을 살리는 데 더 초점을 두기 때문에 가능한 것입니다.
그렇다고 GAN loss만 사용해서 학습하게 된다면 결과물과 원본 이미지 사이의 consistency를 유지할 수단이 없기 때문에 이미지를 '복원'시킨다는 목적을 잃게 됩니다. 이러한 이유에서 기존의 GAN 기반의 모델들은 주로 MSE와 GAN loss의 weighted sum을 손실 함수로 사용합니다. 덕분에 높은 주파수 영역의 복원에 취약하다는 약점을 어느 정도 계속해서 안고 가게 되는 것입니다.
이 논문은 파격적이게도 MSE 없이 GAN loss만을 가지고 학습하는 새로운 방법을 제시합니다. 이를 위해 저자들은 PGGAN3에서 제시되었던 progressive learning과 StyleGAN4에서 제시되었던 random noise injection을 모두 채용하여, 역사에 이름을 남긴 두 생성 모델의 막강한 능력을 빌리기로 했습니다. 그들은 자신들이 개발한 PAN(Progressive Adversarial Network)이 거리 기반 오차를 쓰지 않으면서 8배 이상의 높은 scale factor를 다룰 수 있는 최초의 domain-specific SR 모델이라고 주장하며, 이 논문이 다음과 같은 contribution을 가지고 있다고 설명했습니다.
-
Progressive learning을 SR에 활용한 새로운 프레임워크를 제시함.
-
기존의 GAN 기반의 모델과 달리 순수하게 GAN loss만을 사용함으로써 차원의 저주로 인해 결과물이 흐려지거나 체커보드와 같은 패턴이 남는 현상을 제거할 수 있음.
-
이와 같은 distance-free framework는 SR 뿐만 아니라 denoising이나 deblurring에도 효과가 있음.
Method

PAN은 앞서 설명드렸다시피 PGGAN과 StyleGAN을 섞은 듯한 프레임워크를 가지고 있습니다. 이는 크게 encoder, decoder, 그리고 discriminator라는 세 가지 부분으로 나뉠 수 있습니다.
우선 PAN에서는 encoder와 decoder가 합쳐져서 generator와 같은 역할을 합니다. 이는 마치 U-Net처럼 encoder의 각 layer에서 추출되는 feature map들이 skip connection을 통해 decoder의 feature map들과 channel 축으로 결합되는 방식을 사용합니다. 저자들은 이 skip connection이 학습 과정에서 거리 기반의 오차를 사용하지 않아도 consistency를 보장할 수 있는 수단이라고 소개합니다.
또한 random noise $\epsilon$에 대해 각 layer의 $i$번째 channel feature map $y_i$에 대해 다음과 같은 noise injection을 진행합니다.
$$y_i \leftarrow y_i+w_i\epsilon$$
이 때, $w_i$는 학습 가능한 parameter입니다. 즉, StyleGAN에서 쓰이던 random noise injection을 도입한 것입니다. 기존의 거리 기반 모델들은 이처럼 noise를 주입하면 loss 값이 급변하게 되어 학습이 불안정해지는 문제가 있었지만, 거리 기반 오차를 완전히 제거한 PAN에서는 큰 문제가 없게 됩니다. 저자들은 이를 통해 결과물의 퀄리티를 크게 끌어올릴 수 있었습니다.

또한 안정적으로 고해상도의 이미지를 생성하는 능력을 부여하기 위해 progressive learning이 채용됐습니다. PGGAN의 핵심 아이디어로 제시된 이 방법은 $4 \times 4$라는 작은 해상도부터 점점 해상도를 늘려가며 generator와 discriminator를 점진적으로 학습시키는 방식입니다. 이미지의 전체적인 모습을 그리는 방법을 먼저 학습한 뒤 점점 더 세세한 부분에 대해 학습을 진행하는 느낌인데, 2017년 당시 엄청난 breakthrough를 일으켰던 획기적인 방식입니다.

이 때 해상도를 늘리는 과정에서 generator와 discriminator에 convolutional layer와 함께 각각 upscaling과 downscaling block이 추가되어야 합니다. 그런데 학습이 전혀 되지 않은 layer를 추가하여 다음 해상도에 대한 학습을 바로 시작한다면 이전 해상도에서 기껏 잘 학습시켜놨던 layer들까지 이상한 방향으로 영향을 받을 수 있습니다. 따라서 위 그림의 (b)와 같은 구조에서 $\alpha$의 값을 학습 과정동안 $0$에서 $1$까지 선형적으로 늘림으로써 새로 추가되는 layer의 영향력을 천천히 늘리는 방식을 사용합니다. 이를 통해 PAN의 generator와 discriminator는 안정적으로 고해상도의 이미지를 다룰 수 있도록 학습되는 것입니다.

네트워크를 구성하는 각 블록은 각각 위의 그림과 같은 구성으로 이루어져 있습니다. 우선 (a)는 encoder와 discriminator를, (b)는 decoder를 구성하는 블록입니다. 각각 stride가 2인 convolution과 transposed convolution을 사용해 해상도를 줄이거나 늘리는 역할을 합니다. (c)와 (d)는 각각 generator와 discriminator의 progressive learning이 어떤 식으로 구현되었는 지를 보여줍니다.
PAN의 generator와 discriminator는 원본 HR 이미지 $x$와 그를 downscaling한 뒤 generator에 입력하여 얻어낸 결과물 $\hat{x}$에 대해 각각 다음과 같은 손실 함수를 최소화하는 방향으로 학습됩니다. 여기에는 WGAN-GP5에서 소개된 gradient penalty가 regularization term으로 적용됩니다.
$$L_g = -\mathrm{E}_{\hat{x} \sim p_\hat{x}}\left[\log\left(D(\hat{x})\right)\right]$$
$$L_d = -\mathrm{E}_{x \sim p_x}\left[\log\left(D(x)\right)\right]-\mathrm{E}_{\hat{x} \sim p_\hat{x}}\left[\log\left(1-D(\hat{x})\right)\right] + \gamma\mathrm{E}_{x \sim p_x}\left[\lVert\nabla_xD(x)\rVert_2^2\right]$$
실제로 $L_g$와 $L_d$ 모두 거리 기반의 오차를 전혀 포함하지 않은 형태인 걸 확인할 수 있습니다.
이처럼 전체적인 프레임워크는 PGGAN과 StyleGAN을 섞은 듯한 느낌인데, 한 가지 차이점이 있다면 입력으로 랜덤하게 샘플링된 latent code가 아닌 LR 이미지를 받는다는 것입니다. 이러한 차이는 맨 앞단의 encoder network의 유무에서 비롯됩니다. PAN의 encoder가 입력 LR 이미지로부터 latent code와 같은 형태의 feature vector를 추출하고, decoder가 이를 입력으로 받아 PGGAN과 StyleGAN에서의 generator의 역할을 한다고 생각하면 될 것 같습니다.
Experiments
실험에 쓰인 모델은 $\times8$의 scale factor를 가지도록 설계되었습니다. 즉, $128\times128$의 이미지를 입력 받으면 $1024\times1024$의 이미지를 출력하게 됩니다. 학습은 $8\times8$부터 $1024\times1024$까지의 해상도를 progressive learning을 통해 순차적으로 진행되었으며, 모든 학습은 end-to-end 방식으로 진행되었다고 합니다. 학습은 FFHQ 데이터셋을 사용하여 얼굴에 특화되도록 진행되었고, 4개의 Tesla P40 GPU들을 사용하여 총 5일이라는 시간이 걸렸다고 합니다.

정량적인 벤치마킹에는 ESRGAN6, CARN7, 그리고 RCAN8이라는 모델이 사용되었습니다. 이 중에서 CARN과 RCAN은 GAN을 사용하지 않는 모델이며, ESRGAN은 GAN을 사용하는 모델입니다. 일반적으로 PSNR과 SSIM은 GAN을 사용하지 않는 쪽이 월등히 높지만, 다른 지표에서는 반대로 GAN을 사용하는 쪽이 좋게 나옵니다. PAN은 주된 비교 대상인 ESRGAN에 비해 NIQE가 뒤처지는 것을 제외하면 모든 면에서 좋은 성능을 보였습니다.

이제 각 모델별로 고해상도의 얼굴 이미지를 어떻게 복원하는지를 살펴볼 차례입니다. 확실히 MSE 기반의 방법인 CARN과 RCAN의 경우에는 눈썹이나 머리털과 같은 디테일한 부분이 제대로 살아나지 않고 뭉개져서 복원되는 모습을 확인할 수 있습니다. 반대로 ESRGAN과 PAN은 이러한 고주파 성분을 상당히 잘 살리는 모습을 확인할 수 있으며, 특히 PAN 쪽이 HR 이미지와 비교했을 때 더 그럴싸한 결과를 낸다는 것을 알 수 있습니다.
다른 모델과의 추가적인 비교 결과는 저자들의 웹페이지에서 더 큰 해상도로 확인할 수 있습니다.

거리 기반의 모델의 SOTA 중 하나인 RCAN과 일대일로 비교를 하자면 다음과 같습니다. 결과물만 봐도 고주파 영역에 해당하는 테두리나 털, 주름과 같은 디테일한 부분에서 RCAN은 흐릿한 결과물을 보이는 반면 PAN의 경우 원본 이미지와의 차이를 쉽게 찾기 힘들 정도로 좋은 결과를 보여줍니다. 해상도별로 FID도 비교하였는데 GAN을 쓰는 모델과 쓰지 않는 모델 간의 비교이기 때문에 당연히 비교 자체가 불가능할 정도로 큰 차이를 보입니다.

같은 모델에 대해 L1, L2, 그리고 GAN loss를 적용해서 학습했을 때의 결과들입니다. L1, L2 loss를 적용한 (c)와 (d)의 경우 상당히 흐릿한 결과물을 보여주지만, GAN loss가 적용된 (e)의 경우 원본 이미지 (b)와 디테일한 부분에서 큰 차이를 못 느낄 정도입니다. 대신, 원본 이미지와 픽셀값을 직접적으로 비교하지 않아서인지 배경의 색이 약간 밝아졌다는 사소한 차이점은 있습니다.

GAN loss를 쓴다고 해도 progressive learning을 적용하지 않는다면 상대적으로 나쁜 성능을 보이게 됩니다. Progressive learning이 적용되지 않은 결과물인 (c)를 살펴보면 적용된 모델인 (d)에 비해 눈 부분의 복원력이 많이 떨어진다는 걸 확인할 수 있습니다.

다음은 StyleGAN에서 큰 비중을 차지했던 random noise injection의 유무에 따른 결과물입니다. 이 과정이 포함된 모델이 낸 결과물인 (d)는 머리카락 한 올 한 올이 생생하게 살아있는 반면, 이를 제거한 결과물인 (c)의 경우 상대적으로 약한 복원력을 보여주는 것을 확인할 수 있었습니다.

그리고 U-Net과 같은 구조를 가지고 있던 encoder-decoder 사이의 skip connection의 영향력을 보기 위한 실험도 진행되었습니다. 위 그림의 결과물들은 두 번째 열부터 오른쪽으로 갈수록 더 높은 해상도에 해당하는 skip connection을 끊은 결과물입니다. 확실히 skip connection이 없다면 그저 고해상도의 얼굴 이미지를 만들어낼 수 있을 뿐 원본 이미지와 비슷하게 '복원'하는 것은 불가능하다는 것을 보여줍니다. 또한 낮은 해상도의 feature map일수록 사진 속 인물의 포즈, 머리 스타일 등 커다란 정보들이 담겨 있고 높은 해상도의 feature map일수록 주름, 표정 등의 디테일한 정보들이 담긴다는 사실을 다시 한 번 확인할 수 있습니다.

지금까지 살펴본 실험 결과를 정량적으로 살펴본다면 위와 같은 표로 정리됩니다. 확실히 GAN loss와 progressive learning, random noise injection 모두를 사용하는 모델(PAN)이 모든 면에서 좋은 성능을 낸다는 걸 확인할 수 있습니다.

PAN은 사람 얼굴 뿐만 아니라 다른 데이터셋에 대해서도 좋은 성능을 보입니다. LSUN cat 데이터셋을 활용하여 학습한 뒤 다른 SOTA 모델들과 비교한 결과를 보면 확실히 좋은 성능을 낸다는 점을 확인할 수 있습니다. 다만 이건 PAN이 domain-specific한 방법이기 때문에 당연히 결과가 잘 나올 수밖에 없는 거라 큰 의미가 있어보이지는 않습니다.

또한 PAN은 여러 가지 degradation이 포함된 LR 이미지에 대해서도 좋은 결과를 낸다는 것을 확인할 수 있습니다. 다른 모델들이 bicubic downscaling에 대해서만 효과가 있었다는 점을 생각하면 상당한 robustness를 가지고 있음을 알 수 있습니다.
Conclusion
PAN은 기존의 GAN 기반의 이미지 생성 모델의 아이디어를 채용하여 좋은 성능을 보여주지만, 분명한 한계점이 존재합니다. 우선 PAN은 학습에 쓰인 데이터셋의 영역에서만 활용될 수 있는 domain-specific 모델입니다. 본 논문에서는 FFHQ 데이터셋을 사용하여 사람 얼굴에만 특화된 모델로 학습되었는데, 이는 사람 얼굴이 아닌 이미지에는 제대로 된 성능을 낼 수 없다는 것을 의미합니다.
또한 PAN은 입력할 수 있는 이미지의 크기가 철저하게 제한되어 있습니다. 본 논문에서 구현된 대로라면 encoder의 존재 때문에 오직 $2^n\times2^n$의 크기를 가진 이미지만이 입력될 수 있는데, 이는 SR 모델로서 엄청난 제약이라고 할 수 있습니다. 아마 domain-specific 모델로 개발된 것도 이러한 제약 때문인 것으로 추측됩니다. 추가적으로 이미지의 해상도에 상관없이 일정한 크기의 feature를 추출할 수 있는 방법을 잘 활용한다면 이러한 제약을 없앨 수 있을 거라고 생각합니다.
이들의 아이디어는 복원된 결과물의 고주파 성분을 제대로 살리기 위해 SR 모델에 GAN loss만 사용하는 것에서 시작했습니다. 그러나 거리 기반 오차를 사용하지 않는다면 결과물과 원본 사이의 consistency가 무너지게 되므로 이를 지키기 위해 U-Net과 유사하게 skip connection으로 연결된 encoder-decoder 구조를 채용하였습니다. 이를 통해 GAN loss만 사용한 학습이 가능해져 순수 GAN 기반인 PGGAN과 StyleGAN에서 progressive learning 및 random noise injection을 가져다 쓸 수 있게 되었고, 더 훌륭한 성능을 낼 수 있었습니다. 이런 방식으로 GAN 기반의 생성 모델의 강점을 빌려 SR을 하는 방법도 연구할 가치가 있다고 생각됩니다.
- Dong, Chao, et al. "Image super-resolution using deep convolutional networks." IEEE transactions on pattern analysis and machine intelligence 38.2 (2015): 295-307. [본문으로]
- Ledig, Christian, et al. "Photo-realistic single image super-resolution using a generative adversarial network." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017. [본문으로]
- Karras, Tero, et al. "Progressive growing of gans for improved quality, stability, and variation." arXiv preprint arXiv:1710.10196 (2017). [본문으로]
- Karras, Tero, Samuli Laine, and Timo Aila. "A style-based generator architecture for generative adversarial networks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019. [본문으로]
- Gulrajani, Ishaan, et al. "Improved training of wasserstein gans." arXiv preprint arXiv:1704.00028 (2017). [본문으로]
- Wang, Xintao, et al. "Esrgan: Enhanced super-resolution generative adversarial networks." Proceedings of the European Conference on Computer Vision (ECCV) Workshops. 2018. [본문으로]
- Ahn, Namhyuk, Byungkon Kang, and Kyung-Ah Sohn. "Fast, accurate, and lightweight super-resolution with cascading residual network." Proceedings of the European Conference on Computer Vision (ECCV). 2018. [본문으로]
- Zhang, Yulun, et al. "Image super-resolution using very deep residual channel attention networks." Proceedings of the European conference on computer vision (ECCV). 2018. [본문으로]
'Deep Learning > Paper Review' 카테고리의 다른 글
| Alias-Free Generative Adversarial Networks (0) | 2021.09.07 |
|---|---|
| Image Processing Using Multi-Code GAN Prior (0) | 2020.12.27 |
| PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models (0) | 2020.12.21 |