centerpoint / README.md
AMD-PAVS-AI's picture
Update image references to HF URLs
4a3db2d verified
|
Raw
History Blame Contribute Delete
5.33 kB
---
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