Skip to main content
https://travis-ci.com/siavashk/pycpd.svg?branch=master

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

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

Install the package:

pip install .

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

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

pip install scipy matplotlib

Usage

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.

Release files for pycpd 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycpd 1.0.3
File Size Uploaded
pycpd-1.0.3.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycpd 1.0.3
File Interpreter ABI Platform
pycpd-1.0.3-py2-none-any.whl Python 2 none any Details

Total release size: 14.9 kB

Release files / pycpd-1.0.3.tar.gz

Download URL pycpd-1.0.3.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4d7253f9ce790bf3b10c23a411afd7e27de523c2e5e022ce55cc3ce116c92c37
BLAKE2b-256 checksum
How to use checksums
6342bf447fddc700eccf44b19f75c054282dc62924387fa521f1e28ed9d9bc42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.8.1 pkginfo/1.4.1 requests/2.13.0 setuptools/39.2.0 requests-toolbelt/0.7.1 clint/0.5.1 CPython/2.7.10 Darwin/17.6.0

Release files / pycpd-1.0.3-py2-none-any.whl

Download URL pycpd-1.0.3-py2-none-any.whl
Size 9.1 kB
Tags Python 2
SHA-256 checksum
How to use checksums
e750f7c09246f62232b882e3410206cf5d96214d26497d9f3b3a5513ae414b9e
BLAKE2b-256 checksum
How to use checksums
6ea78af2ebb6ecaa4b379d07b374e25b3785d388fe339612d3845730caa4652e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.8.1 pkginfo/1.4.1 requests/2.13.0 setuptools/39.2.0 requests-toolbelt/0.7.1 clint/0.5.1 CPython/2.7.10 Darwin/17.6.0

Release history Release notifications | RSS feed

2.0.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0

2 release files

0.4

2 release files

0.3

1 release file

0.2

3 release files

0.1

2 release files

0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page