Skip to content

Latest commit

 

History

History
68 lines (55 loc) · 5.05 KB

File metadata and controls

68 lines (55 loc) · 5.05 KB

We release our PointNet++ and MinkowskiEngine UNet models pretrained with our proposed FAC with the hope that other researchers might also benefit from these pretrained backbones. Due to license issue, models pretrained on Waymo cannot be released. For PointnetMSG and Spconv-UNet models, we encourage the researchers to train by themselves using the provided script.

We first provide PointNet++ models with different sizes.

network epochs batch-size ScanNet Det with VoteNet url args
PointNet++-1x 150 2048 61.9 model config
PointNet++-2x 200 4096 63.3 model config
PointNet++-3x 150 4096 64.1 model config
PointNet++-4x 100 4096 63.8 model config

The ScanNet detection evaluation metric is mAP at IOU=0.25. You need to change the scale parameter in the config files accordingly.

We provide the joint training results here, with different epochs. We use epoch 400 to generate the results reported in the paper.

Backbone epochs batch-size url args
PointNet++ & MinkowskiEngine UNet 300 3192 model config
PointNet++ & MinkowskiEngine UNet 400 1024 model config
PointNet++ & MinkowskiEngine UNet 500 1024 model config
PointNet++ & MinkowskiEngine UNet 600 1024 model config
PointNet++ & MinkowskiEngine UNet 700 1024 model config

Running the unsupervised pre-training

Requirements

You can use the requirements.txt to setup the environment. First download the git-repo and install the pointnet modules:

git clone --recursive https://github.com/facebookresearch/DepthContrast.git 
cd pointnet2
python setup.py install

Then install all other packages:

pip install -r requirements.txt

or

conda install --file requirements.txt

For voxel representation, you have to install MinkowskiEngine. Please see here on how to install it.

For the lidar point cloud pretraining, we use models from OpenPCDet. It should be in the third_party folder. To install OpenPCDet, you need to install spconv, which is a bit difficult to install and may not be compatible with MinkowskiEngine. Thus, we suggest you use a different conda environment for lidar point cloud pretraining.

Singlenode training

To experiment with it on one GPU and debugging, you can do:

python main.py /path/to/cfg/file

For the actual training, please use the distributed trainer. For multi-gpu training in one node, you can run:

python main.py /path/to/cfg_file --multiprocessing-distributed --world-size 1 --rank 0 --ngpus number_of_gpus

To run it with just one gpu, just set the --ngpus to 1. For submitting it to a slurm node, you can use ./scripts/pretrain_node1.sh. For hyper-parameter tuning, please change the config files.

Multinode training

Distributed training is available via Slurm. We provide several SBATCH scripts to reproduce our results. For example, to train FAC on 4 nodes and 32 GPUs with a batch size of 1024 run:

sbatch ./scripts/pretrain_node4.sh /path/to/cfg_file

Note that you might need to remove the copyright header from the sbatch file to launch it.