keras 人工智能之VGGNet神经网络的图片识别

VGG16结构图

上期文章我们分享了如何使用VGGNet CNN网络结构搭建一个图片识别网络,以及训练了神经网络模型,利用上期训练好的神经模型,可以进行我们的图片识别

图片识别结果

导入第三方库

from keras.preprocessing.image import img_to_array
from keras.models import load_model
import numpy as np
import imutils
import pickle
import cv2
import os

加载图片并进行处理

# 加载图片
image = cv2.imread("examples/11.png")
output = image.copy() # 复制图片
image = cv2.resize(image, (96, 96))# resize图片
image = image.astype("float") / 255.0# 转换图片到-1
image = img_to_array(image)# 转换图片数据到array
image = np.expand_dims(image, axis=0)## 增加一个轴

加载模型与label

model = load_model("VGGNet.model")
lb = pickle.loads(open("labelbin.pickle ", "rb").read())

识别图片

proba = model.predict(image)[0]
idx = np.argmax(proba) #精确度
label = lb.classes_[idx]
print(label)

显示图片

label = "{}: {:.2f}% ".format(label, proba[idx] * 100)
output = imutils.resize(output, width=400)
cv2.putText(output, label, (10, 25),  cv2.FONT_HERSHEY_SIMPLEX,
	0.7, (0, 255, 0), 2)
print("[INFO] {}".format(label))
cv2.imshow("Output", output)
cv2.waitKey(0)

图片识别