Cropping/Scaling ImageNet 图片

Cropping/Scaling ImageNet Images

ImageNet 图像大小不一,但神经网络需要固定大小的输入。

一种解决方案是以图像的中心点为中心,以适合图像的大小进行裁剪。这有效但有一些缺点。通常图像中感兴趣对象的重要部分被切掉,甚至出现正确对象完全丢失而属于不同 class 的另一个对象可见的情况,这意味着您的模型将被训练该图像错误。

另一种解决方案是使用整个图像并将其零填充到每个图像具有相同尺寸的位置。不过,这似乎会干扰训练过程,并且模型会学习寻找图像边缘附近的 vertical/horizontal 黑色块。

通常做什么?

有几种方法:

  • 多种作物。例如,AlexNet 最初是在 5 种不同的作物上训练的:中心、左上、右上、左下、右下。
  • 随机裁剪。只是从图像中随机裁剪一些,希望神经网络不会有偏差。
  • 调整大小和变形。在不考虑宽高比的情况下将图像调整为固定大小。这将使图像内容变形但保留但现在您确定没有内容被剪切。
  • 可变大小的输入。不要在可变大小的图像上裁剪和训练网络,使用诸如空间金字塔池之类的东西来提取可与完全连接的层一起使用的固定大小的特征向量。

您可以看看最新的 ImageNet 网络是如何训练的,例如 VGG 和 ResNet。他们通常会详细描述这一步。