Spaces:
Sleeping
Sleeping
File size: 2,285 Bytes
90d3ef2 d035227 90d3ef2 d035227 90d3ef2 d035227 90d3ef2 d035227 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
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) |