理解问题
在处理计算机视觉问题时,我们经常遇到需要对整个数据集应用某种形式的转换的情况。Keras中的ImageDataGenerator类提供了各种转换,如翻转、规格化等。
然而,应用在Keras中不可用的自定义转换变得非常困难。在我们的特定示例中,我们将对我们的数据集应用去噪算法作为预处理转换。一种简单的方法是对数据集中的所有图像应用去噪函数,并将处理后的图像保存在另一个目录中。然而,这同时消耗了我们的时间和空间。另一种方法是使用preprocessing_function属性动态地执行这个转换。
为了加载用于训练的图像,我使用了Keras中实现的.flow_from_directory()方法。使用OpenCV去噪是相当简单的,OpenCV提供了几个内置算法来实现这一点。在本文中,我将展示如何定义我们自己的预处理函数,将其传递给训练生成器,并将图像直接提供给模型,从而无需保存它们。
本教程大致分为两部分
实现去噪算法
扩展预处理函数
让我们马上开始吧!
第一部分 实现去噪算法
让我们准备一个函数,将图像作为输入,应用内置的去噪算法,并返回处理后的图像。
import cv2
import