Non-rigid Point Cloud Registration with Neural Deformation Pyramid
Hierarchical non-rigid registration of multiple scans
Scale variant non-rigid registration with Sim(3) warp field
Requirements
The code tested on python=3.8.10, pytorch=1.9.0 with the following packages:
- pytorch3d, open3d, opencv-python, tqdm, mayavi, easydict
Obtain the 4DMatch benchmark
- Download the train/val/4DMatch-F/4DLoMatch-F split, (google drive, 14G). We filter point cloud pairs with near-rigid motions from the original 4DMatch benchmark. 4DMatch-F & 4DLoMatch-F denote the filtered benchmark.
- Extract it and create a soft link under this repository.
ln -s /path/to/4Dmatch ./data
Reproduce the result of NDP (no-learned)
- Run
python eval_nolearned.py --config config/NDP.yaml
To visualize the registration result, add --visualize
.
Reproduce the result of LNDP (supervised)
- First download pre-trained point cloud matching and outlier rejection models (google drive, 271M). Move the models to
correspondence/pretrained
- Install KPConv
cd correspondence/cpp_wrappers; sh compile_wrappers.sh; cd ../..
- Finally run
python eval_supervised.py --config config/LNDP.yaml
To visualize the registration result, add --visualize
.
Run shape transfer example
python shape_transfer.py -s sim3_demo/AlienSoldier.ply -t sim3_demo/Ortiz.ply
Related projects
Dataset
The datasets are obtained by agreeing to be bound by their terms and conditions. Original 4DMatch: rabbityl/lepard [License] DeformingThings4D: rabbityl/DeformingThings4D [License] Mixamo: http://mixamo.com/ [License]
Baselines (a few are not official):
CPD (Myronenko et al., 2010): siavashk/pycpd BCPD (Hirose et al., 2020): ohirose/bcpd Sinkhorn (Feydy et al., 2019): jeanfeydy/geomloss ZoomOut (Melzi et al., 2019): RobinMagnet/pyFM NSFP (Li et al., 2021): Lilac-Lee/Neural_Scene_Flow_Prior Nerfies (Park et al., 2021): google/nerfies GeomFmaps (Donati et al., 2020): LIX-shape-analysis/GeomFmaps FLOT (Puy et al., 2020): valeoai/FLOT PointPWC (Wu et al., 2020): DylanWusee/PointPWC Synorim (Huang et al., 2022): huangjh-pub/synorim Lepard, (Li et al., 2022): rabbityl/lepard