Spaces:
Sleeping
Sleeping
File size: 4,241 Bytes
27ca478 9d1f88c d5c2fca f59d33b 9d1f88c 53fa185 9d1f88c 53fa185 9d1f88c 470cc6a 9d1f88c 470cc6a 9d1f88c 470cc6a 9d1f88c 470cc6a 9d1f88c 193b61b 9d1f88c 193b61b 9d1f88c 193b61b 9d1f88c 193b61b 9d1f88c |
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
import gradio as gr
# Importing necessary components for the Gradio app
from app.description import DESCRIPTION_STATIC, DESCRIPTION_DYNAMIC
from app.authors import AUTHORS
from app.app_utils import preprocess_image_and_predict, preprocess_video_and_predict
def clear_static_info():
return (
gr.Image(value=None, type="pil"),
gr.Image(value=None, scale=1, elem_classes="dl5"),
gr.Image(value=None, scale=1, elem_classes="dl2"),
gr.Label(value=None, num_top_classes=3, scale=1, elem_classes="dl3"),
)
def clear_dynamic_info():
return (
gr.Video(value=None),
gr.Video(value=None),
gr.Video(value=None),
gr.Video(value=None),
gr.Plot(value=None),
)
with gr.Blocks(css="app.css") as demo:
with gr.Tab("动态视频分析"):
gr.Markdown(value=DESCRIPTION_DYNAMIC)
with gr.Row():
with gr.Column(scale=2):
input_video = gr.Video(elem_classes="video1")
with gr.Row():
clear_btn_dynamic = gr.Button(
value="清楚", interactive=True, scale=1
)
submit_dynamic = gr.Button(
value="提交", interactive=True, scale=1, elem_classes="提交"
)
with gr.Column(scale=2, elem_classes="dl4"):
with gr.Row():
#output_video = gr.Video(label="Original video", scale=1, elem_classes="video2")
#output_face = gr.Video(label="Pre-processed video", scale=1, elem_classes="video3")
output_heatmaps = gr.Video(label="Heatmaps", scale=1, elem_classes="video4")
output_statistics = gr.Plot(label="Statistics of emotions", elem_classes="stat")
#gr.Examples(
# ["videos/video1.mp4",
# "videos/video2.mp4",
# ],
# [input_video],
#)
with gr.Tab("Static App"):
gr.Markdown(value=DESCRIPTION_STATIC)
with gr.Row():
with gr.Column(scale=2, elem_classes="dl1"):
input_image = gr.Image(label="Original image", type="pil")
with gr.Row():
clear_btn = gr.Button(
value="Clear", interactive=True, scale=1, elem_classes="clear"
)
submit = gr.Button(
value="Submit", interactive=True, scale=1, elem_classes="submit"
)
with gr.Column(scale=1, elem_classes="dl4"):
with gr.Row():
output_image = gr.Image(label="Face", scale=1, elem_classes="dl5")
output_heatmap = gr.Image(label="Heatmap", scale=1, elem_classes="dl2")
output_label = gr.Label(num_top_classes=3, scale=1, elem_classes="dl3")
#gr.Examples(
# [
#"images/fig7.jpg",
#"images/fig1.jpg",
#"images/fig2.jpg",
#"images/fig3.jpg",
# "images/fig4.jpg",
# "images/fig5.jpg",
# "images/fig6.jpg",
# ],
# [input_image],
# )
with gr.Tab("Authors"):
gr.Markdown(value=AUTHORS)
submit.click(
fn=preprocess_image_and_predict,
inputs=[input_image],
outputs=[output_image, output_heatmap, output_label],
queue=True,
)
clear_btn.click(
fn=clear_static_info,
inputs=[],
outputs=[input_image, output_image, output_heatmap, output_label],
queue=True,
)
submit_dynamic.click(
fn=preprocess_video_and_predict,
inputs=input_video,
outputs=[
# output_video,
# output_face,
# output_heatmaps,
output_statistics
],
queue=True,
)
clear_btn_dynamic.click(
fn=clear_dynamic_info,
inputs=[],
outputs=[
input_video,
# output_video,
# output_face,
# output_heatmaps,
output_statistics
],
queue=True,
)
if __name__ == "__main__":
demo.queue(api_open=False).launch(share=False) |