SRCNN是图像超分辨率领域最著名的最新技术之一。作者提出了一种CNN分层结构,其中他们依次使用4个卷积层,滤波器大小为9,1,5,3。
根据我的理解,这意味着图像大小将逐渐减小(第二层除外)。即使使用填充来保持图像大小不变,第一个操作也意味着沿每个边缘添加4个零。因此,大小为5的滤波器基本上只能看到一端的零,这将导致沿边缘的分辨率很差。
这篇论文没有解释他们是如何解决减小图像大小的问题的。任何帮助都将不胜感激。提前谢谢。
发布于 2019-10-09 18:15:59
这个github存储库展示了处理边缘问题的方法(或洞察力)。您可能需要对其进行一些修改以适应您的代码。
发布于 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和反向传播错误。
所以在这里我们实际上并没有增加图像的大小,我们保持图像的大小不变,并进行调整以使图像看起来更好。
干杯:)
https://stackoverflow.com/questions/55361491
复制相似问题