TOPICS
Search

Kabsch Algorithm


Given corresponding point sets {p_i}_(i=1)^n and {q_i}_(i=1)^n in R^d, the Kabsch algorithm finds the orientation-preserving rigid motion p|->Rp+b that minimizes the sum of squared distances

 min_(R in SO(d),b in R^d)sum_(i=1)^n||Rp_i+b-q_i||_2^2.
(1)

It is therefore a solution of the determinant-constrained orthogonal Procrustes problem.

Let the centroids be

p^_=1/nsum_(i=1)^(n)p_i
(2)
q^_=1/nsum_(i=1)^(n)q_i,
(3)

and let P and Q be the matrices whose ith columns are p_i-p^_ and q_i-q^_, respectively. Compute the singular value decomposition

 C=QP^T=USigmaV^T,
(4)

with the singular values in nonincreasing order, and define the diagonal matrix

 D=diag(1,...,1,det(UV^T)).
(5)

The minimizing rotation matrix and translation are then

R=UDV^T
(6)
b=q^_-Rp^_.
(7)

When det(UV^T)=-1, the last entry of D prevents a reflection (Kabsch 1976, Kabsch 1978, Lawrence et al. 2019).


See also

Frobenius Norm, Least Squares Fitting, Orthogonal Procrustes Problem, Rigid Motion, Rotation Matrix, Singular Value Decomposition, Special Orthogonal Group

Explore with Wolfram|Alpha

References

Kabsch, W. "A Solution for the Best Rotation to Relate Two Sets of Vectors." Acta Cryst. A 32, 922-923, 1976. https://doi.org/10.1107/S0567739476001873.Kabsch, W. "A Discussion of the Solution for the Best Rotation to Relate Two Sets of Vectors." Acta Cryst. A 34, 827-828, 1978. https://doi.org/10.1107/S0567739478001680.Lawrence, J.; Bernal, J.; and Witzgall, C. "A Purely Algebraic Justification of the Kabsch-Umeyama Algorithm." J. Res. Natl. Inst. Stand. Technol. 124, 124028, 2019. https://doi.org/10.6028/jres.124.028.Umeyama, S. "Least-Squares Estimation of Transformation Parameters Between Two Point Patterns." IEEE Trans. Pattern Anal. Mach. Intell. 13, 376-380, 1991. https://doi.org/10.1109/34.88573.

Cite this as:

Weisstein, Eric W. "Kabsch Algorithm." From MathWorld--A Wolfram Resource. https://mathworld.wolfram.com/KabschAlgorithm.html

Subject classifications