siavashk / pycpd

Pure Numpy Implementation of the Coherent Point Drift Algorithm
MIT License
513 stars 115 forks source link

Non rigid cpd: how to tune alpha and beta parameters #27

Closed Theophile88 closed 5 years ago

Theophile88 commented 5 years ago

Could you give more information on how to choose the alpha/beta parameters for the deformable_cpd?

siavashk commented 5 years ago

I really need to merge development into master. The code is more documented re #24. Have a look at :

https://github.com/siavashk/pycpd/blob/development/pycpd/deformable_registration.py#L25

Also from the paper:

Parameters λ (⍺ in the code) and β both reflect the amount of smoothness regularization. A discussion on the difference between λ and β can be found in [29], [30]. Briefly speaking, parameter β defines the model of the smoothness regularizer (width of smoothing Gaussian filter in (20)). Parameter λ represents the trade-off between the goodness of maximum likelihood fit and regularization.

Basically ⍺ is how much regularization to apply. If it is too high, the point cloud acts rigid and if it is too low it acts fluid. β is the neighbourhood of points to consider when applying the rigidity constraint.

siavashk commented 5 years ago

Feel free to reopen the issue if you would like to discuss more.