Alif Al Hasan
[Task] Model Deployment
1424103
"""classify.py
This module classifies the input image.
"""
import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing import image
# Load the trained model
import os
script_directory = os.path.dirname(os.path.abspath(__file__))
model_path = os.path.join(script_directory, '../../models/football_logo_model.h5')
model = tf.keras.models.load_model(model_path)
def preprocess_image(img):
"""
Preprocess the input image for model prediction.
Args:
img: Input image.
Returns:
img: Preprocessed image.
"""
img = image.img_to_array(img)
img = np.expand_dims(img, axis=0)
img /= 255.0
return img
# Define the class names (replace with your actual class names)
class_names = ['Arsenal', 'Chelsea', 'Liverpool', 'Manchester City', 'Manchester United']
def classify_logo(img):
"""
Classify the football logo in the input image.
Args:
img: Path to the input image.
Returns:
str: The predicted class of the football logo.
"""
img_path = img
img = image.load_img(img_path, target_size=(224, 224))
img = image.img_to_array(img)
img = preprocess_image(img)
prediction = model.predict(img)
predicted_class_index = prediction.argmax(axis=1)[0]
predicted_class_name = class_names[predicted_class_index] # Map index to name
return predicted_class_name