This bugzilla service is closed. All entries have been migrated to https://gitlab.com/libeigen/eigen
Bug 247 - Umeyama transform doesn't support weighting
Summary: Umeyama transform doesn't support weighting
Status: NEW
Alias: None
Product: Eigen
Classification: Unclassified
Component: Geometry (show other bugs)
Version: 3.0
Hardware: All All
: --- enhancement
Assignee: Nobody
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-11 15:54 UTC by Semen
Modified: 2019-12-04 10:38 UTC (History)
4 users (show)



Attachments

Description Semen 2011-04-11 15:54:54 UTC
In real life Umeyama transform is typically used in molecular simulations to fit two molecules together, which means that the positions of their atoms (geometrical points) must be mass-weighted. Umeyama in Eigen does not support any weighting, which makes it very limited in real life usage. In order to be really useful this function should accept additional optional parameter - the vector of weights.
Comment 1 Gael Guennebaud 2011-04-19 14:21:22 UTC
Yes I agree that weighting is important. So, patch welcome ;)
Comment 2 Semen 2011-04-19 18:17:59 UTC
(In reply to comment #1)
> Yes I agree that weighting is important. So, patch welcome ;)

Unfortunately I'm not familiar with this algorithm. I'm not even sure that it can be formulated for weighted data. The only thing I know is that all molecular analysis programs use weighted implementations of such fitting.
Comment 3 Hauke Heibel 2011-04-25 12:51:40 UTC
Hi,

The algorithm [1] is minimizing

  e^2(R,t,c) = 1/n sum_{i=1}^n |\ y_i - (cRx_i + t) |\^2

where x_i and y_i are corresponding points which should be fit to each other and you would like to change this to

  e^2(R,t,c,W) = 1/n sum_{i=1}^n w_i |\ y_i - (cRx_i + t) |\^2

if I am not completely wrong. Right now, I don't have the time to go through the derivation and verify if such a weighting can be easily integrated and how the minimization would be affected but maybe the paper is enough information for you.

You might also be wanting to take a look at the ICP (iterative closest point) algorithm where the point correspondences x_i and y_j are not known a priori.

- Hauke

[1] Least Squares Estimation of Transformation Parameters Between Two Point Pattern, Shinji Umeyama, IEEE PAMI, 1991
Comment 4 Charles Karney 2014-03-23 15:46:18 UTC
For 3d points, this capability is included in the enhancement offered in Bug 771.
Comment 5 Charles Karney 2014-04-22 13:33:54 UTC
The enhancement offered in Bug 771 now offers weighted fits of n-d points.
Comment 6 Nobody 2019-12-04 10:38:11 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/247.

Note You need to log in before you can comment on or make changes to this bug.