딥러닝 분석가 가리

RZSR with Depth Guided Self-Exemplars Review 본문

딥러닝 논문 리뷰

RZSR with Depth Guided Self-Exemplars Review

AI가리 2023. 2. 2. 17:25

"RZSR : Referenced-based Zero-Shot Super-Resolution 
with Depth Guided Self-Exemplars"

 

Abstract

  최근 SISR(Single Image Super Resolution)방법들은 LR(low-resolution) 영상으로 부터 HR(high-Resolution) 영상을 생성하는데 뛰어난 성능을 입증했다. 하지만, 이러한 SISR 방법들은 ideal한 방법으로 생성된 LR 영상에서만 좋은 성능을 보이며 real-world에서 생성된, non-ideal한 방법으로 생성된 LR 영상에서는 성능이 좋지 못하다. 본 논문에서는, robust SR을 위해 개발된 RefSR(Referenced-based SR)과 ZSSR(Zero-shot SR)을 결합한 RZSR(Referenced-based Zero-Shot SR)을 제안한다. ZSSR의 원칙에 따라 입력 영상에서 추출된 샘플을 사용해서 테스트 시 image-specific SR 네트워크를 훈련한다. ZSSR의 이점으로 cross-scale matching을 사용해서 입력 영상에서만 추출된 rich texture와 high-frequency details를 가진 ref 영상 patch를 얻는다. 이후, internal reference 데이터 셋을 구성하고, 데이터의 detpth 정보를 사용해 ref 영상 path들을 되찾는다. LR patches와 이것에 해당하는 HR ref patches를 사용해 non-local attention 모듈을 포함하는 RefSR 네트워크를 훈련한다. 실험결과 RZSR이 이전의 ZSSR과 비교햇을때 더 나은 결과를 보였고 unseen 영상에 대해서 다른 SISR 방법보다 robustness 하다.

 

1. Introduction

  SISR, RefSR, ZSSR, RZSR 방법들의 구조는 그림 1과 같다.

  • SISR은 LR영상을 HR영상으로 복구하는것이 목표이며 딥러닝을 적용시키면서 성능이 많이 향상되었지만, wild 영상에서는 robust하지 못하다는 단점이 있다.
  • RefSR은 SISR과 다르게 rich texture와 high-frequency detail을 가진 HR ref 영상을 사용해 HR영상을 복구한다.
  • 많은 RefSR은 신뢰할 수 있는 ref 영상을 얻거나 덜 유사한 ref 영상을 robust 하게 사용하는 방법을 다루었다.
  • 하지만, ref 영상이 테스트 단계에서 훈련단계에서 만큼의 유사도가 높은 영상을 가진다는 것을 보장할 수 없으므로 RefSR은 real-world 영상에 대해 좋은 성능을 내지 못한다.
  • ZSSR은 real-world 영상에 대해 좋은 성능을 내어 SR의 문제를 해결한 방법으로 영상의 internal recurrence of information을 사용해 훈련한다.
  • 하지만, ZSSR은 단순한 네트워크로 영상의 self-similarity를 명시적으로 처리못하며 receptive field가 제한되어 모델링 능력이 불충분하다.

 

  RefSR과 ZSSR의 이점을 합친 새로운 SR 방법인 RZSR은 그림 1(d)와 같다.

  • RZSR은 ZSSR처럼 동일한 입력 영상으로 부터 영상의 patch 뿐만 아니라 RefSR처럼 ref patch도 사용한다.
  • 하지만 external 영상의 HR patch를 사용하는 RefSR과 다르게, 같은 입력 영상에서 HR ref patch를 사용한다.
  • 이 방법으로 internal patch recurrence를 더 명확하게 사용하고 HR ref patch로 부터 high-frequency detail를 사용한다.
  • 처음 image patch를 depth 값에 따라 모아 대표적인 patch sample을 얻어 클러스터링 해, 다양한 크기의 rich-texture ref patch를 훈련, 테스트를 위해 효율적으로 찾을수 있다.
  • 게다가 RefSR 네트워크는 non-local attention 모듈을 사용해 ref patch를 모두 활용하도록 설계했다.

  제안하는 RZSR의 기여는 다음과 같다.

  • 입력 영상의 RefSR을 위한 interal HR patch database를 구성하기위한 간단하지만 효율적인 방법을 제시한다.
  • depth 정보에 따라 각 LR patch를 관련있는 HR ref patch에 할당하는 효율적인 방법을 제안한다.
  • RZSR 구조는 HR ref patch의 모든 이점을 챙길 수 있어, reference-free version에 비해 상당한 성능 개선을 이끌었다.
  • RZSR은 unseen 영상에 대해 fully-supervised SR방법보다 robustness 하고 ZSSR 보다 성능이 좋다.

 

2. Proposed Method

2.1 Construction of Internal Patch Database

  RefSR 방법과 비슷한 RZSR은 고성능의 SR을 위해 고해상도의 ref 영상이 필요하다. 이전의 internal SR 방법에 영감을 받아, 고 해상도의 ref patch를 입력 영상의 cross-scale patch matching을 통해 찾는다. 하지만, RZSR이 LR 영상으로 테스트 단계에서 네트워크를 훈련해야해기 때문에 exhaustive(철저한, 하나도 빠짐없이) patch matching을 수행하는것은 수용할 수 없는 계산 비용을 초래할 수 있다. 그래서 depth 정보를 사용해 간단하지만 효율적인 patch database construction 방법을 개발한다.

  그림 2는 interanl patch database 제작 과정에 대한 그림이다.

  • LR 영상이 주어졌을때 aligned depth map을 추정한다.
  • Depth map은 monocular depth estimation 기술이나 추가적인 영상 alignment 과정을 거친 depth sensor로 부터 얻는다.
  • Internal ref patch database는 두가지 intuitions(직관)에 기반해 구성된다.
    1. LR patch가 주어지면, 해당하는 rich texture와 detail은 그 자체보다 더 가깝게 위치할 가능성이 높다.
    2. Redundant(쓸모없는) patch는 natural 영상에 존재하므로, 몇가지 대표적인 patch들은 일치하는 후보로 사용하기에 충분하다.
  • 두가지 intuitions에 기반해 LR 영상을 depth range(전체 depth를 D로 균일하게)로 나누고 중앙의 depth 값에 따라 영상 patch를 수집한 뒤, 영상 patch의 VGG feature에 k-medoids 클러스터링을 적용해 각 depth 범위에 대한 대표적인 영상 patch를 얻는다.
  • 실험결과는 중앙 픽셀 값을 사용하는것이 평균 또는 중앙값을 사용하는것 보다 subsequent clustering process에 유리하다는것을 보여줬다.
  • 그 결과로 생긴 patch database는 그림 2에 나타난 바와 같이, 대표적인 patch들과 그들의 중심 위치, depth 값들로 구성된다.

2.2 Reference Patch Retrieval

  이전의 ZSSR 방법과 비슷하게 원본 LR 영상과 downsampled 버전에서 LR-HR patch 쌍을 얻을수 있다. 각 LR-HR patch에 해당되는 patch들을 LR son, HR father라고 부른다. RZSR은 LR son의 RefSR을 위해 ref 영상으로 사용할 수 있는 HR cousin을 찾는다. RZSR을 포함한 어떠한 ZSSR은 임의의 scale factor를 처리할 수 있다. 간결하게 scale factor가 2인 RZSR을 설명한다.

  • I, I↓2, I↓4는 입력 영상이며 scale factor 2, 4로 downsample 된 영상이다.
  • Px, Px↓2, Px↓4는 각 영상 I에 대한 patch이고, x는 영상의 중앙 위치이다.
  • 만약 Px↓2를 LR son 이라고 한다면, P2x는 HR father가 될 수 있다.
  • Cross-scale patch matching에서 LR son에 대해 가장 적합한 match는 I↓4에서 찾았다.
  • 예를 들어, Py↓4의 best match가 Px↓2 라면, Py↓4의 father안 P2y↓2는 HR cousin 이다.

  본 연구에서는 exhaustive cross-scale patch matching 없이 고 해상도의 HR cousin을 얻기위해 시도한다. 그림 3(a)는 훈련 단계에서의 HR cousine retrieval(회수, 검색) 절차이다.

  • Internal patch database, Θ↓2는 2.1 절에 묘사된 방법으로 I↓2로 부터 생성된다.
  • I↓4 으로 부터 새로운 patch database를 생성하는것 대신에, 직접적으로 Θ↓2(I↓4 으로 부터 해당되는 patch들을 간단하게 추출한)로부터 Θ↓4를 얻는다. Θ↓2 = {Px1↓2, Px2↓2, ... , Pxn↓2}, Θ↓4 = {Px1/2↓4, Px2/2↓4, ... , Pxn/2↓4}
  • d는 Px↓2의 중앙에 대한 depth 값이고, 다음 식과 같이 모든 Px↓2에 대해 Θ↓4를 사용해 HR coursin을 검색한다.

식 1

  • Y↓4는 d 보다 작은 depth 값을 가진 Θ↓4 안에 있는 patch들의 center position의 집합이다.
  • Px↓2와 Py↓4는 같은 크기를 가지고 있고 dist는 그들의 거리를 측정하는것(VGG distance 사용) 이다.
  • Image-level 에서 VGG feature는 I↓2와 I↓4를 각각 추출하고, Px↓2, Py↓4의 patch-level VGG feature는 index x, y를 사용해 image-level VGG feature로부터 추출되어 HR cousin인 Px↓2는 P2y*↓2로 결정된다.

  Best HR cousin을 interanl path database로 부터 찾으려고 하지만, HR cousin은 항상 LR son을 SR하는데 도움을 준다고 할 수 없다. 특히 HR cousin은 depth map을 믿을수 없거나 입력 영상에 cross-scale self-similarity가 부족할 경우 도움이 되지 못한다. 그래서 식(1)을 사용하면서 best match를 얻는 동안에 최소 거리를 유지하고 임계값 T와 비교한다. 만약 최소 거리가 T 보다 클 경우, undesirable ref 영상이 RZSR 훈련에 해가 되지 않도록 Px↓2의 bicubic upsampled 버전인 HR cousin을 사용한다.

2.3 SR Network

  LR son, HR father, HR cousin 3가지가 주어졌을때 SR 네트워크를 supervised 방법으로 훈련한다. SR 네트워크의 구조는 그림 4와 같다.

  • ZSSR, Blind-SR(Internal-GAN)와 비슷하게 LR son이 출력크기로 upscale 되어 네트워크에 입력된다.
  • Upsacle된 영상은 또한 네트워크의 출력과 더해진다. (residual learning)
  • Feature extractor는 8개의 convolutional layer와 128개의 채널로 구성되고, 마지막 3개의 conv layer는 stride를 2로 한다.

  SR 네트워크의 non-local은 두가지 측면이 있다.

  • HR cousin은 interanl patch database에서 얻기 때문에, 실제 receptive field는 전체 영상을 이상적으로 덮는다.
    receptive field : 출력 레이어의 뉴런 하나에 영향을 미치는 입력 뉴런들의 공간 크기
  • HR cousin의 rich texture와 high-frequency details를 완전히 이용해서, non-local neural netowork에서 영감을 받아 non-local attention module을 사용한다.

  F^s와 F^c는 LR son, HR cousin이고, non-local block는 그림 5와 같으며 계산은 다음 식(2)와 같이 계산된다.

식 2

  • h, θ, φ, 그리고 g 는 feature embedding을 위한 1x1 convolution layer이고, N 은 normalication factor 이다.
  • x는 output position에 대한 index, y는 모든 position을 열거한 index 이다.
  • Fx^s는 x 위치에 대한 feature vector F^s을 나타내고 F(bar)^s는 non-local block의 output feature 이다.

  식(2)는 output feature를 얻기 위해 F^s와 F^c 둘다 사용하는 residual connection과 embeded Gaussian을 가진 non-local neural network의 non-local block와 같다. 이 방법으로 LR feature에 대해 높은 선호도(affinity)를 가진 HR feature를 추가해, HR cousin 에서 LR son으로 robust한 feature를 전송할 수 있다. Non-local attention module은 multi-scale non-local block을 가진다. 마지막으로 다른 scale을 가진 3가지 feature는 LR son과 HR cousin으로 부터 추출되어 F^s1, ... , F^c3로 정의된다. 정의된 feature들의 non-local attention은 다음과 같이 연산된다. 이 방법으로 HR cousin으로 부터 multi-scale feature의 이점을 가질 수 있다. SR 네트워크의 훈련은 L2 loss를 사용한다.

  1. 첫번째 scale에서는 non-local block(NLB)에 F^s1과 F^c1을 사용한 식(2)를 적용한다.
  2. 두번째 scale은 첫번째 NLB의 출력이 transposed convolutional layer(stride 2)로 크기가 재조정되고 조정된 결과와 F^c2가 NLB 연산을 거쳐 F^s2와 add 된다.
  3. 세번째 scale은 2번과 같다.

2.4 Inference

  Downsample된 영상을 원본 영상처럼 upsample 하는 방법을 학습한 이후에, 실제 SR은 주어진 영상에 적용된다. Inference 단계에서는 HR father가 없고, 원본 영상 I로 부터 LR son과 HR cousin을 얻는다. 그림 3(b)는 inference 단계에서 HR cousin 검색  절차를 보여준다. I 의 cross-scale matching을 위해, 학습 단계에서 얻어진 Θ↓2를 사용한다. Px의 중심을 depth 값인 d 로 되도록 한다. 각 Px에 대해 Θ↓2에서 HR cousin을 검색하고 식은 다음과 같다. 따라서 HR cousin인 Px는 P2y*에서 주어진다. 2.2에서 나타난 임계값(thresholding)과 동일한 방법은 inference 단계에서 신뢰할수 없는 HR cousin 사용을 피하는데 사용된다. Patch matching은 훈련 단계에서 식(1)로 Px↓2와 Py↓4로 수행하지만, inference 단계에서는 식(3)으로 Px와 Py↓2로 수행한다.

식 3

  • Y↓2는 depth 값이 d 보다 작은 Θ↓2안에 있는 patch들의 중심 값에 대한 집합이다.

  LR son인 Px와 HR cousin인 P2y*가 주어졌을때, HR patch P^*(2x)는 훈련된 SR 네트워크를 사용해 얻는다, P^*(2x) =
NΦ (Px , P2y). ZSSR과 같은 전처리 방법이 개선되어 RZSR에 사용한다. MxM 크기를 가지는 각 Px에 대해, 2Mx2M 크기의 P^*(2x)를 얻는다. SR 네트워크는 stride s=4 가 있는 sliding window 방식으로 적용되고, full size 영상을 재구성 하기 위해 겹치는 영역을 평균화 했다.

 

3. Experimental Results

3.1 Dataset and Experimental setup

  • Dataset : Set5, Set14, DIV2K, Urban100, Degradation : MATLAB bicubic downsampling
  • Test 시 real-world 환경을 고려해서, DIV2KRK와  downsampling 전에 random anisotropic Gaussian  blur kerenl 로 생성된 Set5RK, Set14RK, Urban100RK를 사용한다.
  • Test 영상마다 depth map을 얻기 위해 depth estimation model인 pre-train된 AdaBins를 사용한다.
  • YCbCr 색 공간에서 PSNR과 SSIM으로 성능을 측정한다.
  • 또한, NIQE, PI, NIMA을 사용해 Historical 영상도 SR 한다.
    NIQE(nautralness image quality evaluator), PI(perceptual index), NIMA(neural image assessment)
  • Deep learning Framework : PyTorch, GPU : Nvidia TITAN RTX GPU, Optimizer : Adam, Loss : L2,
    Learning rate : 0.001, Lr Schedule : same to original ZSSR

3.2 Parameter Settings and Ablation Studies

  Depth range 와 threshold 에 따라 실험한 결과는 표 1과 같다.

  • Depth range D 는 5, threshold T 는 0.9로 설정한다. (default)
  • 각 depth range 대해 cluster를 k 개의 수로 변경했다. k_iN_i /100를 따르며 i는 i 번째 depth range, N_i는 해당 영상 patch의 수, ·⌉ 는 ceiling function(각 실수 이상의 최소 정수) 이다.
  • Default 설정에 따라 DT 를 변화시켜 DIV2K, Urban100 데이터 셋을  x2 SR하여 실험한다.
  • 그 결과 default 설정이 가장 좋은 성능을 보였다.

  Patch size MxM을 변화시키며 실험한 결과는 표 2와 같다.

  • Patch size MxM을 증가시킬 수록, 훈련에 적용 가능한 patch 수는 감소한다.
  • M이 증가 할 수록 ref patch dataset의 element 수 또한 감소되어 ref 영상이 불필요할 정도로 큰 LR patch 학습에 도움이 덜 될 수 있다.
  • 하지만, SR 네트워크는 일반적으로 feature를 충분히 학습하기 위해 larege receptive filed를 사용하는것을 선호한다.
  • Patch size를 각 32, 48, 64로 하여 실험 했으며, 48일때 가장 높은 성능을 보였다.
  • 또한 모델을 HR cousin을 사용하지 않는 그림 6(a), single-scale non-local block을 가진 그림 6(b), depth 정보를 가진 internal patch database를 사용하지 않는 w/ES 그리고 제안하는 모델을 비교한다.
  • Patch size 가 48일 경우 w/ES와 제안하는 모델의 성능 차이는 별로 나지 않지만 연산 시간이 50~100초 정도 차이난다.

  Depth map에 따라 RZSR의 성능에 미치는 영향을 표3에 나타냈다.

  • Depth map을 사용하지 않는 w/o depth, Monodepth2, AdaBins의 결과를 비교한다.
  • Monodepth2의 경우 연산 시간은 가장 적게 걸렸지만 depth map을 사용하지 않은것보다 성능이 좋지 않다.
  • AdaBins는 SotA임에도 불구하고 그림 7에 나타나듯이 reliable depth map을 제공하지 못해 unreliable HR cousin은 2.2 에서 소개된 thresholding 방법으로 LR son을 bicubic로 upsample한 것을 사용한다.
  • 결론적으로, 제안된 방법은 이러한 실패 사례 때문에 ref-free 버전(w/o depth)과 유사하게 수행되었다.

3.3 Performance Comparison

  Bicubic-downsampled 영상을 사용해 RZSR과 다른 SR 방법들을 비교한 결과는 표 4와 같다.

  • Bicubic-downsampled 에서는 SAN+가 모든 scale factor에서 ZSSR, RZSR보다 현저히 높은 성능을 보인다.
  • 제안된 RZSR은 ZSSR보다 x2 SR에서 PSNR이 약 0.8정도 더 높다.

  Random kernel로 얻어진 downsampled 영상으로 PSNR과 SSIM을 측정한 결과는 표 5와 같다.

  • SR 방법을 Bicbuically trained와 Blind 두가지로 분류해서 성능을 비교한다.
  • Bicbuically trained SR들은 bicubic 데이터에 비해 성능이 현저히 낮아졌고, 반면에 RZSR은 모든 데이터셋에 대해 가장 좋은 성능을 보였다.
  • Blind는 robust 한 SR을 위해 downsampling kernel을 추정하는 방법으로 scale factor 2에서만 성능을 비교한다.
  • ZSSR과 RZSR의 경우 KernelGAN을 사용해 kernel을 추정했고, 훈련을 위해 입력 영상을 downsample 할 때 estimated kernel을 사용한 반면, DualSR과 IKC는 SR 하는 동안에 estimated kernel을 사용했다.
  • DualSR, ZSSR, RZSR의 성능이 다은것에 비해 높게 나왔고, 그중 RZSR의 성능이 가장 높다.

  그림 8은 정성적 결과들이다.

  • 제안된 방법이 다른 방법들에 비해 edge가 sharper 하고 detail들이 finer 하다.
  • SAN+ 는 random kernel로 얻어진 LR 영상에 대해 bicubic upsampling에 대한 이점을 보여주지 못했다.
  • DualSR은 마지막 두줄의 그림에 대해 RZSR보다 PSNR이 높지만 structure와 texture detail에 대해 덜 선명하다.

  그림 9는 Historical에 대한 정성적 결과이며 이에 대한 정량적 결과는 표 6에 나타난다.

  • Kernel GAN은 이러한 오래된 사진에 robust하지 못하므로 ZSSR과 RZSR에 적용하지 않았다.
  • RZSR은 다른 방법들 보다 더 적은 artifacts(잡영)을 가지고 HR 영상을 만들어, PI, NIMA의 성능이 가장 좋다.
  • NIQE의 경우 bicbuic의 성능이 가장 좋다고 나와있지만, 정성적 결과에서는 blur한 영상을 생성해서 영상 품질 향상의 목적과 맞지 않다.

  그림 10은 SR모델에 Urban100RK 데이터로 x2 SR하여 PSNR을 측정한 결과이다.

  • Blind SR 방법들이 bicubic SR 방법들보다 시간이 더 오래 걸리지만 real-world 데이터에 대해선 PSNR이 더 높다.
  • DualSR*와 ZSSR*는 기존의 DualSR과 ZSSR보다 convolutional layer 수를 늘린 형태이다.
  • RZSR과 KernelGAN을 결합했을때의 성능이 가장 높다.

 

4. Conclusion

  • 본 논문에서는 RefSR과 ZSSR을 합친 RZSR을 제안한다.
  • 클러스터링과 depth 정보를 이용해 영상 별 internal reference datset을 구성해, rich texture와 high-frequency detail을 가진 ref 영상 patch를 얻을수 있다.
  • Ref SR 네트워크는 non-local attention module을 포함하고 있어, 좀 더 적극적으로 영상의 self-similarity를 이용한다.
  • 실험결과에서 RZSR이 효율적인것을 증명했다.
  • 이 연구의 한계를 고려해 몇 가지 미래의 연구 방향을 제시 할 수 있다.
    1. ZSL(Zero-Shot Learning)의 원칙에 충실하기 위해 외부 영상을 사용해 SR 네트워크를 훈련하지 않았다.
    2. 최근 서로 다른 시야를 가진 여러대의 카메라를 가지고 있기 때문에, 우리는 다른 이용 가능한 곳에서 유용한 ref 영상을 얻을 수 있을 것으로 기대한다.
    3. RZSR은 ref 영상을 검색하기 위해 depth 정보를 사용한다.

Paper

https://doi.org/10.48550/arXiv.2208.11313

Comments