Skip to main content

OpenPose

OpenPose is a pioneering real-time multi-person pose estimation architecture. With its original bottom-up mechanism based on Part Affinity Fields (PAFs), it avoids the limitation of traditional methods where computation grows rapidly with the number of people, enabling fast reconstruction of human skeletons in complex crowds.

  • Key features: Supports simultaneous keypoint extraction for multiple people across body, hands, face, and feet, with strong multi-scale perception and spatial-structure modeling. It is widely used in motion capture, human-computer interaction, sports analytics, and security behavior recognition.
  • Version notes: This example uses the standard OpenPose architecture. As a cornerstone of pose estimation, it uses a dual-branch network to regress both keypoint heatmaps and limb association vectors, effectively handling challenging cases such as occlusion and overlapping people. With its broad applicability and mature ecosystem, it remains a reliable classic choice for high-accuracy, multi-dimensional human perception.
Environment setup

You need to set up the environment in advance.

Quick start

Download model files

O6 / O6N
cd ai_model_hub_25_Q3/models/ComputeVision/Pose_Estimation/onnx_openpose
wget https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Pose_Estimation/onnx_openpose/human-pose-estimation.cix

Test the model

info

Activate the virtual environment before running.

O6 / O6N
python3 inference_npu.py

Full conversion workflow

Download model files

Linux PC
cd ai_model_hub_25_Q3/models/ComputeVision/Pose_Estimation/onnx_openpose
wget https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Pose_Estimation/onnx_openpose/model/human-pose-estimation.onnx

Project structure

├── cfg
├── datasets
├── human-pose-estimation.cix
├── inference_npu.py
├── inference_onnx.py
├── model
├── ReadMe.md
└── test_data

Quantize and convert the model

Linux PC
cd ..
cixbuild cfg/human-pose-estimationbuild.cfg
Copy to device

After conversion, copy the .cix model files to the device.

Test inference on the host

Run the inference script

Linux PC
python3 inference_onnx.py

Inference output

Deploy on NPU

Run the inference script

O6 / O6N
python3 inference_npu.py

Inference output

O6 / O6N
$ python3 inference_npu.py
npu: noe_init_context success
npu: noe_load_graph success
Input tensor count is 1.
Output tensor count is 4.
npu: noe_create_job success
npu: noe_clean_job success
npu: noe_unload_graph success
npu: noe_deinit_context success

    You need to be logged into GitHub to post a comment. If you are already logged in, please ignore this message.

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0