|Re: [eigen] Re: scaling in Umeyama|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Re: scaling in Umeyama
- From: "Radu B. Rusu" <radu.b.rusu@xxxxxxxxx>
- Date: Tue, 25 Sep 2012 09:18:45 -0700
- Cc: Hauke Heibel <hauke.heibel@xxxxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:reply-to:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=LQO5O0dwpQLM7SfYWJzm8aimwnz6zfvxGR1LQziIuBI=; b=XRYJqJsKLRlAc/lLRj1+DMaBU8fDWkWwOeDqyFOYdNdW4yVaIh7niLI5q56YyDndxs sDfo51wVSof8CLbwbHQFDN+XwYbILt6WrIWHzc92Aj/6DMUBk6ldGrYncrt7ER7un01H P/Ab8CjKQZAbzc2uadsUMom2QAd0j01PGNF/SEJ8XOFQmUls1nBSW/4LOdU6Bm8y4LgN u41ycQfbjYHuC6sH42nunK/Oq76FSTYHuA0MaHVn6IS5l/EN2yQVitGKQAXbMswWThkS LQeifxoPoY0ZOXYOEG/ka0dPHFdgZCmGmKC6k7NQsG5OVrrOY9VqMBxy3TdFbDZSgJ5y 1h5g==
Thanks for the speedy fix! The patch looks good.
On 09/25/2012 02:44 AM, Hauke Heibel wrote:
it seems as if I never properly tested the case c=1. The unit tests
test for random c>=0.
I looked at the code and what you say makes sense. I pushed a fix
though I did not find the time to test it and hope that I did not
On Mon, Sep 24, 2012 at 9:34 PM, Radu B. Rusu <radu.b.rusu@xxxxxxxxx> wrote:
Maybe to make a correction: the math does look good (i.e., properly
implemented as in the original paper), however the values that we obtain for
the translation are all off. Looking at our own implementation (and a few
other implementations around the web), we calculate the translation simply
by: t = u_y - R * u_x, so without multiplying with the c Scalar.
Did anyone perform any regression tests on ground truth data to see how it
performs (with and without (42) as in the Umeyama paper)?
On 09/24/2012 12:23 PM, Radu B. Rusu wrote:
I noticed a small discrepancy between the documentation for Umeyama and
the actual implementation, and I was wondering
if this is a bug.
Sets c=1 when false is passed." However, looking at
http://eigen.tuxfamily.org/dox/Umeyama_8h_source.html, I see:
00157 const Scalar c = 1/src_var * svd.singularValues().dot(S);
which is then applied to the translation component. In our tests, this led
to a bad translation while the rotation was
correct when with_scaling was set to false.