Skip to main content

Pure Numpy Implementation of the Coherent Point Drift Algorithm

Project description

Pure Numpy Implementation of the Coherent Point Drift Algorithm.

MIT License.


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, referred to as the root folder. For example:

git clone $HOME/pycpd

Install the package:

pip install .

For running sample registration examples under examples, you will need matplotlib to visualize the registration. This can be downloaded by running:

pip install matplotlib


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

python examples/fish_{Transform}_{Dimension}.py

where Transform is either rigid, affine or deformable and Dimension is either 2D or 3D. Note that examples are meant to be run from the root folder.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pycpd, version 2.0.0
Filename, size File type Python version Upload date Hashes
Filename, size pycpd-2.0.0-py3-none-any.whl (10.1 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pycpd-2.0.0.tar.gz (7.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page