Spaces:
Runtime error
Runtime error
import gradio as gr | |
from demo import VideoCLSModel | |
sample_videos = [ | |
[ | |
"data/svitt-ego-demo/0/video/2d560d56-dc47-4c76-8d41-889c8aa55d66-converted.mp4", | |
"data/svitt-ego-demo/0/video/eb5cb2b0-59e6-45da-af1b-ba86c7ab0b54-converted.mp4", | |
"data/svitt-ego-demo/0/video/0a3097fc-baed-4d11-a4c9-30f07eb91af6-converted.mp4", | |
"data/svitt-ego-demo/0/video/1a870d5d-5787-4098-ad8d-fe7343c43698-converted.mp4", | |
"data/svitt-ego-demo/0/video/014b473f-aec0-49c7-b394-abc7309ca3c7-converted.mp4", | |
], | |
[ | |
"data/svitt-ego-demo/1/video/029eeb9a-8853-48a4-a1dc-e8868b58adf3-converted.mp4", | |
"data/svitt-ego-demo/1/video/968139e2-987e-4615-a2d4-fa2e683bae8a-converted.mp4", | |
"data/svitt-ego-demo/1/video/fb9fda68-f264-465d-9208-19876f5ef90f-converted.mp4", | |
"data/svitt-ego-demo/1/video/53da674a-089d-428a-a719-e322b2de002b-converted.mp4", | |
"data/svitt-ego-demo/1/video/060e07d8-e818-4f9c-9d6b-6504f5fd42a3-converted.mp4", | |
], | |
[ | |
"data/svitt-ego-demo/2/video/fa2f1291-3796-41a6-8f7b-6e7c1491b9b2-converted.mp4", | |
"data/svitt-ego-demo/2/video/8d83478f-c5d2-4ac3-a823-e1b2ac7594d7-converted.mp4", | |
"data/svitt-ego-demo/2/video/5f6f87ea-e1c3-4868-bb60-22c9e874d056-converted.mp4", | |
"data/svitt-ego-demo/2/video/77718528-2de9-48b4-b6b8-e7c602032afb-converted.mp4", | |
"data/svitt-ego-demo/2/video/9abbf7f4-68f0-4f52-812f-df2a3df48f7b-converted.mp4", | |
], | |
[ | |
"data/svitt-ego-demo/3/video/2a6b3d10-8da9-4f0e-a681-59ba48a55dbf-converted.mp4", | |
"data/svitt-ego-demo/3/video/5afd7421-fb6b-4c65-a09a-716f79a7a935-converted.mp4", | |
"data/svitt-ego-demo/3/video/f7aec252-bd4f-4696-8de5-ef7b871e2194-converted.mp4", | |
"data/svitt-ego-demo/3/video/84d6855a-242b-44a6-b48d-2db302b5ea7a-converted.mp4", | |
"data/svitt-ego-demo/3/video/81fff27c-97c0-483a-ad42-47fa947977a9-converted.mp4", | |
], | |
] | |
sample_text = [ | |
"drops the palm fronds on the ground", | |
"stands up", | |
"throws nuts in a bowl", | |
"puts the speaker and notepad in both hands on a seat", | |
] | |
sample_text_dict = { | |
"drops the palm fronds on the ground": 0, | |
"stands up": 1, | |
"throws nuts in a bowl": 2, | |
"puts the speaker and notepad in both hands on a seat": 3, | |
} | |
num_samples = len(sample_videos[0]) | |
labels = [f"video-{i}" for i in range(num_samples)] | |
def main(): | |
svitt = VideoCLSModel( | |
"configs/ego_mcq/svitt.yml", | |
sample_videos, | |
) | |
def predict(text): | |
idx = sample_text_dict[text] | |
ft_action, gt_action = svitt.predict(idx, text) | |
return labels[gt_action], labels[ft_action] | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
""" | |
# SViTT-Ego for Multiple Choice Question | |
Choose a sample query and click predict to view the results. | |
""" | |
) | |
with gr.Row(): | |
videos = [ | |
gr.Video(label=labels[i], format='mp4', height=256, width=256, autoplay=True) | |
for i in range(num_samples) | |
] | |
with gr.Row(): | |
text = gr.Text(label="Query", visible=False) | |
label = gr.Text(label="Ground Truth") | |
ours = gr.Text(label="SViTT-Ego prediction") | |
btn = gr.Button("Predict", variant="primary") | |
btn.click(predict, inputs=[text], outputs=[label, ours]) | |
inputs = [text] | |
inputs.extend(videos) | |
gr.Examples(examples=[[sample_text[i], x[0], x[1], x[2], x[3], x[4]] for i, x in enumerate(sample_videos)], inputs=inputs) | |
demo.launch() | |
if __name__ == "__main__": | |
main() | |