DHEIVER's picture
Update app.py
0e2bddd
import gradio as gr
import numpy as np
from efficientnet.tfkeras import preprocess_input as efficientnet_preprocess_input
from PIL import Image
import tensorflow as tf
# Carregar o modelo
model = tf.keras.models.load_model("EfficientNetB7IntracranialHemorrhage.h5")
# Função para pré-processar a imagem de entrada
def preprocess_image(image):
image = image.convert("RGB")
image = image.resize((224, 224))
image = np.array(image)
image = efficientnet_preprocess_input(image) # Renomeada para evitar conflito
image = np.expand_dims(image, axis=0)
return image
# Função para fazer as previsões
def predict_hemorrhage(image):
image = preprocess_image(image)
predictions = model.predict(image)[0]
labels = [
"1_epidural_hemorrhage",
"1_intraparenchymal_hemorrhage",
"1_intraventricular_hemorrhage",
"1_subarachnoid_hemorrhage",
"1_subdural_hemorrhage",
"1_any"
]
results = {label: round(float(pred), 2) for label, pred in zip(labels, predictions)}
return results
# Definir as interfaces de entrada e saída
entrada = gr.inputs.Image(type="pil", label="Imagem de Entrada")
saida = gr.outputs.Label(num_top_classes=6, label="Previsões")
# Definir exemplos
exemplos = [
["example1.jpeg"],
["example2.jpeg"],
["example3.jpeg"]
]
# Criar o aplicativo Gradio com exemplos
app = gr.Interface(fn=predict_hemorrhage, inputs=entrada, outputs=saida, title="Hemorragia na Cabeça", examples=exemplos)
# Definir descrições personalizadas em português
app.title = "Detecção de Hemorragia na Cabeça"
app.input_label = "Imagem de Entrada"
app.output_label = "Previsões"
# Executar o aplicativo
if __name__ == "__main__":
app.launch()