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

Blu*_*lue 11 python computer-vision deep-learning conv-neural-network keras

我正在尝试使用Keras库Tensorflow后端建模一个完全卷积的神经网络.

我面临的问题是分批饲喂不同大小的图像以实现model.fit()功能.训练集包括不同大小的图像,从768x501到1024x760不等.

不超过5张图像具有相同的尺寸,因此将它们分组成批似乎没有任何帮助.

Numpy允许以列表形式将数据存储在单个变量中.但keras model.fit()函数在接收列表类型训练数组时会引发错误.

我不希望调整大小并丢失数据,因为我已经拥有一个非常小的数据集.

我该如何培训这个网络?

Pet*_*Why 2

我认为空间金字塔池(SPP)可能会有所帮助。查看本文

我们注意到 SPP 对于深度 CNN 来说有几个显着的特性:

1)无论输入大小如何,SPP都能够生成固定长度的输出,而之前深度网络中使用的滑动窗口池则不能;

2)SPP使用多级空间仓,而滑动窗口池化仅使用单个窗口大小。多层池化已被证明对对象变形具有鲁棒性;

3)由于输入尺度的灵活性,SPP可以汇集在可变尺度上提取的特征。通过实验,我们表明所有这些因素都提高了深度网络的识别精度。


yhenon在 Github 上为 Keras 实现了 SPP