具有不同输入的全卷积网络

Posted

技术标签:

【中文标题】具有不同输入的全卷积网络【英文标题】:Fully Convolution Networks with Varied inputs 【发布时间】:2016-11-09 12:31:41 【问题描述】:

我有一个全卷积神经网络,U-Net,可以在下面阅读。

https://arxiv.org/pdf/1505.04597.pdf

我想用它对图像进行像素分类。我的训练图像有两种尺寸:512x512 和 768x768。我在初始步骤中在前者中使用大小为 (256,256,256,256) 的反射填充,在后者中使用 (384,384,384,384)。我在卷积之前进行连续填充,以获得输入大小的输出。

但由于我的填充取决于图像/输入的大小,我无法构建通用模型(我使用的是 Torch)。

在这种情况下如何填充?

我是深度学习的新手,任何帮助都会很棒。谢谢。

【问题讨论】:

【参考方案1】:

您的模型将只接受第一层大小的图像。在将它们转发到网络之前,您必须对它们进行预处理。为此,您可以使用:

image.scale(img, width, height, 'bilinear')

img 是要缩放的图像,widthheight是模型第一层的大小(如果我没记错的话是 572*572),'bilinear' 是它的算法将用于缩放图像。

请记住,可能需要提取图像的平均值或将其更改为 BGR(取决于模型的训练方式)。

【讨论】:

这也是我的理解。但是我对这两个帖子感到矛盾。如这些帖子中建议的那样,您如何在测试期间输入不同尺寸的图像? ***.com/a/39054829/8100895***.com/a/57346952/8100895【参考方案2】:

首先要做的是将所有图像处理为相同大小。 CONV 层输入要求所有图像都具有指定的尺寸。

Caffe 允许您在 prototxt 文件中进行reshape;在 Torch 中,我认为有一个类似的命令可以放在 createModel 的前面,但我不记得命令名称了。如果没有,那么您需要在模型流程之外进行。

【讨论】:

以上是关于具有不同输入的全卷积网络的主要内容,如果未能解决你的问题,请参考以下文章

全卷积网络 - 训练数据中不同大小的图像

用于语义分割的全卷积神经网络

R-FCN:基于区域的全卷积网络来检测物体

全卷积神经网络概述学习记录

CNN(卷积神经网络)算法

深度卷积神经网络各种改进结构块汇总