--- library_name: onnx license: mit tags: - foundation - amd - rocm - object-detection pipeline_tag: object-detection --- ![](https://huggingface.co/AMD-PAVS-AI/centerpoint/resolve/main/CenterPoint.png) # CenterPoint: Optimized for AMD ROCm CenterPoint is a center-based 3D object detector for LIDAR point clouds, widely used in autonomous-driving perception pipelines. This repository packages evaluation/inference for 3D object detection using ONNX Runtime and PyTorch (OpenPCDet), exported and validated for **AMD ROCm** so it runs efficiently on AMD GPUs, CPUs, and NPUs. This is based on the implementation of CenterPoint found [here](https://github.com/tianweiy/CenterPoint/tree/master). This repository contains configurations and scripts optimized for **AMD® ROCm™** platforms. You can use the [CenterPoint AMD scripts](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/CenterPoint) to reproduce results or export with custom configurations. More details on model performance can be found [here](#performance-summary). --- ## Task Overview **Task:** 3D object detection (LIDAR point clouds) **Dataset:** nuScenes mini (v1.0-mini — 81 val samples, 10 detection classes) **Output metrics:** mAP, NDS (nuScenes Detection Score), per-class AP, TP errors (ATE/ASE/AOE/AVE/AAE), FPS > **GPU backend note:** GPU inference uses OpenPCDet (PyTorch on AMD ROCm) rather than ONNX Runtime, since MIGraphX cannot lower the Scatter/Gather patterns in `pointpillars.onnx`. --- ## AMD ROCm Optimization This model export has been adapted and validated for **AMD Instinct™ / Radeon™ GPUs** running **ROCm**, as well as AMD CPUs and NPUs. Key points: - Validated backends: **ONNX Runtime** (CPU, FP32; NPU via VitisAI) and **PyTorch/OpenPCDet** (GPU, native ROCm). - CPU fallback path supported for environments without a ROCm-capable GPU or NPU. | Runtime | Precision | Backend | Hardware | Notes | |---|---|---|---|---| | ONNX Runtime | FP32 | CPU Execution Provider | AMD CPU | — | | PyTorch | Native | OpenPCDet | AMD Instinct™ / Radeon™ GPU (ROCm) | Runs natively via OpenPCDet instead of ONNX Runtime, since MIGraphX cannot lower the Scatter/Gather patterns in `pointpillars.onnx` | | ONNX Runtime | Auto (BF16) | VitisAI Execution Provider | AMD NPU | Quantization handled internally by VitisAI | --- ## Getting Started For setup instructions, evaluation scripts, and custom configuration options, see the [CenterPoint on GitHub](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/CenterPoint). --- ## Model Details **Model Type:** 3D object detection (PointPillars variant of CenterPoint) **Model Stats:** - Input tensors: features `(1, 10, 30000, 20)` float32, indices `(1, 30000, 2)` int64 - Output: 128 x 128 BEV feature maps (per-task detection heads), float32 - Precision tested: FP32 (CPU, ONNX Runtime), native (GPU, PyTorch/OpenPCDet), auto BF16 quantization (NPU, VitisAI) --- ## Performance Summary Higher mAP means the model's predicted boxes and classes agree more closely with ground truth across the dataset — 1.0 would be perfect detection, 0.0 means no correct detections. NDS combines mAP with localization and attribute errors into a single score; higher is better. ### Metrics Explained | Metric | Description | |--------|-------------| | mAP | Mean Average Precision over the 10 nuScenes detection classes at center-distance thresholds 0.5/1.0/2.0/4.0 m. The primary accuracy number — higher means more objects are correctly detected and classified. | | NDS | nuScenes Detection Score — combines mAP (50%) with five True-Positive error terms (ATE, ASE, AOE, AVE, AAE) into a single number. Higher means the model is both finding objects and localizing them accurately (position, size, orientation, velocity, attributes). | | ATE (Translation Error) | Average center-distance error in meters for true positives — lower means the model's 3D box centers are closer to ground truth. | | ASE (Scale Error) | Average IoU-based size error (1 - IoU) for true positives — lower means predicted box dimensions more closely match ground truth. | | AOE (Orientation Error) | Average angular error in radians for true positives — lower means heading predictions are more accurate. Matters for downstream planning. | | AVE (Velocity Error) | Average velocity error in m/s for true positives — lower means better motion estimation. Only computed for moving classes (car, truck, bus, etc.). | | AAE (Attribute Error) | Average attribute classification error (1 - accuracy) for true positives — lower means the model better predicts secondary labels (e.g. parked vs. moving). | | Per-class AP | mAP broken down per class (car, truck, bus, trailer, construction_vehicle, pedestrian, motorcycle, bicycle, traffic_cone, barrier) — exposes class-specific weaknesses the aggregate mAP would hide. | --- ## Dig Deeper Want to explore the full evaluation scripts, config options, and other AMD-optimized model examples? 📂 **[View the full project on GitHub](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/CenterPoint)** The GitHub repository includes: - Setup and prerequisites for ROCm environments - Scripts for the supported runners - Additional model variants and datasets - Benchmarking and reproduction instructions