Spaces:
Sleeping
Sleeping
| import cv2 | |
| import gradio as gr | |
| import numpy as np | |
| from tensorflow.keras.models import load_model | |
| import json | |
| # Load the saved models | |
| cnn_model = load_model('cnn_image_classifier.h5') | |
| resnet_model = load_model('resnet_image_classifier.h5') | |
| # Load label map (assuming you have it defined or loaded elsewhere) | |
| # Replace with your actual loading method | |
| with open('EuroSAT/label_map.json', 'r') as f: | |
| label_map = json.load(f) | |
| label_map_inv = {v: k for k, v in label_map.items()} | |
| def predict_image(image): | |
| # Preprocess the image (resize, normalize, etc.) | |
| image = cv2.resize(image, (64, 64)) | |
| image = image / 255.0 | |
| image = np.expand_dims(image, axis=0) | |
| # Make predictions with both models | |
| cnn_pred = cnn_model.predict(image)[0] | |
| resnet_pred = resnet_model.predict(image)[0] | |
| # Get top 5 predictions for CNN | |
| cnn_top5_indices = np.argsort(cnn_pred)[::-1][:5] | |
| cnn_top5 = { | |
| label_map_inv[idx]: float(cnn_pred[idx]) for idx in cnn_top5_indices | |
| } | |
| # Get top 5 predictions for ResNet | |
| resnet_top5_indices = np.argsort(resnet_pred)[::-1][:5] | |
| resnet_top5 = { | |
| label_map_inv[idx]: float(resnet_pred[idx]) for idx in resnet_top5_indices | |
| } | |
| # Final predictions | |
| cnn_final_prediction = label_map_inv[np.argmax(cnn_pred)] | |
| resnet_final_prediction = label_map_inv[np.argmax(resnet_pred)] | |
| return cnn_top5, cnn_final_prediction, resnet_top5, resnet_final_prediction | |
| iface = gr.Interface( | |
| fn=predict_image, | |
| inputs=gr.Image(type="numpy"), | |
| outputs=[ | |
| gr.Label(num_top_classes=5, label="CNN Top 5 Predictions"), | |
| gr.Textbox(label="CNN Final Prediction"), | |
| gr.Label(num_top_classes=5, label="ResNet Top 5 Predictions"), | |
| gr.Textbox(label="ResNet Final Prediction"), | |
| ], | |
| title="Image Classification with CNN and ResNet", | |
| description="Upload an image to classify using two different models.", | |
| ) | |
| iface.launch(debug=True) | |