arthurdjn's picture
Update README.md for second-multihead.nuscenes.openpcdet
55a45e5 verified
|
Raw History Blame Contribute Delete
3.13 kB
---
license: apache-2.0
library_name: torch-pointcloud
tags:
- point-cloud
- 3d
- pytorch
- torch-pointcloud
- second
- object-detection
datasets:
- nuscenes
model-index:
- name: second-multihead.nuscenes.openpcdet
results:
- task:
type: 3d-object-detection
dataset:
name: nuScenes
type: nuscenes
metrics:
- name: mAP
type: map
value: 50.75
- name: NDS
type: accuracy
value: 61.89
---
# Model card for second-multihead.nuscenes.openpcdet
A SECOND 3D object detection model (sparse convolutional voxel detector). Trained on nuScenes.
## Model Details
- **Model Type:** 3D object detection
- **Model Stats:**
- Params (M): 9.0
- Input channels: 5
- Classes: 10
- Features: 512
- **Dataset:** nuScenes
- **Metrics:** mAP 50.75, NDS 61.89
- **Paper:** [SECOND: Sparsely Embedded Convolutional Detection](https://www.mdpi.com/1424-8220/18/10/3337)
- **Converted from:** [open-mmlab/OpenPCDet](https://github.com/open-mmlab/OpenPCDet) (Apache-2.0)
- **Library:** [torch-pointcloud](https://github.com/arthurdjn/pytorch-pointcloud)
## Install
```bash
pip install torch-pointcloud
```
This checkpoint also needs `spconv`, which needs a build matching your torch and CUDA: see the [installation guide](https://pytorch-pointcloud.org/latest/installation/).
## Usage
```python
import torch
import torch_pointcloud as tp
from torch_pointcloud.utils.data import collate
model, info = tp.create_model(
"second-multihead.nuscenes.openpcdet",
pretrained=True,
return_info=True,
)
model = model.cuda().eval() # GPU-only kernels
# synthetic sample with the keys a dataset provides
num_points = 8192
sample = {
"pos": torch.randn(num_points, 3),
"intensity": torch.rand(num_points, 1),
"timestamp": torch.zeros(num_points, 1),
}
data = info["transform"](sample)
data = collate([data], batch_from="pos_voxel")
data = {key: value.cuda() for key, value in data.items()}
with torch.no_grad():
out = model(data["voxel"], data["pos_voxel"], data["voxel_num_points"], data["batch"])
```
## Feature extraction
```python
with torch.no_grad():
features = model.forward_features(
data["voxel"],
data["pos_voxel"],
data["voxel_num_points"],
data["batch"],
) # 512 channels
```
## Citation
```bibtex
@article{yan2018second,
title = {{SECOND}: Sparsely Embedded Convolutional Detection},
author = {Yan, Yan and Mao, Yuxing and Li, Bo},
journal = {Sensors},
volume = {18},
number = {10},
pages = {3337},
year = {2018}
}
@inproceedings{caesar2020nuscenes,
title = {nuScenes: A multimodal dataset for autonomous driving},
author = {Holger Caesar and Varun Bankiti and Alex H. Lang and Sourabh Vora and Venice Erin Liong and Qiang Xu and Anush Krishnan and Yu Pan and Giancarlo Baldan and Oscar Beijbom},
booktitle = {CVPR},
year = {2020}
}
@software{dujardin2026pytorchpointcloud,
author = {Arthur Dujardin},
title = {PyTorch PointCloud},
year = {2026},
doi = {10.5281/zenodo.22159632},
url = {https://github.com/arthurdjn/pytorch-pointcloud},
}
```