Rubix: Global Correspondence-Free Point Set Alignment through Assignment Geometry
Organizations: School of Computing, Australian National University
Abstract
Procrustes-Wasserstein alignment jointly estimates a matching and rotation without supplied correspondences, but alternating minimization can stop at suboptimal solutions. Rubix solves the equally weighted planar problem globally under squared Euclidean loss. Each matching of two centered -point sets defines a complex correlation . Their convex hull is the permutation polygon: supporting vertices give optimal matchings at fixed rotations, and the farthest vertex gives the global alignment. We prove the sharp bound of vertices for , answering Rote's rotation-assignment open problem. In exact arithmetic, assignment queries recover the polygon in operations. Assignment-based bounds extend the approach to three-dimensional rotations and partial matching at a supplied translation through branch-and-bound. On timed MPEG-7 shape pairs, Rubix attains every numerical reference value in 12 ms on average, 50 times faster than a rotation grid at the same accuracy. Its distances improve gravity-aligned matching of real 3D scans, shape retrieval and noisy crystal classification over alternating minimization.
Figures & tables
| Input and correspondences | Pose variables | Assignment oracle | Scope of the construction |
|---|---|---|---|
| Known gravity; complete bijection | Yaw; translation by centering | Square linear assignment | Global yaw, translation, and matching |
| Known gravity; partial matching | Yaw at supplied translation | Prescribed-cardinality or penalized assignment | Global conditional on that translation |
| Known gravity; partial matching | Yaw and translation | Partial assignment with a forced anchor | Global joint search over a finite anchor cover |
| Unrestricted rotation; complete bijection | Proper rotation; translation by centering | Square linear assignment | Global complete SE(3) registration |
| Unrestricted rotation; partial matching | Proper rotation at supplied translation | Prescribed-cardinality or penalized assignment | Global conditional on that translation |
| MPEG-7 ( ) | Gaussian ( ) | Lattice ( ) | ||||
|---|---|---|---|---|---|---|
| Method | Excess (%) | Time ratio | Excess (%) | Time ratio | Excess (%) | Time ratio |
| AM (PCA) [ 2 ] | 29.5 | 58.0 | 81.0 | |||
| Fiedler–W, original [ 2 ] | 63.0 | 81.5 | 87.5 | |||
| Fiedler–W, reproduced [ 2 ] | 63.0 | 81.5 | 88.0 | |||
| Ping-Pong, reproduced [ 25 ] | 77.0 | 89.5 | 88.5 | |||
| Stochastic WP, LAP variant [ 28 ] | 79.5 | 91.0 | 94.0 | |||
| MPEG-7 ( ) | Gaussian ( ) | Lattice ( ) | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Method | Excess | LAPs | ms | Excess | LAPs | ms | Excess | LAPs | ms |
| APM [ 46 ] | 0.0 | 551 | 245.1 | 0.0 | 562 | 179.2 | 0.0 | 556 | 133.8 |
| RPM-PA [ 48 ] , | 45.5 | 10 | 10.6 | 66.0 | 10 | 9.3 | 53.0 | 10 | 8.2 |
| RPM-PA [ 48 ] , | 4.5 | 26 | 27.9 | 13.5 | 36 | 33.1 | 5.0 | 38 | 32.1 |
| RPM-PA [ 48 ] , | 0.0 | 50 | 59.7 | 0.0 | 60 | 57.8 | 0.0 | 54 | 46.5 |
| Rubix | 0.0 | 25 | 5.8 | 0.0 | 30 | 4.2 | 0.0 | 31 | 1.2 |
| Distance | Bullseye (%) | 1-NN (%) | mAP (%) |
|---|---|---|---|
| Rubix | 67.4 | 92.5 | 59.2 |
| AM (PCA) [ 2 ] | 65.5 | 91.6 | 57.1 |
| AM (GW) [ 4 ] | 56.4 | 88.6 | 48.1 |
| GW [ 4 , 26 ] | 56.3 | 88.6 | 47.3 |
| SEINT [ 52 ] | 36.2 | 63.1 | 24.1 |
| SEINT, best setting [ 52 ] | 41.6 | 67.4 | 29.4 |
| Method | |||||
|---|---|---|---|---|---|
| Fiedler–W, original [ 2 ] | |||||
| Ping-Pong, reproduced [ 25 ] | |||||
| Rubix |
| Partial overlap | Defective lattices | |||||||
|---|---|---|---|---|---|---|---|---|
| Rotations (%), shared | Failures | Accuracy (%), defect rate | ||||||
| Method | 0.75 | 0.5 | 0.3 | solver/obj. | 0 | 0.1 | 0.2 | 0.3 |
| Rubix, unbalanced | 99.5 | 99.0 | 99.0 | 0/5 | 100.0 | 99.0 | 94.5 | 90.5 |
| Rubix, balanced | 59.5 | 28.5 | 10.5 | 0/403 | 98.0 | 80.5 | 66.5 | 60.0 |
| AM, 16 starts | 99.5 | 98.5 | 88.5 | 26/3 | 95.5 | 99.0 | 94.5 | 90.5 |
| UGW [ 68 ] | 83.5 | 43.0 | 20.0 | 207/100 | 100.0 | 94.0 | 78.0 | 69.0 |
| Method | Time (s) | Nodes | Paired speedup | Pose success |
|---|---|---|---|---|
| GLORES [ 20 ] | 2.330 | 2,374.5 | 189/212 | |
| GLORES + vertex bound [ 20 ] | 2.315 | 2,263 | 189/212 | |
| GLORES + Rubix arc bound [ 20 ] | 2.103 | 2,035 | 189/212 | |
| GLORES + Rubix, common translation [ 20 ] | 1.608 | 1,352 | 190/212 |
| Subsolver | Reference attained | Gap closed | Assignments | Total (s) | Median (ms) |
|---|---|---|---|---|---|
| AM | 22/96 | 0/96 | 338 | 0.062 | 0.58 |
| Independent-edge bound | 96/96 | 96/96 | 224,508 | 13.910 | 138.78 |
| Vertex bound | 96/96 | 96/96 | 5,544 | 0.232 | 2.44 |
| Rubix interpolant | 96/96 | 96/96 | 2,226 | 0.144 | 1.46 |
Appendix figures & tables32 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | Representative matchings or couplings | Algorithm and reference |
|---|---|---|
| , reflections | Two: sorted and reversed | by sorting |
| , rotations, uniform weights, | At most ; tight | ; at most assignments (Theorem 2 ) |
| , rotations and reflections, | At most | (Corollary 10 ) |
| , rotations, uniform weights, versus points | At most , where | Polynomial by duplication (Corollary 8 ) |
| , rotations, rational weights with denominator | At most ; can exceed | Pseudo-polynomial by duplication (Corollary 8 ) |
| , linear maps; planar GW with inner-product costs | Vertices of a polytope of dimension at most four; can exceed | Conjectured superpolynomial vertex count; no polynomial bound ( Section B.3.1 ) |
| MPEG-7 | Gauss. | lattice | |||||||
|---|---|---|---|---|---|---|---|---|---|
| method | LAPs | fail | LAPs | fail | LAPs | fail | |||
| Rubix | 27 | 0.0 | 0.0 | 30 | 0.0 | 0.0 | 31 | 0.0 | 0.0 |
| AM (PCA) [ 2 ] | 7 | 53.0 | 33.4 | 7 | 72.4 | 62.2 | 5 | 78.5 | 77.2 |
| AM (10 random) [ 2 ] | 62 | 51.6 | 35.0 | 36 | 55.3 | 44.1 | 24 | 51.8 | 48.5 |
| AM (GW) [ 4 ] | 3 | 72.3 | 61.3 | 3 | 85.7 | 80.8 | 2 | 88.7 | 87.7 |
| grid 36 | 36 | 72.9 | 12.6 | 36 | 59.0 | 10.7 | 36 | 3.8 | 1.3 |
| method | Gauss. | mixt. | circle | copy .05 | copy .2 | copy .5 |
|---|---|---|---|---|---|---|
| AM (identity) [ 2 ] | 97 | 87 | 98 | 90 | 92 | 93 |
| AM (PCA, 4 starts) [ 2 ] | 69 | 21 | 80 | 1 | 12 | 53 |
| AM (10 random) [ 2 ] | 70 | 24 | 80 | 28 | 40 | 62 |
| grid 36 | 48 | 52 | 37 | 2 | 38 | 44 |
| grid 360 | 5 | 8 | 1 | 0 | 2 | 3 |
| B&B ( ) | 0 | 0 | 0 | 0 | 0 | 0 |
| Set | Rubix | Grid ( ) | AM (100) [ 2 ] |
|---|---|---|---|
| MPEG-7 | 11.8 | 296 (720) | 288 (11.5%) |
| Gauss. | 8.3 | 82.6 (360) | 99.0 (6.5%) |
| lattice | 2.2 | 3.9 (72) | 21.2 (2.5%) |
| Noise | |||
|---|---|---|---|
| PW solver | 0.08 | 0.12 | 0.16 |
| AM (PCA) [ 2 ] | 88.1 | 77.0 | 65.4 |
| AM (10 starts) [ 2 ] | 91.1 | 83.5 | 74.8 |
| Grid 36 | 94.2 | 88.9 | 82.0 |
| Rubix | 94.2 | 88.9 | 81.9 |
| MPEG-7 retrieval | Lattice 1-NN accuracy (%) at | ||||||||
| Setting | Bullseye | 1-NN | ms | 0.04 | 0.08 | 0.12 | 0.16 | 0.20 | ms |
| SEINT, 50 refs | 36.2 | 63.1 | 0.22 | 97.7 | 81.0 | 50.0 | 36.3 | 26.3 | 0.17 |
| SEINT, 100 refs | 36.0 | 62.3 | 0.28 | 97.8 | 81.3 | 51.3 | 34.5 | 26.3 | 0.20 |
| SEINT, 200 refs | 35.9 | 61.8 | 0.43 | 98.0 | 82.7 | 53.5 | 34.2 | 28.2 | 0.25 |
| SEINT, 500 refs | 36.7 | 63.1 | 0.78 | 99.7 | 87.5 | 55.0 | 34.5 | 29.2 | 0.40 |
| SEINT, 1000 refs | 36.6 | 63.0 | 1.58 | 99.2 | 87.5 | 51.5 | 34.2 | 31.3 | 0.64 |
| Clustering | Distance | ARI | NMI | ARI | NMI | ARI | NMI |
|---|---|---|---|---|---|---|---|
| k-medoids | Rubix | 0.55 | 0.68 | 0.52 | 0.60 | 0.39 | 0.43 |
| AM (PCA) [ 2 ] | 0.35 | 0.40 | 0.22 | 0.26 | 0.06 | 0.08 | |
| SEINT [ 52 ] | 0.21 | 0.27 | 0.06 | 0.09 | 0.01 | 0.03 | |
| SEINT, best setting [ 52 ] | 0.70 | 0.72 | 0.28 | 0.31 | 0.07 | 0.11 | |
| average linkage | Rubix | 0.68 | 0.80 | 0.66 | 0.80 | 0.10 | 0.20 |
| Family | APM [ 46 ] (ms) | Rubix (ms) | Ratio |
|---|---|---|---|
| MPEG-7 | 259.0 | 8.12 | |
| Gaussian | 191.6 | 4.41 | |
| Lattice | 144.7 | 0.74 |
| Rubix-U | Rubix-B | AM-U | UGW | FUGW | PGW | |||
|---|---|---|---|---|---|---|---|---|
| 1 | 0.01 | 100 | 100 | 99 (100) | 100 (100) | 100 (100) | 98 (100) | 1.00 |
| 1 | 0.03 | 100 | 100 | 99 (100) | 100 (100) | 100 (100) | 93 (93) | 1.00 |
| 0.75 | 0.01 | 100 | 61 | 100 (100) | 83 (83) | 97 (97) | 38 (38) | 1.00 |
| 0.75 | 0.03 | 99 | 58 | 99 (99) | 84 (84) | 95 (95) | 27 (29) | 1.00 |
| 0.5 | 0.01 | 100 | 29 | 98 (98) | 49 (49) | 86 (86) | 13 (15) | 0.50 |
| 0.5 | 0.03 | 98 | 28 | 99 (99) | 37 (37) | 62 (62) | 14 (14) | 1.00 |
| Rubix-U | Rubix-B | AM-U | UGW [ 68 ] | FUGW [ 72 ] | PGW [ 17 ] | SEINT [ 52 ] | |||
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.08 | 100 | 98 | 95.5 (100) | 100 (100) | 99.5 (100) | 63.5 (63.5) | 94.5 | 1.00 |
| 0.1 | 0.08 | 99 | 80.5 | 99 (99) | 94 (94) | 90.5 (91.5) | 60 (60) | 50.5 | 1.00 |
| 0.2 | 0.08 | 94.5 | 66.5 | 94.5 (94.5) | 78 (78) | 79.5 (79.5) | 56.5 (56.5) | 41.5 | 1.00 |
| 0.3 | 0.08 | 90.5 | 60 | 90.5 (90.5) | 69 (69) | 70 (70) | 45.5 (57) | 26 | 1.00 |
| Shared fraction | ||||||
|---|---|---|---|---|---|---|
| Method | 1 | 0.75 | 0.5 | 0.3 | All | Median s |
| Rubix, unbalanced | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 0.505 |
| AM, 60 starts | 100.0 | 78.0 | 56.0 | 34.0 | 67.0 | 0.018 |
| UGW [ 68 ] | 100.0 | 82.0 | 16.0 | 0.0 | 49.5 | 0.053 |
| Fused UGW [ 72 ] | 100.0 | 94.0 | 86.0 | 38.0 | 79.5 | 0.016 |
| Partial GW [ 17 ] | 100.0 | 36.0 | 12.0 | 2.0 | 37.5 | 0.002 |
| Rubix, unbalanced | AM, 16 starts | |||||||
| Planar, | 1 | 0.75 | 0.5 | 0.3 | 1 | 0.75 | 0.5 | 0.3 |
| 2 | 100 | 97.5 | 88.5 | 74.5 | 52.5 | 47 | 43 | 36.5 |
| 5 | 100 | 99.5 | 99 | 88 | 66 | 57.5 | 52.5 | 50 |
| 10 | 100 | 100 | 100 | 94.5 | 84.5 | 74.5 | 62 | 59.5 |
| 20 | 100 | 100 | 100 | 99 | 93 | 86 | 79.5 | 72.5 |
| 50 | 100 | 100 | 100 | 99 | 99 | 98 | 95.5 | 87.5 |
| Reference | Front end | ||||
|---|---|---|---|---|---|
| Method | Exact | Offset | Li [ 43 ] | RAP [ 57 ] | Quatro [ 51 ] |
| Rubix | 27 | 25 | 20 | 23 | 8 |
| AM | 22 | 20 | 17 | 17 | 5 |
| UGW [ 68 ] | 10 | 9 | 6 | 7 | 7 |
| Fused UGW [ 72 ] | 23 | 19 | 19 | 20 | 10 |
| Partial GW [ 17 ] | 6 | 7 | 5 | 6 | 6 |
| Shared fraction | |||||
|---|---|---|---|---|---|
| Method | 1 | 0.75 | 0.5 | 0.3 | All |
| Rubix | 0/0 | 0/1 | 0/2 | 0/2 | 0/5 |
| Balanced Rubix | 0/0 | 0/81 | 0/143 | 0/179 | 0/403 |
| AM, 16 starts | 2/0 | 1/0 | 3/0 | 20/3 | 26/3 |
| UGW | 0/0 | 33/0 | 101/13 | 73/87 | 207/100 |
| Fused UGW | 0/0 | 8/0 | 49/3 | 6/105 | 63/108 |
| Method | Success | Median s |
|---|---|---|
| GLORES [ 20 ] + Rubix | 190 | 1.61 |
| GLORES [ 20 ] | 189 | 2.33 |
| PLICP [ 16 ] , 16 yaws | 185 | 0.23 |
| PLICP [ 16 ] from zero | 146 | 0.01 |
| UGW [ 68 ] + ICP | 169 | 0.86 |
| Partial GW [ 17 ] + ICP | 151 | 0.37 |
| Pair | AM (ms) | Edge (ms) | Vertex (ms) | Rubix (ms) | Rotation ( ∘ ) | Translation (m) |
|---|---|---|---|---|---|---|
| Office 1–2 | 175.9 | 266.9 | 176.1 | 176.6 | 0.546 | 0.124 |
| Office 2–3 | 205.2 | 300.2 | 225.9 | 200.0 | 86.237 | 7.254 |
| Office 3–4 | 142.9 | 227.7 | 142.4 | 143.1 | 179.164 | 2.894 |
| Courtyard 1–2 | 181.5 | 368.1 | 182.0 | 182.4 | 0.046 | 0.037 |
| Courtyard 2–3 | 260.6 | 497.1 | 266.7 | 273.4 | 0.909 | 1.365 |
| Courtyard 3–4 | 179.3 | 392.6 | 185.2 | 182.5 | 0.047 | 0.029 |
| Refinement after the native method | Closed gaps | LAPs | Stage (ms) | Total (s) | Success |
|---|---|---|---|---|---|
| Quatro [ 51 ] | |||||
| Projected native + gravity ICP | 0/527 | 0 | 0 | 0.678 | 6/31 |
| AM + gravity ICP | 0/527 | 1,066 | 0.64 | 0.657 | 11/31 |
| AM (multistart) + gravity ICP | 0/527 | 32,505 | 24.7 | 0.685 | 11/31 |
| Edge bound + gravity ICP | 527/527 | 2,656,883 | 468 | 1.158 | 11/31 |
| Vertex bound + gravity ICP | 527/527 | 32,165 | 14.8 | 0.669 | 11/31 |
| Native method | Success / 31 | Median RE ( ∘ ) | Median TE (m) | Native time (s) |
|---|---|---|---|---|
| Quatro [ 51 ] | 4 | 81.521 | 7.281 | 0.289 |
| RAP, trial 1 [ 57 ] | 19 | 1.161 | 0.368 | 12.097 |
| RAP, trial 2 [ 57 ] | 18 | 1.143 | 0.294 | 11.181 |
| Li et al., [ 43 ] | 23 | 0.150 | 0.064 | 2.921 |
| Cai et al., corrected FMP+BnB [ 13 ] | 24 | 0.175 | 0.041 | 4.472 |
| Cai et al., corrected BnB [ 13 ] | 24 | 0.175 | 0.041 | 3.671 |
| Solver and baseline | Runs | Without | With Rubix | Paired ratio |
| Timed host (s) | ||||
| GLORES [ 20 ] : native bound | 240 | 2.330 | 1.608 | |
| Cai FMP [ 13 ] : common host | 31 | 2.396 | 2.413 | |
| Cai BnB [ 13 ] : common host | 31 | 1.230 | 1.232 | |
| Conditional yaw TLS loss (m 2 ) | ||||
| Quatro [ 51 ] : native GNC yaw | 31 | 1.5396 | 1.4816 | |
| Native method: baseline bound | Stage (ms) | Stage ratio | Total (s) | Total ratio | Success |
|---|---|---|---|---|---|
| Quatro [ 51 ] : edge | |||||
| Quatro [ 51 ] : vertex | |||||
| RAP [ 57 ] : edge | |||||
| RAP [ 57 ] : vertex | |||||
| Li et al. [ 43 ] : edge | |||||
| Li et al. [ 43 ] : vertex |
| Subset selection | Bound | Gap closed | Cells | CPU (s) | Median (ms) | Pose success |
|---|---|---|---|---|---|---|
| RAP full pose | Rotation-cap host | 31/31 | 28,074 | 9.73 | 203.1 | 10/31 |
| RAP full pose | With Rubix | 31/31 | 8,302 | 12.10 | 300.5 | 10/31 |
| Centroid control | Rotation-cap host | 31/31 | 39,920 | 15.23 | 393.7 | 0/31 |
| Centroid control | With Rubix | 31/31 | 12,232 | 18.72 | 553.0 | 0/31 |
| Added bound | Closed | CPU (s) |
|---|---|---|
| None (rotation-cap host) | 63/72 | 189.2 |
| One-assignment difference | 63/72 | 206.8 |
| Full exterior supports | 72/72 | 59.1 |
| Reused assignment duals | 61/72 | 237.5 |
| Adaptive bound selection | 67/72 | 139.2 |