README.md 3.22 KB
Newer Older
liyinhao's avatar
liyinhao committed
1
# Deep Hough Voting for 3D Object Detection in Point Clouds
2

liyinhao's avatar
liyinhao committed
3
## Introduction
4

5
<!-- [ALGORITHM] -->
6

liyinhao's avatar
liyinhao committed
7
We implement VoteNet and provide the result and checkpoints on ScanNet and SUNRGBD datasets.
8

liyinhao's avatar
liyinhao committed
9
10
11
12
13
14
15
16
```
@inproceedings{qi2019deep,
    author = {Qi, Charles R and Litany, Or and He, Kaiming and Guibas, Leonidas J},
    title = {Deep Hough Voting for 3D Object Detection in Point Clouds},
    booktitle = {Proceedings of the IEEE International Conference on Computer Vision},
    year = {2019}
}
```
17

liyinhao's avatar
liyinhao committed
18
## Results
19

liyinhao's avatar
liyinhao committed
20
### ScanNet
21

22
|  Backbone   | Lr schd | Mem (GB) | Inf time (fps) | AP@0.25 |AP@0.5| Download |
liyinhao's avatar
liyinhao committed
23
| :---------: | :-----: | :------: | :------------: | :----: |:----: | :------: |
Wenwei Zhang's avatar
Wenwei Zhang committed
24
|    [PointNet++](./votenet_8x8_scannet-3d-18class.py)     |  3x    |4.1||62.90|39.91|[model](https://download.openmmlab.com/mmdetection3d/v0.1.0_models/votenet/votenet_8x8_scannet-3d-18class/votenet_8x8_scannet-3d-18class_20200620_230238-2cea9c3a.pth) &#124; [log](https://download.openmmlab.com/mmdetection3d/v0.1.0_models/votenet/votenet_8x8_scannet-3d-18class/votenet_8x8_scannet-3d-18class_20200620_230238.log.json)|
liyinhao's avatar
liyinhao committed
25
26

### SUNRGBD
27

28
|  Backbone   | Lr schd | Mem (GB) | Inf time (fps) | AP@0.25 |AP@0.5| Download |
liyinhao's avatar
liyinhao committed
29
| :---------: | :-----: | :------: | :------------: | :----: |:----: | :------: |
Wenwei Zhang's avatar
Wenwei Zhang committed
30
|    [PointNet++](./votenet_16x8_sunrgbd-3d-10class.py)     |  3x    |8.1||59.07|35.77|[model](https://download.openmmlab.com/mmdetection3d/v0.1.0_models/votenet/votenet_16x8_sunrgbd-3d-10class/votenet_16x8_sunrgbd-3d-10class_20200620_230238-4483c0c0.pth) &#124; [log](https://download.openmmlab.com/mmdetection3d/v0.1.0_models/votenet/votenet_16x8_sunrgbd-3d-10class/votenet_16x8_sunrgbd-3d-10class_20200620_230238.log.json)|
31

Ziyi Wu's avatar
Ziyi Wu committed
32
**Notice**: If your current mmdetection3d version >= 0.6.0, and you are using the checkpoints downloaded from the above links or using checkpoints trained with mmdetection3d version < 0.6.0, the checkpoints have to be first converted via [tools/model_converters/convert_votenet_checkpoints.py](../../tools/model_converters/convert_votenet_checkpoints.py):
33
34

```
Ziyi Wu's avatar
Ziyi Wu committed
35
python ./tools/model_converters/convert_votenet_checkpoints.py ${ORIGINAL_CHECKPOINT_PATH} --out=${NEW_CHECKPOINT_PATH}
36
37
```

Wenhao Wu's avatar
Wenhao Wu committed
38
Then you can use the converted checkpoints following [getting_started.md](../../docs/en/getting_started.md).
39
40
41
42

## Indeterminism

Since test data preparation randomly downsamples the points, and the test script uses fixed random seeds while the random seeds of validation in training are not fixed, the test results may be slightly different from the results reported above.
43
44
45
46
47
48
49
50
51
52
53
54
55
56

## IoU loss

Adding IoU loss (simply = 1-IoU) boosts VoteNet's performance. To use IoU loss, add this loss term to the config file:

```python
iou_loss=dict(type='AxisAlignedIoULoss', reduction='sum', loss_weight=10.0 / 3.0)
```

|  Backbone   | Lr schd | Mem (GB) | Inf time (fps) | AP@0.25 |AP@0.5| Download |
| :---------: | :-----: | :------: | :------------: | :----: |:----: | :------: |
|    [PointNet++](./votenet_iouloss_8x8_scannet-3d-18class.py)     |  3x    |4.1||63.81|44.21|/|

For now, we only support calculating IoU loss for axis-aligned bounding boxes since the CUDA op of general 3D IoU calculation does not implement the backward method. Therefore, IoU loss can only be used for ScanNet dataset for now.