Unsupervised Domain Adaptive 3D Detection with Multi-Level Consistency (ICCV2021)
Paper Link: https://arxiv.org/abs/2107.11355
This implementation builds on top of OpenPCDet. Please kindly refer to its Github repo for introduction and recent updates.
Installation
a. Set up the environment:
- Python 3.6+ (3.7 suggested)
- Pytorch 1.1+ (1.3 suggested)
b. Clone this repository.
c. Install requirements
pip install -r requirements.txt
d. Install the pcdet
library:
python setup.py develop
e. Data preparation
Please refer to GETTING_STARTED.md for data preparation and basic usage of pcdet
.
Training and Testing
a. Train a base model on the source domain (KITTI) as the pretrained model for domain adaptation
cd tools/
sh scripts/dist_train.sh ${NUM_GPUS} --cfg_file cfgs/kitti_models/pointrcnn.yaml
# or using slurm
sh scripts/slurm_train.sh ${PARTITION} ${JOB_NAME} ${NUM_GPUS} --cfg_file cfgs/kitti_models/pointrcnn.yaml
b. Train the domain adaptation model
sh scripts/dist_train_mean_teacher.sh ${NUM_GPUS} \
--cfg_file cfgs/kitti_models/pointrcnn_mean_teacher_waymo.yaml \
--pretrained_model ${PATH_TO_PRETRAINED_MODEL_CHECKPOINT}
# or using slurm
sh scripts/slurm_train_mean_teacher.sh ${PARTITION} ${JOB_NAME} ${NUM_GPUS} \
--cfg_file cfgs/kitti_models/pointrcnn_mean_teacher_waymo.yaml \
--pretrained_model ${PATH_TO_PRETRAINED_MODEL_CHECKPOINT}
c. Test on the target domain (Waymo)
python test.py --cfg_file cfgs/waymo_models/pointrcnn_kitti2waymo.yaml \
--ckpt ${PATH_TO_MODEL_CHECKPOINT}