diff --git a/classifiers.py b/classifiers.py index 67b79c8..c5aa35b 100644 --- a/classifiers.py +++ b/classifiers.py @@ -1,8 +1,9 @@ # -*- coding:utf-8 -*- -from keras.models import Model as KerasModel -from keras.layers import Input, Dense, Flatten, Conv2D, MaxPooling2D, BatchNormalization, Dropout, Reshape, Concatenate, LeakyReLU -from keras.optimizers import Adam + +from tensorflow.keras import Model as KerasModel +from tensorflow.keras.layers import Input, Dense, Flatten, Conv2D, MaxPooling2D, BatchNormalization, Dropout, Reshape, Concatenate, LeakyReLU +from tensorflow.keras.optimizers import Adam IMGWIDTH = 256 diff --git a/example.py b/example.py index 8269a03..11571bb 100644 --- a/example.py +++ b/example.py @@ -2,7 +2,9 @@ from classifiers import * from pipeline import * -from keras.preprocessing.image import ImageDataGenerator +import os + +from tensorflow.keras.preprocessing.image import ImageDataGenerator # 1 - Load the model and its pretrained weights classifier = Meso4() @@ -17,15 +19,19 @@ 'test_images', target_size=(256, 256), batch_size=1, + shuffle=False, class_mode='binary', subset='training') # 3 - Predict -X, y = generator.next() -print('Predicted :', classifier.predict(X), '\nReal class :', y) +num_iterations = 0 +for X, y in generator: + print('Predicted :', classifier.predict(X), '\nReal class :', y) + num_iterations += 1 + if num_iterations >= 4: + break # 4 - Prediction for a video dataset - classifier.load('weights/Meso4_F2F') predictions = compute_accuracy(classifier, 'test_videos') diff --git a/predict_on_directory.py b/predict_on_directory.py new file mode 100644 index 0000000..4defea6 --- /dev/null +++ b/predict_on_directory.py @@ -0,0 +1,35 @@ +######################################################################################################################## +# Model +######################################################################################################################## + +import numpy as np +from classifiers import * +from pipeline import * + +import os +import glob +import sys +from tensorflow.keras.preprocessing.image import load_img, img_to_array + +REQUIRED_SIZE = (256, 256) + +if __name__ == "__main__": + images_dir = sys.argv[1] + + if not os.path.isdir(images_dir): + print("## Directory provided {} doesn't exist.".format(images_dir)) + exit() + + # 1 - Load the model and its pretrained weights + classifier = Meso4() + classifier.load('weights/Meso4_DF') + + # Getting files + files = glob.glob(os.path.join(images_dir, "*.jpg")) + for f in files: + im = load_img(f, target_size=REQUIRED_SIZE) + im_arr = np.expand_dims(img_to_array(im), axis=0) + im_arr /= 255.0 + print(im_arr.shape) + pred = classifier.predict(im_arr) + print("## Image {} is classified as {}".format(f, pred)) \ No newline at end of file