Spaces:
Running
Running
File size: 1,468 Bytes
be0b780 ed8a286 be0b780 |
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 |
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
|