Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| import numpy as np | |
| import json | |
| from tensorflow.keras.applications.efficientnet import preprocess_input | |
| from tensorflow.keras.preprocessing import image as keras_image | |
| # Load Model & Class Indices | |
| MODEL_PATH = "latest_model%252520%2525281%252529.keras" | |
| CLASS_INDICES_PATH = "class_indices%2525252520%252525252811%2525252529 (1).json" | |
| FLOWER_INFO_PATH = "flower_info%2525252520%25252525281%2525252529[1].json" | |
| def load_model(): | |
| return tf.keras.models.load_model(MODEL_PATH) | |
| def load_class_indices(): | |
| with open(CLASS_INDICES_PATH, "r") as f: | |
| return json.load(f) | |
| def load_flower_info(): | |
| with open(FLOWER_INFO_PATH, "r", encoding="utf-8") as f: | |
| return json.load(f) | |
| model = load_model() | |
| class_indices = load_class_indices() | |
| flower_info = load_flower_info() | |
| class_names = list(class_indices.keys()) | |
| def preprocess_image(pil_image): | |
| # Convert PIL image to numpy array and preprocess | |
| img_array = keras_image.img_to_array(pil_image.resize((224, 224))) | |
| img_array = np.expand_dims(img_array, axis=0) | |
| return preprocess_input(img_array) | |
| def predict_image(pil_image): | |
| img_array = preprocess_image(pil_image) | |
| predictions = model.predict(img_array) | |
| predicted_class = class_names[np.argmax(predictions[0])] | |
| info = flower_info.get(predicted_class, "No additional information available.") | |
| return f"Identified as: {predicted_class}", info | |
| def predict(pil_image): | |
| return predict_image(pil_image) | |
| interface = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Image(type="pil"), # Receive image as a PIL object | |
| outputs=[gr.Textbox(label="Prediction"), gr.Textbox(label="Flower Information")], | |
| title="Flower Identification App", | |
| description="Upload an image of a flower to identify it and get care information." | |
| ) | |
| if __name__ == "__main__": | |
| interface.launch() |