Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import numpy as np | |
| import tensorflow as tf | |
| from tensorflow.keras.models import load_model | |
| from tensorflow.keras.preprocessing.image import load_img, img_to_array | |
| # Load the trained model | |
| MODEL_PATH = "best_model.weights.h5" | |
| model = load_model(MODEL_PATH) | |
| # Define the class names | |
| class_names = [ | |
| "Bear", "Bird", "Cat", "Cow", "Deer", | |
| "Dog", "Dolphin", "Elephant", "Giraffe", | |
| "Horse", "Kangaroo", "Lion", "Panda", | |
| "Tiger", "Zebra" | |
| ] | |
| def classify_image(image): | |
| img = image.resize((256, 256)) | |
| img_array = img_to_array(img) / 255.0 | |
| img_array = np.expand_dims(img_array, axis=0) | |
| predictions = model.predict(img_array) | |
| predicted_class = class_names[np.argmax(predictions)] | |
| return f"Predicted Class: {predicted_class}" | |
| def instruction(): | |
| return ( | |
| "**Important Note:**\n\n" | |
| "This model is specifically trained to classify images into the following **15 animal categories**:\n\n" | |
| "- Bear\n" | |
| "- Bird\n" | |
| "- Cat\n" | |
| "- Cow\n" | |
| "- Deer\n" | |
| "- Dog\n" | |
| "- Dolphin\n" | |
| "- Elephant\n" | |
| "- Giraffe\n" | |
| "- Horse\n" | |
| "- Kangaroo\n" | |
| "- Lion\n" | |
| "- Panda\n" | |
| "- Tiger\n" | |
| "- Zebra\n\n" | |
| "**Usage Limitation:**\n\n" | |
| "- The model will only recognize images containing these animals.\n" | |
| "- Uploading an image of an animal not listed above or a non-animal image may result in inaccurate or undefined predictions.\n\n" | |
| "Ensure the uploaded image is clear, contains a single animal, and resembles the categories listed for the best results." | |
| ) | |
| # Gradio Interface | |
| with gr.Blocks() as app: | |
| gr.Markdown("# Animal Classifier") | |
| gr.Markdown(instruction()) | |
| with gr.Row(): | |
| with gr.Column(): | |
| image_input = gr.Image(label="Upload an Image", type="pil") | |
| predict_button = gr.Button("Classify Image") | |
| with gr.Column(): | |
| result_output = gr.Textbox(label="Prediction Result", lines=3) | |
| predict_button.click(classify_image, inputs=image_input, outputs=result_output) | |
| app.launch() | |