import gradio as gr
from utils.predict import predict_action
import os
import glob
##Create Dataset for loading examples
example_list = glob.glob("examples/*")
example_list = list(map(lambda el:[el], example_list))
# def load_example(video):
# return video[0]
demo = gr.Blocks()
#input_video = gr.Video(label="Input Video", show_label=True)
#output_label = gr.Label(label="Model Output", show_label=True)
#output_gif = gr.Image(label="Video Gif", show_label=True)
#title = "Video Classification with Transformers"
#description = "This space demonstrates the use of a hybrid (CNN-Transformer based) model for video classification. \n The model can classify videos belonging to the following action categories: CricketShot, Punch, ShavingBeard, TennisSwing, PlayingCello. \n Upload a video and try out 🤗 "
#article = '\n Demo created by: Shivalika Singh
Based on this Keras example by Sayak Paul
Demo Powered by this Video Classification model'
#gr.Interface(predict_action, input_video, [output_label, output_gif], examples=example_list, allow_flagging=False, analytics_enabled=False,
# title=title, description=description, cache_examples=True, article=article).launch(enable_queue=True,share=True)
with demo:
gr.Markdown("# **
Video Classification with Transformers
**") gr.Markdown("This space demonstrates the use of hybrid Transformer-based models for video classification that operate on CNN feature maps.") with gr.Tabs(): with gr.TabItem("Upload & Predict"): with gr.Box(): with gr.Row(): input_video = gr.Video(label="Input Video", show_label=True) output_label = gr.Label(label="Model Output", show_label=True) output_gif = gr.Image(label="Video Gif", show_label=True) gr.Markdown("**Predict**") with gr.Box(): with gr.Row(): submit_button = gr.Button("Submit") gr.Markdown("**Examples:**") gr.Markdown("The model is trained to classify videos belonging to the following classes:") gr.Markdown("CricketShot, PlayingCello, Punch, ShavingBeard, TennisSwing") with gr.Column(): gr.Examples(example_list, [input_video], [output_label,output_gif], predict_action, cache_examples=True) #examples = gr.components.Dataset(components=[input_video], samples=example_list, type='values') #examples.click(load_example, examples, input_video) submit_button.click(predict_action, inputs=input_video, outputs=[output_label,output_gif]) gr.Markdown('\n Author: Shivalika Singh