| | import gradio as gr |
| | import tensorflow as tf |
| | import numpy as np |
| | from PIL import Image |
| | import json |
| |
|
| | |
| | model = tf.keras.models.load_model("model_acc_0.7240.h5") |
| |
|
| | |
| | with open("categories.json", "r") as json_file: |
| | categories_data = json.load(json_file) |
| |
|
| | categories = [entry["category"] for entry in categories_data] |
| | diagnoses = [entry["diagnosis"] for entry in categories_data] |
| |
|
| | |
| | model_description = ( |
| | "Este modelo foi treinado para classificar imagens médicas do trato gastrointestinal humano em várias categorias " |
| | "com diagnósticos associados. Ele pode ajudar a identificar condições médicas a partir de imagens." |
| | ) |
| |
|
| | |
| | def classify_image(image): |
| | try: |
| | |
| | image = Image.fromarray(image.astype('uint8')) |
| | image = image.resize((100, 100)) |
| | image = np.array(image) |
| |
|
| | |
| | prediction = model.predict(image[None, ...]) |
| |
|
| | |
| | class_idx = np.argmax(prediction) |
| | class_label = categories[class_idx] |
| | diagnosis = diagnoses[class_idx] |
| |
|
| | return f"Classe prevista: {class_label}\nDiagnóstico: {diagnosis}" |
| | except Exception as e: |
| | return str(e) |
| |
|
| | |
| | iface = gr.Interface( |
| | fn=classify_image, |
| | inputs=gr.inputs.Image(), |
| | outputs="text", |
| | title="Sistema de Classificação de Anomalias Gastrointestinais por Imagem", |
| | description=model_description |
| | ) |
| |
|
| | |
| | iface.launch() |
| |
|