我想正确地预处理图像,以便输入到 VGG16 模型中
在他们的原始论文中,作者写道:
在训练过程中,我们的卷积神经网络的输入是固定尺寸的 224 × 224 RGB 图像。我们唯一做的预处理是从每个像素中减去训练集上计算的平均 RGB 值。
调整大小部分很容易完成:
… 但我对减去平均 RGB 值不太确定:
meanRBB_substract_image = resized_image - np.mean(resized_image)
这是正确的做法吗?
减去平均 RGB 值之前:
减去平均 RGB 值之后:
编辑: 我刚刚意识到他们写的是“在训练集上计算” -> 这是否意味着我需要 1. 找到训练集中所有图片的平均 RGB 值,然后 2. 从所有训练集图像中减去这个平均值?
回答:
尝试:
from keras.applications.vgg16 import preprocess_input...resized_image = cv2.resize(image, dim, interpolation = cv2.INTER_AREA)processedimage = preprocess_input(resized_image)
来自:https://www.pyimagesearch.com/2016/08/10/imagenet-classification-with-python-and-keras/