Paper Information
Citation: Horn, B. K. P., Hilden, H. M., & Negahdaripour, S. (1988). Closed-form solution of absolute orientation using orthonormal matrices. Journal of the Optical Society of America A, 5(7), 1127-1135. https://doi.org/10.1364/josaa.5.001127
Publication: Journal of the Optical Society of America A, 1988
Additional Resources:
- Kabsch Algorithm: NumPy, PyTorch, TensorFlow, and JAX (tutorial with differentiable implementations)
A Matrix-Based Companion to the Quaternion Method
This Method paper presents a closed-form solution to the absolute orientation problem using $3 \times 3$ orthonormal matrices directly, complementing Horn’s earlier quaternion-based solution (1987). The authors note that while quaternions are more elegant, orthonormal matrices are more widely used in photogrammetry, graphics, and robotics. The solution relies on the polar decomposition of the cross-covariance matrix via its matrix square root.
The paper also compares two approaches: (1) directly finding the best-fit orthonormal matrix (the main result), and (2) finding an unconstrained best-fit linear transformation and then projecting it onto the nearest orthonormal matrix. These give different results, and only the first approach has the desired symmetry property.
The Rotation via Polar Decomposition
As in the quaternion paper, the problem reduces to finding the orthonormal matrix $R$ maximizing $\operatorname{Tr}(R^T M)$, where $M = \sum_{i=1}^{n} \mathbf{r}’_{r,i} (\mathbf{r}’_{l,i})^T$ is the cross-covariance matrix of the centered point sets.
The key insight is the polar decomposition: any matrix $M$ can be written as:
$$ M = U S $$
where $U$ is orthonormal and $S = (M^T M)^{1/2}$ is positive semidefinite. When $M$ is nonsingular:
$$ U = M (M^T M)^{-1/2} $$
The matrix square root $(M^T M)^{1/2}$ is computed via eigendecomposition. If $M^T M$ has eigenvalues $\lambda_1, \lambda_2, \lambda_3$ and eigenvectors $\hat{\mathbf{u}}_1, \hat{\mathbf{u}}_2, \hat{\mathbf{u}}_3$:
$$ (M^T M)^{1/2} = \sqrt{\lambda_1} , \hat{\mathbf{u}}_1 \hat{\mathbf{u}}_1^T + \sqrt{\lambda_2} , \hat{\mathbf{u}}_2 \hat{\mathbf{u}}_2^T + \sqrt{\lambda_3} , \hat{\mathbf{u}}_3 \hat{\mathbf{u}}_3^T $$
The sign of $\det(U)$ equals the sign of $\det(M)$, so $U$ is a proper rotation when $\det(M) > 0$ and a reflection when $\det(M) < 0$.
Handling the Coplanar Case
When one set of measurements is coplanar, $M$ is singular ($\operatorname{rank}(M) = 2$) and one eigenvalue of $M^T M$ is zero. The matrix square root still exists (positive semidefinite rather than positive definite), but $S$ is no longer invertible.
In this case, $U$ is determined only for two of its three columns. The third column (corresponding to the zero eigenvalue) is fixed by the orthonormality constraint, with a sign ambiguity resolved by requiring $\det(U) = +1$ (proper rotation).
The Nearest Orthonormal Matrix (Alternative Approach)
The paper also derives a closed-form solution for finding the orthonormal matrix nearest to an arbitrary matrix $A$ (minimizing $\lVert A - R \rVert^2$). This uses the same polar decomposition machinery: if $A = U_A S_A$, then $U_A$ is the nearest orthonormal matrix.
This approach (find unconstrained best-fit transform, then project to nearest orthonormal matrix) was used by some earlier methods. Horn et al. show it gives a different result from the direct least-squares solution and lacks the symmetry property: the inverse transformation from right-to-left is generally not the exact inverse of the left-to-right solution.
Relationship to Other Methods
| Method | Rotation representation | Core computation |
|---|---|---|
| Kabsch (1976) | Orthogonal matrix | Eigendecomposition of $\tilde{R}R$ ($3 \times 3$) |
| Horn (1987) | Unit quaternion | Eigenvector of $N$ ($4 \times 4$) |
| Horn et al. (1988) | Orthonormal matrix | Square root of $M^T M$ ($3 \times 3$) |
| Arun et al. (1987) | Orthonormal matrix | SVD of $H$ ($3 \times 3$) |
The polar decomposition approach (this paper) and the SVD approach (Arun et al.) are closely related: the SVD $M = U \Lambda V^T$ gives the polar decomposition as $M = (UV^T)(V \Lambda V^T)$ where $UV^T$ is the orthonormal factor and $V \Lambda V^T$ is the positive semidefinite factor. Both methods can produce reflections under noisy data, which Umeyama (1991) later addressed.
Citation
@article{horn1988closed,
title={Closed-form solution of absolute orientation using orthonormal matrices},
author={Horn, Berthold K. P. and Hilden, Hugh M. and Negahdaripour, Shahriar},
journal={Journal of the Optical Society of America A},
volume={5},
number={7},
pages={1127--1135},
year={1988},
publisher={Optica Publishing Group},
doi={10.1364/josaa.5.001127}
}
