首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SRCNN网络如何保持图像的原始大小?为什么图像不会随着每次卷积而变小?

SRCNN网络如何保持图像的原始大小?为什么图像不会随着每次卷积而变小?
EN

Stack Overflow用户
提问于 2019-03-27 00:03:01
回答 2查看 146关注 0票数 0

SRCNN是图像超分辨率领域最著名的最新技术之一。作者提出了一种CNN分层结构,其中他们依次使用4个卷积层,滤波器大小为9,1,5,3。

根据我的理解,这意味着图像大小将逐渐减小(第二层除外)。即使使用填充来保持图像大小不变,第一个操作也意味着沿每个边缘添加4个零。因此,大小为5的滤波器基本上只能看到一端的零,这将导致沿边缘的分辨率很差。

这篇论文没有解释他们是如何解决减小图像大小的问题的。任何帮助都将不胜感激。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-10-09 18:15:59

这个github存储库展示了处理边缘问题的方法(或洞察力)。您可能需要对其进行一些修改以适应您的代码。

https://github.com/jormeli/srcnn-keras

票数 0
EN

Stack Overflow用户

发布于 2021-05-18 20:17:17

很抱歉回复晚了,

我一直在这个领域工作,我终于理解了为什么即使应用卷积运算,图像大小也不会减小。让我们以作者提到的架构为例,即(9-3-5 )。

在代码实现中,图像被划分为32x32个子图像,并且对于每个子图像,其hr和lr版本通过缩小和放大来准备。所以我们准备了一个大小为20:20的hr补丁和32:32的lr补丁。(在将这些面片作为第一个圆锥层的输入之前,我们删除了6个边界像素,因此hr面片的形状将是32 - (6+6) = 20 x 20,这就是为什么我将上面的hr面片提到为20:20)

整个技巧在于填充,我们提供LR补丁作为CNN的输入

First conv layer:滤波器大小= 9,填充=有效,所以输出的形状= n-f+1 ( 32 -9+1)= 24,所以第一层的输出是24x24的图像

第二卷积层:滤波器大小= 3,填充=相同,所以输出的形状=输入的形状,所以第二层的输出是24x24的图像

第三层卷积层:滤波器大小= 5,填充=有效,所以输出的形状= n-f+1 ( 24 -5+1)= 20,所以第三层的输出是20x20的图像。

所以最后我们有一个20x20的LR补丁和20x20的HR补丁,我们进行比较,执行mse和反向传播错误。

所以在这里我们实际上并没有增加图像的大小,我们保持图像的大小不变,并进行调整以使图像看起来更好。

干杯:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55361491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档