代码地址:https://github.com/se16wangmeiwei/SRCNN-pytorch/tree/code/srcnn
论文地址:https://arxiv.org/abs/2010.02414
我是刚刚跨入图像超分辨率方向的小白,看了SRCNN的论文,然后进行了复现。
该代码分为了以下几个部分
数据集的预处理
我的数据集是先下载到本地上再进行读取的。
data.py
dataset.py
设定模型训练类
demo.py
模型的设置
model.py
测试模块
predict.py
最终的训练结果
训练结果不是很好,论文中的PSNR是32,我是23。应该是需要调参数的。还有一个原因导致结果不好,应该是训练的图片太少了。
最终的测试效果:
很明显,只是简单的将一些马赛克变得比较平滑了而已。
最后,很少写博,可能写得不尽人意,哪里写得不好的希望大家指出进行改正。大家有什么问题也可以在评论区中提出。抱拳。
【参考了一个博主的代码,但是找不到了…如果那个博主看到了可以给我说下。】
代码地址:https://github.com/se16wangmeiwei/SRCNN-pytorch/tree/code/srcnn我是刚刚跨入图像超分辨率方向的小白,看了SRCNN的论文,然后进行了复现。该代码分为了以下几个部分数据集的预处理我的数据集是先下载到本地上再进行读取的。data.pydataset.py设定模型训练类demo.py模型的设置model.py测试模块predict.py最终的训练结果训练结果不是很好,论文中的PSNR是32,我是23。应该是需要调参
基于python+tensorflow下的
超分辨率
图像重构(效果基本可以达到
论文
中的效果)
论文
地址:点击此处跳转
搞这篇
论文
时,踩了很多坑,效果优于网上的大部分
代码
,网上大部分
代码
效果离理想效果差5-6db,而我把里面的坑踩掉了,最后效果很逼近
论文
中的效果。
经过仔细阅读
论文
,我将
复现
工作主要分为以下几个部分:
Step1:数据集的处理:Train 数据集包括 91 张图片,仅取亮度通道。之后将图片 bicubic 将分辨率降低,再次进行 bicubic 将其大小放大至与原图一致。将图片按照 stride
#
SRC
NN
超分辨率
Pytorch
代码
1.
复现
SRC
NN
,使用三层卷积层,kernel size分别为9,1,5;
2. 包含数据集,并包含在该数据集上训练6000epoch的模型pth文件;
3. 包含训练和推理
代码
,可以使用已经训练好的
代码
直接推理。
12 年,AlexNet 在 ImageNet 图像分类比赛上的超神表现(参考链接【1】),证明了卷积
神经网络
在图像分类方面的强大能力,之后各个学者在 C
NN
的基础上提出了多种改进的图像分类网络架构。
14 年,DONG 首次提出用 C
NN
来进行图像的
超分辨率
重建工作(参考链接【2】),文章提出了
SRC
NN
的架构。图像的超分可以认为是一种像素级的回归任务。
在 climate 领域,一般是回归任务,毕竟多数是连续值。
本文来
复现
一下
SRC
NN
。
We propose a deep lea
pip install scipy==1.2.1
pip install keras==2.2.4
直接运行会出现这个,下载速度还是非常慢的,因为在构建网络的时候使用的VGG19网络:
Downloading data f
GG
NN
SRG
NN
是GG
NN
在推荐系统上的应用,核心网络几乎没有改变。GG
NN
的核心模型其实非常简单,在计算上和GRU基本没有区别。但为了更好的理解ava_vav是如何构造出来的,我们还得从最基本的思想讲起。
绝大多数G
NN
的思想在于消息传播(Message Passing)或者说信念传播(Belief Propagation)。很自然的,我们知道一个节点的信息可以根据其邻居节点信息进行更新。
初代G
NN
2009年最早的G
NN
论文
1将这个过程抽象为
xn=fw(ln,lco[n],xne
图
神经网络
GCN
复现
的实现
代码
:import torch
from torch import
nn
from torch.
nn
import functional as Fclass GCN(
nn
.Module):
def __init__(self, in_features, out_features):
super(GCN, self).__init__()
self.in_features = in_features
self.out_features = out_features
self.weight =
nn
.Parameter(torch.FloatTensor(in_features, out_features))
self.bias =
nn
.Parameter(torch.FloatTensor(out_features))
self.reset_parameters() def reset_parameters(self):
stdv = 1. / math.sqrt(self.weight.size(1))
self.weight.data.uniform_(-stdv, stdv)
self.bias.data.uniform_(-stdv, stdv) def forward(self, input, adj):
support = torch.mm(input, self.weight)
output = torch.spmm(adj, support)
output = output + self.bias
return output