Files
vgg16-image-recognition/predict.py

30 lines
824 B
Python

import numpy as np
from keras.utils import load_img, img_to_array
from keras.applications.vgg16 import preprocess_input, decode_predictions
def predict(model, path):
# only allow valid file types
if not (".jpg" in path or ".jpeg" in path):
return None
# receive image path as CLI argument
img = load_img(path, color_mode='rgb', target_size=(224, 224))
# loaded image to np array for model to read
x = img_to_array(img)
x.shape
x = np.expand_dims(x, axis=0)
# process array and make predictions
x = preprocess_input(x)
features = model.predict(x)
p = decode_predictions(features)
for predict in p:
i = 0
while i < len(predict):
predict[i] = (predict[i][0], predict[i][1], str(predict[i][2]))
i = i + 1
return p