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