논문 링크: https://arxiv.org/abs/1609.04802
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
CVPR 2017
Abstract
- MOS (mean-opinoin-score)에 있어 SRGAN의 결과가 SOTA
1. Introduction
SRGAN으로 SR task를 수행한 결과는 다음과 같다.
- SR task에서 기존에는 MSE loss를 많이 사용해왔음
- MSE를 최소화하면 PSNR(peak signal-to-noise ratio)을 최대화하는 특징이 있기 때문
- PSNR이란, 특정 영상의 화질에 대한 손실 정보를 평가하는 지표
- 화질 손상이 적을 수록, 즉 화질이 높을 수록 PSNR도 높은 값을 가짐
- 그러나, 보기에 화질이 기대만큼 좋아지지 않았는데 MSE가 낮고, PSNR이 높은 경우도 있음(perceptually different)
- 위 두 평가 지표는 pixel-wise image difference에 기반해 측정을 하기 때문
위 그림들을 보면 알 수 있다시피, PSNR이 높다 해서 보기에도 SR task가 잘 이뤄진 것은 아니라는 걸 알 수 있다. 또, MSE 의 특성 상 보면, 상세 질감 표현이 잘 되지 않았다.
- MSE loss가 아닌 perceptual loss를 최적화하는 ResNet기반의 SRGAN 제안
- VGG network를 통해 얻은 high feature map을 사용한 새로운 perceptual loss정의
- 이때, discriminator를 사용해 HR reference image와 최대한 유사하도록 결과 이미지가 생성되도록 함
1.1.1 Image super-resolution
- Single Image Super-Resolution(SISR)에만 초점 맞출 것
- 여러 이미지로부터 HR 이미지를 복원해내는 것은 고려 x
Prediction based methods
- linear, bicubic, Lanczos 등 filtering approach의 경우, 매우 빠르지만 texture정보를 스무스하게 만드는 문제 발생
- edge-preservation에 초점 맞춰짐
Self-dictionary / Self-similarity
- training data에 의존한다는 특징 존재
- low/high resolution image를 패밍해 그 정보에 의존하는 것
- multi-scale dictionary, neighborhood embedding approach등 존재
CNN-based SR algorithm
1.1.2 Design of convolutional neural networks
- batch normalization, residual block, skip connection 등 참고
1.1.3 Loss function
- MSE를 최소하는 것의 단점
MSE의 특성 상 픽셀 정보를 과하게 smooth하는 문제가 있음. GAN의 경우, natural image manifold와 유사하도록 이미지를 생성해냄
1.2. Contribution
2. Method
- 학습 시 low resolution image는 Gaussian filter를 적용함으로써 얻어냄
- downsampling factor : r
- Original High Resolution image(IHR), Super resolved image size(ISR): W x H x C
- Low Resolution image(ILR) size: rW x rH x C
Generative function optimization
2.1. Adversarial network architecture
- D는 super-resolved image를 real image와 구분해낼 수 있도록, G는 super-resolved image가 최대한 real image와 비슷해질 수 있도록 학습됨
- 궁극적으로 Discriminator는 Generator로부터 생성된 이미지를 real image와 구분할 수 없게 될 것
-
위 그림에서 각 convolution layer 당 k는 커널 사이즈, n은 feature map수, s는 stride를 의미.
-
G의 구조로는 B개의 residual block 사용
- activation function으로는 Parametric ReLU 사용
-
실제 HR 이미지와 생성된 SR 이미지를 구분하기 위해 discriminator network를 학습
- activation function으로 LeakyReLU 사용(α=0.2)
- maxpooling사용하지 않음
- (2) 식을 통해 최적화됨
- VGGnet과 비슷한 CNN 구조 사용
- 최종적으로 나오는 512개의 feature map 뒤에 두 개의 dense layer와 sigmoid activation function을 통해 classification
2.2. Perceptual loss function
- content loss와 adversarial loss의 weighted sum으로 정의
2.2.1 Content loss
Pixel-wise MSE loss
2.2.2 Adversarial loss
- 해당 loss를 사용함으로써 real image와 생성된 이미지가 유사해질 수 있도록 함
- 모든 training sample들에 대한 discriminator probability를 통해 계산됨
3. Experiments
3.1. Data and similarity measures
- benchmark dataset Set5, Set14, BSD100 사용
- 4x scale factor에 대해 진행
- 비교를 위해 4-pixel wide로 border를 crop한 이미지에 대해 PSNR과 SSIM score 계산
3.2. Training details and parameters
- ImageNet database로부터의 35만개 이미지 사용
- 4배 downsampling, bicubic kernel 사용해 LR이미지 얻어냄
- 각 training image의 미니배치마다 랜덤하게 16개의 96x96 sub image를 크롭해 HR이미지로서 사용
- LR이미지의 경우, 범위 [0,1], HR 이미지의 경우 범위 [-1,1]로 normalize
- MSE loss는 [-1,1]사이의 값을 가짐
- VGG loss를 구하기 위해 사용되는 VGG featrue map 또한 mse loss와 scale 맞추기 위해 12.751 로 rescale해줌
- Optimizer로는 Adam 사용, β1=0.9
- SRResNet의 경우, 백만번의 update동안 learning rate로 10−4의 값 사용
- 실제 GAN을 학습시킬 때 generator를 초기화하기 위해 MSE기반으로 학습된 SRResNet 네트워크 사용
- SRGAN 학습 시 10만번의 update동안 10−4의 learning rate로, 이후 10만번의 update 동안에는 10−5의 learning rate로 학습시킴
- 이때 generator와 discriminator는 k=1로, 즉 번갈아가면서 학습됨
- generator는 16개의 동일한 residual block으로 이뤄져있음
- test 시에는 input에만 의존되도록 하기 위해 batch normalization update하지 않음
3.3. Mean opinion score(MOS) testing
- 실제로 "보기에" 잘 reconstruction되었는지 판단하기 위함
- 실제 사람들에게 rating하도록 함
- 자세한 건 논문 참고
3.4. Investigation of content loss
- GAN based-network에서 perceptual loss로 각기 다른 content loss를 사용했을 때의 결과를 확인해봄
- (3) 식 참고
- SRGAN-MSE
- SRGAN-VGG22
- ϕ2,2 사용(lower-level feature 사용)
- SRGAN-VGG54
- ϕ5,4 사용(high level feature 사용)
- 이미지의 content에 초점맞출 수 있도록 함
- 해당 설정을 SRGAN에서 사용
표의 결과와 같이 SRGAN-VGG54의 세팅으로 했을 때 보기에 가장 SR이 잘 된 것을 알 수 있다.
- SRResNet과 SRGAN의 성능 비교 수행
- PSNR과 SSIM을 고려했을 때, SRResNet이 SOTA
- MOS score 기준으로는 SRGAN이 SOTA
4. Discussion and future work
- 본 연구의 주 목표는 SR이미지의 "perceptual quality"를 높이는 것
- 해당 모델은 비디오의 SR 등 실시간 처리는 불가능
- SRResNet에서 더 깊은 구조로 네트워크를 구성한다면, (B>16) 성능이 더 좋아질 것
- SRGAN의 경우, high-frequency artifact로 인해 더 깊은 네트워크를 구성하더라도 학습시키기 어렵다는 점 발견
- 실험 결과들을 통해, content를 고려할 때 깊은 층의 network layer를 사용하는 것이 pixel space에서 벗어나 higher abstraction feature를 나타내기 좋다는 것 확인
- content 자체에 온전히 집중할 수 있도록 함
- adversarial loss는 texture detail에 초점을 맞출 수 있도록
- Application에 따라 loss를 조정하면 좋을 것
- medical application이나 surveilance의 경우, 사소한 디테일부분들보다 spatial content에 대한 정보 유지하도록 하는 등..
- pixel space의 변화에 강건하도록 SR task를 수행하는 게 앞으로의 관건일 것
5. Conclusion
- SRResNet 제안
- 당시 benchmark 데이터셋에서 PSNR이나 MSE에서 SOTA
- PSNR의 한계 지적
- SRGAN 제안
- Perceptual loss 제안 (content loss 초점)
- MOS testing 시행
다른 추가 실험 결과는 논문을 참고