File size: 2,904 Bytes
0252c1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488b13e
0252c1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488b13e
0252c1c
 
 
 
 
 
 
 
 
 
1236deb
 
0252c1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1faadf5
 
 
 
 
 
 
 
0252c1c
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
111
112
113
114
115
116
117
118
119
120
121
122
---
license: apache-2.0
library_name: torch-pointcloud
tags:
- point-cloud
- 3d
- pytorch
- torch-pointcloud
- second
- object-detection
datasets:
- kitti
model-index:
- name: second.kitti.openpcdet
  results:
  - task:
      type: 3d-object-detection
    dataset:
      name: KITTI
      type: kitti
    metrics:
    - name: mAP
      type: map
      value: 66.26
---

# Model card for second.kitti.openpcdet

A SECOND 3D object detection model (sparse convolutional voxel detector). Trained on KITTI.

## Model Details

- **Model Type:** 3D object detection
- **Model Stats:**
  - Params (M): 5.3
  - Input channels: 4
  - Classes: 3
  - Features: 512
- **Dataset:** KITTI
- **Metrics:** mAP 66.26 (reference 66.25)
- **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.kitti.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),
}
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{geiger2012kitti,
  title     = {Are we ready for Autonomous Driving? The {KITTI} Vision Benchmark Suite},
  author    = {Geiger, Andreas and Lenz, Philip and Urtasun, Raquel},
  booktitle = {CVPR},
  year      = {2012}
}

@software{dujardin2026pytorchpointcloud,
  author  = {Arthur Dujardin},
  title   = {PyTorch PointCloud},
  year    = {2026},
  doi     = {10.5281/zenodo.22159632},
  url     = {https://github.com/arthurdjn/pytorch-pointcloud},
}
```