benchmarks.md 5.8 KB
Newer Older
zhangwenwei's avatar
zhangwenwei committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# Benchmarks

Here we benchmark the training and testing speed of models in MMDetection3D,
with some other popular open source 3D detection codebases.


## Settings

* Hardwares: 8 NVIDIA Tesla V100 (32G) GPUs, Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
* Software: Python 3.7, CUDA 10.1, cuDNN 7.6.5, PyTorch 1.3, numba 0.48.0.
* Model: Since all the other codebases implements different models, we compare the corresponding models with them separately. We try to use as similar settings as those of other codebases as possible using [benchmark configs](https://github.com/open-mmlab/MMDetection3D/blob/master/configs/benchmark).
* Metrics: We use the average throughput in iterations of the entire training run and skip the first 50 iterations of each epoch to skip GPU warmup time.
  Note that the throughput of a detector typically changes during training, because it depends on the predictions of the model.


## Main Results

### VoteNet

21
We compare our implementation of VoteNet with [votenet](https://github.com/facebookresearch/votenet/) and report the performance on SUNRGB-D v2 dataset under the AP@0.5 metric.
zhangwenwei's avatar
zhangwenwei committed
22
23

```eval_rst
24
25
26
27
28
29
30
  +----------------+---------------------+--------------------+--------+
  | Implementation | Training (sample/s) | Testing (sample/s) | AP@0.5 |
  +================+=====================+====================+========+
  | MMDetection3D  |        358          |         17         |  35.8  |
  +----------------+---------------------+--------------------+--------+
  | VoteNet        |        77           |         3          |  31.5  |
  +----------------+---------------------+--------------------+--------+
zhangwenwei's avatar
zhangwenwei committed
31
32
33
34
```

### PointPillars

35
Since [Det3D](https://github.com/poodarchu/Det3D/) only provides PointPillars on car class while [PCDet](https://github.com/sshaoshuai/PCDet) only provides PointPillars
zhangwenwei's avatar
zhangwenwei committed
36
37
38
39
40
on 3 classes, we compare with them separately. For performance on single class, we report the AP on moderate
condition following the KITTI benchmark and compare average AP over all classes on moderate condition for
performance on 3 classes.

```eval_rst
41
42
43
44
45
46
47
  +----------------+---------------------+--------------------+
  | Implementation | Training (sample/s) | Testing (sample/s) |
  +================+=====================+====================+
  | MMDetection3D  |         141         |                    |
  +----------------+---------------------+--------------------+
  | Det3D          |         140         |        20          |
  +----------------+---------------------+--------------------+
zhangwenwei's avatar
zhangwenwei committed
48
49
50
```

```eval_rst
51
52
53
54
55
56
57
  +----------------+---------------------+--------------------+
  | Implementation | Training (sample/s) | Testing (sample/s) |
  +================+=====================+====================+
  | MMDetection3D  |         120         |                    |
  +----------------+---------------------+--------------------+
  | PCDet          |         43          |        64          |
  +----------------+---------------------+--------------------+
zhangwenwei's avatar
zhangwenwei committed
58
59
60
61
```

### SECOND

62
63
[Det3D](https://github.com/poodarchu/Det3D/) provides a different SECOND on car class and we cannot train the original SECOND by modifying the config.
So we only compare with [PCDet](https://github.com/sshaoshuai/PCDet), which is a SECOND model on 3 classes, we report the AP on moderate
zhangwenwei's avatar
zhangwenwei committed
64
65
66
67
condition following the KITTI benchmark and compare average AP over all classes on moderate condition for
performance on 3 classes.

  ```eval_rst
68
69
70
71
72
73
74
    +----------------+---------------------+--------------------+
    | Implementation | Training (sample/s) | Testing (sample/s) |
    +================+=====================+====================+
    | MMDetection3D  |         54          |                    |
    +----------------+---------------------+--------------------+
    | PCDet          |         44          |         30         |
    +----------------+---------------------+--------------------+
zhangwenwei's avatar
zhangwenwei committed
75
76
77
78
  ```

### Part-A2

79
We benchmark Part-A2 with that in [PCDet](https://github.com/sshaoshuai/PCDet). We report the AP on moderate condition following the KITTI benchmark
zhangwenwei's avatar
zhangwenwei committed
80
81
82
and compare average AP over all classes on moderate condition for performance on 3 classes.

  ```eval_rst
83
84
85
86
87
88
89
    +----------------+---------------------+--------------------+
    | Implementation | Training (sample/s) | Testing (sample/s) |
    +================+=====================+====================+
    | MMDetection3D  |         17          |                    |
    +----------------+---------------------+--------------------+
    | PCDet          |         15          |         12         |
    +----------------+---------------------+--------------------+
zhangwenwei's avatar
zhangwenwei committed
90
91
92
93
  ```

## Details of Comparison

94
95
96
97
98
99
100
101
102
### Modification for Calculating Speed

* __Det3D__: At commit 255c593


* __PCDet__: At commit 2244be4



zhangwenwei's avatar
zhangwenwei committed
103
104
105
106
### VoteNet

* __MMDetection3D__: With release v0.1.0, run
```
107
108
109
110
./tools/dist_train.sh configs/votenet/votenet_16x8_sunrgbd-3d-10class.py 8 --no-validate
```
* __votenet__: At commit xxxx, run
```
zhangwenwei's avatar
zhangwenwei committed
111
112
113
114
115
116
117
```


### PointPillars

* __MMDetection3D__: With release v0.1.0, run
```
118
./tools/dist_train.sh configs/benchmark/hv_pointpillars_secfpn_6x8_160e_pcdet_kitti-3d-3class.py 8 --no-validate
zhangwenwei's avatar
zhangwenwei committed
119
120
```
* __PCDet__: At commit xxxx
121
122
123
124
125
126
127
128
129
130
131
132
```
./tools/dist_train.sh configs/benchmark/hv_pointpillars_secfpn_6x8_160e_pcdet_kitti-3d-3class.py 8 --no-validate
```

* __MMDetection3D__: With release v0.1.0, run
```
./tools/dist_train.sh configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py 8 --no-validate
```
* __Det3D__: At commit xxxx
```

```
zhangwenwei's avatar
zhangwenwei committed
133
134
135
136
137
138


### SECOND

* __MMDetection3D__: With release v0.1.0, run
```
139
./tools/dist_train.sh configs/benchmark/hv_second_secfpn_6x8_80e_pcdet_kitti-3d-3class.py 8 --no-validate
zhangwenwei's avatar
zhangwenwei committed
140
141
```

142
* __PCDet__: At commit 2244be4
zhangwenwei's avatar
zhangwenwei committed
143
144
145
146
147
148


### Part-A2

* __MMDetection3D__: With release v0.1.0, run
```
149
./tools/dist_train.sh configs/benchmark/hv_PartA2_secfpn_2x8_cyclic_80e_pcdet_kitti-3d-3class.py 8 --no-validate
zhangwenwei's avatar
zhangwenwei committed
150
151
```

152
* __PCDet__: