YOLO26-pose: Optimized for AMD ROCm

YOLO26-pose is a real-time human pose-estimation model that detects people and localizes 17 COCO body keypoints per person in a single forward pass. This repository packages inference for pose estimation using ONNX Runtime (CPU, NPU) and PyTorch (GPU), exported and validated for AMD ROCm so it runs efficiently on AMD GPUs, CPUs, and NPUs.

This is based on the implementation of YOLO26 found here. This repository contains configurations and scripts optimized for AMD® ROCm™ platforms. You can use the yolo26_pose AMD scripts to reproduce results or export with custom configurations. More details on model performance can be found here.


Task Overview

Task: Pose estimation (17 COCO keypoints)

Dataset: COCO-Pose val2017 (a verified human-image sample is staged under datasets/samples/)

Output metrics: Throughput (inferences/sec), latency (mean/P95/P99 ms), per-operator profiling breakdown

Model variants: Default is n (nano). Override with MODEL_SIZE=n/s/m/l/x — note the pose download list ships n/s/m/l weights only, so MODEL_SIZE=x may not resolve to a hosted weight.

GPU note: The GPU path uses the PyTorch/ROCm backend rather than MIGraphX (the ONNX/MIGraphX path hits reduce-operator errors for pose), so all GPU precision targets currently share the same FP32 PyTorch backend (INT8 is a no-op skip).


AMD ROCm Optimization

This model export has been adapted and validated for AMD Instinct™ / Radeon™ GPUs running ROCm, as well as AMD CPUs and AMD Ryzen AI NPUs. Key points:

  • Validated backends: ONNX Runtime on CPU (FP32) and NPU (VitisAI — BF16), and PyTorch/ROCm on GPU (FP32).
  • No code changes required versus the upstream Ultralytics YOLO26-pose implementation — only environment/runtime configuration differs.
  • NPU evaluation is not fully functional yet — some layers have numerical-stability issues on NPU (to be addressed in a future release); NPU eval uses a lowered --conf-threshold 0.05 to compensate for BF16 precision loss.
Runtime Precision Backend Hardware Notes
ONNX Runtime FP32 CPU Execution Provider AMD CPU
PyTorch FP32 ROCm (HIP) AMD Instinct™ / Radeon™ GPU FP32/FP16/BF16/INT8 targets all share this backend; INT8 is a no-op skip
ONNX Runtime BF16 VitisAI Execution Provider AMD Ryzen AI NPU Known numerical-stability issues on some layers

Getting Started

For setup instructions, evaluation scripts, and custom configuration options, see the yolo26_pose on GitHub.


Model Details

Model Type: Human pose estimation (17 COCO keypoints)

Base Model: YOLO26-pose (Ultralytics), size n (nano) default

Model Stats:

  • Input (images): (1, 3, 640, 640) float32
  • Output (output0): (1, 300, 57) float32 — up to 300 detections × (box[4] + score[1] + class[1] + 17 keypoints × [x, y, visibility])
  • Model sizes: n/s/m/l ship pretrained pose weights (x may not resolve to a hosted weight)
  • Precision tested: FP32 (CPU, GPU); BF16 (NPU)

Accuracy Pipeline

Accuracy evaluation is not yet implemented for this model. The staged COCO-Pose sample image is used only for visual sanity checks via annotated skeleton overlays, not full COCO-Pose keypoint accuracy scoring.


Dig Deeper

Want to explore the full evaluation scripts, config options, and other AMD-optimized model examples?

📂 View the full project on GitHub

The GitHub repository includes:

  • Setup and prerequisites for ROCm environments
  • Per-operator latency profiling scripts (including NPU AI Analyzer integration)
  • Sample-image evaluation with annotated skeleton overlays
  • Benchmarking and reproduction instructions across CPU, GPU, and NPU
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support