File size: 1,872 Bytes
7ebfeb9
afda258
 
348f33f
fdfdf8e
 
7ebfeb9
 
afda258
 
5ce0179
7ebfeb9
 
804bf9a
 
 
afda258
fc6f52f
7ebfeb9
 
fc6f52f
c0b0361
 
 
 
 
 
fc6f52f
 
 
 
 
 
e6687c5
39b7db7
fc6f52f
2210185
e6687c5
39b7db7
 
 
 
7ebfeb9
e6687c5
 
 
5d8bab6
afda258
 
e6687c5
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
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)  
        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()