DHEIVER's picture
Update app.py
d035227 verified
from fastai.vision.all import *
import gradio as gr
# Carregar o modelo
learn = load_learner('export.pkl')
# Categorias em português
categorias = ('cortes_e_feridas', 'fratura', 'erupção_cutânea', 'fragmento')
def classificar_imagem(img):
"""Função para classificar a imagem e retornar as probabilidades"""
pred, idx, probs = learn.predict(img)
return {cat: float(prob) for cat, prob in zip(categorias, probs)}
# Exemplos de imagens para teste
exemplos = [
'Cuts_for_nn.jpeg',
'Fracture_examp.jpeg',
'Rash.jpeg',
'Splinter_examp.jpeg',
'Splinter_download.jpeg',
'Cut_download.jpeg',
'Rash_download.jpeg',
'Fracture_download.jpeg'
]
# Criando a interface moderna do Gradio
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# 🏥 Classificador de Imagens Médicas
Faça upload de uma imagem para classificar entre as seguintes categorias:
- Cortes e Feridas
- Fraturas
- Erupções Cutâneas
- Fragmentos
""")
with gr.Row():
with gr.Column():
input_image = gr.Image(
label="Faça upload ou arraste uma imagem aqui",
type="pil",
height=300
)
upload_button = gr.Button("Classificar Imagem", variant="primary")
with gr.Column():
label_output = gr.Label(
label="Resultados da Classificação",
num_top_classes=4
)
# Galeria de exemplos
gr.Examples(
examples=exemplos,
inputs=input_image,
outputs=label_output,
fn=classificar_imagem,
cache_examples=True,
label="Imagens de Exemplo"
)
# Configurar o evento de clique do botão
upload_button.click(
fn=classificar_imagem,
inputs=input_image,
outputs=label_output
)
gr.Markdown("""
### Como usar:
1. Faça upload de uma imagem ou use um dos exemplos abaixo
2. Clique no botão 'Classificar Imagem'
3. Veja os resultados da classificação com as probabilidades
⚠️ Nota: Este é apenas um sistema de demonstração e não deve ser usado para diagnóstico médico.
""")
# Iniciar a aplicação
demo.launch(share=True)