[논문 리뷰] DPSR(Deep Plug-and-play Super-Resolution for Arbitrary Blur Kernels)

고주원·2021년 7월 8일
1
post-thumbnail

Abstract

DNN기반의 SISR 방법은 빠르게 많은 인기를 얻고있지만, 대부분이 널리 사용되는 bicubic decruction용으로 설계되었으며, 임의의 Blur Kernal을 사용해서 LR 이미지를 SISR 해야하는 근본적인 과제가 남아있습니다. 그러는 동안에 plug-and-play* 이미지 복원은

*보통 컴퓨터 주변기기를 꽂아서(plug) 바로 사용한다(play)라는 의미로 사용됩니다. 이 논문에서는 DNN 모델 교체 없이 하나의 모델로 다양한 상태(blur, noise 등)의 LR 이미지에 대해 유연하게 처리가 가능하다는 의미로 해석됩니다.

모듈 구조로 이루어져있어, Denoise 제약조건의 간편한 플러그인으로 인해 높은 유연성을 인정받았습니다.
해당 논문에서는 plug-and-play 프레임워크의 도움을 받아 Deep SISR 기반의 bicubic 열화를 확장해 임의의 Blur kernal로 LR이미지를 처리하는 원칙적인 folmulation과 프레임워크를 제안합니다. 새로운 열화를 유발하는 에너지 함수를 최적하기 위해서 가변 분할 기술을 사용합니다. 이것을 통해 plug-and-play 알고리즘을 도출합니다. 모듈 파트로 denoiser가 아닌 super-resolver를 연결합니다. 합성 및 실제 LR 이미지에 대한 정량적 및 정성적 평가를 통해 Deep Plug-and-play SISR 프레임워크가 Blur LR 이미지를 처리하는데 유연하고 효과적이라는 것을 알 수 있습니다.

모델 분석

  • Blur 커널에 대한 추정을 용이하게 하기 위해서 만든 성능 저하 모델은 다음과 같습니다.

    y=(xs)k+ny=(x\downarrow_s)\otimes k+n

  • s\downarrow_s는 bicubic을 이용해 scale만큼 낮추는 downsampler입니다.

  • 결국 위 모델은 yy는 bicubic으로 downsample되고, 블러와 노이즈가 낀 상태의 xx입니다.

  • LR 이미지를 합성 또는 증강하기 위해서 bicubic downsampler를 대부분 사용합니다.

  • 그러므로 bicubic downsample된 HR 영상(즉 xsx\downarrow_s)도 깨끗한 이미지라는 것이 합리적인 가정입니다.

  • 이러한 가정에 따르면 위 모델은 결국 블러링 문제와 bicubic degradataion 문제에 해당합니다.

  • 따라서, 저자들은 kk를 추정하기 위해 잘 연구된 기존의 deblurring 방법을 사용합니다.

  • 기존에 사용하던 아래와 같은 방법보다는 분명히 잘 작동합니다.

y=(xk)s+ny=(x\otimes k)\downarrow_s+n

  • degradation 모델이 정의되면 다음 단계는 에너지 함수를 공식화 하는 것입니다.

  • 최대 사후 확률에 따라 에너지 함수는 다음과 같습니다.

minx12σ2y(xs)k2+λΦ(x)\min _{\mathbf{x}} \frac{1}{2 \sigma^{2}}\left\|\mathbf{y}-\left(\mathbf{x} \downarrow_{s}\right) \otimes \mathbf{k}\right\|^{2}+\lambda \Phi(\mathbf{x})

  • 12σ2y(xs)k2\frac{1}{2 \sigma^{2}}\left\|\mathbf{y}-\left(\mathbf{x} \downarrow_{s}\right) \otimes \mathbf{k}\right\|^{2}는 degradation 모델에 의해 결정된 데이터 충실도(우도) 항이며, Φ(x)\Phi(\mathbf{x})는 정규화(prior)항이며, λ\lambda는 정규화 파라미터입니다.

  • discriminative 학습 방법의 경우, 그 추론 모델은 실제로 degradation 모델이 LR과 HR 쌍에 의해 함축적으로 정의되는 에너지 함수에 해당합니다.

  • 그렇기 때문에 bicubic degradation에 의해 교육된 기존 DNN 기반 SISR 방법론이 실제 영상에서 제대로 수행되지 않는 이유가 설명됩니다.

  • 위 수식을 해결하기 위해, 먼저 가변 분할 기술을 채택하여 보조 변수 z를 도입함으로써 다음과 같은 등가 제약 최적화 공식으로 이어집니다.

x^=argminx12σ2yzk2+λΦ(x)\hat{\mathbf{x}}=\arg \min _{\mathbf{x}} \frac{1}{2 \sigma^{2}}\|\mathbf{y}-\mathbf{z} \otimes \mathbf{k}\|^{2}+\lambda \Phi(\mathbf{x})
subject to z=xsz=x\downarrow_s

  • 그런 다음 half quadratic splitting(HQS) 알고리즘을 사용하여 위 수식을 처리합니다. ADMM과 같은 다른 알고리즘도 활용할 수 있습니다. 단순성을 위해 HQS를 사용합니다.

  • 일반적으로, HQS는 추가적인 quadratic 패널티 term을 포함하는 다음 문제를 최소화함으로써 위 수식과 tackle합니다.

Lμ(x,z)=12σ2yzk2+λΦ(x)+μ2zxs2\mathcal{L}_{\mu}(\mathbf{x}, \mathbf{z})=\frac{1}{2 \sigma^{2}}\|\mathbf{y}-\mathbf{z} \otimes \mathbf{k}\|^{2}+\lambda \Phi(\mathbf{x})+\frac{\mu}{2}\left\|\mathbf{z}-\mathbf{x} \downarrow_{s}\right\|^{2} <- Eqn. (7)

  • 여기서 μ\mu는 페널티 파라미터이며, 매우 큰 μ\muzzxsx\downarrow_s와 거의 동일하게 적용합니다. 일반적으로 μ\mu는 위 수식에 대한 다음 반복 솔루션 동안 비내림차순으로 변합니다.
{zk+1=argminzyzk2+μσ2zxks2xk+1=argminxμ2zk+1xs2+λΦ(x)\left\{\begin{array}{l} \mathbf{z}_{k+1}=\arg \min _{\mathbf{z}}\|\mathbf{y}-\mathbf{z} \otimes \mathbf{k}\|^{2}+\mu \sigma^{2}\left\|\mathbf{z}-\mathbf{x}_{k} \downarrow_{s}\right\|^{2} \\ \mathbf{x}_{k+1}=\arg \min _{\mathbf{x}} \frac{\mu}{2}\left\|\mathbf{z}_{k+1}-\mathbf{x} \downarrow_{s}\right\|^{2}+\lambda \Phi(\mathbf{x}) \end{array}\right.

Eqn. (8)

  • 각각 z와 x에 대한 Eqn. (7)과 Eqn. (8)이 번갈아 일어나는 최소화 문제임을 알 수 있습니다. 특히, 원 경계 조건에서 컨볼루션이 수행된다고 가정할 때, Eqn. (7)은 빠른 폐쇄형 솔루션을 사용합니다.

zk+1=F1(F(k)F(y)+μσ2F(xks)F(k)F(k)+μσ2)\mathbf{z}_{k+1}=\mathcal{F}^{-1}\left(\frac{\overline{\mathcal{F}(\mathbf{k})} \mathcal{F}(\mathbf{y})+\mu \sigma^{2} \mathcal{F}\left(\mathbf{x}_{k} \downarrow_{s}\right)}{\overline{\mathcal{F}(\mathbf{k})} \mathcal{F}(\mathbf{k})+\mu \sigma^{2}}\right)

  • 여기서 F()\mathcal{F}(\centerdot)F1()\mathcal{F}^{-1}(\centerdot)은 Faster 푸리에 변환을 나타내며 F()\overline{\mathcal{F}(\cdot)}F()\mathcal{F}(\centerdot)의 complex conjugate를 나타냅니다. 베이지안 관점에서 다음과 같은 수식을 분석하기 위해 다음과 같이 다시 씁니다.

xk+1=argminx12(1/μ)2zk+1xs2+λΦ(x)\mathbf{x}_{k+1}=\arg \min _{\mathbf{x}} \frac{1}{2(\sqrt{1 / \mu})^{2}}\left\|\mathbf{z}_{k+1}-\mathbf{x} \downarrow_{s}\right\|^{2}+\lambda \Phi(\mathbf{x}) <- Eqn.(10)

  • 위 수식은 분명히 zk+1\mathbf{z}_{k+1}이 이미지 x\mathbf{x}에서 바이큐빅 다운 샘플링 된 다음 노이즈 레벨 1/μ\sqrt{1 / \mu}의 AWGN에 의해 손상되었다고 가정하여 스케일 계수를 갖는 super-resolving zk+1\mathbf{z}_{k+1}에 해당합니다.

  • 다른 관점에서 위 수식은 아래와 같은 간단한 바이큐빅 degradation 모델을 통해 super-resolution 문제를 해결합니다.

y=xs+n\mathbf{y}=\mathbf{x}_{\downarrow s}+\mathbf{n}

  • 그 결과, 널리 사용되는 바이큐빅 degradation에 대해 학습을 받은 DNN 기반 super-resolver를 특정 노이즈 레벨과 연결하여 Eqn.(10)을 대체할 수 있습니다. 간결성을 위해 Eqn. (8) 및 Eqn. (10)을 다음과 같이 추가로 다시 작성할 수 있습니다.

xk+1=SR(zk+1,s,1/μ)\mathbf{x}_{k+1}=\mathcal{S} \mathcal{R}\left(\mathbf{z}_{k+1}, s, \sqrt{1 / \mu}\right)

  • SR\mathcal{S} \mathcal{R}은 super-resolver입니다.

  • 지금까지 Eqn. (7)과 Eqn. (8)이 제시한 두 가지 하위 문제는 비교적 쉽게 해결할 수 있다는 것을 알게 되었습니다. 사실, 그들은 또한 명확한 해석을 가지고 있습니다.

  • 한편, 블러 커널은 폐쇄형 솔루션에만 관련되므로, Eqn. (7)은 블러 왜곡 문제를 해결합니다.

  • 즉, 현재 추정치를 덜한 blur 추정치로 끌어당깁니다. 반면에 Eqn. (8)은 blur 이미지를 보다 깨끗한 HR 이미지에 매핑합니다.

  • 여러 번 번갈아 반복한 후에는 최종적으로 재구성된 HR 영상엔 blur 및 노이즈가 없을 것으로 예상됩니다.

Deep super-resolver prior

  • DNN의 장점을 활용하기 위해서는 Eqn. (12)에 따라 노이즈 레벨을 입력으로 삼는 super-resolver 네트워크를 지정해야 합니다.

  • 추가 노이즈 레벨 맵을 입력으로 가져옴으로써 기존의 DNN 기반 슈퍼 리졸버 대부분을 수정하기만 하면 됩니다.

  • 또는 SRMD의 입력엔 이미 노이즈 수준 맵이 포함되어 있기 때문에 SRMD를 super-resolver로 직접 채택할 수 있습니다.

  • 논문에서는 SRResNet을 노이즈를 포함한 수정된 네트워크 SRResNet+를 제안했습니다.

  • SRResNet+는 여러 면에서 SRResNet과 다릅니다.

    1. SRResNet+는 추가로 노이즈 레벨 맵 M을 입력으로 사용합니다.
    2. SRResNet+는 기능 맵의 수를 64개에서 96개로 늘립니다.
    3. Batch Norm 과정이 생략되었습니다.
  • 각 스케일 팩터에 대해 별도의 SRResNet+ 모델을 교육하기 전에 주어진 HR 이미지에서 LR 이미지와 노이즈 레벨 맵을 합성해야 합니다.

  • Eqn. (11)에서 제공하는 성능 저하 모델에 따라 LR 영상은 HR 영상에서 바이큐브 다운샘플링된 다음 사전 정의된 노이즈 레벨 범위에서 노이즈 레벨 μ\mu을 사용하여 AWGN에 의해 손상됩니다.

  • 해당 노이즈 레벨 맵의 경우 LR 영상과 동일한 공간 크기를 가지며 모든 요소는 σ\sigma입니다.

  • Adam optimizer를 사용하고 learning rate는 10410^{-4}에서 시작해 5×1055\times10^5번 마다 반으로 줄이고 최종적으로 10710^{-7}만큼 작게 만듭니다.

  • 배치사이즈는 16으로 patch사이즈는 48×4848\times48입니다.

  • 학습 과정에서는 회전과 flip을 기반으로한 데이터 증강 과정이 있습니다.

  • 1080ti 그래픽카드를 pytorch로 사용합니다.

profile
Deep learning for super-resolution

0개의 댓글