Skip to content

ishaanshah/SimpleGP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleGP

Implementation of Iterative Closest Point and Laplacian Mesh Editing in Python.

Iterative Closest Point

Iterative closest point algorithm is used in point cloud registration to merge multiple point clouds together. It works by finding out pairwise corrospondences between source and target point cloud and finding out the transformation such that $\sum_{i=0}^n(x_i - \mathrm{Rt}y_i)$ is minimum. This repository implements ICP using SVD, point to point least squares and point to plane least squares. A comparison of the time taken by each of the methods is given below.

Benchmarks

# Points SVD Point to Point Point to Plane
Time w/o KD-Tree w/ KD-Tree w/o KD-Tree w/ KD-Tree w/o KD-Tree w/ KD-Tree
100 0.005 0.004 1.42 1.46 0.054 0.056
1000 0.179 0.029 8.245 8.091 0.453 0.060
10000 24.18 0.768 171.0 224.5 21.48 5.535

Note

The benchmarks above are only run for a single point cloud. Ideally they should be run on a large number of point clouds to better understand the runtime and limitation of different methods.

Usage

❯ python icp.py  --help
usage: icp.py [-h] [--file FILE] [--kd_tree] [--algorithm {svd,lsqr_point,lsqr_plane}] [--iters ITERS]

options:
  -h, --help            show this help message and exit
  --file FILE
  --kd_tree
  --algorithm {svd,lsqr_point,lsqr_plane}
  --iters ITERS

Laplacian Mesh Editing

Laplacian mesh editing is a commonly used method for deforming meshes naturaly by defining regions of interest and moving a handle to transfrom all the vertices in the ROI.

Usage

❯ python laplacian_mesh_editing.py  --help
usage: laplacian_mesh_editing.py [-h] [--file FILE] [--boundary_file BOUNDARY_FILE] [--handle_idx HANDLE_IDX] [--handle_delta HANDLE_DELTA HANDLE_DELTA HANDLE_DELTA]

options:
  -h, --help            show this help message and exit
  --file FILE
  --boundary_file BOUNDARY_FILE
  --handle_idx HANDLE_IDX
  --handle_delta HANDLE_DELTA HANDLE_DELTA HANDLE_DELTA

Acknowledgements

The Spot cow model was taken from Keenan Crane's 3D model repository

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages