File size: 1,857 Bytes
2e77581 7ebfeb9 afda258 cf05f8b 22ed06b 623b4fb 931c795 7fcb6d2 623b4fb 849c8db 7ebfeb9 afda258 2e77581 7ebfeb9 2e77581 cf05f8b afda258 dee2758 6ae0110 dee2758 fc6f52f 7ebfeb9 623b4fb 22ed06b 2e77581 22ed06b 228f901 22ed06b 2e77581 f63a88c 2e77581 dd914ca 88e8671 dd914ca 2e77581 afda258 2e77581 b51c75c 2e77581 dee2758 afda258 2e77581 623b4fb 678675f 2e77581 623b4fb 22ed06b |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
import gradio as gr
from PIL import Image
import clipGPT
import vitGPT
import skimage.io as io
import PIL.Image
import difflib
import ViTCoAtt
from build_vocab import Vocabulary
def render_image(image_path_or_url):
img = Image.open(io.imread(image_path_or_url))
img = img.resize((80, 80)) # Adjust size as needed
buf = io.BytesIO()
img.save(buf, format='JPEG')
return buf.getvalue()
# Caption generation functions
def generate_caption_clipgpt(image):
caption = clipGPT.generate_caption_clipgpt(image)
return caption
def generate_caption_vitgpt(image):
caption = vitGPT.generate_caption(image)
return caption
def generate_caption_vitCoAtt(image):
caption = ViTCoAtt.CaptionSampler.main(image)
return caption
with gr.Blocks() as demo:
gr.HTML("<h1 style='text-align: center;'>MedViT: A Vision Transformer-Driven Method for Generating Medical Reports 🏥🤖</h1>")
gr.HTML("<p style='text-align: center;'>You can generate captions by uploading an X-Ray and selecting a model of your choice below</p>")
with gr.Row():
model_choice = gr.Radio(["CLIP-GPT2", "ViT-GPT2", "ViT-CoAttention"], label="Select Model")
generate_button = gr.Button("Generate Caption")
caption = gr.Textbox(label="Generated Caption")
def predict(img, model_name):
if model_name == "CLIP-GPT2":
return generate_caption_clipgpt(img)
elif model_name == "ViT-GPT2":
return generate_caption_vitgpt(img)
elif model_name == "ViT-CoAttention":
return generate_caption_vitCoAtt(img)
else:
return "Caption generation for this model is not yet implemented."
# Event handlers
generate_button.click(predict, [image, model_choice], caption) # Trigger prediction on button click
demo.launch()
|