Skip to content
forked from siavashk/pycpd

Pure Numpy Implementation of the Coherent Point Drift Algorithm

License

Notifications You must be signed in to change notification settings

innolitics/pycpd

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python-CPD

Pure Numpy Implementation of the Coherent Point Drift Algorithm.

MIT License.

Introduction

This is a pure numpy implementation of the coherent point drift CPD algorithm by Myronenko and Song. It provides three registration methods for point clouds: 1) Scale and rigid registration; 2) Affine registration; and 3) Gaussian regularized non-rigid registration.

The CPD algorithm is a registration method for aligning two point clouds. In this method, the moving point cloud is modelled as a Gaussian Mixture Model (GMM) and the fixed point cloud are treated as observations from the GMM. The optimal transformation parameters maximze the Maximum A Posteriori (MAP) estimation that the observed point cloud is drawn from the GMM.

The registration methods work for 2D and 3D point clouds. For more information, please refer to my blog

Pip Install

$ pip install pycpd

Installation From Source

Clone the repository to a location in your home directory. For example:

$ git clone https://github.com/siavashk/pycpd.git $HOME/pycpd

Install the package:

$ pip install .

For running sample registration examples under /tests, you will need two additional packages.

Scipy (for loading .mat files) and matplotlib (for visualizing the reigstration). These can be downloaded by running:

$ pip install -r requirements.txt

Usage

Each registration method is contained within a single class inside the pycpd subfolder. To try out the registration, you can simply call:

$ python examples/fish{Transform}{Dimension}.py

where Transform is either Rigid, Affine or Deformable and Dimension is either 2D or 3D.

About

Pure Numpy Implementation of the Coherent Point Drift Algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%