首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV VGG16模型的图像预处理

OpenCV VGG16模型的图像预处理
EN

Stack Overflow用户
提问于 2020-06-14 10:00:59
回答 1查看 1.1K关注 0票数 3

我想正确地预处理图像,将它们输入到VGG16模型中。

在他们的原纸中,作者写道:

在训练过程中,我们的ConvNets输入是一个固定大小的224×224 RGB图像.我们所做的唯一的预处理是从每个像素中减去平均RGB值,在训练集上计算。

调整大小的部分很容易完成:

代码语言:javascript
运行
复制
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值:

代码语言:javascript
运行
复制
meanRBB_substract_image = resized_image - np.mean(resized_image)

是正确的方法吗?

在平均RGB相减之前:

在平均RGB相减后:

更多关于VGG16模型的信息:https://neurohive.io/en/popular-networks/vgg16/#:~:text=The%20architecture%20depicted%20below%20is%20VGG16.&text=The%20input%20to%20cov1%20layer,stack%20of%20convolutional%20(conv.)

编辑:我刚刚意识到他们写的是“在训练集上计算的”,这是否意味着我需要1。为我的训练集中的所有图片找到平均RGB值,然后2.从所有训练集图像中减去这个平均值吗?

EN

Stack Overflow用户

回答已采纳

发布于 2020-11-29 03:48:48

尝试:

代码语言:javascript
运行
复制
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/

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62370995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档