Spaces:
Sleeping
Sleeping
import utils | |
import gradio as gr | |
# constants | |
DEFAULT_MODEL = "yolov8l-world.pt" | |
VIDEO_EXAMPLES = [ | |
['https://media.roboflow.com/supervision/video-examples/croissant-1280x720.mp4', | |
'croissant', 0.01, 0.2], | |
['https://media.roboflow.com/supervision/video-examples/suitcases-1280x720.mp4', | |
'suitcase', 0.1, 0.2], | |
['https://media.roboflow.com/supervision/video-examples/tokyo-walk-1280x720.mp4', | |
'woman walking', 0.1, 0.2], | |
['https://media.roboflow.com/supervision/video-examples/wooly-mammoth-1280x720.mp4', | |
'mammoth', 0.01, 0.2], | |
] | |
CACHE_EXAMPLES = False | |
# load the YOLO model | |
model = utils.yolo_model(DEFAULT_MODEL) | |
# CSS to hide the footer and reduce the height of the Gradio interface | |
css = "footer {display: none !important;} .gradio-container {min-height: 0px !important;}" | |
with gr.Blocks(css=css) as demo: | |
# title and description | |
gr.Markdown("# YOLO-World video processing") | |
gr.Markdown( | |
"Upload a video and click the button to process it with YOLO-World") | |
# define the structure of the interface | |
with gr.Row(): | |
input_video = gr.Video(label="Input video") | |
output_video = gr.Video(label="Output video") | |
with gr.Row(): | |
# prompt and button | |
prompt = gr.Textbox( | |
label='Categories', | |
placeholder='comma separated list of categories', | |
scale=5 | |
) | |
button = gr.Button("Process video") | |
with gr.Row(): | |
with gr.Column(): | |
with gr.Row(): | |
confidence = gr.Slider( | |
minimum=0, maximum=1, value=0.25, label="Confidence threshold", step=0.01) | |
with gr.Row(): | |
iou = gr.Slider(minimum=0, maximum=1, value=0.7, | |
label="IoU threshold", step=0.01) | |
with gr.Column(): | |
model_to_load = gr.Dropdown(["yolov8s-world.pt", "yolov8m-world.pt", "yolov8l-world.pt"], | |
label="Model", info="Select the model to use", value=DEFAULT_MODEL) | |
gr.Button("Upload model").click(model.load, inputs=[model_to_load]) | |
# examples | |
with gr.Row(): | |
gr.Examples( | |
examples=VIDEO_EXAMPLES, | |
inputs=[input_video, prompt, confidence, iou], | |
outputs=output_video, | |
fn=model.process, | |
cache_examples=CACHE_EXAMPLES, | |
) | |
# click event | |
button.click(model.process, inputs=[ | |
input_video, prompt, confidence, iou], outputs=output_video) | |
gr.close_all() | |
demo.launch() | |