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小结的主要内容,如果未能解决你的问题,请参考以下文章

phpMyAdmin利用小结

Terminal命令小结

Qt 的 paintEvent 函数小结

Kubernetes自动缩扩容HPA算法小结

列表排序交互方式小结

springboot 项目小结thymeleaf layui 使用小结