A vision calculation can fail even when every image looks sharp. Nearly redundant measurements, poorly scaled coordinates or weak target geometry can make the underlying equations difficult to solve. Singular value decomposition, or SVD, helps expose those problems rather than hiding them inside a matrix inverse.
Jacobi SVD builds that decomposition through repeated plane rotations. The useful starting point is not an optimized implementation, but the relationship between column correlations, rotations and least-squares solutions. You can understand those relationships with a small matrix, then use reconstruction and residual checks to validate a numerical implementation.
Decide what you need from SVD
For a real matrix A, singular value decomposition expresses the original transformation as orthogonal directions and nonnegative scale factors:
The columns of V describe directions in the input space. The corresponding columns of U describe their output directions. Each singular value in Σ specifies the scale between those directions.
For an m-by-n matrix with m greater than or equal to n, a thin decomposition uses an m-by-n U, an n-by-n Σ and an n-by-n V. A rank-reduced representation retains only the directions with nonzero singular values.
In machine vision, these quantities answer several different questions:
| Calculation | What SVD provides | What still needs checking |
|---|---|---|
| Overdetermined linear fit | A least-squares solution | Measurement uncertainty and outliers |
| Rank-deficient fit | A minimum-norm solution | Whether the parameters remain physically identifiable |
| Homogeneous system | A direction associated with the smallest singular value | Scale ambiguity and geometric degeneracy |
| Conditioning assessment | Relative strength of constrained directions | Coordinate scaling and acceptable physical uncertainty |
These uses are related, but not interchangeable. Solving A x approximately equal to b differs from finding a nonzero x that makes A x small.
For calibration-specific geometry problems, the closest companion is synthetic camera calibration and singular estimates. A reliable decomposition cannot replace missing geometric information.
Understand the one-sided Jacobi process
One-sided Jacobi SVD starts with a working matrix B equal to A and an accumulated rotation matrix V equal to the identity.
It repeatedly selects two columns of B and rotates them toward mutual orthogonality. Applying the same rotations to V preserves this relationship:
A sweep visits the selected column pairs. Several sweeps may be necessary because changing a pair can alter its correlations with other columns.
Once the nonzero columns of B are sufficiently orthogonal, their lengths provide the singular values. Normalizing those columns produces the corresponding columns of U:
Zero columns need separate treatment: dividing by their norms is invalid. A full decomposition may complete an orthonormal basis, while a rank-reduced decomposition can omit those directions.
Finally, implementations commonly sort singular values into descending order. The corresponding columns of U and V must move with them.
A two-sided Jacobi method instead applies transformations on both sides of the working matrix. Both approaches use plane rotations, but their intermediate arrays and update rules differ. Do not interpret every rotation-based implementation as the same algorithm.
Follow a single column-pair rotation
Let p and q be two current columns. Their squared lengths and correlation are:
If γ is zero, the columns are already orthogonal. Otherwise, choose a rotation with c² + s² = 1 and update both columns from their original values:
Their new inner product is:
The Jacobi angle makes this expression zero in exact arithmetic. One common parameterization is:
Here, t is the tangent of the rotation angle. These formulas illustrate the mathematics; production implementations also need safeguards against overflow, underflow and inaccurate norm calculations.
A useful pairwise convergence measure is normalized correlation:
For nonzero columns, a small ρ means the pair is nearly orthogonal. Implementations may use different stopping tests, tolerances and sweep limits.
These are plane rotations, closely related to Givens rotations. A Givens elimination step typically targets a particular matrix entry. Here, the rotation targets the inner product between two columns.
Work through a small least-squares example
Consider three observations constraining two unknowns:
The first column is p = [1, 1, 0]ᵀ, and the second is q = [1, 0, 1]ᵀ. Therefore:
Equal column norms give τ = 0. Taking c = s = 1/√2 produces:
The new column lengths are 1 and √3. After descending-order sorting, the singular values are approximately 1.732 and 1.000.
The corresponding singular vectors can be written as:
To solve the least-squares problem, project b onto each retained left singular vector, divide by its singular value, and combine the right singular vectors:
The fitted observations are [5/3, 4/3, 1/3]ᵀ. They cannot exactly equal b because the measurements are inconsistent with the model.
The last equality is a useful optimality check: the residual is orthogonal to the columns of A. It does not mean the residual must vanish.
Interpret small singular values before dividing
For a full-column-rank matrix, the least-squares solution is:
The pseudoinverse Σ⁺ replaces each retained singular value with its reciprocal. A small singular value therefore amplifies uncertainty along its associated parameter direction.
Suppose a singular value is 0.000001 in a dimensionless, scaled problem. A perturbation of 0.001 in the corresponding projection of b changes that solution component by:
The arithmetic may be correct while the inferred parameter is unusable.
For full column rank, the two-norm condition number is:
It becomes infinite when the matrix loses column rank. A large finite value warns that some input perturbations can cause large relative changes in the solution.
A common numerical-rank heuristic compares singular values against a threshold proportional to matrix size, machine precision and the largest singular value. That threshold identifies numerical distinguishability, not necessarily acceptable engineering uncertainty.
Measurement noise may require a larger cutoff. Truncating small singular values stabilizes a solution by discarding weak directions, but introduces bias. It is a modeling decision, not merely a convergence setting.
Also inspect scaling. Mixing pixel coordinates with distances or angles changes the numerical interpretation of column magnitudes. Column scaling changes the parameter coordinates; row weighting changes the relative importance of observations. Neither should be applied without recording the transformation.
Read implementation steps without depending on variable names
An optimized routine may store a transpose, process several values together or fuse norm calculations with column updates. That can make familiar mathematics look unfamiliar.
Map the implementation to mathematical roles rather than guessing from short variable names:
| Implementation activity | Mathematical purpose |
|---|---|
| Accumulating products from two vectors | Computing α, β and γ |
| Comparing a product sum with a tolerance | Deciding whether another rotation is worthwhile |
| Updating two vectors with shared coefficients | Applying the plane rotation |
| Updating an identity-initialized array similarly | Accumulating V or its stored transpose |
| Taking square roots of final squared norms | Recovering singular values |
| Reordering values and vectors together | Sorting singular triplets |
| Filling additional orthogonal directions | Completing a requested basis |
Storage orientation matters. A routine working on rows of a transposed matrix can perform the same mathematics as a column-oriented explanation.
Likewise, vector signs are not unique. Replacing both uj and vj with their negatives leaves their contribution unchanged. Repeated singular values permit additional freedom within the associated subspace.
Consequently, comparing U or V element by element is usually a poor cross-implementation test. Compare reconstruction, orthogonality, retained rank and the resulting solution instead.
Keep image acquisition separate from numerical diagnosis
For a vision experiment, save the measured coordinates and the assembled matrix before investigating the solver. Replaying the same numeric input separates acquisition variation from numerical behavior.
For stopped-target measurements, the area scan cameras category and camera finder help organize acquisition choices. Camera selection affects observation quality; it does not determine which SVD algorithm you must use.
The LS-CMR-0053 uses GigE and a rolling shutter.
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Interface
- GigE
- Resolution
- 12 MP
The LS-CMR-0166 uses USB3 and a rolling shutter.
- Sensor format
- 1/1.7"
- Interface
- USB3
- Resolution
- 12 MP
- Shutter
- Rolling
For either acquisition path, hold the target stationary while establishing a repeatable numerical example. If the target moves during rolling-shutter capture, row-dependent observation times can introduce geometric inconsistencies that SVD cannot remove.
Record feature coordinates, coordinate normalization, observation weights and rejected points. A saved image alone may not reproduce a fit if those processing choices change.
Validate the result and recognize the limits
Use a short validation sequence before trusting parameters in a vision application:
- Check reconstruction. Evaluate ‖A − UΣVᵀ‖ relative to ‖A‖ for a nonzero test matrix. Use a separate absolute check for an all-zero matrix.
- Check orthogonality. Compare UᵀU and VᵀV with identity matrices for the orthonormal factors returned by your decomposition form.
- Check ordering and signs. Singular values should be nonnegative; verify the documented ordering rather than assuming it.
- Check the fit. Calculate both the residual norm and Aᵀr for an ordinary, unregularized least-squares solution.
- Test rank loss. Duplicate a column deliberately, then confirm that the reported numerical rank changes appropriately.
- Test sensitivity. Perturb observations by an amount representative of measurement noise and inspect the parameter change.
Forming AᵀA and solving its equations can appear simpler. However, for a full-column-rank matrix, its two-norm condition number is κ₂(A) squared. This can make weak directions harder to resolve numerically. Pairwise inner products inside Jacobi rotations do not mean the algorithm solves the normal equations.
SVD is also not an outlier-rejection method. A badly localized feature can dominate ordinary least squares even when the decomposition is accurate. Use an appropriate robust fitting strategy when the observation model requires one.
Finally, general projective camera calibration is not simply one unconstrained linear least-squares problem. Linear initialization, homogeneous constraints and nonlinear refinement have different requirements. Choose the formulation first, then choose the solver.
If you are planning the measurement hardware, start with the camera configurator. For help connecting target geometry, acquisition conditions and numerical validation, use application support with a representative matrix and your required measurement tolerance.
Questions
What makes Jacobi SVD different from other SVD methods?
One-sided Jacobi SVD repeatedly rotates pairs of columns toward orthogonality. Their final lengths become singular values, while accumulated rotations provide the right singular vectors. Two-sided methods transform both sides of a working matrix. Other SVD algorithms may use different intermediate reductions while producing equivalent decompositions.
What does a small singular value mean in a vision fit?
A small singular value indicates a parameter direction that produces relatively little change in the observations, given the chosen scaling. Dividing by it can amplify measurement uncertainty. Check geometric constraints, coordinate scaling and noise levels before deciding whether that direction should be retained.
Should two implementations return identical singular vectors?
No. Each corresponding pair of left and right singular vectors can change sign without changing the reconstructed matrix. Repeated singular values also allow different bases within the same subspace. Compare reconstruction accuracy, orthogonality and fitted predictions rather than requiring identical vector entries.
Can SVD fix inconsistent or redundant calibration measurements?
It can produce a least-squares solution for inconsistent observations and a minimum-norm solution for a rank-deficient system. It cannot recover information absent from the measurements. Nearly identical observations may add little independent constraint, while outliers require a fitting strategy beyond ordinary least squares.
Does Jacobi SVD require a particular camera or interface?
No particular camera interface is required by the numerical method. Once observations have been converted into the matrix and measurement vector, the decomposition operates on those numbers. Acquisition choices still matter because blur, timing errors and feature-localization uncertainty affect the quality of the input.

