Re: [eigen] Re: scaling in Umeyama |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Re: scaling in Umeyama
- From: Hauke Heibel <hauke.heibel@xxxxxxxxx>
- Date: Tue, 25 Sep 2012 11:44:09 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=WnxoAikwF6rT4TwgzZkkAUg5m4+u6dFsFtUpcBOyxZc=; b=jpyICjyXMhYu8JL2uLBmI6xDjrD0TR1qQEW1c8ujsVSm/z2TcUeJ40yYWVbRLeMORk mXY+uHYoysYLmilDqotxAmiCYJBb1nxJzQIM568Olm2kgbpV5cHg8DOf53y4+KyzDyWk Bu+jslEoEiow2R0ZIsw3EoVSgcBuXwWLaSbjvlXkpsKqCrM2IL6RNIb/AdgGyQD1njzQ aGw7BwWwsWote/gm0TWfY0iOtTcs7x+pom0icudno8P48Gof0+O0/zEJI1KVR593LGxM JLHB2QvufDTiRvd2r6z2g8+eooDGqsNJRIkzlg+bRfGoXbe/R1IiwRL9vBX9woehO/Yv B7/w==
Hi Radu,
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
brake anything.
Regards,
Hauke
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)?
>
> Thanks.
>
> Cheers,
> Radu.
> --
> http://openperception.org
>
>
> 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.
>>
>>
>> http://eigen.tuxfamily.org/dox/group__Geometry__Module.html#gab3f5a82a24490b936f8694cf8fef8e60
>> states "with_scaling
>> 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.
>>
>> Thanks,
>> Radu.
>> --
>> http://openperception.org
>
>
>