File size: 1,315 Bytes
36b1181
c87df97
 
 
36b1181
c87df97
 
36b1181
c87df97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ff51082
 
 
c87df97
ff51082
 
 
 
 
9d6aa7a
36b1181
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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()