一般的,image restoration(IR)任务旨在从观察的退化变量$y$(退化模型,如式子1)中,恢复潜在的干净图像$x$

$y \text{} =\text{}\textbf{H}x\text{}+\text{}v $

where $\textbf{H}$denotes 退化矩阵,$\textbf{v}$denotes 加性高斯白噪声(additive white Gaussian noise) with 标准差$\sigma$

指定不同的退化矩阵$\textbf{H}$,对应着不同的IR任务:

-- 当$\textbf{H}$是一个恒等矩阵,IR任务对应着图像去噪(image denoising)

-- 当$\textbf{H}$是一个模糊算子(blurring operator),IR任务对应着图像去模糊(image deblurring)

-- 当$\textbf{H}$是一个模糊和下采样的复合算子(composite operator of blurring and down-sampling),IR任务对应着图像超分辨率(image super-resolution)

IR 是一个病态逆问题(ill-posed inverse problem),先验(prior)被叫做正则化项(regularization),需要被采取去约束解决空间. 从贝叶斯的观点, 需要被推导出的潜在的干净图像$\hat{x}$能够通过解决一个MAP(maximum A posteriori )问题得到:

$\hat{x}\text{}=\text{}$ argmax$_x \text{}$log$p(\textbf{y}|\textbf{x})\text{}+\text{}$log$p(\textbf{x})\text{}\text{}\text{}(1)$

其中log$$p(\textbf{y}|textbf{x})代表着$y$的log-似然,log$p(x)$是$x$的先验,更加正式的,公式一 被重新写:

$\hat{x} = $argmin$_{x}\frac{1}{2}||\textbf{y} - \textbf{H}x||^{2} + \lambda\Phi(x)\text{}\text{}\text{}(2)$

其中解法是最小化一个能量函数,由三个部分组成 数据保真项=$\frac{1}{2}||y\text{}\text{}-\textbf{H}x||^{2}$,一个正则化项$\Phi(x)$ 和一个平衡(trade-off)参数$\lambda$. 数据保真项确保了这个解法是通过了这个退化过程,正则化项强制执行输出所需的属性;

To solve Eqn.(2) , have two main categories methods:

--model-based optimization methods:  aim to directly solve Eqn2 使用一些耗时的迭代传播(time-comsuming iterative inference)

--discriminative learning methods: 通过优化包含退化干净(degraded-clean pairs )图像对的训练集上的损失函数来学习先验参数$\Theta$和紧凑(compact)推理,目标被给出:

min$_{\Theta}\text{}\textit{l}(\hat{x},x)$      $s.t.$       $\hat{x}\text{}=\text{}$arg min$_{x}\frac{1}{2}||y - \textbf{H}x||\text{}+\text{}\lambda\Phi(x;\Theta))$     (3)

因为这个推理是被MAP估计所指导,所以我们将这种方法称作为MAP推理指导的判别式学习方法(MAP inference guided discriminative learning method);

使用一个预先定义的非线性函数:

$\hat{x}\text{}\text{}f(y,\textbf{H};\Theta)$==》注意这种函数内分号的形式,$\Theta$只是参数,前面那个才是真正的自变量,f(x;θ)是关于x的函数,其中θ是参数,x才是自变量,所以f(x;θ)是关于x的一元函数.
来替换MAP推理,我们可以把朴素的判别学习方法看作是Eqn3的一般情况。

--model-based optimization methods:  通过指定退化矩阵$\textbf{H}$来灵活的处理不同的IR任务

--discriminative learning methods: 通过使用确定的退化矩阵训练数据来学习模型

SO====》由以上两点可以得到,判别式学习方法常常限定在一些特定的任务如 MLP SRCNN DCNN;

图像降噪认为model-based method 能够处理不同噪声水平的图像,如BM3D WNNM, 然而判别学习方法只能够针对不同的噪声水平训练不同的模型。


 使用判别式学习方法的优缺点:

缺点: 灵活性较差

优点: 快速的测试速度; 由于联合优化(joint optimization)和端到端的训练(end-to-end training),具有前景性的表现;

使用model-based optimization 方法的优缺点:

缺点:时间消耗time-consuming with 复杂的先验 sophisticated prior 为了好的表现.

SO ===》 非常有吸引力的是利用他们各自的优点去研究他们的集成


Method

在变量分割技术的辅助下,如交替方向乘子法(alternating direction method of multiplier,ADMM)和半二次分割法(half quadratic splitting),使得有可能独立的处理 保真项(fidelity term)和正则化项(regularization term).

而且,正则化项仅仅对应于一个去噪子问题!!!所以,这使得能够将任何的判别式降噪器集成到model-based 优化方法中。

--不采用学习一个MAP推导指导的判别模型,而是采取一个朴素的CNN去学习降噪器;

-- 已学习的CNN降噪器作为一个模块嵌入到model-based 优化方法中,去解决inverse 问题;

Image Restoration with Denoiser prior

--之前有借助ADMM变量分离技术的即插即用的先验架构;

--之前有提出使用HQS技术进行图像的降噪和去模糊的;

基于以上一些降噪先验的related work, 我们可以看出,降噪器先验可以通过多种方法插入迭代方案(iterative scheme);

迭代方案涉一个保真项相关子问题和一个降噪子问题;


image restoration(IR) task的更多相关文章

  1. elixir 高可用系列(四) Task

    概述 之前学习的 Agent,GenSever以及GenEvent,都是用来管理状态或者处理消息的. 但是在很多时候,我们需要的是执行某个任务,这时如果使用 GenSever 或者 GenEvent, ...

  2. 深入理解 JavaScript 事件循环(二)— task and microtask

    引言 microtask 这一名词是 JS 中比较新的概念,几乎所有人都是在学习 ES6 的 Promise 时才接触这一新概念,我也不例外.当我刚开始学习 Promise 的时候,对其中回调函数的执 ...

  3. celery (二) task调用

    调用 TASK 基础 task 的调用方式有三种: 类似普通函数的调用方式, 通过 __calling__ 调用 ,类似 function() 通过 apply_async() 调用,能接受较多的参数 ...

  4. [译] 深入理解 JavaScript 事件循环(二)— task and microtask

    引言 microtask 这一名词是 JS 中比较新的概念,几乎所有人都是在学习 ES6 的 Promise 时才接触这一新概念,我也不例外.当我刚开始学习 Promise 的时候,对其中回调函数的执 ...

  5. Spring的定时任务(任务调度)<task:scheduled-tasks>

    Spring内部有一个task是Spring自带的一个设定时间自动任务调度,提供了两种方式进行配置,一种是注解的方式,而另外一种就是XML配置方式了.注解方式比较简洁,XML配置方式相对而言有些繁琐, ...

  6. 【TencentOS tiny】深度源码分析(1)——task

    任务的基本概念 从系统的角度看,任务是竞争系统资源的最小运行单元.TencentOS tiny是一个支持多任务的操作系统,任务可以使用或等待CPU.使用内存空间等系统资源,并独立于其它任务运行,理论上 ...

  7. Flink原理(三)——Task(任务)、Operator Chain(算子链)和Slot(资源)

    本文是参考官方文档结合自己的理解写的,所引用文献均已指明来源,若侵权请留言告知,我会立马删除.此外,若是表达欠妥的地方,欢迎大伙留言指出. 前言 在上一篇博客Flink原理(二) ——资源一文中已简要 ...

  8. android学习记录(十三)Task 和 Activity 回退栈操作。

    首先说一下Task是一个什么概念吧:Task是一个包括activity的列表.没 错.简单的说就是依照启动的先后来排队的一个队列.Back Stack.就是回退栈的意思:那么有什么用?Back Sta ...

  9. celery (二) task

    Task task 具有如下特点: task 可以在任何可调用的地方创建.它有双重角色: 定义了当task被调用时,会发送一个消息. 定义了当worker收到消息时会运行消息对应的函数 每个task都 ...

随机推荐

  1. Flutter学习六之实现一个带筛选的列表页面

    上期实现了一个网络轮播图的效果,自定义了一个轮播图组件,继承自StatefulWidget,我们知道Flutter中并没有像Android中activity的概念.页面见的跳转是通过路由从一个全屏组件 ...

  2. php第七天-文件处理系统

    0x01 文件系统概述 1.1文件类型 在程序运行时,程序本身和数据一般都存在内存中,当程序运行结束后,存放在内存中的数据被释放. 如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须 ...

  3. 并发编程(六)Object类中线程相关的方法详解

    一.notify() 作用:唤醒一个正在等待该线程的锁的线程 PS : 唤醒的线程不会立即执行,它会与其他线程一起,争夺资源 /** * Object类的notify()和notifyAll()方法详 ...

  4. Java Web学习(二)数据加密

    一.Tomcat 体系 首先通过一幅图来了解下tomcat的运行体系: Tomcat服务器的启动是基于一个server.xml文件的. 启动流程: 首先启动一个Server,Server里面就会启动S ...

  5. 微服务实战系列(七)-网关springcloud gateway

    1. 场景描述 springcloud刚推出的时候用的是netflix全家桶,路由用的zuul,但是据说zull1.0在大数据量访问的时候存在较大性能问题,2.0就没集成到springcloud中了, ...

  6. NIO 实现简单群聊功能

    服务端: package com.yang.runnable; import java.io.IOException; import java.net.InetSocketAddress; impor ...

  7. c++中的#include "stdafx.h"

    转自:https://blog.csdn.net/lijun5635/article/details/13090341 在网上看到的一篇很详细的文章解释,之前一直不明白这个头文件什么作用,用来学习很好 ...

  8. 在程序开发中,++i 与 i++的区别在哪里?

    哈哈哈! 从大学开始又忘了...蜜汁问题哈 参考来源:https://www.zhihu.com/question/19811087/answer/80210083 i++ 与 ++i 的主要区别有两 ...

  9. 《C++primerplus》第4章练习题

    注:略过部分题目,修改了题设要求,实现差不多的功能 1.使用字符数组.要求用户输入姓名,等第和年龄,输出其姓名和年龄,等第降一级(即字母高一级). #include<iostream> u ...

  10. [WC 2011]最大Xor和路径

    题目大意: 给你一张n个点,m条边的无向图,每条边都有一个权值,求:1到n的路径权值和的最大值. 题解: 任意一条路径都能够由一条简单路径(任意一条),在接上若干个环构成(如果不与这条简单路径相连就走 ...