File size: 4,002 Bytes
7206ed3 50ce3c9 d62a8dc 7206ed3 50ce3c9 d62a8dc 50ce3c9 734addc d62a8dc 50ce3c9 d62a8dc 7206ed3 d62a8dc 50ce3c9 d62a8dc 734addc e189412 734addc d62a8dc 50ce3c9 d62a8dc e189412 d62a8dc 7206ed3 d62a8dc e189412 d62a8dc 7206ed3 e189412 d62a8dc e189412 d62a8dc 7206ed3 734addc e189412 734addc 7206ed3 d62a8dc | 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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | import gradio as gr
def gradio_inputs_for_MD_DLC(backends_list, md_models_list, dlc_models_list):
# Input image
gr_image_input = gr.Image(type="pil", label="Input Image")
# Models
gr_backend_input = gr.Radio(
choices=backends_list,
value=backends_list[0],
label="Select backend",
)
gr_mega_model_input = gr.Dropdown(
choices=md_models_list,
value="md_v5a",
type="value",
label="Select Detector model (TensorFlow legacy only)",
visible=gr_backend_input.value != "PyTorch",
)
gr_dlc_model_input = gr.Dropdown(
choices=dlc_models_list,
value="superanimal_quadruped",
type="value",
label="Select DeepLabCut model",
)
# Other inputs
gr_dlc_only_checkbox = gr.Checkbox(
value=False,
label="Run DeepLabCut only, directly on input image?",
)
# 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
with gr.Accordion("Display options", open=False):
gr_str_labels_checkbox = gr.Checkbox(
value=True,
label="Show bodypart labels?",
)
gr_color_by_confidence_checkbox = gr.Checkbox(
value=True,
label="Color keypoints by confidence? (otherwise by bodypart)",
)
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_backend_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,
gr_color_by_confidence_checkbox,
]
def gradio_outputs_for_MD_DLC():
gr_image_output = gr.Image(type="pil", label="Output Image")
with gr.Row():
gr_file_download = gr.File(label="Download JSON file")
gr_image_download = gr.File(label="Download annotated image")
gr_confidence_table = gr.Dataframe(
headers=["animal", "bodypart", "confidence"],
label="Keypoint confidence (lowest first)",
interactive=False,
)
return [gr_image_output, gr_file_download, gr_image_download, gr_confidence_table]
def gradio_description_and_examples():
title = "DeepLabCut Model Zoo: SuperAnimals"
description = (
"Estimate animal poses with the SuperAnimal models from the "
"[DeepLabCut Model Zoo](http://www.mackenziemathislab.org/dlc-modelzoo) "
"([paper](https://arxiv.org/abs/2203.07436)). "
"Upload an image or pick an example below; to run on videos, see the Model Zoo page."
)
examples = [
[image, "PyTorch", "md_v5a", "superanimal_quadruped", False, True, 0.5, 0.4, "amiko", 10, "#ff0000", 5, True]
for image in ("examples/dog.jpeg", "examples/cat.jpg")
]
return [title, description, examples] |