File size: 2,828 Bytes
0f5139c f8cb20d 0f5139c 21b05c7 0f5139c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | ---
license: apache-2.0
library_name: torch-pointcloud
tags:
- point-cloud
- 3d
- pytorch
- torch-pointcloud
- second
- object-detection
datasets:
- nuscenes
---
# 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
- **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/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",
task="detection",
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},
}
```
|