WESPE (Weakly Supervised Photo Enhancer for Digital Cameras)

여행 가실 때 카메라를 들고가신 분들은 아시겠지만, 이게 여간 거추장스러운게 아닙니다. 저도 여행을 좋아해서 미러리스 카메라를 하나 가지고 있습니다. DSLR도 아닌 카메라가 보조가방에 추가되면 상당히 불편합니다. 그렇다고 휴대폰 카메라로 촬영하자니 아무리 카메라 기능이 좋아졌다 해도 사진기보다 좋지 않은게 눈에 보여서 아쉬울 때가 많습니다. 이 논문에서는 저가형 카메라로 찍은 사진을 쉽게 품질 향상시킬 수 있는 CNN과 GAN을 활용한 모델을 제시하고 있습니다.

Weakly Supervised Photo Enhancer for Digital Cameras

Introduction

단지 몇 년 지난 카메라로 찍은 사진만 봐도 확실히 화질이 좋지 않습니다. 특히 핸드폰 카메라 같은 경우는 더욱 차이가 심하게 느껴집니다. 그래서 이런 저품질의 사진들을 고화질로 향상시키기 위해서는 사람이 직접 작업을 해야합니다. 특정한 소프트웨어를 사용해야 한다던지, photo sharpening같은 기술을 적용한다던지… 이런 방법들은 전부 그래픽 전문가가 필요하며 이는 곧 돈이 많이 든다는 말과 같습니다. 심지어 그래픽 전문가를 고용한다고 해도 실시간으로 그리고 큰 규모의 데이터를 다룰 때는 불가능합니다. 그리고 똑같은 장면이 다양한 화질로 존재하는 데이터도 구하기가 쉽지 않습니다. 그래서 이 모델에서는 우리가 인터넷으로 구할 수 있는 흔한 고품질 이미지 또는 DSLR로 촬영한 양질의 데이터를 weak label로 두고 학습하는 방법을 취합니다. 실험 결과 vision에서 많이 쓰이는 public dataset가지고도 훌륭한 성능을 뽑아낸 것을 확인할 수 있습니다. 아래 그림에서 왼쪽이 저화질의 이미지이고 오른쪽이 모델을 통해 품질을 향상시킨 이미지입니다.

Imgur

이 논문의 컨트리뷰션은 다음과 같습니다.

Style transfer

가장 처음 나온 style transfer 연구는 회색 노이즈가 낀 이미지를 대상 이미지의 style을 그대로 베껴오는 모델을 만드는 것입니다. 아래 그림처럼 source 이미지와 synthesised 이미지가 거의 비슷한 것을 보실 수 있습니다.

Imgur

여기서 발전한게 bottom layer에서는 이미지의 스타일(style of image)를 가져온다는 것과 top layer일수록 semantic content를 나타낸다는 것을 이용한 neural style입니다. 제가 학부생 때 이런 모델이 있다는 것을 처음 보고 엄청 놀랐던 기억이 납니다. 컴퓨터가 화풍을 따라해서 그림을 그린다는 개념 자체가 너무 생소했습니다. 뉴럴스타일에 관한 내용은 기회가 된다면 따로 포스팅 하도록 하겠습니다.

여기에 generative adversarial networks(GAN)을 도입하여 고품질 사진의 스타일을 만들어내는 discriminator도 추가했습니다. 이 discriminator는 우리가 저품질 사진을 제너레이터를 통과시켜서 만든 변환된 이미지를 고품질의 사진과 색깔, 텍스쳐 등이 같게끔 만들어주는 역할을 합니다.

Image restoration

CSI 같은 영화들(?)을 보시면 CCTV 화면을 확대해서 저화질의 사진을 고화질로 바꿔서 용의자 얼굴을 추정하는 장면을 보신 적이 있으실겁니다. 사실 처음 봤을때만 해도 이게 말도 안되는 기술이라고 생각했지만 이게 딥러닝 기술이 발전하게 되면서 실제로 가능해집니다. image super-resolution같은 방법들을 사용하면 pixel-wise mean-squared-error를 사용하여 블러처리가 된 결과물을 얻을 수 있습니다. 마찬가지로 image colorization도 흑백 이미지를 자동으로 RGB색을 입혀주는 GAN 기반의 모델들도 많이 연구된 바 있습니다.

그리고 아래 그림처럼 image-to-image translation기법을 사용하면 GAN을 이용하여 원본 이미지가 뭉개지지 않으면서 스타일을 확 바꿀 수 있습니다. 하지만 논문에서는 이 방법들은 photo realism이 부족하고 blurry하면서 strong supervision이 필요하다고 주장하고 있습니다.

Imgur

Architecture

모델의 전체적인 구조는 위와 같습니다. 부분마다 차례로 설명드리도록 하겠습니다.

Imgur

먼저 원본 이미지 $x$가 제너레이터(generator) $G:X\rightarrow Y$ 를 통과합니다. 이렇게 나온 이미지가 화질이 향상된 이미지이고 이 이미지를 다시 generator $F:Y\rightarrow X$를 통과시켜 inverse mapping을 시도합니다. $F$를 통과한 이미지와 원본 이미지$x$를 둘 다 VGG-19 네트워크에 집어넣습니다. 결과물들의 feature map의 content consistency를 측정해서 손실 함수로 만듭니다.

다음은 discriminator입니다. ${D}_{c}$와 ${D}_{t}$는 각각 제너레이터를 거쳐 품질이 좋아진 이미지와 고품질 이미지의 color와 texture를 구분하는 discriminator입니다. 그리고 추가적인 TV(Total Variation) loss를 더해줍니다.

핵심을 정리해보자면 다음과 같습니다.

  • Generator가 입력 이미지의 내용물(content)를 유지할 수 있도록 content consistency loss를 지정
  • Color와 texture에 대한 loss를 따로 구해주는 두 개의 discriminator가 각각 loss 생성
  • TV loss는 결과물을 좀 더 부드럽게 해주는 역할

Content consistentcy loss

이 손실함수는 generator를 통과한 퀄리티가 향상된 이미지가 원본 저품질 이미지와의 유사성을 유지할 수 있게 만들어줍니다. 위에서도 설명했듯이 input image $x$가 통과하면 퀄리티가 향상된 $\tilde { y } $가 생성됩니다. 이를 다시 $F$로 보내서(구조는 $G$와 $F$모두 같습니다) inverse mapping을 시켜 저품질 원본 이미지와 비슷하게 만듭니다. 둘 모두 VGG-19 네트워크 안에 집어넣고 피쳐 맵 픽셀 하나하나를 ${l}_{2}$-norm으로 비교해줍니다. 밑에 식에서 프사이(${ \psi }_{ j }$)는 $j$번째 convolutional layer에서 가져온 feature map이고 ${C}_{j},{H}_{j},{W}_{j}$는 각각 feature map의 갯수, 높이, 너비입니다.
\[{ L }_{ content }=\frac { 1 }{ { C }_{ j }{ H }_{ j }{ W }_{ j } } ||{ \psi }_{ j }(x)-{ \psi }_{ j }(\tilde { x } )||\]

Adversarial color loss

이미지의 색 품질은 discriminator ${D}_{c}$를 사용하여 측정합니다. 여기서 중요한 것은 discriminator가 품질을 높인 이미지 $\tilde { y }$과 고품질 사진 $y$ 사이의 brightness, contrast, major color에 집중해야 한다는 것입니다. 텍스쳐와 내용을 건드려선 안되기 때문에 다음과 같은 트릭을 사용해줍니다.

\[{ y }_{ b }(i,j)=\sum _{ k,l }^{ }{ y(i+k,j+l)\cdot { G }_{ k,l } }\] \[{ G }_{ k,l }=Aexp(-\frac { (k-{ \mu }_{ k })^{ 2 } }{ 2{ \sigma }_{ x } } -\frac { (l-{ \mu }_{ k })^{ 2 } }{ 2{ \sigma }_{ x } } )\]

밑에 $G$함수가 가우시안 블러입니다. $\tilde {y}$의 픽셀마다 상하좌우로 가우시안 블러를 더해주어 discriminator가 사진의 텍스쳐와 내용물에 집중하지 않고 brightness, color 등만 비교할 수 있게 만들어줍니다. 손실함수를 아래와 같습니다.

\[{ L }_{ color }=-\sum _{ i }^{ }{ log{ D }_{ c }(G(x)_{ b }) }\]

Adversarial texture loss

위에 adversarial color loss에서 보셨듯이, discriminator가 텍스쳐에만 집중할 수 있도록 이번에는 RGB로 이루어진 기존 이미지들을 grayscale로 변환해서 집어넣습니다. 이렇게 되면 3-channel의 RGB에 구애받지 않고 텍스쳐에 집중할 수 있게됩니다.

\[{ L }_{ texture }=-\sum _{ i }^{ }{ log{ D }_{ t }(G(x)_{ g }) }\]

TV loss

제너레이터를 통과한 이미지 $\tilde {y}$의 spatial smoothness를 위해서 total variation loss를 더해줍니다. $C,H,W$는 각각 생성된 이미지의 차원입니다.

\[{ L }_{ tv }=\frac { 1 }{ CHW } ||{ \triangledown }_{ x }G(X)+{ \triangledown }_{ y }G(X)||\]

Total loss

로스의 총합은 위에서 설명한 모든 로스의 선형 결합으로 다음과 같습니다. 아래 가중치는 실험 결과를 통해 결정했다고 합니다.

\[{ L }_{ total }={ L }_{ content }+5\cdot { 10 }^{ -3 }({ L }_{ color }+{ L }_{ texture })+10{ L }_{ tv }\]

Experiments

실험 결과입니다. Point Signal-to-Noise Ratio (PSNR), SSIM, Entropy(pixel level), Bit per pixel(bpp)이 지표로 측정되었으며 실험 결과는 아래와 같습니다.

Weakly vs. fully supervised learning

특이할 점으로는 enhanced image $\tilde{y}$와 비교되는 $y$를 같은 사진으로 넣은 fully-supervised 모델과 $y$를 같은 사진이 아닌 단순 고품질 사진으로 넣은 weakly supervised 모델 비교입니다. 물론 fully-supervised 모델이 더 좋은 결과가 나온 것은 사실이지만 weakly supervised 모델 또한 상당히 좋은 결과를 나타낸 것을 확인할 수 있습니다. 특히 bpp 지표 같은 경우는 오히려 weakly supervised 모델이 더 좋게 나왔습니다. PSNR과 SSIM 지표 같은 경우는 pixel-wise 이미지 품질 평가 지표여서 같은 장면을 찍은 사진마다 다양한 품질의 사진이 있어야 합니다. DPED, DIV2K 데이터셋이 여러 종류의 품질 사진을 가지고 있어서 이런 평가가 가능했다고 합니다.

Training on unsupervised datasets

DPED 데이터셋이 대부분 오래된 사진들로 구성되어있어서 논문의 연구진들은 휴대폰(아이폰 6, HTC One M9, 화웨이 P9)을 가지고 직접(갈려나가는 대학원생들) 1500장의 사진을 찍어서 고품질 사진($y$)으로 활용하였습니다.

특히 Cityscapes 데이터셋의 경우 매우 저품질의 사진이 많았는데 모델을 통과시켜서 상당히 좋아진 모습을 확인할 수 있었다고 합니다.

Subjective qualitative evaluation

여기에 인간의 관점에서 평가하는 것도 중요하기에 38명의 사람들에게 2장의 사진을(저품질과 고품질로 향상된 사진) 띄워놓고 더 좋아보이는 사진을 고르게하는 실험을 실시했습니다. 아래 표에서 dataset이 의미하는것은 해당하는 휴대폰으로 모델을 학습시켰다는 뜻입니다. 대부분의 경우 모델로 품질을 향상시킨 이미지가 더 좋은 이미지라고 선택했다고 합니다.

Conclusion

이렇게 GAN과 CNN을 조합하여 이미지의 품질을 향상시키는 weakly supervised 모델에 대하여 알아보았습니다. 개인적으로 이 논문의 가장 큰 contribution은 우리가 아무데서나 구할 수 있는 고품질의 이미지를 weak label로 설정할 수 있게 만들었다는 것 같습니다. 사실 조금 아쉬운 점이라면 데모 홈페이지에 가서 본 사진들이나 실험 결과에 실려있는 사진들이 대부분 밝아지면서 좀더 대비효과를 주는게 전부라는 점입니다. 물론 이정도도 훌륭한 결과물이지만 앞으로도 아웃포커싱, 팬포커싱, 주밍샷 등 고급 기술까지 학습할 수 있는 모델이 나올 수 있지 않을까 기대됩니다.

Reference

  • Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “A neural algorithm of artistic style.” arXiv preprint arXiv:1508.06576 (2015).
  • Ignatov, Andrey, et al. “WESPE: Weakly Supervised Photo Enhancer for Digital Cameras.” arXiv preprint arXiv:1709.01118 (2017).
  • Gatys, Leon A., Alexander S. Ecker, and Matthias Bethge. “Image style transfer using convolutional neural networks.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.