3d Shape Alignment

3d Shape Alignment

Input #

  • 2 shapes 3d_shape_alignment_874a462690fc792889fb3f5d5ac1fd10c61ca248.svg and 3d_shape_alignment_8b99331a2f7206efc6b7a6dad8146036e3b3d1c1.svg with partial overlap

General problem #

  • find a rigid transform (preserves distances of two points before and after transform) to minimize the distance between 3d_shape_alignment_874a462690fc792889fb3f5d5ac1fd10c61ca248.svg and 3d_shape_alignment_8b99331a2f7206efc6b7a6dad8146036e3b3d1c1.svg

    3d_shape_alignment_f8ef8a0a8e2945efcdac00794b863563ffa5ea31.svg
    • for distance measure 3d_shape_alignment_57cd5b4774e5a565b75bb6a4b703bb6995381873.svg
    • and rigid transform 3d_shape_alignment_e1dc5e78f810ec89eeffec0b1ef5d8424f838299.svg

Distance Problem #

  • What is the distance between two shapes?
  • If we have corresponding points, we can get the distance between them
  • But generally we don’t have them

Overlap Problem #

The distance metric should give a good match if the overlapping parts of the shaps are matching.

If you took the original measurements, then maybe you even know how much the shapes should roughly overlap.

High level solution #

  1. Given shaped 3d_shape_alignment_874a462690fc792889fb3f5d5ac1fd10c61ca248.svg and 3d_shape_alignment_8b99331a2f7206efc6b7a6dad8146036e3b3d1c1.svg
  2. Establish correspondences between 3d_shape_alignment_874a462690fc792889fb3f5d5ac1fd10c61ca248.svg and 3d_shape_alignment_8b99331a2f7206efc6b7a6dad8146036e3b3d1c1.svg
  3. Find optimal transform that best aligns correspondences based on a distance metric (like the 3d_shape_alignment_17d5640f200bb2665e674fe7768dcacb137c53cf.svg norm )
  4. Generally, the more restriced the problem is, the easier it is to find a solution

Transform estimate #

  • 6 degrees of freedom: translation and rotation (because rigid transform)
  • estimate with more correspondences 3d_shape_alignment_3ac3b48cbb74153cdfc209a2e4a9e62d27ced5e0.svg overdetermined problem
  • More DOF for more generell movements

Solution when knowing corresponding points #

3d_shape_alignment_0882fbe19c2ec642cb6946b6d35a03226bfce07f.svg

For all points 3d_shape_alignment_894043492cbeb819c8e384cf79cfe7597c40fae7.svg in Shape 3d_shape_alignment_874a462690fc792889fb3f5d5ac1fd10c61ca248.svg and the corresponding points 3d_shape_alignment_fbfc3351e364f3ce723cab9d03243e781d8e6d37.svg of shape 3d_shape_alignment_8b99331a2f7206efc6b7a6dad8146036e3b3d1c1.svg.

Considering a coordinate system centered at the mean of the 3d_shape_alignment_894043492cbeb819c8e384cf79cfe7597c40fae7.svg.

3d_shape_alignment_47034a14d87e75589f8568f0b041977317602729.svg

We can split up the solving fot translation and rotation by first fixing the tanslation. According to the `translation` part in the 3d_shape_alignment_3776de900bccc8e5587bbb55946b9da37a48c28b.svg problem, if we align both shapes by their centroids, we only have to find the corresponding rotation: Remove translation by mean centering.

3d_shape_alignment_447d5bfea5c56687c2c95387bfb7a68c6a28364c.svg 3d_shape_alignment_50785c12af4a9ab22fe810c213690461927db845.svg 3d_shape_alignment_3be4524dd67587d054bed7ef83b46ed2f5596cd2.svg 3d_shape_alignment_c4a45e59dd6423e5f8f9ae65ac8e242ead950792.svg

Now both shapes should be centered at the origin.

Solve this by computing the SVD (singular value decomposition) of

3d_shape_alignment_2d2f2f6b15acafcdb6fc3a2dba3e5a4f36e6f526.svg

Define:

3d_shape_alignment_b29ca2af79c4c71afcc5cf154ff419b9a0980860.svg

Then: The optimal rotation 3d_shape_alignment_676096153526867e06e659414a594511a8c0473f.svg will be:

3d_shape_alignment_2fdaae186305aeec6d02ab87f599b6b17fbd13dc.svg

The translation has to be recomputed then by taking the mean of the rotated 3d_shape_alignment_894043492cbeb819c8e384cf79cfe7597c40fae7.svg.

<img src="/ltximg/3d_shape_alignment_cc8e04174153a3c8a4d521aefddb008d9de51aa3.svg" alt="3d_shape_alignment_cc8e04174153a3c8a4d521aefddb008d9de51aa3.svg" class="org-svg" />

then

3d_shape_alignment_5e8cfb920d0285977f6ae7ecf18cbf1546b4f755.svg

See also #

Calendar October 22, 2023