模型重量是从caffe移植的,所以它在
BGR format
.
Caffe使用BGR颜色通道方案读取图像文件。这是
由于imread的底层OpenCV实现。假设
RGB的错误是常见的。
您可以找到原始caffe模型重量文件
on VGG website
. 此链接也可以在Keras文档中找到。
the original VGG paper
,第2.1节:
从每个像素在训练集上计算。
这句话实际上是什么
imagenet_utils.preprocess_input(mode='caffe')
做
-
从RGB转换为BGR:因为
keras.preprocessing.image.load_img()
以RGB格式加载图像,VGG16(以及从caffe移植的所有模型)需要此转换。
-
减去平均BGR值:
(103.939, 116.779, 123.68)
从图像阵列中减去。
预处理器不用于
vgg16.py
. 它被导入到文件中,以便用户可以通过调用
keras.applications.vgg16.preprocess_input(rgb_img_array)
,而不关心模型权重的来源。的论点
preprocess_input()
始终是RGB格式的图像阵列。如果模型是用caffe训练的,
预处理输入()
将数组转换为BGR格式。
预处理输入()
不打算从调用
imagenet_utils
keras.applications.vgg16.preprocess_input()
图像将被转换为VGG16训练的合适格式和范围。类似地,如果您使用的是Inception V3,请调用
keras.applications.inception_v3.preprocess_input()
图像将被转换为初始V3训练的范围。