裁剪/缩放ImageNet图像



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

一种解决方案是以图像的中心点为中心,选择与图像大小一样大的裁剪尺寸。这是有效的,但也有一些缺点。通常情况下,图像中感兴趣对象的重要部分会被剪切掉,甚至在某些情况下,正确的对象完全缺失,而属于不同类别的另一个对象可见,这意味着您的模型将被错误地训练为该图像。

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

通常做什么?

有几种方法:

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

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

最新更新