深度学习(二十一)——SRCNN, DRCN, VDSR

https://antkillerfarm.github.io/

图像超分辨率算法(续)

前DL时代的SR

从信号处理的角度来说,LR之所以无法恢复成HR,主要在于丢失了图像的高频信息。(Nyquist采样定理)

Harry Nyquist,1889~1976,University of North Dakota本硕(1914,1915)+耶鲁博士(1917)。AT&T贝尔实验室电子工程师。IEEE Medal of Honor获得者(1960)。

IEEE Medal of Honor是IEEE的最高奖,除了1963年之外,每年只有1人得奖,个别年份甚至会轮空。

最简单的当然是《图像处理理论(二)》中提到的梯度锐化和拉普拉斯锐化,这种简单算法当然不要指望有什么好效果,聊胜于无而已。这是1995年以前的主流做法。

稍微复杂的方法,如同CV的其它领域经历了“信号处理->ML->DL”的变迁一样,SR也进入了ML阶段。

这里写图片描述

上图是两种典型的SR算法。

左图算法的中心思想是从图片中找出相似的大尺度区域,然后利用这个大区域的边缘信息进行SR。但这个方法对于那些只出现一次的边缘信息是没什么用的。

于是就有了右图的算法。对各种边缘信息建立一个数据库,使用时从数据库中挑一个最类似的边缘信息进行SR。这个方法比上一个方法好一些,但不够鲁棒,图片稍作改动,就有可能无法检索到匹配的边缘信息了。

ML时代的代表算法还有:

扫描二维码关注公众号,回复: 1464741 查看本文章

《Image Super-Resolution via Sparse Representation》

这篇论文是黄煦涛和马毅小组的Jianchao Yang的作品。

黄煦涛(Thomas Huang),1936年生。生于上海,国立台湾大学本科(1956)+MIT硕博(1960,1963)。UIUC教授。美国工程院院士,中国科学院+中国工程院外籍院士。

马毅,清华本科(1995)+UCB硕博(1997,2000)。UCB教授。IEEE fellow。
个人主页:
http://yima.csl.illinois.edu/

这篇论文提出的算法,在形式上和后文这些DL算法已经非常类似了,也是基于HR和LR配对的有监督训练。区别只在于这篇论文使用矩阵的稀疏表示来拟合SR函数,而DL算法使用神经网络拟合SR函数。前者是线性变换,而后者是非线性变换。

参考

https://zhuanlan.zhihu.com/p/25532538

深度学习在图像超分辨率重建中的应用

https://zhuanlan.zhihu.com/p/25201511

深度对抗学习在图像分割和超分辨率中的应用

https://mp.weixin.qq.com/s/uK0L5RV0bB2Jnr5WCZasfw

深度学习在单图像超分辨率上的应用:SRCNN、Perceptual loss、SRResNet

https://mp.weixin.qq.com/s/xpvGz1HVo9eLNDMv9v7vqg

NTIRE2017夺冠论文:用于单一图像超分辨率的增强型深度残差网络

https://www.zhihu.com/question/25401250

如何通过多帧影像进行超分辨率重构?

https://www.zhihu.com/question/38637977

超分辨率重建还有什么可以研究的吗?

https://zhuanlan.zhihu.com/p/25912465

胎儿MRI高分辨率重建技术:现状与趋势

https://mp.weixin.qq.com/s/i-im1sy6MNWP1Fmi5oWMZg

华为推出新型HiSR:移动端的超分辨率算法

SRCNN

SRCNN(Super-Resolution CNN)是汤晓鸥小组的Chao Dong的作品。

汤晓鸥,中国科学技术大学本科(1990)+罗切斯特大学硕士(1991)+麻省理工学院博士(1996)。香港中文大学教授,商汤科技联合创始人。

论文:

《Learning a Deep Convolutional Network for Image Super-Resolution》

这里写图片描述

该方法对于一个低分辨率图像,先使用双三次(bicubic)插值将其放大到目标大小,再通过三层卷积网络做非线性映射,得到的结果作为高分辨率图像输出。作者将三层卷积的结构解释成与传统SR方法对应的三个步骤:图像块的提取和特征表示,特征非线性映射和最终的重建。

三个卷积层使用的卷积核的大小分为为9x9, 1x1和5x5,前两个的输出特征个数分别为64和32。

以下是论文的效果表格:

这里写图片描述

吐槽一下,这种表格属于论文必须有,但是却没什么营养的部分,且不乏造假的例子。原因很简单,一个idea,如果没有好效果,paper连发都发不了。但是,没有好效果的idea,未必没有价值,不说是否能启发人们的思维,至少能让后来者,不用再掉到同一个坑里。
比如化学领域,失败的实验远远多于成功的实验。在计算能力不发达的时代,人们主要关注成功的案例,但现在大家逐渐意识到:失败的案例才是更大的财富。

这里对其中的指标做一个简介。

PSNR(Peak Signal to Noise Ratio,峰值信噪比)

M S E = 1 H × W i = 1 H j = 1 W ( X ( i , j ) Y ( i , j ) ) 2

P S N R = 10 log 10 ( ( 2 n 1 ) 2 M S E )

其中,MSE表示当前图像X和参考图像Y的均方误差(Mean Square Error),H、W分别为图像的高度和宽度;n为每像素的比特数,一般取8,即像素灰阶数为256. PSNR的单位是dB,数值越大表示失真越小。

虽然PSNR和人眼的视觉特性并不完全一致,但是一般认为PSNR在38以上的时候,人眼就无法区分两幅图片了。

SSIM(structural similarity, 结构相似性),也是一种全参考的图像质量评价指标,它分别从亮度、对比度、结构三方面度量图像相似性。

μ X = 1 H × W i = 1 H j = 1 W X ( i , j ) , σ X 2 = 1 H × W i = 1 H j = 1 W ( X ( i , j ) μ X ) 2

σ X Y = 1 H × W i = 1 H j = 1 W ( ( X ( i , j ) μ X ) ( Y ( i , j ) μ Y ) )

l ( X , Y ) = 2 μ X μ Y + C 1 μ X 2 + μ Y 2 + C 1 , c ( X , Y ) = 2 σ X σ Y + C 2 σ X 2 + σ Y 2 + C 2 , s ( X , Y ) = σ X Y + C 3 σ X σ Y + C 3

S S I M ( X , Y ) = l ( X , Y ) c ( X , Y ) s ( X , Y )

C 1 , C 2 , C 3 为常数,为了避免分母为0的情况,通常取 C 1 = ( K 1 L ) 2 , C 2 = ( K 2 L ) 2 , C 3 = C 2 / 2 ,一般地 K 1 = 0.01 , K 2 = 0.03 , L = 255

SSIM取值范围[0,1],值越大,表示图像失真越小。

在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用高斯加权计算每一窗口的均值、方差以及协方差,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量,即平均结构相似性MSSIM:

M S S I M ( X , Y ) = 1 N k = 1 N S S I M ( x k , y k )

需要指出的是,PSNR和SSIM都是一些物理指标,它和人眼的视觉感受有一定的差异,不见得指标差的图就一定不如指标好的图(比如SRGAN)。

主观得分一般采用MOS(mean opinion score)作为评价指标。

参考:

http://blog.csdn.net/u011692048/article/details/77496861

超分辨率重建之SRCNN

http://www.cnblogs.com/vincent2012/archive/2012/10/13/2723152.html

PSNR和SSIM

DRCN

DRCN(deeply-recursive convolutional network)是韩国首尔国立大学的作品。

论文:

《Deeply-Recursive Convolutional Network for Image Super-Resolution》

SRCNN的层数较少,同时感受野也较小(13x13)。DRCN提出使用更多的卷积层增加网络感受野(41x41),同时为了避免过多网络参数,该文章提出使用递归神经网络(RNN)。网络的基本结构如下:

这里写图片描述

与SRCNN类似,该网络分为三个模块,第一个是Embedding network,相当于特征提取,第二个是Inference network, 相当于特征的非线性变换,第三个是Reconstruction network,即从特征图像得到最后的重建结果。其中的Inference network是一个递归网络,即数据循环地通过该层多次。将这个循环进行展开,就等效于使用同一组参数的多个串联的卷积层,如下图所示:

这里写图片描述

其中的 H 1 H D 是D个共享参数的卷积层。DRCN将每一层的卷积结果都通过同一个Reconstruction Net得到一个重建结果,从而共得到D个重建结果,再把它们加权平均得到最终的输出。另外,受到ResNet的启发,DRCN通过skip connection将输入图像与H_d的输出相加后再作为Reconstruction Net的输入,相当于使Inference Net去学习高分辨率图像与低分辨率图像的差,即恢复图像的高频部分。

参考:

http://blog.csdn.net/u011692048/article/details/77500764

超分辨率重建之DRCN

VDSR

VDSR是DRCN的原班人马的新作。

论文:

《Accurate Image Super-Resolution Using Very Deep Convolutional Networks》

代码:

code:https://github.com/huangzehao/caffe-vdsr

SRCNN存在三个问题需要进行改进:

1、依赖于小图像区域的内容;

2、训练收敛太慢;

3、网络只对于某一个比例有效。

这里写图片描述

VDSR模型主要有以下几点贡献:

1、增加了感受野,在处理大图像上有优势,由SRCNN的13x13变为41x41。(20层的3x3卷积)

2、采用残差图像进行训练,收敛速度变快,因为残差图像更加稀疏,更加容易收敛(换种理解就是LR携带者低频信息,这些信息依然被训练到HR图像,然而HR图像和LR图像的低频信息相近,这部分花费了大量时间进行训练)。

3、考虑多个尺度,一个卷积网络可以处理多尺度问题。

训练的策略:

1、采用残差的方式进行训练,避免训练过长的时间。

2、使用大的学习进行训练。

3、自适应梯度裁剪,将梯度限制在某一个范围。

4、多尺度,多种尺度样本一起训练可以提高大尺度的准确率。

对于边界问题,由于卷积的操作导致图像变小的问题,本文作者提出一个新的策略,就是每次卷积后,图像的size变小,但是,在下一次卷积前,对图像进行补0操作,恢复到原来大小,这样不仅解决了网络深度的问题,同时,实验证明对边界像素的预测结果也得到了提升。

参考:

http://blog.csdn.net/u011692048/article/details/77512310

超分辨率重建之VDSR

猜你喜欢

转载自blog.csdn.net/antkillerfarm/article/details/79862479