bing-jian / gmmreg

Implementations of the robust point set registration algorithm described in "Robust Point Set Registration Using Gaussian Mixture Models", Bing Jian and Baba C. Vemuri, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(8), pp. 1633-1645. For a Python implementation, please refer to http://github.com/bing-jian/gmmreg-python.
GNU General Public License v3.0
299 stars 96 forks source link

Affine registration #3

Closed xinkang closed 4 years ago

xinkang commented 8 years ago

Hi Bing,

I want to use the API for register two 2D point sets. One is a set of template points and the other is a set of detected points. I want to get a best fit of the template points to the detected points while keep the shape of the template points. My idea is to register the two point sets using affine transformation. Would it possible just getting a affine transformation without GRBF or TPS deformation? Or is there a way in your API that restrict the degree/amount of deformation?

Looking forwards to your kind prompt reply. Thanks!

Best regards, Ben

bing-jian commented 8 years ago

Ideally if the underlying transformation is affine or almost affine, then the non-rigid part should be quite small, i.e. the GRBF or TPS coefficients returned in this case should be close to zero, given proper regularization. What was your observation?

xinkang commented 8 years ago

I tried cpd, kc and L2 without setting any parameter. The template point sets (called model in your code) were deformed severely to fit to the detected points and totally lost its shape. To your information, the detected points include outliers and sometimes partial of the shape. The underlying transformation should be affine. I did not set initial values for the coefficients. How to enforce an affine registration? What do you mean by "given proper regularization"?

MelodyWang1314 commented 8 years ago

Dear Bing-jian: I am so confused that data "fish_X_nohead" and "fish_ynotail" have poor performance on point set registration. For what reason? weather should I set some good initial value?

Thanks!

image

@bing-jian

bing-jian commented 8 years ago

Melody, may I know how you tried to run the program?

bing-jian commented 5 years ago

Hi Liangzu,

Happy new year and thank you for the email. Sorry for the late reply. I was on vacation and then a business trip.

As for your question, are you using the MATLAB version? It's recommended to try the C++ or Python version as they were updated more recently. For the configuration, can you please also try setting config.normalize = 1 instead of config.normalize = 0

https://github.com/bing-jian/gmmreg/blob/master/MATLAB/initialize_config.m#L12

Additionally, for performance evaluation in the setting of point set registration, I prefer using recall vs threshold to comparing the absolute error metric, because when the point wise error is small enough they can be easily paired and the slight error differences here do not matter.

Thanks, Bing

On Tue, Jan 1, 2019 at 8:25 PM Leon Z. Peng notifications@github.com wrote:

Hi, Bing,

I also met the problems reported above when registrating the fish model to the corresponding scene set in a case where there are no outliers. The below are what I find.

  1. The algorithm works for 2D random rotation, without translation. I invoke the algorithm via "gmmreg_L2(initialize_config(P, Q, 'rigid2d'));"
  2. The algorithm fails when the underlying transformation is affine (i.e., linear transformation + translation). I invoke the algorithm via "gmmreg_L2(initialize_config(P, Q, 'affine2d'));" The following are my numerical results (x-axis is the percentage of shuffles in the scene set): [image: image] https://user-images.githubusercontent.com/17881639/50580402-18d50e80-0e1c-11e9-80a8-ddb6c18bb5fa.png .

Are there any parameters that I can set so that your algorithm will work for the affine case, or simply I invoke your algorithm in a wrong way?

Happy new year, Liangzu Peng

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bing-jian/gmmreg/issues/3#issuecomment-450785349, or mute the thread https://github.com/notifications/unsubscribe-auth/AANe8zpjDzBsxtKs8EOdcSlcSL9NIj6lks5u_DSsgaJpZM4G3kp4 .