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) |