Spaces:
Sleeping
Sleeping
from PIL import Image | |
import os | |
# Load model directly | |
from transformers import AutoImageProcessor, AutoModelForImageClassification | |
import gradio as gr | |
processor = AutoImageProcessor.from_pretrained("nickmuchi/vit-finetuned-chest-xray-pneumonia") | |
model = AutoModelForImageClassification.from_pretrained("nickmuchi/vit-finetuned-chest-xray-pneumonia") | |
def update(image_processed): | |
#image = Image.open(image_url) | |
#image_processed = image.convert("RGB") | |
inputs = processor(images=image_processed, return_tensors="pt") | |
outputs = model(**inputs) | |
logits = outputs.logits | |
predicted_class_idx = logits.argmax(-1).item() | |
for class_name, score in zip(model.config.id2label.values(), logits.softmax(dim=-1).squeeze().tolist()): | |
ket_qua = "Viêm phổi" | |
if (class_name == "NORMAL") : | |
ket_qua = "Bình thường" | |
if (model.config.id2label[predicted_class_idx] == class_name) : | |
return (f"{ket_qua}: {score:.0%}") | |
return "" | |
def create_pneumonia_tab() : | |
with gr.Blocks() as demo: | |
gr.Markdown("Hãy tải ảnh lên và nhấn **Xử Lý** để chẩn đoán viêm phổi.") | |
with gr.Row(): | |
inp = gr.Image(label= "Nhập Ảnh",type="pil",height=512, width=512,value=os.path.join(os.path.dirname(__file__), "../anh/viemphoi.jpeg"),interactive=True) | |
out = gr.Label(label="Kết Quả Dự Đoán") | |
btn = gr.Button("Xử Lý") | |
btn.click(fn=update, inputs=inp, outputs=out) | |
return demo | |