File size: 1,554 Bytes
e352c58 64e5dc2 51e2247 68c4602 3bb084b 51e2247 21e2e72 64e5dc2 21e2e72 64e5dc2 21e2e72 64e5dc2 21e2e72 51e2247 3bb084b 51e2247 c26ef06 21e2e72 e352c58 64e5dc2 21e2e72 51e2247 21e2e72 51e2247 70a751e 21e2e72 68c4602 |
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 |
import gradio as gr
from transformers import ViTFeatureExtractor, ViTForImageClassification
import numpy as np
# Mapeamento de classe ID para rótulo
id2label = {
"0": "dyed-lifted-polyps",
"1": "dyed-resection-margins",
"2": "esophagitis",
"3": "normal-cecum",
"4": "normal-pylorus",
"5": "normal-z-line",
"6": "polyps",
"7": "ulcerative-colitis"
}
# Carregue o modelo ViT
model_name = "mrm8488/vit-base-patch16-224_finetuned-kvasirv2-colonoscopy"
feature_extractor = ViTFeatureExtractor.from_pretrained(model_name)
model = ViTForImageClassification.from_pretrained(model_name)
# Função para classificar a imagem
def classify_image(input_image):
# Pré-processar a imagem usando o extrator de características
inputs = feature_extractor(input_image, return_tensors="pt")
# Realizar inferência com o modelo
outputs = model(**inputs)
# Obter a classe prevista
predicted_class_id = np.argmax(outputs.logits)
# Obter o rótulo da classe a partir do mapeamento id2label
predicted_class_label = id2label.get(str(predicted_class_id), "Desconhecido")
return predicted_class_label
# Criar uma interface Gradio
interface = gr.Interface(
fn=classify_image,
inputs=gr.inputs.Image(type="numpy", label="Carregar uma imagem"),
outputs=gr.outputs.Label(num_top_classes=1),
title="Classificador de Imagem ViT",
description="Esta aplicação Gradio permite classificar imagens usando um modelo Vision Transformer (ViT).",
)
# Iniciar a aplicação Gradio
interface.launch()
|