基于TensorFlow的代码下载:https://github.com/Jongchan/tensorflow-vdsrhttps://
文章链接:
(Accurate Image Super-Resolution Using Very Deep Convolutional Networks
, CVPR2016)
环境配置:深度学习(一):虚拟机Linux系统搭建CPU TensorFlow
基础理论学习方便理解:deeplearning.ai 吴恩达网上课程学习(十五)——卷积神经网络及其TensorFlow代码实现
- VDSR
在上面的基础理论链接中也提到了何恺明在2015年的时候提出的残差网络ResNet。
ResNet的提出,解决了之前网络结构比较深时无法训练的问题,性能也得到了提升,ResNet也获得了CVPR2016的best paper。残差网络结构(residual network)被应用在了大量的工作中。
正如在VDSR论文中作者提到,**输入的低分辨率图像和输出的高分辨率图像在很大程度上是相似的,也就是指低分辨率图像携带的低频信息与高分辨率图像的低频信息相近,训练时带上这部分会多花费大量的时间,实际上我们只需要学习高分辨率图像和低分辨率图像之间的高频部分残差即可。**残差网络结构的思想特别适合用来解决超分辨率问题,可以说影响了之后的深度学习超分辨率方法。VDSR是最直接明显的学习残差的结构。
提炼算法创新点:
1.加深网络结构(20层):更深的网络结构使得后面的网络层拥有更大的感受野,该文章采取3X3的卷积核,从而使得深度为D的网络,拥有(2D+1)X(2D+1)的感受野,从而可以根据更多的像素点去推断结果像素点
2.加深的网络结构为梯度传输带来了困难,采用残差学习,提高学习率,加快了收敛速度,同时采用调整梯度裁剪(Adjustable Gradient Clipping)
3.数据混合:将不同大小倍数的图像混合在一起训练,从而支持不同倍数的高清化
4.每次卷积后,图像的size变小,但是,在下一次卷积前,对图像进行补0操作,恢复到原来大小,这样不仅解决了网络深度的问题,同时,实验证明对边界像素的预测结果也得到了提升。
SRCNN存在三个问题需要进行改进:1、依赖于小图像区域的内容;2、训练收敛太慢;3、网络只对于某一个比例有效。
VDSR模型主要有以下几点贡献:1、增加了感受野,在处理大图像上有优势,由SRCNN的13*13变为41*41。2、采用残差图像进行训练,收敛速度变快,因为残差图像更加稀疏,更加容易收敛(换种理解就是lr携带者低频信息,这些信息依然被训练到hr图像,然而hr图像和lr图像的低频信息相近,这部分花费了大量时间进行训练)。3、考虑多个尺度,一个卷积网络可以处理多尺度问题。
ResNet和VDSR两者结构比较: