Dealer2chien's picture
MAJapplication file
c87df97
import gradio as gr
import tensorflow as tf
import numpy as np
from PIL import Image
# Charger le modèle TensorFlow.js converti en Keras
model = tf.keras.models.load_model("tm-my-image-model\model.json")
# Charger les labels de classes
with open("labels.txt", "r") as f:
labels = [line.strip() for line in f.readlines()]
# Prétraitement de l'image
def preprocess_image(image):
image = Image.fromarray(image).convert("RGB") # Conversion en image RGB
image = image.resize((224, 224)) # Adapter la taille au modèle
image = np.array(image) / 255.0 # Normalisation
image = np.expand_dims(image, axis=0) # Ajouter une dimension batch
return image
# Fonction de prédiction
def predict(image):
processed_image = preprocess_image(image)
predictions = model.predict(processed_image)[0] # Faire la prédiction
top5_indices = np.argsort(predictions)[-5:][::-1] # Obtenir les 5 meilleures classes
results = {labels[i]: float(predictions[i]) for i in top5_indices} # Associer classes et scores
return results
# Interface Gradio
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="numpy"),
outputs=gr.Label(num_top_classes=5),
title="Image Classifier",
description="Téléversez une image et obtenez les prédictions du modèle."
)
demo.launch()