SRCNN小结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SRCNN小结相关的知识,希望对你有一定的参考价值。
参考技术A 最近要学做一些关于低剂量重建得工作,花了两天时间专门看了一下SRCNN[1]的论文,以下是自己学习的一些总结。首先,SRCNN的网络结构如下:
SRCNN是一个用于图像图像超分辨的CNN网络,也是用CNN做超分辨的开山之作。在原文中,作者设计了一个三层的全卷积神经网络。SRCNN算法流程如下:
1.首先对输入的低分辨率的图像使用双三次插值放大至目标尺寸。
2.将低分辨率图像输入三层卷积神经网络。
在SRCNN的训练过程中,作者采用平均均方差(MSE:mean squared error)来作为损失函数,并且为了在训练过程中避免边界效应,并未对图像进行填充。在训练过程中前两层的学习率设为0.0001,最后一层学习率为0.00001。在训练过程中,图片采用的是YCbCr格式的图像,并只对Y通道的图像进行超分辨处理,因此输入的通道数c=1。通过对比不同的数据集以及网络结构,作者得到如下结论。
1.大量的数据集会对训练的结果有一定提升作用,但提升作用不像其他视觉任务那样明显。
2.增加网络的宽度(filter数量)会显著的提升训练结果。
3.增加filter的size可以收集更丰富的结构信息,从而得到更好的结果。
4.增加网络层数不会对结果有明显的提升作用,反而会增加训练的难度。
5.在RGB图像上实现最好的效果,与单通道(Y-only)相比提升并不明显。加入CrCb反而不利于训练。
SRCNN
超分的开篇之作,2014 ECCV 港中文 Chao Dong
三层网络,文中还对各层网络的意义做出了解释
使用caffe训练模型,matlab做inference,代码见 http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html
700*700像素的图重建出来需要30s+,效果还是比较朦胧
可以用自己的图片做一下直观了解
path = ‘E:Download超分辨率 est est‘; list = dir(path); for i1 = 1: size(list,1) name = list(i1).name; if name == ‘.‘ continue; end fullName = fullfile(path, name); demo_SR(fullName); % 需要把作者的demo源文件改为function end
评估方法
计算PSNR、SSIM,计算的方式可以参见VDSR的matlab代码
常用评估数据集 set5,set14,B100,urban100,之后的新paper,还用了manga109、部分DIV2K等
用二维坐标表示性能也相当直观
缺点:
1、Works for only a single scale
2、卷积感受野太小
3、学习速率 1e-5 太慢,需要加快训练速度。而且inference的速度也比较慢
如何训练model
VDSR
CVPR 2016 首尔大学
https://cv.snu.ac.kr/research/VDSR/
以上是关于SRCNN小结的主要内容,如果未能解决你的问题,请参考以下文章