【发布时间】:2020-10-03 20:21:22
【问题描述】:
我想正确预处理图像以将它们输入到 VGG16 模型中
作者在他们的original paper 中写道:
在训练期间,我们的 ConvNets 的输入是固定大小的 224 × 224 RGB 图像。我们做的唯一预处理是减去平均 RGB 值,在训练集上计算,来自每个像素。
调整大小部分很容易完成:
import cv2
import numpy as np
# Reading the image in RGB mode
image = cv2.imread(PATH_TO_IMAGE,1)
# Resize Image to original VGG16 input size
# from the paper: "During training, the input to our ConvNets
# is a fixed-size 224 × 224 RGB image"
width = 224
height = 224
dim = (width, height)
# resize image
resized_image = cv2.resize(image, dim, interpolation = cv2.INTER_AREA)
...但我不太确定减去平均 RGB 值:
meanRBB_substract_image = resized_image - np.mean(resized_image)
这是正确的做法吗?
在均值 RGB 减法之前:
平均 RGB 减法后:
编辑:我刚刚意识到他们写的是“在训练集上计算” -> 这是否意味着我需要 1. 找到我训练集中所有图片的平均 RGB 值,然后然后 2. 从所有训练集图像中减去这个平均值?
【问题讨论】:
-
你看到我的回答了吗? @亨利
标签: python opencv machine-learning vgg-net