onnx Pose Estimation object-detection license:mit region:us
---
license: mit
pipeline_tag: object-detection
tags:
- Pose Estimation
---
## RTMO / YOLO-NAS-Pose Inference with CUDAExecutionProvider / TensorrtExecutionProvider DEMO

- `demo.sh`: DEMO main program, which will first install rtmlib, and then use rtmo-s to analyze the .mp4 files in the video folder.
- `demo_batch.sh`: Multi-batch version of demo.sh
- `rtmo_gpu.py`: Defines an RTMO_GPU (& RTMO_GPU_BATCH) class, making fine adjustments to CUDA & TensorRT settings.
- `rtmo_demo.py`: Python main program, which has three arguments:
    - `path`: The folder location that contains the .mp4 files to be analyzed.
    - `model_path`: The local path to the ONNX model or a URL pointing to the RTMO model published on mmpose.
    - `--yolo_nas_pose`: If you run inference with YOLO NAS Pose Model instead of RTMO model.
- `rtmo_demo_batch.py`: Multi-batch version of demo_batch.sh
- `video`: Contains one test video.

# Note

* Original ONNX models come from [MMPOSE/RTMO Project Page](https://github.com/open-mmlab/mmpose/tree/main/projects/rtmo) trained on body7. We did only 
* DEMO Inferecne Code is modified from [rtmlib](https://github.com/Tau-J/rtmlib)
* TensorrtExecutionProvider only supports Models with fixed batch size (*_batchN.onnx) while CUDAExecutionProvider can run with dynamic batch size.

We did the following to make them work with TensorRTExecutionProvdier 

1. Shape inference
2. batch size 1,2,4 fixation

PS. FP16 ONNX model is also provided.