【图像超分辨(SR)】一文通俗解释blind SR(盲超分)和non-blind SR(非盲超分)的区别-程序员宅基地

技术标签: 机器学习  计算机视觉  深度学习  人工智能  图像超分辨(Image Super Resolution)  神经网络  

blind和non-blind的区别用一句话来概括就是:是否假设退化核已知并将其作用于图像来做网络训练。

non-blind Super Resolution: 这类方法在训练过程中都假设了退化核(也可以叫退化函数,其实就是degradation)已知,也就是说,在训练过程中一般都会使用一个确定的退化核从HR得到LR,然后来做训练。
深度学习做超分早期的大部分工作都是non-blind SR,一般过程是,把假设已知的退化核作用在图像上得到退化后的LR图像,用LR和HR来训练网络,得到的网络在面对同样退化核产生的低分辨图像就可以有比较好的恢复效果。近几年类似ZSSR这种单图像的超分辨,看似思想和一般non-blind SR有所不同(个人觉得ZSSR的想法非常天才),实际上在训练过程中也是用到了固定的退化核对图像做退化,然后用退化后(LR)和退化前(HR)的图像做训练。即便是用Nonparametric Blind Super-Resolution这篇文章(感觉有一点点标题党hhh)提出的方法估计出退化核来代替固定退化核(高斯、双三次等),本质上也还是在做上述过程,依旧属于non-blind SR。

blind Super Resolution:
不属于non-blind SR的就是blind SR啦…(开个玩笑)
了解了non-blind SR之后,理解blind SR就比较容易了。个人认为blind SR就是解决退化核未知问题这种说法并不准确。一开始大家看一些文章的名字可能会有误解,比如:Blind Super-Resolution Kernel Estimation using an Internal-GAN(NIPS 2019),看到这个名字大家很自然地会觉得说,他这个是blind SR。但实际上这篇文章的重点在于提出一种学习未知退化核的方法,断句应该是"Blind Super-Resolution Kernel" Estimation using an Internal-GAN。所以判断一篇文章做的到底是不是blind SR,并不应该看他是不是在解决退化核未知问题。而是应该看他有没有用到固定的退化核去对图像做退化,然后用退化的图像来训练。
举个例子:Blind Super-Resolution With Iterative Kernel Correction这篇文章就是在做blind SR,大概意思是说,我不知道退化核是什么,那我先大概估计一个退化核,然后在后面不断修正这个退化核,让退化核比较接近真实的,然后就可以得到比较好的超分结果。在这个过程中,并没有将一个固定的退化核作用于图像得到LR,然后再做LR到HR的训练。(没太仔细研究,大体看下来是没有这样一个显式过程的)而是参考退化核,然后网络从LR直接到HR(这部分有点没太看懂),中间通过修正退化核不断修正HR。

总结: 不管结构或者想法怎么魔改,只要训练过程中认为退化核已知,用退化核生成LR来做训练,基本就可以认为是non-blind SR。如果训练中没有用退化核生成LR然后用生成的LR和原来的HR一起训练的过程,就可以认为是blind SR。

补充: 我提到的blind SR是我理解中和non-blind SR对等地位的概念。而广义上,很多文章中讲的blind SR是说,我不知道退化核,那我研究一个方法估计出未知的退化核,这就是blind SR(类似前面提到的kernel估计的文章)。但个人觉得,类似这种核估计的blind SR,估计完核很多还是嵌入到non-blind SR方法中,即估计完kernel还是要拿图像做退化再训练,像是non-blind SR的改进。所以才会说,拿知不知道退化核来做blind还是non-blind的标准可能不太准确。当然,在深度学习里感觉很多东西并没有一个标准的定义,只能说多看文章,看看大家公认某个概念大概是怎么回事。同一个词可能出现在不同文章里说的都不是同一件事情,所以具体还是要结合文章具体情况来看。这里只是分享一下我自己的看法。

关于本文,如有错误,欢迎批评指正!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43426078/article/details/123244207

智能推荐

Hive_Hive体系结构-程序员宅基地

元数据:HQL的执行过程ORACEL 执行计划,Hive 类似。无索引时,生成全表扫描执行计划,执行全表扫描。创建索引后,重新生成SQL语句执行计划,基于索引扫描,提高查询效率。转载于:https://www.cnblogs.com/liupuLearning/p/6306667.html...

ffmpeg教程-程序员宅基地

概要 电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。每个流是由不同的编码器来编码生成的。编解码器描述了实际的

mysql导入数据load data infile用法(将txt文件中的数据导入表中)_use one_minite load data infile 'c:\users\13622\do-程序员宅基地

我们常常导入数据!mysql有一个高效导入方法,那就是load data infile 下面来看案例说明 基本语法:load data [low_priority] [local] infile 'file_name txt' [replace | ignore]into table tbl_name[fields[terminated by't'][OPTIONALLY] ..._use one_minite load data infile 'c:\users\13622\documents\ao9999.xsge.csv' i

vue面试题汇总之vue核心知识点-程序员宅基地

vue核心知识点1.vue.js的两个核心是什么?数据驱动,也叫双向数据绑定。 Vue.js数据观测原理在技术实现上,利用的是ES5Object.defineProperty和存储器属性: getter和setter(所以只兼容IE9及以上版本),可称为基于... 组件系统。 vue组件的核心选项:2.请说出vue几种常用的指令v-text:更新DOM对象的 textContent...

T-SQL执行内幕(7)——内存授予-程序员宅基地

本文属于SQL Server T-SQL执行内幕系列 前面提到,在执行过程中,很多操作符都需要内存来支持运作。比如Sort操作符,需要存储所有的输入以便进行排序,而Hash操作,为了创建大型的hash表,也需要申请资源来存储数据。 基于操作符的类型和预估的影响行数及列的大小(这些都可以从统计信息获得),执行计划可以知道这些操作符需要的大概内存。整个执行计划所需的内存总和称为内存授予(M...

视频教程-韦东山生活实例演绎法讲解蓝牙-嵌入式-程序员宅基地

韦东山生活实例演绎法讲解蓝牙 2003 年毕业于中国科学技术大学,电子专业、..._韦东山蓝牙模块开发课程

随便推点

【GD32】从0开始学GD32单片机(12)—— TIMER高级定时器详解+DMA修改PWM波占空比例程_gd32 霍尔传感器接口功能-程序员宅基地

介绍了GD32的高级定时器功能及内部结构,包含DMA修改PWM波占空比例程_gd32 霍尔传感器接口功能

【聚类算法】谱聚类(Spectral Clustering)-程序员宅基地

目录:1、问题描述2、问题转化3、划分准则4、总结1、问题描述  谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图(sub-Graph),使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。  对于图的相关定义如下:对于无向图G = (V,E),V表示顶点集合,即...

DBeaver复制数据库(数据库表结构以及内容)-程序员宅基地

DBeaver 复制数据库、备份数据库_dbeaver复制数据库

redis之简单存取操作-程序员宅基地

注入@Autowiredprivate StringRedisTemplate stringRedisTemplate;HASH: one save创建操作对象HashOperations<String, String, String> accountingCache = stringRedisTemplate.opsForHash();构造数据value.put(...

fabric工具peer将区块写入文件的位置_fabric 修改区块存储位置-程序员宅基地

将1个区块写入文件的位置如下。测试一下,在第314行添加输出代码。单独编译peer并替换原来的peer。在B机上先查询出区块高度是46,然后调用1次链码函数,产生1个区块,稍后查询到区块高度是47。观察peer的输出,输出了新增语句的信息。不过,这个区块被标注为“无效”,给出的原因是“背书策略失败”。有待查明原因。..._fabric 修改区块存储位置

Eclipse调试:F5、F6、F7、F8-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

推荐文章

热门文章

相关标签