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)