qiaozhijian / LPD-Net-Pytorch

LPD-Net: 3D Point Cloud Learning for Large-Scale Place Recognition and Environment Analysis (ICCV 2019)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LPD-Net

Refer to PointNetVlad and LPD-Net

Pre-Requisites

  • PyTorch 1.4.0
  • tensorboardX

Benchmark Datasets

The benchmark datasets introdruced in this work can be downloaded here, which created by PointNetVLAD for point cloud based retrieval for place recognition from the open-source Oxford RobotCar. Details can be found in PointNetVLAD.

  • All submaps are in binary file format
  • Ground truth GPS coordinate of the submaps are found in the corresponding csv files for each run
  • Filename of the submaps are their timestamps which is consistent with the timestamps in the csv files
  • Use CSV files to define positive and negative point clouds
  • All submaps are preprocessed with the road removed and downsampled to 4096 points

Oxford Dataset

  • 45 sets in total of full and partial runs
  • Used both full and partial runs for training but only used full runs for testing/inference
  • Training submaps are found in the folder "pointcloud_20m_10overlap/" and its corresponding csv file is "pointcloud_locations_20m_10overlap.csv"
  • Training submaps are not mutually disjoint per run
  • Each training submap ~20m of car trajectory and subsequent submaps are ~10m apart
  • Test/Inference submaps found in the folder "pointcloud_20m/" and its corresponding csv file is "pointcloud_locations_20m.csv"
  • Test/Inference submaps are mutually disjoint

Dataset set-up

Download the zip file of the benchmark datasets found here.

Generate pickle files

cd generating_queries/

# For training tuples in our baseline network
python generate_training_tuples_baseline.py

# For training tuples in our refined network
# python generate_training_tuples_refine.py

# For network evaluation
python generate_test_sets.py

Train

python train_pointnetvlad.py --batch_num_queries=2 --pretrained_path=./pretrained/lpdnet.ckpt

Evaluate

python train_pointnetvlad.py --featnet=pointnet --batch_num_queries=1 --eval_batch_size=2 --pretrained_path=./pretrained/pointnet.ckpt --eval
python train_pointnetvlad.py --eval_batch_size=5 --eval --pretrained_path=./pretrained/lpdnet.ckpt

Take a look atinitPara for more parameters

About

LPD-Net: 3D Point Cloud Learning for Large-Scale Place Recognition and Environment Analysis (ICCV 2019)


Languages

Language:Python 98.7%Language:Shell 1.3%