아이공의 AI 공부 도전기

SPSR 논문 Full Reading - Structure-Preserving Super Resolution with Gradient Guidance

 

     

 

Abstract

Single Image Super Resolution에서 Structure(구조)는 중요하다. GAN을 이용한 방법은 SISR의 발전에 크게 기여하였으나 원하지 않는 구조적 왜곡(undesired structural distortions)이 복원된 이미지에서 항상 나타난다. 이 논문에서 우리는 GAN을 이용한 인지적 섬세함(perceptual detail)을 잘 살려냄과 동시에 해당 이슈를 경감시킬 수 있는 구조를 보존하는 super resolution 방법을 제안한다.

 

구체적으로 우리는 2가지 측면에서 복원을 가이드할 수 있는 이미지들의 gradient map들을 활용한다.

1) 한편으로 우리는 SR 과정을 위해 추가 구조적 우선순위들을 제공하기 위해 gradient branch에 의한 고해상도 gradient map들을 복원한다.

2) 다른 한편으로 우리는 초고해상도 이미지에 2차 제한을 가하는 방식의 gradient loss를 제안한다. 이전 image-space loss function(이미지 공간 손실 함수)와 함께 gradient-space 목표는 생성 네트워크가 기하학적 구조에 더 집중하도록 도와주는 데 있다. 게다가 우리들의 방법은 기성 SR network에 잠정적으로 사용할 수 있는 모델 불가지론적이다.

 

실험 결과들은 우리들이 가장 높은 PI, LPIPS 성능치를 보이고 PSNR, SSIM은 다른 지각 기반 SR 방법들과 비교했을 때 비교 가능할 정도임을 보인다. 시각적 결과는 자연적인 SR 이미지들을 생성하는 동안 구조를 복원하는 데 있어 우리들의 우수성을 증명한다.

 

1. Introduction

단일 이미지 초고해상도(SISR)는 LR 이미지로부터 고해상도 이미지를 복구하는 것을 목표로 한다. SISR은 computer vision 집단에서 근원적인 문제이고 감시카메라, 인공위성 이미지를 포함한 많은 이미지 분석 업무에 적용될 수 있다. 각 LR 입력이 많은 HR 해결책을 가질 수 있기 때문에 이것은 널리 ill-posed problem으로 알려져있다. deep learning의 발전과 함께 많은 SR 방법들은 제안되어 왔다. 그들 중 다수는 HR과 SR 이미지들 간 픽셀 별 거리를 측정하는 MSE에 의해 최적화된다. 그러나 해당 최적화는 심층 모델이 가능한 HR 해결책의 통계적 평균일 수 있는 이미지를 생산하도록 한다. 결과적으로 해당 방법들은 높은 PSNR 대비 흐릿한 이미지를 생성한다.

 따라서 photo-realistic images(실제와 같은 사진 이미지들) 복구를 목표로 하는 여러 방법들은 최근 SRGAN, EnhanceNet, ESRGAN, NatSR과 같은 GAN을 활용해오고 있다. GAN 기반 모델들은 높은 신뢰도의 SR 결과물들을 생성할 수 있는 반면 날카로운 가장자리들과 미세한 질감과 함께 항상 기하학적 왜곡이 있다. Figure 1에 몇몇의 SR 예시들이 나와 있다. 우리는 벽돌에서 RCAN이 흐릿하지만 직선 가장자리를 복구하는 반면 지각 기반 방법들에 의해 복원된 가장자리는 날카롭지만 비틀어졌다. 사실 GAN 기반 방법들은 discriminator가 최적화 절차에서 불안정한 요인을 도입할 수 있기 때문에 일반적으로 구조적 불일치를 겪는다. 2 종류의 SR 방식들의 장점 사이의 균형을 맞추기 위해 몇 가지 방법들이 제안되어오고 있다. 예를 들어 CFSNet는 지각적 품질과 왜곡 감소의 두 목표들 간에 지속적으로 이전하는 상호 프레임워크를 설계한다. 그럼에도 불구하고 본질적인 문제는 두 목표들이 동시에 달성할 수 없기 때문에 완화되지 않는다. 따라서 SR 성능을 더 향상시키기 위해 구조를 보존하기 위해 지각 기반 SR 방법들을 명시적으로 안내할 필요가 있다.

 

 본 논문에서 우리는 위 언급한 문제들을 완화하기 위해 구조 보존 SR 방법을 제안한다. gradient map은 이미지 안에서 각 작은 영역의 선명도(날카로움)를 나타내기 때문에, 우리는 이 강력한 도구를 이용하여 이미지 복구를 안내한다.

1) gradient branch

한편으로 우리는 보조 SR 문제로 LR 이미지 gradient map을 HR의 것으로 변환하는 gradient branch를 디자인한다. 복구된 gradient는 SR 분기에 통합되어 SR에 앞서 구조를 제공할 수 있습니다. 게다가 gradient는 고품질 생성을 명시적으로 안내하기 위해 선명함(날카로움)과 구조에 더 주의를 기울여야만 하는 영역들을 강조할 수 있다. 이 아이디어는 한 번 edge들이 높은 신뢰와 함께 복원되면 SR 작업은 LR 이미지에 의해 주어진 강력한 단서들과 함께 색상 채우기 문제로 다뤄질 수 있다는 관찰에 의해 동기가 부여된다.

2) gradient loss

또 다른 한편으로 우리는 복원된 이미지들의 gradient map을 명시적으로 감독하기 위해 gradient loss를 제안한다. 기존 방법들의 image-space loss function과 함께 gradient loss는 인접한 pixel의 2차 관계를 제안한다. 따라서 해당 지도를 통해 구조적 구성을 더 잘 유지할 수 있으며, 높은 지각적 품질과 더 적은 기하학적 왜곡을 가진 SR 결과를 얻을 수 있다.

게다가, 우리들의 모델은 모델 불가지론적이기 때문에 SR 네트워크에 잠정적으로 사용할 수 있다. 우리가 아는 한, 우리는 GAN 기반 SR 방법에서 기하학적 구조를 보존하는 것을 명시적으로 고려한 첫 번째이다. benchmark dataset의 실험적 결과는 우리들의 방법이 구조적 왜곡을 감소함으로써 SR 충실도를 향상하는 데 성공한다는 것을 보여준다.

 

2. Related Work

PSNR-지향 방법과 지각 기반 방법 2개의 카테고리로 나눠 SISR을 검토할 것이며 gradient에 관련한 방법들 또한 조사한다.

PSNR-Oriented Methods

많은 이전 접근들은 높은 PSNR을 목표로 한다. 선구자인 SRCNN, DRCN, VDSR, EDSR, ResNet, RDN, RCAN 방법들을 소개한다.

Perceptual-Driven Methods

위에 소개한 방식들은 모두 높은 PSNR 달성을 목표로 하며 MSE loss, L1 loss를 loss function으로 사용하지만 흐릿하다. 시각적 질을 향상시킨 이미지를 위해 adversarial loss를 이용한 SRGAN, Enhancenet, ESRGAN, SFTGAN 등을 소개한다. 지각 기반 방법들은 실제로 전반적인 SR 이미지들의 시각적 질을 향상시키지만 그들은 자세한 부분을 복원할 때 기하학적 왜곡을 포함한 부자연스러운 artifact를 생성한다.

Gradient-Relevant Methods

gradient 정보는 이전 연구에서 활용되어 왔다. 크게 5가지의 연구는 포인트별로 모델 절차를 성취하여 통계적 의존성을 띈 모델을 활용한다. 이는 복잡하고 유연하지 못하다.

Deep learning 기반 SR

Modeling deformable gradient compositions for single-image super-resolution

ieeexplore.ieee.org/document/7299180

Deep Edge Guided Recurrent Residual Learning for Image Super-Resolution

arxiv.org/pdf/1604.08671.pdf

 

edge 재구성과 grdient 영역 제약은 몇몇 방식들에서 이용되었지만 그들의 목적은 주로 PSNR 기반 SR 방법을 위한 고주파 구성 요소 복원에 있다. 이들과 달리 우리는 GAN 기반 방법들에 의해 생산된 기하학적 왜곡을 감소시키고 SR의 구조적 가이드로써의 gradient map을 이용하는데 목표로 하고 있다. 심층 적대 네트워크의 경우 gradient space 제약은 더 나은 이미지 재구성을 위한 추가적인 감독을 제공할 수 있다. 우리가 아는 한 GAN 기반 SR 방법은 질감 구조를 보존하는 gradient space guidance를 이용하지 않았다. 해당 연구에서 우리는 GAN 기반 SR 방법들을 더 향상시킬 수 있는 gradient 정보를 활용하는 것에 목적을 두고 있다.

 

3. Approach

gradient branch, attentive fusion module에 따른 최종 objective functions의 자세한 설명을 담고 있습니다.

3.1 Overview

 

$I^{LR}$ : LR Image / $I^{SR}$ : SR Image / $I^{LR}$ : HR Image / G : Generator / $\theta_G$ : Generator parameter

$I^{SR} = G(I^{LR};\theta_G)$

SR은 HR에 최대한 같도록 하는 것이 SISR의 목적

$\theta_G$ 최적화 Loss function 식

 

Generator는 2개의 branch로 구성되었습니다. 하나는 SR branch, 다른 하나는 gradient branch

SR branch는 LR Image를 input으로 받고 gradient branch로부터 SR gradient map에 의해 제공된 가이드에 따라 SR 복원을 목표로 합니다. 

3.2 Details in Architecture

3.2.1 Gradient Branch

gradient branch의 목표는 LR 형식에서 HR 형식으로 gradient map 변환을 추정하는 것입니다. 이미지 I의 gradient map은 인접한 픽셀들 사이 차이를 계산하여 얻을 수 있습니다.

 

$M( \cdot )$은 좌표 x=(x, y)인 픽셀들에 대한 gradient 길이를 요소로 가지는 gradient map을 추출하는 작업을 의미합니다. gradients를 얻기 위한 작업은 고정된 kernel에 있는 conv layer에 의해 쉽게 얻을 수 있다. 사실 우리는 gradient 강도가 복구된 이미지들 안에 있는 일부 지역의 날카로움(선명함)을 얻기에 적합하기 때문에 gradient 방향 정보를 고려하지 않는다. 따라서 우리는 강도 맵으로 gradient map으로 채택한다. 이런 gradient map들은 서로 다른 이미지들로 간주될 수 있으므로 이미지 간 변환 기술을 사용하여 두 가지 양식 간의 매핑을 학습할 수 있다. 변환 프로세스는 LR edge 선명도에서 HR edge 선명도로 공간 분포 변환과 동일하다. gradient map의 대다수 영역이 0에 가깝기 때문에 conv NN은 윤곽의 공간 관계에 더 집중할 수 있다. 그러므로 네트워크에서 구조 의존성을 포착하고 결과적으로 SR 이미지들에 대한 대략적인 gradient map을 생성하는 것이 더 쉬울 수 있다.

 

Figure 2에서 보듯, gradient branch는 SR branch로부터 여러 중간 수준의 표현들을 통합합니다. 해당 계획의 동기는 잘 설계된 SR branch가 gradient map들의 복원에 중추적인 구조적 정보를 풍부하게 전달할 수 있을 것이다. 따라서 우리는 이 경우 파라미터가 크게 감소될 수 있는 gradient branch의 성능을 촉진하기 전에 강력한 선행작업으로 특징들을 활용한다. 각 2개 중간 특징들 사이 상위 수준의 feature들을 추출하기 위한 기본 블록이 될 수 있는 gradient block이 있다. gradient branch별로 SR gradient map을 가져오면 우리는 획득한 gradient feature들을 SR branch 안으로 통합하여 SR 재구성을 차례로 안내할 수 있다. gradient map의 크기는 복구된 영역이 날카롭거나 부드러운지에 대해 암시적으로 반영할 수 있다. 실제로 우리는 gradient branch 마지막 다음 계층에서 생성된 feature map들을 SR branch에 공급한다. 한편, 우리는 해당 feature map들을 입력으로 1x1 conv layer에 의한 출력 gradient map을 생성한다.

 

3.2.2 Structure-Preserving SR Branch

 

우리는 마지막 SR 결과에 도달하기 위해 구조를 보존하는 SR 분기를 설계한다. 해당 분기는 2개의 부분으로 구성되어 있다. 첫 번째 부분은 어떤 구조도 될 수 있는 다중 생성 신경 블록으로 구성된 일반적 SR network이다. 여기 ESRGAN이 제한한 RRDB 또한 소개한다. 원래 모델에는 23개의 RRDB 블록이 있다. 그러므로 우리는 5,10,15,20번째 블록에서 gradient branch로의 feature map을 통합한다. 일반 SR 모델들이 3개의 채널만을 가진 이미지들을 생성하기 때문에 우리는 마지막 conv reconstruction layer를 삭제하고 결과 feature를 연속 부분에 공급한다. SR branch의 2번째 부분은 위에서 언급한 gradient branch로부터 얻어진 SR gradient feature map들을 연결한다. 우리는 두 분기들의 특징들을 융합하는 fusion block에 의해 구조적 정보를 융합한다. 특히 우리는 2 특징들을 합친 다음 다른 RRDB 블록과 conv layer를 사용하여 마지막 SR feature를 재구성한다. 주목할 점은 SR 분기에 하나의 RRDB 블록만 추가하는 것이다. 그러므로 블록이 23개인 원래 모형에 비해 parameter가 약간 증가한다.

3.3 Objective Function

 

Conventional Loss

 

대부분의 SR 방법들은 pixelwise loss에 의해 정교하게 설계된 네트워크에 최적화하며, 이는 PSNR로 측정한 초고해상도 작업에 효율적이다. 이 척도는 복구된 이미지와 실제 이미지 사이 평균 픽셀 차이를 감소시킬 수 있지만 결과는 너무 부드러워 시각적 효과를 위한 날카로운 모서리를 유지할 수 없을 것이다. 그러나 이러한 손실은 수렴을 가속화하고 SR 성능을 향상하는데 널리 사용되고 있다.

 

Perceptual loss는 복원된 이미지들의 지각적 질적 향상을 위해 아래 논문에서 제시되었다.

arxiv.org/abs/1603.08155

 

Perceptual Losses for Real-Time Style Transfer and Super-Resolution

We consider image transformation problems, where an input image is transformed into an output image. Recent methods for such problems typically train feed-forward convolutional neural networks using a \emph{per-pixel} loss between the output and ground-tru

arxiv.org

의미 정보를 포함하는 feature들은 pretrain 된 VGG 네트워크에 의해 추출된다. HR 이미지와 SR 이미지들의 feature들 사이 Euclidean distance는 perceptual loss를 최소화한다.

 

 $\phi_i$는 VGG의 i번째 layer를 의미한다.

 GAN 기반 SRGAN, ESRGAN의 방식들은 SR 문제에서 중요한 역할을 맡는다. discriminator D와 generator G는 2 player의 게임을 통해 최적화시킨다.

 

 실제로 더 나은 최적화를 달성하기 위해 우리는 relativistic average GAN(RaGAN)을 수행했다. 위 objective function에 의해 감독된 모델들은 단지 이미지에 대한 image-space 제약 조건을 고려할 뿐, gradient space에 의해 제공된 의미론적 구조 정보는 무시한다. 생성된 결과가 photo-realistic 하지만 그 안에서도 원하지 않는 기하학적 왜곡들이 많다. 따라서 우리는 이런 문제를 완화하기 위해 gradient loss를 도입한다.  

Gradient Loss

 

 우리들의 동기는 Figure 3에 분명하게 설명하고 있다. 여기 우리는 1차원 사례만 고려한다. 만약 우리가 L1 loss에 의한 image space에서의 최적화를 하는 경우, 우리는 일반적으로 Figure 3(a)와 같은 날카로운 edge를 가지는 GT 입력이 주어졌을 때 Figure 3(b)와 같은 SR 결과를 얻는다. 모델은 훈련 데이터에서 가능한 HR 해결책들을 통계적으로 평균을 주는 경향이 있기 때문에 날카로운 edge를 복원하는 것에 실패한다. 이 경우 두 sequence들의 gradient 크기를 계산하고 보이면 SR gradient는 낮은 값으로 평평하고 HR gradient는 높은 값을 갖는 스파이크임을 관찰할 수 있다. 그들은 서로 큰 차이를 보인다. 이것은 우리가 최적화 목표에 2차 gradient 제약을 준다면 모델이 gradient space로부터 더 학습할 수 있을 것이라는 영감을 준다. 이것은 모델이 인접 구성에 집중할 수 있도록 도움을 주므로 국부적 선명도를 보다 적절히 추론할 수 있다. 그러므로 Figure 3 (f)와 같이 gradient 정보가 포착되었다면 Figure (c)를 복구할 확률이 크게 증가한다. SR 방법들은 과도하게 부드러워지거나 과도하게 날카로운 복원을 방지하기 위한 가이드로부터 이점을 얻을 수 있다. 게다가 gradient space에서 기하학적 특성을 추출하는 것이 더 쉽다. 그러므로 기하학적 구조는 잘 보존될 수 있으며 보다 photo-realistic 한 SR 이미지가 생성된다.

 

여기 위 목표들을 달성하기 위한 gradient loss를 제안한다. 우리는 gradient map이 이미지의 구조적 정보를 반영하는 이상적인 도구라는 것을 언급했기 때문에 생성기에 대한 감독을 제공하기 위해 2차 제약 조건으로 활용할 수 있다. 우리는 SR 이미지로부터 추출한 gradient map과 이에 상응하는 HR 이미지 사이의 거리를 줄임으로써 gradient loss를 공식화한다. 이미지와 gradient 영역에서의 감독을 통해 generator는 미세한 외관을 배울 수 있을 뿐 아니라 구체적인 기하학적 왜곡을 피할 수 있는 중요성을 부여할 수 있다. 따라서 우리는 SR, HR 이미지들의 gradient map(GM) 차이를 불리하게 함으로써 2 손실 항을 설계한다.

하나. pixel-wise loss 기반은 다음과 같다.

또 다른 하나는 gradient patch가 HR gradient map에 기인한 것인지를 판별하는 것이다. 우리는 다른 gradient discriminator network를 해당 목표를 달성하도록 설계했다. 

 gradient discriminator는 또한 adversarial learning에 의한 SR 결과 생성 감독을 할 수 있다.

 M()에서 각 단계별 구별할 수 있다는 점에 주목하라. 따라서 gradient loss를 가진 모델은 end-to-end로 훈련할 수 있다. 게다가 간결한 공식과 강한 전달성 때문에 어떤 생성 모델 안에서 추가적인 가이드로써의 gradient loss 채택에 편리하다.

 

Overall Objective

 

결론적으로 우리는 $L_{SR}^{Dis_I},L_{SR}^{Dis_{GM}}$에 의해 최적화된 $D_I, D_{GM}$ 2개의 discriminator를 가집니다.

Generator의 경우 2 loss들은 동시에 감독 신호를 제공하기 위해 사용된다. 하나는 구조 보존 SR 분기에 부과되는 반면 다른 하나는 gradient branch(GB) 안에서 pixel별 loss인 $L_{GB}^{Pix_{GM}}$을 최소화하여 고품질 gradient map들을 구성하는데 부여한다.

 

다른 loss들의 parameter들과 trade-off 관계

 

 

4. Experiments

4.1 Implementation Details

Datasets and Evaluation Details

Training dataset : DIV2K

Testing benchmark datasets : Set5, Set14, BSD100, Urban100, General100

LR : downsample HR by bicubic interpoltion

Scaling Factor : x4

Evaluation Metric : Perceptual Index(PI), Learned Perceptual Image Patch Similarity(LPIPS), PSNR, SSIM

(PI, LPIPS는 낮을수록 좋은 지각적 품질을 보장함)

 

Training Details

ESRGAN 기반으로 gradient block 사용함

32x32 LR patch 15개를 random sample하여 사용(쌍으로 128x128 HR 15개를 의미함)

PSNR 기반 모델로 훈련시킨 parameter로 generator parameter 초기화

pixelwise loss, perceptual loss, adversarial loss, gradient loss 사용

ADAM optimizer 사용($\beta_1=0.9, \beta_2=0.999, \epsilon =1 \times 10^{-8}$)

generator, discriminator learning rate $1 \times 10^{-4}$

learning rate decay [50k, 100k, 200k, 300k]

$\beta_{SR}^I=0.01, \gamma_{SR}^I=0.005$

gradient loss를 image-space loss와 같게 함으로써 $\beta_{SR}^{GM}=0.01, \gamma_{SR}^{GM}=0.005$

 

PyTorch에 적용했으며 NVIDIA GTX 1080 TI GPUs로 실험을 진행함

 

4.2 Results and Analysis

Quantitative Comparison 

 

비교 모델 : SFTGAN, SRGAN, ESRGAN, NatSR

Evaluation Metric : PI, LPIPS, PSNR, SSIM

Table 1 1등 모델은 빨간색, 2등 모델은 파란색

SPSR이 PI, LPIPS에서 모든 모델들을 제치고 1등을 차지했으며 PSNR, SSIM 역시 준수한 값을 얻음.

 

Qualitative Comparison

 

 

Figure 4를 통해 확인해보았을 때 다른 모델들에 비해 구조적 특징을 잘 살려내며 더 자연스럽고 왜곡 현상이 없다.

 

 

Figure 5에서 보이듯 Gradient Space로부터 구조적 정보를 더 학습함으로써 SPSR 모델이 더 선명하고 자연적인 것을 확인할 수 있다.

 

Ablation Study

 

 

ESRGAN을 baseline으로 놓고 제안된 framework의 각 부분들의 필요성의 유효함을 보이고자 한다.

1) SPSR without Gradient Branch(GB)

2) SPSR without Gradient Loss(GL)

3) SPSR

 

자신들의 방식이 좋음을 증명

 

Effects of the Gradient Branch

 

 gradient branch의 효과를 검증하기 위해 Figure 6에서 보이듯 결과물의 gradient map을 시각화하였다. 날카로운 모서리(edge)가 있는 HR 이미지들을 고려했을 때 추출된 HR gradient map들은 이미지들의 객체들의 얇고 선명한 윤관석을 가질 수 있다. 그러나 상대적 LR로부터 추출된 gradient map은 일반적으로 bicubic upsampling 후 두꺼운 선들을 가진다. 우리들의 gradient branch는 LR gradient map들을 입력으로 사용하고 SR branch의 가이드로써의 분명한 구조적 정보를 제공함으로써 HR gradient map들을 생산한다. 

gradient 생성을 다루는 것을 이미지 변환 문제로 다룸으로써 우리는 깊은 모델의 강력한 생성 능력을 이용할 수 있다. Figure 6 (d)의 결과 gradient map으로부터 우리는 우리들의 gradient branch가 성공적으로 얇고 구조적으로 만족스러운 gradient map들을 회복하였음을 볼 수 있다. 우리는 gradient branch의 효과를 평가하기 위한 다른 실험을 수행했다. 완전한 SPSR 모델을 사용하여 우리는 gradient branch로부터 feature를 0으로 setting함으로써 feature를 제거하고 오직 추론에 SR branch만을 사용했다. 시각화 결과는 Figure 7에 나와있다. patch들로부터 SR branch만으로 고해상도 작업을 한 모피와 수염이 완전한 모델의 복원보다 더 흐릿하다는 것을 볼 수 있다. 상세한 질감의 변화는 gradient branch가 더 나은 지각적 충실도를 높이도록 하는 날카로운 edge 생성을 돕도록 하는 것을 보여준다.

5. Conclusion

Gradient Guidance와 함께 Structure-Preserving Super Resolution(SPSR) 방법을 제안함으로써 기하학적 왜곡 현상을 경감시킨다.

2가지 측면에서 기하학적 구조를 보존한다.

1) Gradient Branch

LR에서 고해상도 gradient map을 복구하고 분명한 구조적 가이드로 SR 분기에 gradient 정보를 제공하는 것을 목표로 gradient branch를 구축한다.

2) Gradient Loss

복원된 이미지들에 2차 제한을 가하기 위해 gradient loss를 제안한다. 이미지 공간 및 gradient 공간 감독 모두에서 기하학적 관계를 더 잘 포착한다.

 

자신들의 방식은 test benchmark set에 대해 정량적, 정성적 실험 결과가 효율적임을 보인다.

 

 

 

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading