import os import gradio as gr from face import _FACE_MODELS, _DEFAULT_FACE_MODEL, _gr_detect_faces from person import _PERSON_MODELS, _DEFAULT_PERSON_MODEL, _gr_detect_person if __name__ == '__main__': with gr.Blocks() as demo: with gr.Tabs(): with gr.Tab('Face Detection'): with gr.Row(): with gr.Column(): gr_face_input_image = gr.Image(type='pil', label='Original Image') gr_face_model = gr.Dropdown(_FACE_MODELS, value=_DEFAULT_FACE_MODEL, label='Model') gr_face_infer_size = gr.Slider(480, 1600, value=1216, step=32, label='Max Infer Size') with gr.Row(): gr_face_iou_threshold = gr.Slider(0.0, 1.0, 0.7, label='IOU Threshold') gr_face_score_threshold = gr.Slider(0.0, 1.0, 0.25, label='Score Threshold') gr_face_submit = gr.Button(value='Submit', variant='primary') with gr.Column(): gr_face_output_image = gr.Image(type='pil', label="Labeled") gr_face_submit.click( _gr_detect_faces, inputs=[ gr_face_input_image, gr_face_model, gr_face_infer_size, gr_face_score_threshold, gr_face_iou_threshold, ], outputs=[gr_face_output_image], ) with gr.Tab('Person Detection'): with gr.Row(): with gr.Column(): gr_person_input_image = gr.Image(type='pil', label='Original Image') gr_person_model = gr.Dropdown(_PERSON_MODELS, value=_DEFAULT_PERSON_MODEL, label='Model') gr_person_infer_size = gr.Slider(480, 1600, value=1216, step=32, label='Max Infer Size') with gr.Row(): gr_person_iou_threshold = gr.Slider(0.0, 1.0, 0.5, label='IOU Threshold') gr_person_score_threshold = gr.Slider(0.0, 1.0, 0.3, label='Score Threshold') gr_person_submit = gr.Button(value='Submit', variant='primary') with gr.Column(): gr_person_output_image = gr.Image(type='pil', label="Labeled") gr_person_submit.click( _gr_detect_person, inputs=[ gr_person_input_image, gr_person_model, gr_person_infer_size, gr_person_score_threshold, gr_person_iou_threshold, ], outputs=[gr_person_output_image], ) demo.queue(os.cpu_count()).launch()