File size: 1,757 Bytes
7ebfeb9
afda258
 
348f33f
fdfdf8e
 
7ebfeb9
 
afda258
 
5ce0179
7ebfeb9
 
804bf9a
 
 
afda258
fc6f52f
7ebfeb9
 
fc6f52f
 
 
 
 
 
 
 
e6687c5
 
 
7ebfeb9
e6687c5
2210185
fc6f52f
2210185
e6687c5
7ebfeb9
e6687c5
 
 
5d8bab6
afda258
 
e6687c5
afda258
 
 
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
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:
    
    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"
    ]
    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():
        image = gr.Image(label="Upload Chest X-ray")
        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)  
        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()