我应该将图像处理技术应用于卷积网络的输入吗?

人工智能 卷积神经网络 图像识别 图像处理
2021-11-18 04:50:36

在基于特征的模式识别工作了一段时间后,我正在切换到 CNN,看看我是否可以获得更高的识别率。

在我的基于特征的算法中,我在提取特征之前对图片进行了一些图像处理,例如一些卷积滤波器以减少噪声并分割成前景和背景,最后对物体进行识别和二值化。

我应该在将数据输入 CNN 之前进行相同的图像处理,还是可以将原始数据输入 CNN 并期望 CNN 自动适应而无需每个图像处理步骤?

2个回答

使用基于深度学习的解决方案的全部好处在于您不必进行所有这些预处理,即二值化、背景分割。CNN,例如 YOLO 或 FasterRCNN,可以学习如何自己检索这些信息。

CNN 应该在不尝试进行特殊特征提取的情况下工作。正如所指出的,一些预处理可以帮助增强 CNN 的分类结果。Keras ImageDataGenerator 提供了可选参数,您可以设置这些参数以提供预处理以及提供数据增强。我知道肯定有效但可能会很痛苦的一件事是裁剪图像,以使感兴趣的主题在最终裁剪图像中占据很高比例的像素。裁剪后的图像可以根据需要调整大小。这里的逻辑很简单。您希望您的 CNN 对感兴趣的主题进行训练(例如,一只鸟坐在树上,而这只鸟是感兴趣的主题)。图像中不属于鸟的部分本质上只是噪声,使分类器的工作变得更加困难。例如,假设您有一个 500 X 500 的初始图像,其中感兴趣的对象(鸟)仅占用 10% 的像素(25,000 像素)。现在说作为 CNN 的输入,您将图像大小减小到 100 X 100。现在(CNN“学习”的像素下降到 1000 像素。但是假设您裁剪图像以保留鸟的特征但是裁剪图像中鸟的像素占像素的 50%。现在如果将裁剪图像的大小调整为 100 X 100 ,则有 5000 个相关像素可供网络学习。我在几个数据上做了这个集。特别是感兴趣的主题是面部的人的图像。有许多程序可以有效地裁剪这些图像,因此大部分只有面部出现在裁剪结果中。我在一种情况下使用未裁剪的图像训练了一个深度 CNN,在另一种情况下使用裁剪的图像。使用裁剪后的图像,结果明显更好。