学习深度CNN去噪先验用于图像恢复(Learning Deep CNN Denoiser Prior for Image Restoration)-Kai Zhang

代码:https://github.com/cszn/IRCNN

机翻:

基于模型的优化方法和区别的学习方法已经解决各种逆问题的两种主要策略在低级视觉领域。通常情况下,这两种方法有各自的优点和缺点,例如,基于模型的优化方法处理不同的逆问题很灵活,但通常需要花费大量时间和复杂的先验信息来获得良好表现;

同时,基于区别学习方法测试速度快,但其应用范围大大受到专业的任务限制。最近的工作表明,借助变量分裂技术,去噪优先可以作为基于模型的优化方法的一个模块部分来解决其他反问题。 (例如,去模糊)。当通过判别学习算法(discriminative learning)获得去噪器时,这种集成带来了相当大的优势。然而,对快速鉴别去噪先验方法的研究还不多见。为此,本文旨在训练一组快速有效的cnn(卷积神经网络)去噪器,并将其集成到基于模型的优化方法中,以解决其他反问题。实验结果表明,所学习的去噪器不仅具有很好的高斯去噪效果,而且也可以用作先验信息来实现各种低级视觉应用提供良好的性能。

1、前言

图像恢复(IR)一直是一个长期存在的问题以其高度的实用价值在不同的低级视觉应用。一般来说,图像恢复的目的是从退化观察恢复潜在的清晰图像。

H是退化矩阵,v是加性高斯白噪声的标准差σ。通过指定不同的退化矩阵,可以相应地得到不同IR任务。三个经典的IR任务:图像去噪中H是一个单位矩阵,图像去模糊中H是模糊算子,图像超分辨率中H是一个复合算子包括模糊和下采样。

由于IR是一个不适定反问题,要采用先验信息也称正则化来约束的解空间。

从贝叶斯的角度来看,解ˆx可以通过解决一个最大后验(MAP)的问题。观测值的对数似然,x的先验与y无关。

由一个保真项和正则项组成,包含了权衡参数。保真度项保证了解符合退化过程,而正则化项则加强了输出的期望性质。

一般来说,解决Eqn2的方法可以分为两大类,基于模型的优化方法和识别学习方法。基于模型的优化方法旨在直接求解方程组2,优化算法通常涉及耗时的迭代推理。

我们可以看到,去噪器先验可以通过各种方式插入迭代框架中。这些方法的基本思想是将保真项和正则化项解耦。

由于这个原因,它们的迭代格式通常涉及一个与保真度项相关的子问题和一个去噪子问题。

在下一小节中,由于HQS方法简单,我们将使用HQS方法作为示例。 应该指出的是,虽然HQS可以被看作是处理不同图像恢复任务的一般方法,但在特定应用中,我们也可以先将去噪器合并到其他方便和适当的方法中。

Half Quadratic Splitting (HQS) Method

半二次方分裂

HQS——Half Quadratic Splitting半二次方分裂 - ostartech - 博客园 https://www.cnblogs.com/wxl845235800/p/10734866.html

其中,该解最小化了由保真度项、正则化项Φ(X)和权衡参数λ组成的能量函数。

引入辅助变量Z,变换为约束优化问题:

HQS方法试图来最小化以下损失函数:其中,μ是一个惩罚参数,它以非降序迭代地变化。

上式可以通过以下迭代格式求解:

正如人们所看到的,保真度项和正则化项被解耦成两个独立的子问题。具体来说,保真度项与二次正则最小二乘问题相关联(式6a)对于不同的退化矩阵有不同的快速解。

给出了一个直接的解:

正则化项包含在式(6b)中,可重写为:

根据贝叶斯概率,式(8)对应于噪声级为的高斯去噪器对图像的去噪。

因此,任何高斯去噪器都可以作为模块部分来求解式(2)。

值得注意的是,根据Eqns(8)和(9)的说法。图像先验Φ(·)可以隐式被替换为去噪器先验。

这样一个有前途的属性实际上提供了几个优点。

首先,它允许使用任何灰度或颜色的去噪器来解决各种反问题。第二,在求解Eqn2时,显式图像先验Φ(·)是未知的。第三,利用不同图像先验的几个互补去噪器可以联合使用来共同解决一个特定的问题。

请注意,只要有一个去噪子问题,此属性也可用于其他优化方法(例如迭代收缩/阈值算法ISTA和FISTA) 。

3、提出的CNN去噪器

4.3 SR

一般来说,低分辨率(LR)图像可以通过模糊和随后的高分辨率的下采样操作来建模。然而,现有的超分辨率模型主要着眼于图像先验建模,并对特定退化过程进行训练。这使得在训练中采用的模糊核偏离真实的核时,所学习的模型严重恶化。

使用反向投影迭代法(back-projection iteration)解式6(a):

值得注意的是,诸如NCSR和WNNM等方法的迭代正则化步骤实际上对应于求解公式6(a)。在此基础上,在HQS框架下对这些方法进行了优化。

为了获得快速收敛,在应用去噪步骤之前重复公式(11)五次。

发现别人有阅读笔记,直接贴链接了。

【别人的博客】

论文笔记 IRCNN-详解:Learning Deep CNN Denoiser Prior for Image Restoration - 南方有乔木的博客 - CSDN博客 https://blog.csdn.net/qq_27022241/article/details/82998009

看讲论文-PPT:Learning Deep CNN Denoiser Prior for Image Restoration - Jee_King的博客 - CSDN博客 https://blog.csdn.net/jee_king/article/details/79131094

基于深度学习(DL)的图像复原(IR)论文总结(SRCNN、VSDR、Iter-CNN、IRCNN 半正定分割) - 南方有乔木的博客 - CSDN博客 https://blog.csdn.net/qq_27022241/article/details/78583910

基于CNN的图像增强之去模糊 - 大数据挖掘SparkExpert的博客 - CSDN博客 https://blog.csdn.net/sparkexpert/article/details/79824729

Learning Deep CNN Denoiser Prior for Image Restoration - File Exchange - MATLAB Central https://ww2.mathworks.cn/matlabcentral/fileexchange/62439-learning-deep-cnn-denoiser-prior-for-image-restoration?s_tid=LandingPageTabfx

后续DnCNN-前馈降噪卷积神经网络(DnCNNs)盲去噪

《Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising》学习笔记 - guanzheng9996的博客 - CSDN博客 https://blog.csdn.net/guanzheng9996/article/details/79716409


Learning Deep CNN Denoiser Prior for Image Restoration阅读笔记 - smartweed - 博客园 https://www.cnblogs.com/smartweed/p/10444039.html

(IRCNN)Learning Deep CNN Denoiser Prior for Image Restoration-Kai Zhang的更多相关文章

  1. 论文解读《Learning Deep CNN Denoiser Prior for Image Restoration》

    CVPR2017的一篇论文 Learning Deep CNN Denoiser Prior for Image Restoration: 一般的,image restoration(IR)任务旨在从 ...

  2. Learning Deep CNN Denoiser Prior for Image Restoration阅读笔记

    introduction 图像恢复目标函数一般形式: 前一项为保真项(fidelity),后一项为惩罚项,一般只与去噪有关. 基于模型的优化方法可以灵活地使用不同的退化矩阵H来处理不同的图像恢复问题, ...

  3. What are some good books/papers for learning deep learning?

    What's the most effective way to get started with deep learning?       29 Answers     Yoshua Bengio, ...

  4. Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.1

    Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.1 http://blog.csdn.net/sunbow0 Spark ML ...

  5. Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3

    Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3 http://blog.csdn.net/sunbow0 第二章Deep ...

  6. (转) Learning Deep Learning with Keras

    Learning Deep Learning with Keras Piotr Migdał - blog Projects Articles Publications Resume About Ph ...

  7. Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.2

    Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.2 http://blog.csdn.net/sunbow0 第二章Deep ...

  8. Paper | Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising

    目录 故事背景 网络结构 BN和残差学习 拓展到其他任务 发表在2017 TIP. 摘要 Discriminative model learning for image denoising has b ...

  9. Deep Learning基础--CNN的反向求导及练习

    前言: CNN作为DL中最成功的模型之一,有必要对其更进一步研究它.虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好.而本文 ...

随机推荐

  1. jQuery.fly插件实现添加购物车抛物线效果

    样例 使用电商 APP 购买商品时,很多都有上图的红色小球抛物线效果,下面通过 jQuery.fly 插件来实现一个简单 Demo. 实现 简单思路: 确定抛物线的起始和终止位置: 通过 js 在起始 ...

  2. [TestLink]testlink安装

    转自:http://www.51testing.com/html/25/465025-3711140.html bitnami参考:https://bitnami.com/stack/testlink ...

  3. hbase 学习(十四)Facebook针对hbase的优化方案分析

    使用hbase的目的是为了海量数据的随机读写,但是在实际使用中却发现针对随机读的优化和gc是一个很大的问题,而且hbase的数据是存储在Hdfs,而Hdfs是面向流失数据访问进行设计的,就难免带来效率 ...

  4. PCL学习八叉树

    建立空间索引在点云数据处理中有着广泛的应用,常见的空间索引一般 是自顶而下逐级划分空间的各种空间索引结构,比较有代表性的包括BSP树,KD树,KDB树,R树,四叉树,八叉树等索引结构,而这些结构中,K ...

  5. 安卓程序代写 网上程序代写[原]Call requires API level 8 (current min is 1)错误

    导入了一个程序 , 每次运行之后都会出现该错误 . 点击clean 错误就会消失 , 但是执行该错误的时候该错误就会重新出现 . 这个错误需要在AndroidManifest.xml配置文件中修改 u ...

  6. Python 匿名参数

    #-*- coding:utf-8 -*- #匿名函数 #匿名函数语法格式 ''' 变量 = lambda 参数列表:表达式 ''' func = lambda x,y:x+y a = func(2, ...

  7. Android Http 与断点续传

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();                  conn.setRequestM ...

  8. SCPD

    serviceType:服务类型,UPnP论坛规定为urn:schemas-upnp-org:service:serviceType: ver,serviceType:ver由用户自己设定 SCPDU ...

  9. sqlldr 学习总结1

    1.建表语法(采用scott中的emp表) create table emp(  empno    number(4) not null,  ename    varchar2(10),  job   ...

  10. JAXB解析xml

    废话不多说,直接上代码 核心类: package com.jaxb; import java.io.File; import java.io.FileInputStream; import java. ...