-
[논문리뷰] (SFT-GAN) Recovering Realistic Texture in Image Super-resolution by Deep Spatial Feature Transform / CVPR 2018공부/Super Resolution 논문리뷰 2020. 4. 1. 17:23
이 논문은, SROBB이전에 나왔던 conditioning information (segmentation probability map)을 사용하는 GAN-based SR방법에 대한 논문이다. SR을 하는 network의 입장에서 해당 texture가 무엇인지에 대한 정확한 정보를 가지고 SR을 수행하며, SFT layer라는 획기적인 feature modulation 방법을 통해 매우 효율적으로 conditioning information을 사용하는 방법을 제시하였으며, 상당한 성능향상을 보인다. 그러나, SROBB와는 다르게 segmentation probability map이 학습시 뿐만 아니라, 테스트시에도 존재해야 한다는것은 큰 단점이라고 할 수 있다.
ABSTRACT
CNN이 SR에서 높은 성능을 보이는 와중에도, 자연스럽고 사실적인 texture를 구현하는 것은 매우 어려운 일이다. 이 논문은 semantic 정보를 이용하여 충실하게 texture를 복구하는 것이 가능하다는 것을 보여준다. 특히, 저자는 semantic segmentation probability map 을 활용하여 네트워크 내 몇 개의 중간 레이어 feature를 바꾸는 것으로 이를 구현한다. 이는 공간 단위 feature 변조를 위한 아핀 변환(Affine transform)을 생성하는 Spatial Feature Transform (SFT) layer를 통해 가능하다. SFT layer는 SR network와 동일한 loss function을 사용한 end-to-end 학습이 가능하다. 테스트시에는 임의의 사이즈를 갖는 input image에 대해 categorical 사전지식만 있으면(‘segmentation된 정보를 보유하고 있으면’ 을 뜻하는 것 같다.) 더욱 선명한 SR image를 생성하는 것이 가능하다.
INTRODUCTION
SISR의 목표는 LR이미지로부터 HR이미지를 복원해 내는 것이다. 하지만, 주어진 LR픽셀로부터 HR이미지를 복원하는 것은 그 solution이 매우 다양하게 존재하기 때문에, SISR은 ill-posed problem으로 받아들여진다. 최근의 CNN-based SR들은 이러한 문제를 극복하기 위해 LR-HR 이미지 쌍으로부터 학습을 진행하여 solution space를 제한하는 방법을 사용한다. blurry, over-smoothed된 이미지가 생성되는 등, conventional pixel-wise MSE loss를 사용함으로써 나타나는 문제들을 해결하고 보다 더 자연스러운 이미지에 가까워지도록 새로운 loss function들이 기존의 MSE loss를 대체하도록 제안되었다. 특히, pixel space 대신 feature space에서 network를 최적화시키는 perceptual loss가 대표적인 예다. 나아가 adversarial loss 또한 제안되어, 더욱 자연스러운 SR이미지의 생성이 가능해졌다.
이처럼 많은 발전이 이루어졌지만, 여전히 사실적인 texture를 복원해내는 것은 어려운 문제이다. 다음의 그림(Fig.1)에서 실험 결과를 볼 수 있는데, 동일한 LR이미지에 대해 다양한 HR이미지가 존재할 수 있음을 보여주며, 사실적인 texture를 생성하는 것이 꽤 어려운일임을 보여준다. Perceptual loss와 adversarial loss만을 사용하여 학습한 모델로 생성한 SR이미지(Without prior)를 자세히 관찰하면, 벽돌과 풀숲 texture간의 구분이 명확하지않게, 거의 비슷한 패턴으로 생성된것을 볼 수 있다. 이렇듯 지금까지의 GAN based SR 방법들은 prior information없이 사실적인 texture 생성에 애를먹고있음을 알 수 있다. 저자는 이 논문을 통해 위와같은 문제를 해결하기위해서는 semantic class(sky, building, plant 등)를 특징으로하는 categorial prior를 사용하는 것이 필수적임을 보여준다. 그림(Fig.1)에서 이에 따른 실험결과를 볼 수 있는데, 실험과정은 다음과 같다. 먼저, 두개의 CNN network를 준비한다. 하나는 building dataset에 대해 집중적으로 학습시키고, 다른하나는 plant dataset에 대해 집중적으로 학습시킨다. 이렇게 학습된 두개의 모델을 통해 각각 SR이미지를 생성한 결과, 동일한 category의 dataset으로 학습시킨 모델이 더욱 타당하고 합리적인 결과를 보여주는 것을 확인할 수 있다. 이러한 현상은 "R.Timofte의 ‘Semantic super-resolution: When and where is it useful?’"논문에서도 언급된바가 있다.
저자는 이 논문에서 class-conditional image super-resolution with CNN에 대해 다룬다. 이 문제는 특히 하나의 이미지에 서로 다른 class에 대해 여러 개의 segment가 존재할 때 매우 어려워지며, 관련된 연구가 부족한 상태이다. 저자는 이러한 부분에 대해 연구를 진행하며, segmentation map의 풍부한 categorical prior 정보를 네트워크에 제공할 때 이렇게 제공받은 정보를 출력 pixel까지 끌고 올라가 사용되는 과정을 보여준다. 현재의 CNN은 LR이미지를 segmentation하기에 충분한 성능을 보인다. 그렇다면 어떻게 segmentation map 조건을 활용하여 texture의 생성에 활용할까? Semantic class에 따라 SR model을 따로 학습시키는 것은 scalable 하지도, computationally efficient하지도 않고, LR이미지와 segmentation map을 결합시키거나 중간 feature map을 segmentation map과 연결시키는 것은 segmentation 정보를 효율적으로 사용한다고 할 수 없다.
따라서, 저자는 Spatial Feature Transform (SFT)라는, SR network의 중간 layer 몇 개를 변형시켜 SR network의 경향성을 사용자의 임의대로 조정할 수 있는 방법을 제시한다. SFT layer는 semantic segmentation probability map에 의해 정의되며, network의 feature map에 아핀변환을 적용시키기 위한 변조 parameter에 그 기반을 둔다.
SFT layer의 장점은 크게 세가지를 들 수 있다.
(1) Parameter-efficient.
풍부한 semantic 정보를 갖는 영역들에 대한 SR 이미지의 생성이 단 한번의 forward pass만으로 구현될 수 있다.(2) SFT layer는 기존의 다양한 SR network에 적용될 수 있다.
SFT layer는 SR network와 함께 conventional loss function으로 end-to-end 학습될 수 있다.(3) 확장성이 높다.
이 논문에서는 categorical prior에 대해 SFT layer를 사용하지만, depth map과 같은 다양한 prior 정보들에 대해서도 활용할 수 있다. 아래 그림2 에서는 다른 모델들과의 성능 비교를 보여준다.RELATED WORKS
Network conditioning
저자의 연구는 feature normalization 에 대한 연구로부터 연구의 idea를 얻었다. Batch normalization은 feature statistics의 정규화를 통해 학습을 더욱 쉽게 도와줌으로써 널리 사용되는 방법이다. Conditional normalization(CN)은 BN에서 feature 단위의 아핀변환을 위한 parameter를 수정하기위해 몇가지 조건에 의해 학습된 함수를 적용시키는 방법이다. 다양한 CN은 image style transfer, visual question answering, visual reasoning 등에 매우 효과적임을 증명했다. Perez의 ‘’FiLM: Visual reasoning with a general conditioning layer”에서 시각적 추론을 위한 linguistic information을 추출하는 Feature-wise Linear Modulation Layer (FiLM)를 개발했는데, 이 레이어는 CN의 일반화된 형태라고 볼 수 있다. 위의 논문에서 Perez는 feature들을 바로 변조시킬수 있음을 보여줌과 동시에 CN의 아핀변환이 normalization 이후에 놓여지지 말아야함을 보여준다. 이러한 방법을 통해 FiLM은 시각적 추론분야에서 매우 좋은 성능을 보여주었다. 그럼에도 불구하고, spatial information을 잘 다루지 못했는데, FiLM은 spatial location과는 무관하게 single linguistic input과 output에 대해 각 feature map에 하나의 scaling과 하나의 shifting 파라미터만을 사용하기 때문이다. Spatial information을 보존하는 것은 SR과 같은 low-level task에서 매우 중요한데, 서로 다른 spatial location에 대해 다른 adaptive processing 이 필요하기 때문이다. 따라서 FiLM 알고리즘을 SR에 적용시키는 것은 좋은 방법이 아닐 것이며, 이 논문에서 제안하는 SFT layer가 이러한점을 개선시켜 SR에 적용시키는 방법을 제안한다.
Semantic guidance
Image generation 분야에서, semantic segmentation은 자연스러운 이미지를 생성하기위해 입력으로 사용되어왔으며, Gatys는 neural style transfer에 semantic map을 perceptual factor를 조정하는데에 이용했다. Video deblurring에도 semantic segmentation이 이용되었으며, Zhu는 처음으로 human segmentation map을 활용하여 의상을 제안하는 용도로도 사용했다. 저자의 연구는 이들과는 크게 두가지 양상에서 다른데, 첫번째로는 semantic map을 SR domain에서의 texture 복원을 위한 guide로써 사용한다는 점이며, 두번째로는 섬세한 texture 구분을 위해 간단한 image segment 대신 semantic segmentation된 probability map을 활용한다.
METHODOLOGY
LR이미지가 주어졌을 때, SR은 ground truth HR이미지와 동일한 이미지를 생산하는 것에 타겟을 맞추고 학습된다. Perceptual loss와 adversarial loss function들이 MSE-oriented loss function에서 나타나는 regression-to-the-mean 문제의 해결을 위해 도입되었고, 시각적으로 좋은 성능을 보였다. 하지만, texture들이 단조롭기도 하고 부자연스러운 경향이 있다. 따라서 저자는 semantic categorical prior를 사용해야 더욱 사실적인 texture의 생성이 가능하다는 것을 주장한다. Categorical prior는 segmentation probability map으로 다음과 같이 표현할 수 있다(Eq. 3).
P는 probability map을 뜻하며, K는 총 category 수를 나타낸다. 이 categorical prior를 SR에 도입하면 다음과 같은 식으로 나타낼 수 있다(Eq. 4).
Spatial Feature Transform
SFT layer는 변조 파라미터 쌍을 출력하는 mapping function을 학습시킨다. 이렇게 구해지는 변조 파라미터 쌍은, SR network의 각 feature map에 아핀변환을 적용시켜 network의 출력에 적응형으로 영향을 끼친다. Testing 시에는, 단 한번의 forward pass로 SR이미지를 생성시킬 수 있다.
더욱 정확히 표현하자면, 이전의 categorical prior는 아핀변환 한 쌍으로 표현된다는 것이다. 결과적으로, 식 5에서 표현하듯 transformation parameters (아핀변환 파라미터 쌍)을 구하게 되면, 특정 feature map에 대해 scaling 과 shifting 을 적용시키게 되는 것이다. 이 SFT layer의 적용 후에도 공간적 차원은 그대로이게 되므로, 이 SFT layer는 feature 단위의 조작 뿐만이 아니라, 공간 단위의 조작 또한 수행하는 것이다.
그림 3은 SFT layer가 network에서 수행되는 모습을 보여준다. 변조 파라미터 쌍을 구하는데 사용되어지는 Mapping function은 임의의 어떤 함수도 적용시킬 수 있는데, 저자의 경우는 이 연구에서 neural network를 사용했으며, 덕분에 end-to-end학습이 가능해졌다. 효율성을 위한 차후에 다양한 SFT layer간 파라미터의 공유를 위해, 저자는 공유되는 intermediate condition들을 생성하는 작은 condition network를 사용하여 모든 SFT layer에게 분배되도록 한다. 그 동안, 저자는 SFT layer내 몇 개의 파라미터들을 추후 공유되는 condition들에게 적용되도록 보존시킨다.
Segmentation probability maps as prior. 이 섹션에서 저자는 segmentation network에 대한 간단한 설명 제공한다. 더욱 상세한 정보들은 보충파일에서 제공된다. LR이미지는 먼저 bicubic 보간법을 이용해 HR size로 키워진다. 이후, segmentation network에 입력으로 들어가게 된다.
network는 COCO dataset을 이용해 pre-training을 진행하며. 이후, ADE dataset을 이용해 fine-tuning된다. 이 segmentation network는 SR network와는 별개로 학습된다. 저자는 LR이미지에 대한 segmentation 결과를 비교했으며, HR이미지에 대한 segmentation 결과와 매우 유사함을 확인하였다. 다만, 매우 작은 object에 대한 segmentation은 고려하지 않았는데, 이는 image segmentation 분야에서 여전히 매우 어려운 문제이기 때문이다. 저자는 k개의 segmentation 이외의 분류결과에 대해서는 background로 분류한다. LR이미지의 segmentation 예시는 다음 (Figure 4)과 같다.
Discussion. Categorical prior를 SR network에 적용시키는 방법은 여려가지가 있는데, 예를들어 segmentation probability map을 concatenate 시키는 것과 같은 방법을 생각해볼 수 있다. 하지만, 이 방법은 CNN의 변화를 이끌어내지 못하는것으로 저자는 판단하고 있다. 다른 방법으로, probability map을 feature map에 concatenate시키는 방법도 생각해볼 수 있는데, 이러한 접근법은 multi-texture synthesis network에서 보여준 바 있다. 이는 SFT만큼 효율적이라고 할 수는 없지만, feature단위의 conditional bias를 위한 post-layer를 추가하는 간단한 방법으로 가능하다. 따라서, SFT의 특수한 경우라고 생각되어질 수 있다. 마지막으로는, 각 semantic class에 맞게 따로 학습되어진 network를 학습시켜, test시에 각각 클래스에 맞는 network를 사용하는 것인데, 이는 매우 비효율적이다.
Architecture
SFT-GAN은 학습 시에 generator와 discriminator가 존재하는 adversarial learning을 기본으로 사용한다. Generator의 구조는 Figure. 3에서 볼 수 있으며, 크게 두개의 부분으로 나눌 수 있는데 하나는 condition network이며 다른 하나는 SR network이다. Condition network는 segmentation probability map을 입력으로 가지며 4개의 conv layer로 구성되어 있으며, 서로 다른 클래스 간의 간섭을 피하기 위해 모든 conv layer에 대해 receptive field를 제한하는 1x1 kernel를 사용한다. SR network는 16개의 residual block과 SFT layer로 구성된다. Skip connection을 사용하여 학습을 쉽게 하며, LR space에서의 모든 processing이 끝나면, 마지막단에서 nearest-neighbor 보간법으로 upsampling 한다.
Loss Function
Perceptual loss와 adversarial loss를 사용하는데, perceptual loss를 계산하는데 사용하는 feature map은 사전학습된 VGG-19 network를 사용하며, 다섯번째 max-pooling layer이전의 네번째 convolution layer를 사용하며, 이들간의 MSE를 계산한다.
EXPERIMENTS
Implementation details. 이 논문에서, 저자는 SFT-GAN의 효과가 가장 두드러지는 outdoor 사진들을 주로 테스트하였다. 예를 들어, 하늘은 부드럽게 표현되고 각이진 edge가 거의 없는 반면, 건물의 경우에는 풍부한 geometric pattern들이 표현되어야 한다. 물은 물결의 부드러운 표면을 표현해야 하며, 풀은 matted texture를 표현해야 한다. 저자는 크게 7개의 category(sky, mountain, plant, grass, water, animal and building)를 설정 하였다.
이후, 저자는 x4실험을 진행하였다. SR network는 ImageNet dataset에 대해 perceptual loss와 GAN loss로 학습된 network를 사용했으며, 30kB 이하의 LR이미지를 제외하여 450k개의 학습이미지를 얻을 수 있었다. LR이미지의 제작방법은 SR에 널리 사용되는 MATLAB bicubic kernel을 사용한 downsampling을 통해 얻었다. 학습 parameter는 다음과 같다. Mini-batch size는 16, HR patch 사이즈는 96x96, LR patch 사이즈는 24x24 이다. (동시대에 발표되었던 타 SR알고리즘보다 학습 patch 사이즈가 매우 작은 것을 알 수 있다.)
초기화 이후, 동일한 학습 setting에서 input segmentation probability map을 활용하여 fine-tuning하였다. 특히, 새로운 outdoor dataset을 제작하여 학습과 테스트에 사용하였다.
저자는 제안하는 SFT-GAN의 성능을 평가하는데 있어서 Set5, Set14, BSD100과 같은 일반적인 dataset은 사용하지 않았는데, 잘 나누어진 segmentation 정보가 부족할 뿐만 아니라, 주된 training set인 풍경사진과는 전혀 다른 이미지들로 이루어져 있기 때문이다. 그럼에도, SFT-GAN모델이 학습된 category를 벗어나는 이미지들에 대해서 좋은 성능을 보여주는 것을 본 논문의 뒷부분에서 입증한다.
Qualitative evaluation
Figure 5는 PSNR-oriented method인 SRCNN, VDSR, LapSRN, DRRN, MemNet, 그리고 GAN-based method인 SRGAN, EnhanceNet들과 SFT-GAN의 결과 비교를 나타낸다. SRGAN의 경우, 저자는 SFT-GAN을 학습시킬 때 사용한 셋팅과 동일한 방법으로 fine-tuing하였으며, EnhanceNet의 경우는 training code가 공개되어있지 않아 별다른 fine-tuing없이 testing에 사용하였다. 결과에서 볼 수 있듯, PSNR-oriented method들은 항상 blurry texture를 보이며, SRGAN과 EnhanceNet은 high-frequency detail들은 살려낸 반면, 단조롭고 자연스럽지 못한 경향을 보인다.
User study
Perceptual quality를 평가하기 위해서는, 다양한 방법들이 시도되고 있지만 현재까지는 user study가 가장 적합한 방법인 것 같다. 본 논문에서도 user study를 진행하였는데, 다음의 그림(Figure 6)에서 PSNR-oriented method들과의 비교 결과를 볼 수 있다.
Figure 7에서는 GAN-based method들과의 비교결과를 보여주는데, EnhanceNet, SRGAN과 저자의 SFT-GAN과의 직접비교 결과를 통해 모두 SFT-GAN이 보다 사실적인 texture를 구현하여 많은 득표를 했음을 볼 수 있다.
Ablation study
From segmentation probability maps to feature modulation parameters. 저자의 SFT layer의 핵심 기능은, Probability map과 feature modulation parameter간의 관계를 분석함으로써 segmentation probability map에 대한 정보를 바탕으로 중간 feature를 변조시킨다는 것이다 (Figure 8). 그림 8에서는 변조 파라미터 각각이 probability map과 밀접한 관련이 있음을 확인할 수 있다. 풀숲, 건물들과 같은 몇가지 클래스들은 명확히 분류되기 힘들다. 이들은 명확한 경계로 나뉘어있지 않고 겹쳐있다. 이러한 모호함에도 불구하고, probability map은 semantic information의 차이를 담고있고, SFT layer는 이러한 작은 차이도 반영하게 된다. 따라서, 그림 9와 같이 plant와 grass에서 SFT layer가 다른 경향을 보이는 것을 볼 수 있다.
Robustness to out-of-category examples. 저자는 SFT-GAN을 outdoor-scene에 대해 중점을 두고 연구를 진행했기 때문에, outdoor-scene 이 아닌 이미지에 대해서는 ourdoor-scene 이미지인것보다 좋지 못한 성능을 보인다. 그럼에도 불구하고, category내에 속하지 않는 (category에 속하지 않는 이미지의 경우, background로 분류함) 이미지의 경우에도 매우 좋은 성능을 보인다. 이러한 결과는 아래 그림10에서 볼 수 있다.
Comparison with other conditioning methods. 저자는 본 연구의 접근법(conditioning method)과 비슷한 접근을 시도했던 다른 모델들 과의 성능비교 또한 실행하였는데, 다음과 같은 방법들과 비교하였다.
1) Input concatenation: 이 방법은, segmentation probability map을 input image와 연결(concatenate)시켜 network의 입력으로 집어넣는 방법인데, SFT conditional bias를 input layer에 더하는것과 같은 방법이라고 할 수 있다.(bias를 input layer에 더한다..?? 잘 이해가지 않는다.)
2) Compositional mapping: 이 방법은, LR image를 분해하여 예측되는 semantic class들로 분해하고, 낮은 단계에서 공유되는 layer이후에 각 class에 따라 학습된 network를 별개로 부착하여 적용시키는 방법이다.
3) FiLM: 이 방법은, spatial information의 사용 없이, 각 feature map에 알맞은 한 개의 parameter를 각각 예측하여 feature map의 변조에 활용하는 방법이다.
그림 11에서 비교 결과를 볼 수 있는데, SFT-GAN이 가장 선명하고 합리적인 결과를 보이는 것을 알 수 있다.
DISCUSSION AND CONCLUSION
논문의 저자가 제안하는 SFT-GAN은 outdoor scene에 대한 SR에서 매우 좋은 성능을 보인다. 그러면서도 out-of-category 이미지들에 대해서도 매우 좋은 성능을 보이지만, 실내 object들에 대한 segmentation등, 더욱 자세한 segmentation category들에 대한 고려는 하지 않았기에 앞으로는 SR문제에도 LR이미지의 segmentation에 대한 필요성이 더욱 증가될 것이다. 따라서, 이후에는 이러한 단점을 보완하는 방법에 대한 연구가 진행되어야 할 것이다.
'공부 > Super Resolution 논문리뷰' 카테고리의 다른 글