Explain-Animal-CNN / src /gradio_blocks.py
GabrielML's picture
Video feature
79acef0
raw
history blame
2.95 kB
import gradio as gr
from PIL import Image
def build_video_to_camvideo(CAM_METHODS, ALL_CLASSES, gradcam_video):
with gr.Row():
with gr.Column():
gr.Markdown("### Video to GradCAM-Video")
gr.Markdown("Here you can upload a video and visualize the GradCAM.")
gr.Markdown("Please note that this can take a while. Also currently only a maximum of 60 frames can be processed. The video will be cut to 60 frames if it is longer. Furthermore, the video can only consist of a maximum of 1000.")
gr.Markdown("The more frames and fps the video has, the longer it takes to process and the result will be more choppy.")
video_cam_method = gr.Radio(
["GradCAM", "GradCAM++"],
label="GradCAM Method",
value="GradCAM",
interactive=True,
scale=2,
)
video_cam_method.description = "Here you can choose the GradCAM method."
video_cam_method.description_place = "left"
video_alpha = gr.Slider(
minimum=.1,
maximum=.9,
value=0.5,
interactive=True,
step=.1,
label="Alpha",
scale=1,
)
video_alpha.description = "Here you can choose the alpha value."
video_alpha.description_place = "left"
video_layer = gr.Radio(
["layer1", "layer2", "layer3", "layer4", "all"],
label="Layer",
value="layer4",
interactive=True,
scale=2,
)
video_layer.description = "Here you can choose the layer to visualize."
video_layer.description_place = "left"
video_animal_to_explain = gr.Dropdown(
choices=["Predicted Class"] + ALL_CLASSES,
label="Animal",
value="Predicted Class",
interactive=True,
scale=2,
)
video_animal_to_explain.description = "Here you can choose the animal to explain. If you choose 'Predicted Class' the method will explain the predicted class."
video_animal_to_explain.description_place = "center"
with gr.Column():
with gr.Column():
video_in = gr.Video(autoplay=True, include_audio=False)
video_out = gr.Video(autoplay=True, include_audio=False)
gif_cam_mode_button = gr.Button(value="Show GradCAM-Video", label="GradCAM", scale=1)
gif_cam_mode_button.click(fn=gradcam_video, inputs=[video_in, video_alpha, video_cam_method, video_layer, video_animal_to_explain], outputs=[video_out], queue=True)