DHEIVER commited on
Commit
d035227
·
verified ·
1 Parent(s): db58117

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +74 -11
app.py CHANGED
@@ -1,18 +1,81 @@
1
- __all__ = ['learn', 'classify_image', 'categories', 'image', 'label', 'examples', 'intf']
2
-
3
  from fastai.vision.all import *
4
  import gradio as gr
5
 
 
6
  learn = load_learner('export.pkl')
7
- #export.pkl is the name of the neural network file, change accordingly
8
 
9
- categories = ('cuts_and_wounds', 'fracture', 'rash', 'splinter')
10
- def classify_image(img):
 
 
 
11
  pred, idx, probs = learn.predict(img)
12
- return dict(zip(categories, map(float, probs)))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
- image=gr.Image(height = 300, width = 300)
15
- label = gr.Label()
16
- examples = ['Cuts_for_nn.jpeg', 'Fracture_examp.jpeg', 'Rash.jpeg', 'Splinter_examp.jpeg', 'Splinter_download.jpeg', 'Cut_download.jpeg', 'Rash_download.jpeg', 'Fracture_download.jpeg']
17
- intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=examples)
18
- intf.launch(inline=False)
 
 
 
1
  from fastai.vision.all import *
2
  import gradio as gr
3
 
4
+ # Carregar o modelo
5
  learn = load_learner('export.pkl')
 
6
 
7
+ # Categorias em português
8
+ categorias = ('cortes_e_feridas', 'fratura', 'erupção_cutânea', 'fragmento')
9
+
10
+ def classificar_imagem(img):
11
+ """Função para classificar a imagem e retornar as probabilidades"""
12
  pred, idx, probs = learn.predict(img)
13
+ return {cat: float(prob) for cat, prob in zip(categorias, probs)}
14
+
15
+ # Exemplos de imagens para teste
16
+ exemplos = [
17
+ 'Cuts_for_nn.jpeg',
18
+ 'Fracture_examp.jpeg',
19
+ 'Rash.jpeg',
20
+ 'Splinter_examp.jpeg',
21
+ 'Splinter_download.jpeg',
22
+ 'Cut_download.jpeg',
23
+ 'Rash_download.jpeg',
24
+ 'Fracture_download.jpeg'
25
+ ]
26
+
27
+ # Criando a interface moderna do Gradio
28
+ with gr.Blocks(theme=gr.themes.Soft()) as demo:
29
+ gr.Markdown("""
30
+ # 🏥 Classificador de Imagens Médicas
31
+
32
+ Faça upload de uma imagem para classificar entre as seguintes categorias:
33
+ - Cortes e Feridas
34
+ - Fraturas
35
+ - Erupções Cutâneas
36
+ - Fragmentos
37
+ """)
38
+
39
+ with gr.Row():
40
+ with gr.Column():
41
+ input_image = gr.Image(
42
+ label="Faça upload ou arraste uma imagem aqui",
43
+ type="pil",
44
+ height=300
45
+ )
46
+ upload_button = gr.Button("Classificar Imagem", variant="primary")
47
+
48
+ with gr.Column():
49
+ label_output = gr.Label(
50
+ label="Resultados da Classificação",
51
+ num_top_classes=4
52
+ )
53
+
54
+ # Galeria de exemplos
55
+ gr.Examples(
56
+ examples=exemplos,
57
+ inputs=input_image,
58
+ outputs=label_output,
59
+ fn=classificar_imagem,
60
+ cache_examples=True,
61
+ label="Imagens de Exemplo"
62
+ )
63
+
64
+ # Configurar o evento de clique do botão
65
+ upload_button.click(
66
+ fn=classificar_imagem,
67
+ inputs=input_image,
68
+ outputs=label_output
69
+ )
70
+
71
+ gr.Markdown("""
72
+ ### Como usar:
73
+ 1. Faça upload de uma imagem ou use um dos exemplos abaixo
74
+ 2. Clique no botão 'Classificar Imagem'
75
+ 3. Veja os resultados da classificação com as probabilidades
76
+
77
+ ⚠️ Nota: Este é apenas um sistema de demonstração e não deve ser usado para diagnóstico médico.
78
+ """)
79
 
80
+ # Iniciar a aplicação
81
+ demo.launch(share=True)