Spaces:
Runtime error
Runtime error
import gradio as gr | |
import numpy as np | |
from tensorflow.keras.preprocessing import image | |
from tensorflow.keras.models import load_model | |
import matplotlib.pyplot as plt | |
from PIL import Image as PILImage | |
import io | |
# Carregar o modelo treinado | |
model = load_model('model_1.0000.h5') | |
def predict_and_invert(input_image): | |
# Redimensionar a imagem para (224, 224) - o tamanho esperado pelo modelo | |
input_image = input_image.resize((224, 224)) | |
# Converter a imagem para o formato correto | |
img = image.img_to_array(input_image) | |
img = img / 255.0 # Normalizar a imagem (como fizemos durante o treinamento) | |
# Ajustar a imagem para o tamanho correto (224, 224, 3) | |
img = np.expand_dims(img, axis=0) | |
img = img[:, :224, :224, :] # Ajustar para 224x224 pixels | |
prediction = model.predict(img) | |
# Interpretar o resultado | |
if prediction[0][0] > 0.5: | |
result = "Há uma alta probabilidade de anomalia cardíaca (Doente)" | |
else: | |
result = "Não há evidência significativa de anomalia cardíaca (Normal)" | |
# Inverter a imagem | |
img_inverted = 1 - img # Inverter a imagem | |
# Converter a imagem invertida de volta para o formato PIL | |
img_inverted_pil = PILImage.fromarray(np.uint8(img_inverted[0] * 255)) | |
img_inverted_bytes = io.BytesIO() | |
img_inverted_pil.save(img_inverted_bytes, format='PNG') | |
return result, img_inverted_pil | |
# Criar duas interfaces Gradio idênticas | |
iface1 = gr.Interface( | |
fn=predict_and_invert, | |
inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"), | |
outputs=["text", "image"], # Agora temos duas saídas: texto e imagem | |
title="Modelo de Classificação de Anomalias Cardíacas - Interface 1" | |
) | |
iface2 = gr.Interface( | |
fn=predict_and_invert, | |
inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"), | |
outputs=["text", "image"], # Agora temos duas saídas: texto e imagem | |
title="Modelo de Classificação de Anomalias Cardíacas - Interface 2" | |
) | |
# Executar ambas as interfaces Gradio | |
iface1.launch() | |
iface2.launch() | |