The Coherent Point Drift (CPD) algorithm is a method for aligning two sets of points in space, called point clouds. The goal is to find the transformation that best aligns the two point clouds with each other.
The algorithm works by first estimating the probability distribution of the two point clouds using a Gaussian Mixture Model (GMM). This step allows the algorithm to capture the underlying structure of the point clouds and to identify any outliers or noise in the data.
Next, the algorithm iteratively aligns the two point clouds by minimizing the distance between corresponding points in the two clouds while taking into account the estimated probability distribution. The optimization is done using a technique called Expectation-Maximization (EM), which alternates between estimating the alignment and the probability distribution until convergence.
The key idea behind the CPD algorithm is that it takes into account the coherence between the two point clouds, meaning that it tries to find a transformation that not only minimizes the distance between corresponding points but also preserves the overall structure of the point clouds. This coherence allows the algorithm to handle noisy and incomplete data more effectively than traditional alignment methods.
Overall, the CPD algorithm is a powerful technique for aligning point clouds, and has many applications in fields such as computer vision, robotics, and medical imaging.
- svg2txt
This small shell script converts the svg files in the data/reference folder, i.e. their shape data, into corresponding .txt files where each line represents a single point.
The script makes use of this tool: svg2pts (https://lib.rs/crates/svg2pts)[https://lib.rs/crates/svg2pts], can be easily installed via cargo install svg2pts