CenterPose: Optimized for AMD ROCm

CenterPose is a single-stage, keypoint-based 6-DoF object pose estimator that recovers 3D bounding boxes and full rotation/translation from a single RGB image. This repository packages evaluation/inference for 6-DoF object pose estimation using PyTorch, exported and validated for AMD ROCm so it runs efficiently on AMD GPUs and CPUs.

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


Task Overview

Task: 6-DoF object pose estimation (single RGB image)

Dataset: Objectron sample images (bundled — cup, chair categories; 9 images, 12 detections)

Output metrics: 3D IoU, 2D MPE (px), Azimuth Error (deg), Elevation Error (deg), ADD (normalized), AP@5°/10°/15°/30° Azimuth, AP@3D IoU 25/50/75

PyTorch note: CPU and GPU both run FP32 via the same PyTorch code path — no ONNX Runtime is involved. The DCNv2 op is replaced by torchvision.ops.deform_conv2d, so no compiled CUDA extension is needed.


AMD ROCm Optimization

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

  • Validated backends: PyTorch (native ROCm/CUDA, FP32) on GPU and PyTorch (FP32) on CPU.
  • No code changes required versus the upstream CenterPose implementation — only environment/runtime configuration differs.
  • CPU fallback path supported for environments without a ROCm-capable GPU.
Runtime Precision Backend Hardware Notes
PyTorch FP32 torchvision deformable convolution AMD CPU
PyTorch FP32 torchvision deformable convolution (ROCm) AMD Instinct™ / Radeon™ GPU (ROCm) Same PyTorch code path as CPU; DCNv2 replaced by torchvision.ops.deform_conv2d

Getting Started

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


Model Details

Model Type: 6-DoF object pose estimation (single-stage, keypoint-based)

Model Stats:

  • Input: (1, 3, 512, 512) float32
  • Output: 7 heads — hm, wh, hps, reg, hm_hp, hp_offset, scale (float32)
  • Precision tested: FP32 (CPU and GPU)

Performance Summary

Higher 3D IoU and AP values mean the model's predicted 3D bounding boxes and poses agree more closely with the reference — 1.0 is perfect agreement. Lower angular errors (azimuth, elevation) and ADD values indicate more accurate pose recovery.

Metrics Explained

Metric Description
3D IoU Intersection-over-Union of predicted vs ground-truth 3D oriented bounding boxes. The primary 3D accuracy measure — higher means the predicted box volume overlaps more closely with ground truth.
2D MPE (px) Mean Projection Error — average pixel distance between predicted and ground-truth 2D cuboid corner projections. Lower means the projected keypoints align more tightly.
Azimuth Error (deg) Rotation error around the vertical (Y) axis in degrees. Captures how well the model estimates the object's in-plane rotation — the most visible rotational degree of freedom.
Elevation Error (deg) Angular error from the horizontal plane in degrees. Captures the object's tilt relative to the camera — typically smaller than azimuth error for upright objects.
Geodesic Error (deg) Full rotation error measured as the angle of the axis-angle decomposition between predicted and ground-truth rotations. The strictest single-number rotation metric.
ADD (normalized) Average Distance of model-point correspondences between predicted and ground-truth 3D cuboid vertices, normalized by object diameter. Lower means the 3D shape alignment is tighter — values below 0.1 are considered a correct pose.
Reprojection Error (px) PnP solver reprojection error — how closely the recovered 3D pose projects back onto the detected 2D keypoints. A self-consistency check, not relative to ground truth.
AP@5°/10°/15°/30° Azimuth Average Precision at azimuth-error thresholds. AP@15° is the standard reporting threshold — the fraction of detections whose azimuth error is within 15 degrees.
AP@3D IoU 25/50/75 Average Precision at 3D IoU thresholds. AP@50 (IoU ≥ 0.50) is the standard threshold; AP@75 is strict and rewards precise 3D localization.
AP@ADD<0.1d Average Precision where ADD (normalized by diameter) is below 0.1 — the standard ADD threshold from the LineMOD benchmark.

Accuracy Results

Objectron sample images:

Device Precision 3D IoU 2D MPE (px) Azimuth (deg) Elevation (deg) AP@15° AP@IoU50 ADD
CPU FP32 1.0000 0.00 0.00 0.00 1.0000 1.0000 0.00000
GPU FP32 0.9587 1.22 0.12 0.14 1.0000 1.0000 0.00960

Note: CPU shows perfect scores because ground truth is generated from CPU inference (serving as the reference baseline). GPU results measure cross-device numerical consistency — the extremely low errors confirm near-identical pose recovery across devices.


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
  • Scripts for the supported runners
  • Additional model variants and datasets
  • Benchmarking and reproduction instructions
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support