File size: 1,445 Bytes
086b0fb de0a444 086b0fb de0a444 e8893cf de0a444 086b0fb b1325b9 086b0fb b1325b9 086b0fb b1325b9 086b0fb 3b4c873 086b0fb e8893cf 086b0fb 3b4c873 086b0fb 3b4c873 086b0fb 3b4c873 086b0fb 7bb1664 b1325b9 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import gradio as gr
import tensorflow as tf
import numpy as np
from keras.models import load_model
from tensorflow.keras.preprocessing.image import load_img, img_to_array
# Charger le modèle sans compilation
model = load_model('best_model_v2.keras', compile=False)
# Recompiler le modèle avec la fonction de perte et l'optimiseur appropriés
model.compile(
optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy']
)
def format_decimal(value):
decimal_value = format(value, ".2f")
return decimal_value
def detect(img):
# Prétraiter l'image
img = img.resize((256, 256)) # Redimensionner l'image
img = img_to_array(img)
img = np.expand_dims(img, axis=0)
img = img / 255.0 # Normaliser les valeurs de l'image
# Faire une prédiction
prediction = model.predict(img)[0]
# Classes prédictives avec leurs index respectifs
class_names = ['AMAZONE', 'BIOGUERRA', 'REVENANT', 'ZANGBETO', 'PORTE DU NON RETOUR']
# Trouver l'indice de la classe avec la probabilité la plus élevée
class_index = np.argmax(prediction)
# Obtenir le nom de la classe prédite
texte = class_names[class_index]
return texte
title = "Orisha"
iface = gr.Interface(
fn=detect,
inputs=gr.Image(type="pil", image_mode='RGB'),
outputs=gr.Textbox(label="Classe", lines=10),
title=title
)
iface.launch(inline=False)
|