裁剪/缩放ImageNet图像

8

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

一个解决方案是选择一个尽可能大的裁剪尺寸,以图像中心点为中心。这种方法虽然可行,但也有一些缺点。通常情况下,图像中感兴趣的物体的重要部分会被剪掉,甚至有时正确的物体完全缺失,而另一个属于不同类别的物体却可见,这意味着您的模型将对该图像进行错误的训练。

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

通常采用什么方法?

1个回答

9
有几种方法可以处理图片尺寸问题:
  • 多重裁剪。例如,AlexNet 最初是在 5 种不同的裁剪方式下进行训练的:中心、左上、右上、左下和右下。
  • 随机裁剪。从图像中取出一些随机裁剪部分,并希望神经网络不会有偏差。
  • 调整大小和变形。将图像调整为固定大小而不考虑长宽比。这会使图像内容变形,但现在您可以确保没有内容被裁剪。
  • 可变大小输入。不要裁剪并在可变大小的图像上训练网络,使用类似空间金字塔池化的方法提取一个固定大小的特征向量,该向量可以与全连接层一起使用。

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


常见的做法是在调整大小之前进行裁剪吗? - kwotsin
@kwotsin 我想象中,只要在裁剪中保留足够大的图像部分,顺序并不重要。 - Mateen Ulhaq
其中一些方法听起来像是用于训练。对于验证,我查看了这个示例,它似乎将图像缩放到256,然后居中裁剪为224x224。(我相信这就是AlexNet最初处理的方式,对吧?) - Mateen Ulhaq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接