30 lines
824 B
Python
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
|