当前位置:网站首页>文章复现:SRCNN
文章复现:SRCNN
2022-08-10 05:30:00 【公众号学一点会一点】
12 年,AlexNet 在 ImageNet 图像分类比赛上的超神表现(参考链接【1】),证明了卷积神经网络在图像分类方面的强大能力,之后各个学者在 CNN 的基础上提出了多种改进的图像分类网络架构。
14 年,DONG 首次提出用 CNN 来进行图像的超分辨率重建工作(参考链接【2】),文章提出了 SRCNN 的架构。图像的超分可以认为是一种像素级的回归任务。
在 climate 领域,一般是回归任务,毕竟多数是连续值。
本文来复现一下 SRCNN。
文章摘要
We propose a deep learning method for single image super- resolution (SR). Our method directly learns an end-to-end mapping be- tween the low/high-resolution images. The mapping is represented as a deep convolutional neural network (CNN) [15] that takes the low- resolution image as the input and outputs the high-resolution one. We further show that traditional sparse-coding-based SR methods can also be viewed as a deep convolutional network. But unlike traditional meth- ods that handle each component separately, our method jointly optimizes all layers. Our deep CNN has a lightweight structure, yet demonstrates state-of-the-art restoration quality, and achieves fast speed for practical on-line usage.
大意就是说本文提出了一种轻量化的、端到端的、基于CNN的神经网络,在图像超分任务上的表现超过了传统的稀疏编码方法,且速度很快。
网络架构
SRCNN的网络架构确实也很简单,其网络只有三个卷积层:

对应代码:
class SRCNN(nn.Module):
def __init__(self, inchannels):
super(SRCNN, self).__init__()
self.main = nn.Sequential(
nn.Conv2d(inchannels, 64, kernel_size=9, stride=(1, 1), padding=(4, 4)),
nn.ReLU(),
nn.Conv2d(64, 32, kernel_size=1, stride=(1, 1), padding=(0, 0)),
nn.ReLU(),
nn.Conv2d(32, 1, kernel_size=5, stride=(1, 1), padding=(2, 2))
)
def forward(self, x):
y = self.main(x)
return y
本文采用的是9-1-5的卷积核,这个可以自己调整; SRCNN的输入是先用双线性内插到目标尺寸,然后再输入到网络中; 每一层padding的数量可以自己计算一下,确保输入和输出的大小一致;

SRCNN是用深度卷积来进行超分的第一篇,也算是开创性的工作,但是想要根据自己的研究进行应用,只能说道阻且长。。。。
参考
【1】CNN 用于图像分类的首篇:KRIZHEVSKY A, SUTSKEVER I, HINTON G E J C O T A 2012. ImageNet classification with deep convolutional neural networks. 60: 84 - 90.
【2】CNN 用于图像回归的首篇:DONG C, LOY C C, HE K, et al. Learning a Deep Convolutional Network for Image Super-Resolution[C]//Computer Vision – ECCV 2014.Springer International Publishing,2014:184-199. 10.1007/978-3-319-10593-2_13.
本文由 mdnice 多平台发布
边栏推荐
- Advanced Feature Selection Techniques in Linear Models - Based on R
- 【LeetCode】41. The first missing positive number
- 论文精读 —— 2021 CVPR《Progressive Temporal Feature Alignment Network for Video Inpainting》
- 一篇文章带你搞懂什么是幂等性问题?如何解决幂等性问题?
- The time for flinkcdc to read pgsql is enlarged. Does anyone know what happened? gmt_create':1
- 论文精度 —— 2016 CVPR 《Context Encoders: Feature Learning by Inpainting》
- How to simulate the background API call scene, very detailed!
- Concurrency tool class - introduction and use of CountDownLatch, CyclicBarrier, Semaphore, Exchanger
- 接口文档进化图鉴,有些古早接口文档工具,你可能都没用过
- Talk about API Management - Open Source Edition to SaaS Edition
猜你喜欢
随机推荐
再肝3天,整理了90个 NumPy 例子,不能不收藏!
接口调试还能这么玩?
自适应空间特征融合( adaptively spatial feature fusion)一种基于数据驱动的金字塔特征融合策略
基于Qiskit——《量子计算编程实战》读书笔记(六)
R中设置图形参数--函数par()详解
Qiskit学习笔记(三)
树莓派入门(3)树莓派GPIO学习
Tkinter 入门之旅
FPGA工程师面试试题集锦31~40
【YOLOv5训练错误】权重文件出错?
OpenGauss source code, is it maintained with VSCode in the window system?
基于Qiskit——《量子计算编程实战》读书笔记(七)
ThreadPoolExecutor线程池原理
EasyGBS connects to mysql database and prompts "can't connect to mysql server", how to solve it?
Interface debugging also can play this?
基于Qiskit——《量子计算编程实战》读书笔记(二)
Qiskit官方文档选译之量子傅里叶变换(Quantum Fourier Transform, QFT)
MySql's json_extract function processes json fields
An article will help you understand what is idempotency?How to solve the idempotency problem?
pytorch框架学习(9)torchvision.transform








