1. 程式人生 > >【AI】Keras使用VGG16模型預測自己的圖片

【AI】Keras使用VGG16模型預測自己的圖片


Keras使用VGG16模型預測自己的圖片

環境
Win10
Miniconda3
Pycharm2018.02


程式碼如下

from keras.applications.vgg16 import VGG16
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
from keras.applications.vgg16 import preprocess_input
from keras.applications.vgg16 import decode_predictions
import keras
import tensorflow as tf

# 模型手動下載然後放到目錄C:\Users\使用者名稱\.keras\models下,下載地址如下:
# https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels.h5
# https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5

# 載入模型並列印
model = VGG16()
print(model.summary())

# 載入一副測試圖片
image = load_img("dog.jpg", target_size=(224, 224))

# 轉為陣列
image = img_to_array(image)

# 重塑成4D
image = image.reshape((1, image.shape[0], image.shape[1], image.shape[2]))

# 預處理圖片
image = preprocess_input(image)

# 預測
predict_result = model.predict(image)

# 解析預測結果
label = decode_predictions(predict_result)

# 打印出三個概率最大的分類
for idx in range(0, 3):
    print("類別:%s        概率:%0.4f"%(label[0][idx][1], label[0][idx][2]))

# 清理
keras.backend.clear_session()
tf.reset_default_graph()


效果

在這裡插入圖片描述