Downloads · 30 days
0
AMD-PAVS-AI/pointpillars
pointpillars is a object detection model from AMD-PAVS-AI. Use it when you need objects located in an image. It is set up for onnx. The card lists the license as apache-2.0.
Downloads · 30 days
0
Access
Public
Updated Aug 4, 2026
Repo size
2.3 MB
Likes
0
Public
Click a slice to open those files.
.png2.3 MB · 100%
From the Hugging Face model README

PointPillars is a lightweight 3D object detector that converts LIDAR point clouds into a 2D pseudo-image via pillar-based feature encoding, then runs a standard 2D detection backbone. This repository packages inference for 3D object detection using ONNX Runtime, exported and validated for AMD ROCm so it runs efficiently on AMD CPUs and NPUs.
This repository contains configurations and scripts optimized for AMD® ROCm™ platforms. You can use the pointpillars AMD scripts to reproduce results or export with custom configurations. More details on model performance can be found here.
Task: 3D object detection (LIDAR point clouds)
Dataset: KITTI (3 classes: Car, Pedestrian, Cyclist)
Output metrics: 3D AP, BEV AP, mAP, per-class AP (Car/Pedestrian/Cyclist), per-difficulty AP (Easy/Moderate/Hard)
ONNX Runtime note: GPU is not supported due to memory constraints and MIGraphX compatibility issues. NPU targets exist but are under beta — the VitisAI EP compiles the model, however the ScatterND/Where operations cause hardware execution timeouts at runtime.
This model export has been adapted and validated for AMD CPUs, with a beta AMD Ryzen AI NPU path. Key points:
| Runtime | Precision | Backend | Hardware | Notes |
|---|---|---|---|---|
| ONNX Runtime | FP32 | CPU Execution Provider | AMD CPU | — |
| ONNX Runtime | Auto | VitisAI Execution Provider | AMD Ryzen AI NPU | Beta — compiles but may hit runtime timeouts (ScatterND/Where ops) |
For setup instructions, evaluation scripts, and custom configuration options, see the pointpillars on GitHub.
Model Type: 3D object detection (pillar-based point cloud encoder + 2D detection backbone)
Model Stats:
(12000, 64, 10) float32; (voxel_coords): (12000, 3) int64; (num_points): (12000,) int64(1, 53568, 18) float32; (box_preds): (1, 53568, 42) float32Higher AP means the model's predicted 3D bounding boxes and classes agree more closely with ground truth — 100% would be perfect detection, 0% means no correct detections. BEV AP evaluates localization in the bird's-eye view plane only; 3D AP additionally requires correct height estimation. In practice, the published PointPillars paper reports ~77% BEV AP (Car, Moderate) on the full KITTI val split.
| Metric | Description |
|---|---|
| 3D AP | Average Precision for 3D bounding box detection at the class-specific IoU threshold. The strictest metric — predicted boxes must overlap ground truth in all three dimensions (x, y, z, plus size and orientation). Higher means better 3D localization. |
| BEV AP | Average Precision in bird's-eye view at the class-specific IoU threshold. Only evaluates the XY plane overlap, ignoring height — typically higher than 3D AP and reflects "did it find and laterally localize the object" rather than full 3D accuracy. |
| mAP | Mean AP averaged across Car, Pedestrian, and Cyclist. A single number summarizing overall detection quality; higher is better. |
| Per-class AP (Car/Pedestrian/Cyclist) | AP broken down per class — exposes class-specific weaknesses. Cars are the easiest (large, frequent); Cyclists are the hardest (rare, small). |
| Difficulty levels (Easy/Moderate/Hard) | AP at three KITTI difficulty levels, defined by 2D bounding box height, occlusion, and truncation. Easy includes only fully visible, large objects; Hard includes heavily occluded and small objects. |
KITTI Accuracy Results (CPU, 10 samples) — official AP using the R40 (40-point interpolation) protocol at standard IoU thresholds (0.7 for Car, 0.5 for Pedestrian/Cyclist):
<!-- accuracy-table-start -->| Metric | Difficulty | Car (IoU=0.7) | Pedestrian (IoU=0.5) | Cyclist (IoU=0.5) | mAP |
|---|---|---|---|---|---|
| 3D AP | Easy | 52.83 | 25.61 | 0.00 | 26.15 |
| 3D AP | Moderate | 57.35 | 25.61 | 100.00 | 60.99 |
| 3D AP | Hard | 57.35 | 25.61 | 100.00 | 60.99 |
| BEV AP | Easy | 61.87 | 25.61 | 0.00 | 29.16 |
| BEV AP | Moderate | 73.52 | 25.61 | 100.00 | 66.38 |
| BEV AP | Hard | 73.52 | 25.61 | 100.00 | 66.38 |
Note: These results are from a 10-sample KITTI subset. Full KITTI val (3,769 samples) results would be more representative but require downloading the complete dataset. Cyclist AP is unstable across repeated runs (observed 0%/50%/100% on identical CPU re-runs) because this subset contains only 1 ground-truth cyclist — a single detection's score threshold swings AP by its full range. Car and Pedestrian AP are stable. This is a sample-size artifact, not a determinism bug; it resolves on the full 3,769-sample val split.
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: