当前位置:网站首页>文章复现: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 多平台发布
边栏推荐
- YOLOv5 PyQt5(一起制作YOLOv5的GUI界面)
- 基于Qiskit——《量子计算编程实战》读书笔记(五)
- 动手写prometheus的exporter-02-Counter(计数器)
- FPGA工程师面试试题集锦21~30
- 从GET切换为POST提交数据的方法
- How does Jenkins play with interface automation testing?
- Interface debugging also can play this?
- Transforming into a product, is it reliable to take the NPDP test?
- pytorch框架学习(3)torch.nn.functional模块和nn.Module模块
- strongest brain (1)
猜你喜欢

从GET切换为POST提交数据的方法

AVL tree insertion--rotation notes

Zhongang Mining: Strong downstream demand for fluorite

基于Qiskit——《量子计算编程实战》读书笔记(二)

pytorch框架学习(3)torch.nn.functional模块和nn.Module模块

Error when installing oracle rac 11g and executing root.sh

Linear Algebra (4)

pytorch框架学习(1)网络的简单构建

一篇文章带你搞懂什么是幂等性问题?如何解决幂等性问题?

ThreadPoolExecutor线程池原理
随机推荐
看了几十篇轻量化目标检测论文扫盲做的摘抄笔记
接口文档进化图鉴,有些古早接口文档工具,你可能都没用过
MySql's json_extract function processes json fields
pytorch learning
再肝3天,整理了90个 NumPy 例子,不能不收藏!
【静态代理】
一文带你搞懂OAuth2.0
虚拟土地价格暴跌85% 房地产泡沫破裂?依托炒作的暴富游戏需谨慎参与
I have a dream for Career .
如何模拟后台API调用场景,很细!
OpenGauss source code, is it maintained with VSCode in the window system?
canvas canvas drawing clock
How to use Apifox's Smart Mock function?
`id` bigint(20) unsigned NOT NULL COMMENT 'Database primary key',
R语言:修改chart.Correlation()函数绘制相关性图——完美出图
Touch chip used in smart touch remote control
pytorch框架学习(4)torchvision模块&训练一个简单的自己的CNN (一)
MySql之json_extract函数处理json字段
Error when installing oracle rac 11g and executing root.sh
CORS跨域资源共享漏洞的原理与挖掘方法