图像分辨率在深度学习中的作用

数据挖掘 深度学习 图像分类
2022-02-16 11:19:09

我有多个关于同一主题的图像数据集,我想将它们用于利用深度学习的分类任务。数据集的图像分辨率不同(即有些图片是 128x128px,有些是 512x512,有些是 2048x2048)。

如果我使用具有最高分辨率的数据集来训练我的直觉,我的直觉会是,由于网络会学习它在低分辨率图片中可能无法识别的模式,因此对分辨率较低的图像进行分类会更加困难。另一方面,如果我使用低分辨率数据集进行训练,学习的模式会更加粗糙,并且它在任何新数据上的表现都更好,因为更高分辨率的图像可以很容易地按比例缩小。我的直觉是正确的还是我错过了什么?在我的情况下,选择合适的训练数据的最佳方法是什么?

1个回答

答案可能取决于您想从图像中提取什么样的信息。然而,解决这个问题的一般方法是找到一个完美的平衡,这样你的图像就不会太小而难以提取太多信息,或者它不是高分辨率输入,这会使你的模型不必要地复杂化。后者在空间复杂度和时间复杂度方面也很难训练。

因此,如果您的目标不是识别和分类图像中的微小物体,或者类似的详细而复杂的任务,那么您可以使用小尺寸的图像。

拥有良好的架构和训练有素的模型可以确保您获得强大的成果。考虑到计算机视觉和图像处理领域中大多数著名且功能强大的 NN 模型都使用 96x96、128x128、224x224、256x256 等输入尺寸。也许我这样说太过分了,但是,好的挑战将是构建一个具有小像素尺寸(例如 224x224 或接近此尺寸)的强大模型,因为在这种情况下,模型的可用性和有用性将被放大。正如您还提到的,高质量的图像可以缩小到低比例,但不可能放大小尺寸的图像(至少,没有人工智能的帮助)。由于您的模型相当小,它将处理所有可用图像中的许多(以及检测或分类裁剪图像、图像中的小对象等)。可以被认为是输入大小较小的另一个原因)。因此,如果您使用大像素尺寸构建模型,还需要高质量的图像才能工作,不会接受低质量的图像。考虑到即使是 64x64 图像,google vision API 也能很好地工作。

简而言之,如果您的目标不寻常,并且不需要高分辨率图像来处理图像中的小尺寸对象,那么请使用小尺寸图像。在良好架构的卷积层的帮助下,您可以从这些小图像中提取大量信息,并在下一层处理。此外,考虑到即使输入图像大小的微小变化也可能会极大地影响训练时间。