Yin的笔记本

vuePress-theme-reco Howard Yin    2021 - 2025
Yin的笔记本 Yin的笔记本

Choose mode

  • dark
  • auto
  • light
Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Shell
  • Tex
  • Rust
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
author-avatar

Howard Yin

304

Article

153

Tag

Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Shell
  • Tex
  • Rust
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
  • Deep Unfolding Network for Image Super-Resolution

    • 概括
      • 研究现状
      • 本文贡献
    • 本文使用的基于模型的方法:Deep Unfolding
      • 图像降质的光学模型
      • MAP(最大后验概率) framework 估计高清图
      • 半二次分裂(half-quadratic spliting, HQS)算法
      • MAP framework + HQS = Deep Unfolding
    • Deep Unfolding + 机器学习
      • 估计模糊核k\bm kk
      • Data Module
      • Prior Module
      • 超参数 Module
    • 训练
      • 效果

      Deep Unfolding Network for Image Super-Resolution

      vuePress-theme-reco Howard Yin    2021 - 2025

      Deep Unfolding Network for Image Super-Resolution


      Howard Yin 2021-05-15 08:22:05 论文笔记超分辨率
      @inproceedings{DeepUnfoldingNetworkImage2020,
        title = {Deep {{Unfolding Network}} for {{Image Super}}-{{Resolution}}},
        booktitle = {2020 {{IEEE}}/{{CVF Conference}} on {{Computer Vision}} and {{Pattern Recognition}} ({{CVPR}})},
        author = {Zhang, Kai and Van Gool, Luc and Timofte, Radu},
        date = {2020-06},
        pages = {3214--3223},
        publisher = {{IEEE}},
        location = {{Seattle, WA, USA}},
        doi = {10.1109/CVPR42600.2020.00328},
        url = {https://ieeexplore.ieee.org/document/9157092/},
        urldate = {2021-05-14},
        archiveprefix = {arXiv},
        eprint = {2003.10428},
        eprinttype = {arxiv},
        eventtitle = {2020 {{IEEE}}/{{CVF Conference}} on {{Computer Vision}} and {{Pattern Recognition}} ({{CVPR}})},
        isbn = {978-1-72817-168-5},
        keywords = {Computer Science - Computer Vision and Pattern Recognition,Electrical Engineering and Systems Science - Image and Video Processing},
        langid = {english}
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19

      # 概括

      # 研究现状

      • 基于模型的方法:基于图像降质的光学模型对图像进行超分辨率
        • 不需要训练,也没有超参数
        • 能适应不同的缩放尺度、模糊核和噪声
        • 可解释性好
      • 基于机器学习的方法:使用机器学习中的一些方法对图像进行超分辨率
        • 需要大量数据进行训练
        • 训练数据决定了适用范围,单一个模型无法适应多种不同的缩放尺度、模糊核和噪声
        • 效果比基于模型的方法好

      # 本文贡献

      结合基于模型的方法和基于机器学习的方法进行超分辨率

      # 本文使用的基于模型的方法:Deep Unfolding

      Deep Unfolding 是前人已有的研究,是一种基于光学模型的迭代求解方法

      参考论文:《Learning Deep CNN Denoiser Prior for Image Restoration》

      # 图像降质的光学模型

      y=(x⊗k)↓s+n\bm y=(\bm x\otimes\bm k)\downarrow_{\bm s}+\bm n y=(x⊗k)↓s​+n

      1. (x⊗k)(\bm x\otimes\bm k)(x⊗k):原始高清图像x\bm xx与一个模糊核k\bm kk卷积
      2. ↓s\downarrow_{\bm s}↓s​:进行s×s\bm s\times\bm ss×s下采样(其实就是池化)
      3. n\bm nn:噪声

      # MAP(最大后验概率) framework 估计高清图

      已知模糊核k\bm kk,使E(x)E(\bm x)E(x)最小的高清图像x\bm xx就是最大后验概率估计得到的高清图

      E(x)=12σ2∥y−(x⊗k)↓s∥2+λΦ(x)E(\bm x)=\frac{1}{2\sigma^2}\parallel\bm y-(\bm x\otimes\bm k)\downarrow_{\bm s}\parallel^2+\lambda\Phi(\bm x) E(x)=2σ21​∥y−(x⊗k)↓s​∥2+λΦ(x)

      1. 12σ2∥y−(x⊗k)↓s∥2\frac{1}{2\sigma^2}\parallel\bm y-(\bm x\otimes\bm k)\downarrow_{\bm s}\parallel^22σ21​∥y−(x⊗k)↓s​∥2:保真项
      2. λΦ(x)\lambda\Phi(\bm x)λΦ(x):用于处理噪声的惩罚项,λ\lambdaλ为trade-off参数

      # 半二次分裂(half-quadratic spliting, HQS)算法

      原问题:

      minxf(x)+g(x)min_x f(x)+g(x) minx​f(x)+g(x)

      半二次分裂近似问题:

      minx,zf(x)+g(z)s.t.x=z\begin{aligned} &min_{x,z}&f(x)+g(z)\\ &s.t.&x=z \end{aligned}​minx,z​s.t.​f(x)+g(z)x=z​

      增广拉格朗日:

      L(x,z;μ)=f(x)+g(z)+μ2∥x−z∥2\mathcal L(x,z;\mu)=f(x)+g(z)+\frac{\mu}{2}\parallel x-z\parallel^2 L(x,z;μ)=f(x)+g(z)+2μ​∥x−z∥2

      半二次分裂迭代求解:

      {zk+1=argminzf(xk)+g(z)+μ2∥xk−z∥2xk+1=argminxf(x)+g(zk)+μ2∥x−zk∥2\left\{\begin{aligned} z_{k+1}&=argmin_z f(x_k)+g(z)+\frac{\mu}{2}\parallel x_k-z\parallel^2\\ x_{k+1}&=argmin_x f(x)+g(z_k)+\frac{\mu}{2}\parallel x-z_k\parallel^2\\ \end{aligned}\right.⎩⎪⎪⎨⎪⎪⎧​zk+1​xk+1​​=argminz​f(xk​)+g(z)+2μ​∥xk​−z∥2=argminx​f(x)+g(zk​)+2μ​∥x−zk​∥2​

      固定xxx优化zzz、固定zzz优化xxx,如此循环往复逼近最优解。

      # MAP framework + HQS = Deep Unfolding

      原问题:

      minxE(x)=12σ2∥y−(x⊗k)↓s∥2+λΦ(x)min_{\bm x} E(\bm x)=\frac{1}{2\sigma^2}\parallel\bm y-(\bm x\otimes\bm k)\downarrow_{\bm s}\parallel^2+\lambda\Phi(\bm x) minx​E(x)=2σ21​∥y−(x⊗k)↓s​∥2+λΦ(x)

      半二次分裂近似+增广拉格朗日:

      L(x,z;μ)=12σ2∥y−(z⊗k)↓s∥2+λΦ(x)+μ2∥z−x∥2\mathcal L(\bm x,\bm z;\mu)=\frac{1}{2\sigma^2}\parallel\bm y-(\bm z\otimes\bm k)\downarrow_{\bm s}\parallel^2+\lambda\Phi(\bm x)+\frac{\mu}{2}\parallel\bm z-\bm x\parallel^2 L(x,z;μ)=2σ21​∥y−(z⊗k)↓s​∥2+λΦ(x)+2μ​∥z−x∥2

      迭代:

      {zk=argminz∥y−(z⊗k)↓s∥2+μσ2∥z−xk−1∥2xk=argminxλΦ(x)+μ2∥zk−x∥2\left\{\begin{aligned} \bm z_{k}&=argmin_z \parallel\bm y-(\bm z\otimes\bm k)\downarrow_{\bm s}\parallel^2+\mu\sigma^2\parallel\bm z-\bm x_{k-1}\parallel^2\\ \bm x_{k}&=argmin_x \lambda\Phi(\bm x)+\frac{\mu}{2}\parallel\bm z_k-\bm x\parallel^2\\ \end{aligned}\right.⎩⎪⎨⎪⎧​zk​xk​​=argminz​∥y−(z⊗k)↓s​∥2+μσ2∥z−xk−1​∥2=argminx​λΦ(x)+2μ​∥zk​−x∥2​

      μ\muμ should be large enough so that x and z are approximately equal to the fixed point. However, this would also result in slow convergence. Therefore, a good rule of thumb is to iteratively increase µ. For convenience, the μ\muμ in the kkk-th iteration is denoted by μk\mu_kμk​.

      # Deep Unfolding + 机器学习

      核心思想就是把上面的两个迭代求解式看成由两层神经网络组成的一个模块,把迭代的过程看成是网络模块的堆叠。这种将迭代做成堆叠的方法也是model-based问题用learning-based框架来解决的常见方法。

      两个迭代求解式分别变成两层神经网络:

      • Data Module:zk=D(xk−1,s,k,y,αk)\bm z_k=\mathcal D(\bm x_{k-1},\bm s,\bm k,\bm y,\alpha_k)zk​=D(xk−1​,s,k,y,αk​)
      • Prior Module:xk=P(zk,βk)\bm x_k=\mathcal P(\bm z_k,\beta_k)xk​=P(zk​,βk​)

      堆叠:

      # 估计模糊核k\bm kk

      根据前面介绍的图像降质的光学模型y=(x⊗k)↓s+n\bm y=(\bm x\otimes\bm k)\downarrow_{\bm s}+\bm ny=(x⊗k)↓s​+n,恢复图像时所用到的模糊核k\bm kk可以直接用一些简单的估计方法得到:

      kbicubic×s=argmink∥(x⊗k)↓s−y∥\bm k_{bicubic}^{\times\bm s}=argmin_{\bm k}\parallel(\bm x\otimes\bm k)\downarrow_{\bm s}-\bm y\parallel kbicubic×s​=argmink​∥(x⊗k)↓s​−y∥

      # Data Module

      Data Module 就是求解迭代方程中的zk\bm z_kzk​:

      zk=argminz∥y−(z⊗k)↓s∥2+μσ2∥z−xk−1∥2\bm z_{k}=argmin_z \parallel\bm y-(\bm z\otimes\bm k)\downarrow_{\bm s}\parallel^2+\mu\sigma^2\parallel\bm z-\bm x_{k-1}\parallel^2 zk​=argminz​∥y−(z⊗k)↓s​∥2+μσ2∥z−xk−1​∥2

      这个式子归根到底就是一个复杂的一元二次方程,作者把它转到频域里解:

      zk=D(xk−1,s,k,y,αk)=F−1(1αk(d−F(k)‾⊙s(F(k)d)⇓s(F(k)‾F(k))⇓s+αk))\bm z_{k}=\mathcal D(\bm x_{k-1},\bm s,\bm k,\bm y,\alpha_k)=\mathcal F^{-1}\left(\frac{1}{\alpha_k}\left(\bm d-\overline{\mathcal F(\bm k)}\odot_{\bm s}\frac{(\mathcal F(\bm k)\bm d)\Downarrow_{\bm s}}{(\overline{\mathcal F(\bm k)}\mathcal F(\bm k))\Downarrow_{\bm s}+\alpha_k}\right)\right) zk​=D(xk−1​,s,k,y,αk​)=F−1(αk​1​(d−F(k)​⊙s​(F(k)​F(k))⇓s​+αk​(F(k)d)⇓s​​))

      其中:

      d=F(k)‾F(y↑s)+αkF(xk−1)\bm d=\overline{\mathcal F(\bm k)}\mathcal F(\bm y\uparrow_{\bm s})+\alpha_k\mathcal F(\bm x_{k-1}) d=F(k)​F(y↑s​)+αk​F(xk−1​)

      αk=μkσ2\alpha_k=\mu_k\sigma^2 αk​=μk​σ2

      • F(⋅)\mathcal F(\cdot)F(⋅)、F−1(⋅)\mathcal F^{-1}(\cdot)F−1(⋅)、F(⋅)‾\overline{\mathcal F(\cdot)}F(⋅)​:傅里叶变换、傅里叶反变换、傅里叶变换的共轭复数
      • ⊙s\odot_{\bm s}⊙s​:the distinct block processing operator with element-wise multiplication, i.e., applying elementwise multiplication to the s×s\bm s\times\bm ss×s distinct blocks of F(k)‾\overline{\mathcal F(\bm k)}F(k)​
      • ⇓s\Downarrow_{\bm s}⇓s​:the distinct block downsampler, i.e., averaging the s×s\bm s\times\bm ss×s distinct blocks
      • ↑s\uparrow_{\bm s}↑s​the standard s-fold upsampler, i.e., upsampling the spatial size by filling the new entries with zeros

      于是,D(xk−1,s,k,y,αk)\mathcal D(\bm x_{k-1},\bm s,\bm k,\bm y,\alpha_k)D(xk−1​,s,k,y,αk​)就是Data Module,这里面没有任何需要学习的参数

      # Prior Module

      在图像领域,xk=argminxλΦ(x)+μ2∥zk−x∥2\bm x_{k}=argmin_x \lambda\Phi(\bm x)+\frac{\mu}{2}\parallel\bm z_k-\bm x\parallel^2xk​=argminx​λΦ(x)+2μ​∥zk​−x∥2是典型的图像去噪问题,noise level βk=λ/μk\beta_k=\sqrt{\lambda/\mu_k}βk​=λ/μk​​。

      作者就是在这里用了一个CNN网络来完成降噪的任务。网络的输入是zk\bm z_{k}zk​,输出是xk\bm x_kxk​

      CN网络的结构是ResNet+U-Net。 U-Net is widely used for image-to-image mapping, while ResNet owes its popularity to fast training and its large capacity with many residual blocks.

      # 超参数 Module

      至此,还有没能确定的参数是αk=μkσ2\alpha_k=\mu_k\sigma^2αk​=μk​σ2和βk=λ/μk\beta_k=\sqrt{\lambda/\mu_k}βk​=λ/μk​​,其中σ\sigmaσ是数据集整体的特征,要通过统计方法提前知晓,于是超参数就只剩下λ\lambdaλ和μk\mu_kμk​了。

      这里作者讲到:

      Although it is possible to learn a fixed λ\lambdaλ and μk\mu_kμk​, we argue that a performance gain can be obtained if λ\lambdaλ and μk\mu_kμk​ vary with two key elements, i.e., scale factor s and noise level σ, that influence the degree of ill-posedness.

      于是又用了一个简单的3层全连接层作为超参数 Module 确定α=[α1,α2,…,αk]\bm\alpha=[\alpha_1,\alpha_2,\dots,\alpha_k]α=[α1​,α2​,…,αk​]和β=[β1,β2,…,βk]\bm\beta=[\beta_1,\beta_2,\dots,\beta_k]β=[β1​,β2​,…,βk​]:

      [α,β]=H(σ,s)[\bm\alpha,\bm\beta]=\mathcal H(\sigma,\bm s) [α,β]=H(σ,s)

      # 训练

      作者说用的是最基本的L1 Loss,不细看了

      # 效果

      还是很棒的,对不同的模糊核都有很好的效果

      帮助我们改善此页面!
      创建于: 2021-05-15 04:19:44

      更新于: 2021-05-15 08:22:56