Spaces:
Running
Running
| #!/usr/bin/env python | |
| import pathlib | |
| import os | |
| import cv2 | |
| import gradio as gr | |
| import huggingface_hub | |
| import numpy as np | |
| import functools | |
| from ultralytics import YOLO | |
| from ultralytics.yolo.engine.results import Results | |
| TITLE = 'Age and Gender Estimation with Transformers from Face and Body Images in the Wild' | |
| DESCRIPTION = 'This is an official demo for https://github.com/...' | |
| HF_TOKEN = os.getenv('HF_TOKEN') | |
| def load_model(): | |
| path = huggingface_hub.hf_hub_download('iitolstykh/demo_yolov8_detector', | |
| 'yolov8x_person_face.pt', | |
| use_auth_token=HF_TOKEN) | |
| yolo = YOLO(path) | |
| yolo.fuse() | |
| return yolo | |
| def detect(image: np.ndarray, detector: YOLO) -> np.ndarray: | |
| detector_kwargs = {'conf': 0.5, 'iou': 0.5, 'half': False, 'verbose': False} | |
| results: Results = detector.predict(image, **detector_kwargs)[0] | |
| out_im = results.plot() | |
| return out_im | |
| detector = load_model() | |
| image_dir = pathlib.Path('images') | |
| examples = [[path.as_posix()] for path in sorted(image_dir.glob('*.jpg'))] | |
| func = functools.partial(detect, detector=detector) | |
| gr.Interface( | |
| fn=func, | |
| inputs=gr.Image(label='Input', type='numpy'), | |
| outputs=gr.Image(label='Output', type='numpy'), | |
| examples=examples, | |
| examples_per_page=30, | |
| title=TITLE, | |
| description=DESCRIPTION, | |
| ).launch(show_api=False) | |