`OpenPCDet` is a clear, simple, self-contained open source project for LiDAR-based 3D object detection.
`OpenPCDet` is a clear, simple, self-contained open source project for LiDAR-based 3D object detection.
It is also the official code release of [`[Part-A^2 net]`](https://arxiv.org/abs/1907.03670) and [`[PV-RCNN]`](https://arxiv.org/abs/1912.13192).
It is also the official code release of [`[PointRCNN]`](https://arxiv.org/abs/1812.04244), [`[Part-A^2 net]`](https://arxiv.org/abs/1907.03670) and [`[PV-RCNN]`](https://arxiv.org/abs/1912.13192).
## Overview
-[Changelog](#changelog)
-[Design Pattern](#openpcdet-design-pattern)
-[Model Zoo](#model-zoo)
-[Installation](docs/INSTALL.md)
-[Quick Demo](docs/DEMO.md)
-[Getting Started](docs/GETTING_STARTED.md)
-[Citation](#citation)
## Changelog
[2020-07-30] **NEW:**`OpenPCDet` v0.3.0 is released with the following features:
* The Point-based and Anchor-Free models ([`PointRCNN`](#KITTI-3D-Object-Detection-Baselines), [`PartA2-Free`](#KITTI-3D-Object-Detection-Baselines)) are supported now.
* The NuScenes dataset is supported with strong baseline results ([`SECOND-MultiHead (CBGS)`](#NuScenes-3D-Object-Detection-Baselines) and [`PointPillar-MultiHead`](#NuScenes-3D-Object-Detection-Baselines)).
* High efficiency than last version, support `PyTorch 1.1~1.5` and `spconv 1.0~1.2` simultaneously.
[2020-07-17] Add simple visualization codes and a quick demo to test with custom data.
[2020-06-24] `OpenPCDet` v0.2.0 is released with pretty new structures to support more models and datasets.
[2020-03-16] `OpenPCDet` v0.1.0 is released.
## Introduction
### What does `OpenPCDet` toolbox do?
### What does `OpenPCDet` toolbox do?
...
@@ -54,44 +78,45 @@ Contributions are also welcomed.
...
@@ -54,44 +78,45 @@ Contributions are also welcomed.
- [x] Support GPU version 3D IoU calculation and rotated NMS
- [x] Support GPU version 3D IoU calculation and rotated NMS
## ChangeLog
[2020-07-17] Add simple visualization codes and a quick demo to test with custom data.
[2020-06-24] `OpenPCDet` v0.2.0 is released with pretty new structures to support more models and datasets.
[2020-03-16] `OpenPCDet` v0.1.0 is released.
## Model Zoo
## Model Zoo
### KITTI 3D Object Detection Baselines
### KITTI 3D Object Detection Baselines
Selected supported methods are shown in the below table. The results are the 3D detection performance of car class on the *val* set of KITTI dataset.
Selected supported methods are shown in the below table. The results are the 3D detection performance of moderate difficulty on the *val* set of KITTI dataset.
* All models are trained with 8 GTX 1080Ti GPUs and are available for download.
* The training time is measured with 8 TITAN XP GPUs and PyTorch 1.5.
| | training time | Car | Pedestrian | Cyclist | download |
The dataset configs are located within [tools/cfgs/dataset_configs](tools/cfgs/dataset_configs),
The dataset configs are located within [tools/cfgs/dataset_configs](../tools/cfgs/dataset_configs),
and the model configs are located within [tools/cfgs](tools/cfgs) for different datasets, like [tools/cfgs/kitti_models/](tools/cfgs/kitti_models/).
and the model configs are located within [tools/cfgs](../tools/cfgs) for different datasets.
## Dataset Preparation
Currently we provide the dataloader of KITTI dataset and NuScenes dataset, and the supporting of more datasets are on the way.
### KITTI Dataset
* Please download the official [KITTI 3D object detection](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d) dataset and organize the downloaded files as follows (the road planes could be downloaded from [[road plane]](https://drive.google.com/file/d/1d5mq0RXRnvHPVeKx6Q612z0YRO1t2wAp/view?usp=sharing), which are optional for data augmentation in the training):
* NOTE: if you already have the data infos from `pcdet v0.1`, you can choose to use the old infos and set the DATABASE_WITH_FAKELIDAR option in tools/cfgs/dataset_configs/kitti_dataset.yaml as True. The second choice is that you can create the infos and gt database again and leave the config unchanged.
*[`spconv v1.0 (commit 8da6f96)`](https://github.com/traveller59/spconv/tree/8da6f967fb9a054d8870c3515b1b44eca2103634) or [`spconv v1.2`](https://github.com/traveller59/spconv)
### Install `pcdet v0.2`
### Install `pcdet v0.3`
NOTE: Please re-install `pcdet v0.2` by running `python setup.py develop` if you have already installed `pcdet v0.1` previously.
NOTE: Please re-install `pcdet v0.3` by running `python setup.py develop`even if you have already installed previous version.
a. Clone this repository.
a. Clone this repository.
```shell
```shell
...
@@ -24,36 +24,11 @@ b. Install the dependent libraries as follows:
...
@@ -24,36 +24,11 @@ b. Install the dependent libraries as follows:
pip install -r requirements.txt
pip install -r requirements.txt
```
```
* Install the SparseConv library, we use the non-official implementation from [`spconv`](https://github.com/traveller59/spconv).
* Install the SparseConv library, we use the implementation from [`[spconv]`](https://github.com/traveller59/spconv).
Note that we use the initial version of `spconv`, make sure you install the `spconv v1.0` ([commit 8da6f96](https://github.com/traveller59/spconv/tree/8da6f967fb9a054d8870c3515b1b44eca2103634)) instead of the latest one.
* If you use PyTorch 1.1, then make sure you install the `spconv v1.0` with ([commit 8da6f96](https://github.com/traveller59/spconv/tree/8da6f967fb9a054d8870c3515b1b44eca2103634)) instead of the latest one.
* If you use PyTorch 1.3+, then you need to install the `spconv v1.2`. As mentioned by the author of [`spconv`](https://github.com/traveller59/spconv), you need to use their docker if you use PyTorch 1.4+.
c. Install this `pcdet` library by running the following command:
c. Install this `pcdet` library by running the following command:
```shell
```shell
python setup.py develop
python setup.py develop
```
```
## Dataset Preparation
Currently we provide the dataloader of KITTI dataset, and the supporting of more datasets are on the way.
### KITTI Dataset
* Please download the official [KITTI 3D object detection](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d) dataset and organize the downloaded files as follows (the road planes could be downloaded from [[road plane]](https://drive.google.com/file/d/1d5mq0RXRnvHPVeKx6Q612z0YRO1t2wAp/view?usp=sharing), which are optional for data augmentation in the training):
* NOTE: if you already have the data infos from `pcdet v0.1`, you can choose to use the old infos and set the DATABASE_WITH_FAKELIDAR option in tools/cfgs/dataset_configs/kitti_dataset.yaml as True. The second choice is that you can create the infos and gt database again and leave the config unchanged.