File size: 1,951 Bytes
7ebfeb9
afda258
 
cf05f8b
fdfdf8e
 
7ebfeb9
 
afda258
 
5ce0179
7ebfeb9
 
cf05f8b
 
 
afda258
fc6f52f
7ebfeb9
 
fc6f52f
c0b0361
 
 
 
 
 
fc6f52f
 
 
 
 
 
e6687c5
39b7db7
fc6f52f
2210185
e6687c5
39b7db7
 
 
 
7ebfeb9
e6687c5
 
 
5d8bab6
afda258
 
e6687c5
b51c75c
cf05f8b
afda258
 
 
e6687c5
39b7db7
e6687c5
7ebfeb9
 
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
import gradio as gr
from PIL import Image
import clipGPT
import vitGPT
import skimage.io as io
import PIL.Image


# 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



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():
        sample_images = [
        "CXR191_IM-0591-1001.png",
        "CXR192_IM-0598-1001.png",
        "CXR193_IM-0601-1001.png",
        "CXR194_IM-0609-1001.png",
        "CXR195_IM-0618-1001.png"
    ]
        image = gr.Image(label="Upload Chest X-ray")
        gr.Gallery(
            value = sample_images,
            label="Sample Images",
        )
        # sample_images_gallery = gr.Gallery(
        #     value = sample_images,
        #     label="Sample Images",
        # )
    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)
        else:
            return "Caption generation for this model is not yet implemented."

    generate_button.click(predict, [image, model_choice], caption)  # Trigger prediction on button click 
    # sample_images_gallery.change(predict, [sample_images_gallery, model_choice], caption)  # Handle sample images


demo.launch()