PyCPD: Pure NumPy Implementation of the Coherent Point
Drift Algorithm

Point cloud registration is a common problem in many areas of computer science, particularly computer vision. Point clouds come from many types of data such as LIDAR commonly used for self-driving vehicles, and other sorts of 3D scanners (e.g., structured light) are commonly used to map the surface of physical objects. Point clouds are also used to represent the surface of an anatomical structure extracted from a medical image. Point cloud registration finds a transformation from one point cloud to another. Point cloud registration has use cases in many fields from self-driving vehicles to medical imaging and virtual reality. Typically, point cloud registration is classified into rigid (only rotations or translations), affine (rigid + shearing and scaling) and non-rigid also called deformable registration (non-linear deformation).