Spaces:
Sleeping
Sleeping
| 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() | |