import gradio as gr
def gradio_inputs_for_MD_DLC(md_models_list, dlc_models_list):
# Input image
gr_image_input = gr.Image(type="pil", label="Input Image")
# Models
gr_mega_model_input = gr.Dropdown(
choices=md_models_list,
value="md_v5a",
type="value",
label="Select Detector model",
)
gr_dlc_model_input = gr.Dropdown(
choices=dlc_models_list,
value="superanimal_quadruped_dlcrnet",
type="value",
label="Select DeepLabCut model",
)
# Other inputs
gr_dlc_only_checkbox = gr.Checkbox(
value=False,
label="Run DLClive only, directly on input image?",
)
gr_str_labels_checkbox = gr.Checkbox(
value=True,
label="Show bodypart labels?",
)
# Gradio Slider signature is (minimum, maximum, value, step, ...)
gr_slider_conf_bboxes = gr.Slider(
minimum=0,
maximum=1,
value=0.2,
step=0.05,
label="Set confidence threshold for animal detections",
)
gr_slider_conf_keypoints = gr.Slider(
minimum=0,
maximum=1,
value=0.4,
step=0.05,
label="Set confidence threshold for keypoints",
)
# Data viz
gr_keypt_color = gr.ColorPicker(
value="#862db7",
label="Choose color for keypoint label",
)
gr_labels_font_style = gr.Dropdown(
choices=["amiko", "animals", "nature", "painter", "zen"],
value="amiko",
type="value",
label="Select keypoint label font",
)
gr_slider_font_size = gr.Slider(
minimum=5,
maximum=30,
value=8,
step=1,
label="Set font size",
)
gr_slider_marker_size = gr.Slider(
minimum=1,
maximum=20,
value=9,
step=1,
label="Set marker size",
)
return [
gr_image_input,
gr_mega_model_input,
gr_dlc_model_input,
gr_dlc_only_checkbox,
gr_str_labels_checkbox,
gr_slider_conf_bboxes,
gr_slider_conf_keypoints,
gr_labels_font_style,
gr_slider_font_size,
gr_keypt_color,
gr_slider_marker_size,
]
def gradio_outputs_for_MD_DLC():
gr_image_output = gr.Image(type="pil", label="Output Image")
gr_file_download = gr.File(label="Download JSON file")
return [gr_image_output, gr_file_download]
def gradio_description_and_examples():
title = "DeepLabCut Model Zoo SuperAnimals"
description = (
"Test the SuperAnimal models from the "
""
"DeepLabCut ModelZoo Project, and read more on arXiv: "
"https://arxiv.org/abs/2203.07436! Simply upload an image and see how it does. "
"Want to run on videos on the cloud or locally? See the "
"DeepLabCut ModelZoo."
)
examples = [[
"examples/dog.jpeg",
"md_v5a",
"superanimal_quadruped_dlcrnet",
False,
True,
0.5,
0.0,
"amiko",
9,
"#ff0000",
3,
]]
return [title, description, examples]