The dataset configs are located within tools/cfgs/dataset_configs, and the model configs are located within tools/cfgs for different datasets.
Please follow the OpenPCDet tutorial to prepare needed datasets.
For the subsampling of the lidar point cloud the indices of points to remove from the pointcloud have to be computed. This can be done by running the following command:
- The View of Delft lidar point cloud contains every point two times (Corresponding Git Issue on VoD repository). This does not affect the lidar training substantially, but they need to be removed for the sampling of points. Additionally we cap the lidar point cloud to the radar view range.
python Sampling/RemoveDoublePoints.py
- The filtered point cloud is saved in the folder "velodyne_nondouble". The original folder "velodyne" has to be removed and replaced by the folder "velodyne_nondouble" renamed to "velodyne".
- The sampling indices of the point cloud can then be computed with one of the sampling strategies (Random sampling as an example):
python Sampling/Random_Sampling.py
python train.py --cfg_file cfgs/VoD_teacher/pp_lidarradar_voxel25.yaml
Modify following keys in the student distillation config
# cfgs/waymo_models/cp-pillar/cp-pillar-v0.4_sparsekd.yaml
TEACHER_CKPT: ${PATH_TO_TEACHER_CKPT}
PRETRAINED_MODEL: ${PATH_TO_TEACHER_CKPT}
Run the training config
python train.py --cfg_file cfgs/VoD_student/PointPillars.yaml
python train_MSTM.py --folder VoD_MSTM --model pp_lidar_random