File size: 1,512 Bytes
7ebfeb9
afda258
 
75d178b
fdfdf8e
 
7ebfeb9
 
afda258
 
5ce0179
7ebfeb9
 
75d178b
 
 
afda258
 
 
b673a60
a86795b
 
 
 
afda258
7ebfeb9
afda258
7ebfeb9
 
c9cfda8
2210185
75d178b
2210185
 
afda258
 
7ebfeb9
 
5d8bab6
afda258
 
 
75d178b
 
afda258
 
 
 
0759962
b673a60
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
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

# Sample image paths
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"
]

# Gradio interface 
with gr.Blocks() as demo:
    with gr.Row():
        image = gr.Image(label="Upload Chest X-ray") 
        sample_images_gallery = gr.Gallery(
            sample_images, 
            label="Sample Images",
        )  
    with gr.Row():  
        model_choice = gr.Radio(["CLIP-GPT2", "ViT-GPT2", "ViT-CoAttention"], label="Select Model")
    with gr.Row():
        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."

    # Handle changes for both uploaded and sample images
    image.change(predict, [image, model_choice], caption)
    sample_images_gallery.change(predict, [sample_images_gallery, model_choice], caption)

demo.launch()