|x₂ᵀEx₁|
Convenient algebraically, but its value varies with E scale and coordinate scaling; it is unsuitable as a comparable geometric distance.
Multi-view Geometry & Visual SLAM
A single image constrains depth to a ray; cross-frame correspondences connect rays to constrain camera motion and triangulate the scene. Visual SLAM organizes these local constraints into a state graph that can keep updating, relocalize, and maintain global consistency.
Problem Contract
This site uses right-handed frames, column vectors, and target-from-source notation. Camera pose is world-from-camera; projecting world points uses its inverse, camera-from-world. Derive relative transforms through one consistent chain rather than guessing from variable names.
Undistort, then apply K₁⁻¹ to obtain bearing x₁
Features, photometry, flow, or dense correspondences establish identity
Bearing x₂ must use its own K₂ and distortion state
Model selection, relative pose, cheirality, and triangulation
Epipolar Geometry
A 3D point, both camera centers, and both observation rays lie in one plane. Its second-image correspondence therefore lies on the epipolar line determined by the first-image point. The essential matrix encodes calibrated relative rigid motion; the fundamental matrix absorbs intrinsics into a pixel-domain relationship.
| Model | Input coordinates | Degrees of freedom | Minimum correspondences | Applications | Main degeneracy |
|---|---|---|---|---|---|
| Essential matrix · E | Calibrated normalized coordinates x₁ ↔ x₂ | 5 DoF: R(3) + t direction(2) | 5-point; normalized 8-point is also common | Calibrated relative pose in general 3D scenes | E=0 under pure rotation; ill-conditioned depth at low parallax; weak identifiability in planar scenes |
| Fundamental matrix · F | Original pixels u₁ ↔ u₂ | Rank-2 projective matrix, defined up to scale | 7-point / 8-point | Two-view epipolar geometry with unknown or unused intrinsics | Does not directly provide metric pose; coordinate preprocessing and numerical normalization are crucial |
| Homography · H | Pixels on one plane, or all image pixels under pure rotation | 8 DoF, defined up to scale | 4 nondegenerate point pairs | Planes, pure rotation, image stitching, degenerate branches | One H cannot explain different depths in a general 3D scene |
Convenient algebraically, but its value varies with E scale and coordinate scaling; it is unsuitable as a comparable geometric distance.
Normalize the algebraic residual using the first two components of E x₁ and Eᵀx₂. Common in RANSAC, but still an approximation to full nonlinear reprojection error.
Given poses and 3D points, joint two-view or multiview pixel residuals are closest to the final BA objective.
Model Selection & Degeneracy
Five-point, eight-point, and homography methods encode different geometric assumptions. E/F constrain general 3D scenes; H explains a single plane or pure rotation. Reliable initialization compares support, residuals, parallax, and cheirality together.
Triangulation
Noiseless world rays intersect; real observed rays are usually skew, requiring minimization of algebraic, ray-distance, or reprojection errors. No method bypasses conditioning: depth uncertainty grows sharply as parallax approaches zero.
Construct A X=0 from multiview projection equations and take the smallest singular vector. Fast, but its algebraic objective differs from a pixel-noise model.
Find the closest points on two 3D rays and use their midpoint. Intuitive for teaching, but dependent on the frame and directional-noise model.
Initialize linearly, minimize robust reprojection error in two or more views, and check positive depth.
Inverse depth ρ=1/Z behaves more smoothly as distant points approach ρ=0; avoid forcing a metric point from insufficient evidence.
Interactive Geometry Lab
The first view computes E, Sampson distance, closest-ray triangulation, parallax, and positive depth. The second compares ground-truth E/H residuals in four controlled scenes. The third changes sensors, object states, and loops to show gauge, state dimensions, the Schur reduced system, and drift.
Interactive · Multi-view Geometry & SLAM
Epipolar
Parallax
Triangulation
Cheirality
Translation
Essential matrix · normalized scale
Essential evidence
Homography evidence
Parallax
Model decision
System mode
Gauge
State
Factors
Schur
Endpoint drift
Visual Odometry → SLAM
A persistent system manages keyframes, landmark lifecycles, local windows, relocalization, loop closure, and map merging. VO mainly estimates consecutive local motion; SfM usually reconstructs cameras and structure offline; SLAM localizes online while maintaining a reusable, globally consistent map.
Match features, minimize photometric error directly, or use learned correspondences / flow; output cross-frame observations with uncertainty.
Select between models such as E and H, recover relative motion, check cheirality, and triangulate only points with sufficient parallax.
Insert keyframes based on motion, overlap, and tracking quality; initialize new points through multiview geometry.
Jointly optimize recent cameras, landmarks, and optional object states; manage the window with robust kernels, outlier removal, and marginalization.
After tracking failure, retrieve place candidates and recover camera pose through 2D–3D PnP / geometric verification.
Verify nonlocal revisits, optimize a pose graph / essential graph, and perform global BA and map merging as needed.
| Front-end family | Main observations / residuals | Strengths | Risks |
|---|---|---|---|
| Feature-based | Keypoints, descriptors, matches, and reprojection residuals | Usually more robust to exposure changes and larger baselines; explicit graph structure | Low texture, repeated texture, and discrete matching |
| Direct / semi-direct | Photometric residuals from pixel intensity, patches, or gradients | Uses more pixels and can retain continuous signals in weakly textured regions | Depends on brightness constancy, good initialization, and exposure/response modeling |
| Dense / learned | Depth, optical flow, correspondence fields, or neural-map residuals | Combines semantics and strong priors to cover areas difficult for traditional features | Domain shift, confidence calibration, geometric consistency, computation cost |
Allows long-term drift; often serves control, initialization, or a SLAM front end.
May use repeated matching, global BA, and incremental/global reconstruction without real-time localization constraints.
Requires relocalization, loop closure, map maintenance, and failure recovery; a trajectory alone does not establish SLAM.
Bundle Adjustment
Camera poses, landmarks, intrinsics, and optional object states jointly affect reprojection. BA iterates on manifolds, using block-sparse Jacobians and Schur complements to eliminate many point variables. Robust kernels reduce outlier influence; data association and gauge still require explicit handling.
The Jacobian is extremely sparse; ignoring that structure and forming dense normal equations wastes orders of magnitude in resources.
Reduce the main system to camera, intrinsic, and object variables, then back-substitute point increments.
An unanchored Hessian is singular; first-pose anchors, metric scale, or priors must match sensor observability.
Real-time sliding windows retain information at a linearization point. Outliers entering the prior can contaminate subsequent estimates persistently.
Scale & Observability
Optimization and observability differ. An optimizer can assign numbers to any variable, but without independent information there may be gauge freedom, strong correlations, or extreme variance. Fixing a variable chooses a reference; it does not create a physical observation.
| Modality | Direct observations | Scale implications | Alignment / engineering notes |
|---|---|---|---|
| Monocular | bearing / projective geometry | Global scale is unobservable; map and translations share one unknown scale | Evaluation often needs Sim(3) alignment; fixing the first frame alone leaves scale gauge |
| Calibrated stereo | Left/right pixels + known baseline | The baseline converts disparity into metric depth | Use SE(3) with correct calibration; baseline error directly produces scale bias |
| RGB-D | Color pixels + depth / points | Valid depth provides metric scale | Handle depth scale, invalid values, RGB–Depth extrinsics, and time synchronization |
| Visual–Inertial | Visual bearings + IMU specific force / angular rate | Scale and gravity direction become recoverable with sufficient excitation and correct initialization | Stationary or particular motions weaken observability; time offsets, biases, and extrinsics also require calibration |
Object-level & Dynamic SLAM
Point maps store 3D positions without semantics; object maps explicitly store object frames, categories, sizes, symmetry, and uncertainty. Static objects can serve as large landmarks for localization; dynamic objects require time-indexed states, motion models, and cross-frame identity association.
Suitable when camera localization is the priority and static background is sufficient; rejected objects do not receive usable trajectories.
Instance recognition and 6D pose provide strong semantic constraints, while repeated instances, symmetry, and model errors require handling.
Requires per-object trajectories, motion priors, occlusion lifecycles, and probabilistic association, greatly enlarging the state.
Multiview geometry provides pose, depth, reconstruction, and cross-frame correspondences.
Organizes local geometry into camera trajectories and reusable maps.
Connects camera poses to base, hand–eye, and tool frames.
Continuously updates object poses, velocities, and uncertainty for predictive grasping and closed-loop manipulation.
Evaluation & Debugging
ATE, RPE, and reprojection error answer different questions. Sim(3) alignment absorbs monocular scale error; applying it indiscriminately to stereo / RGB-D hides metric-scale errors those systems should resolve. Report alignment type, coordinate frames, timestamp association, and tracking success with every trajectory result.
Measures overall positional consistency; specify SE(3) or Sim(3) alignment.
Reflects local drift more directly, but does not replace global map quality after loop closure.
Report lost frames, relocalization time, and initialization success, rather than successful segments alone.
Also evaluate coverage, surface error, symmetry-aware pose error, and association metrics.
| Failure modes | Failure mechanism | Response / validation |
|---|---|---|
| Pure rotation / zero baseline | E degenerates to zero; translation direction and depth cannot be recovered | Use a rotation homography; wait for translation before creating points |
| Single or approximately planar scene | Both H and E may have low residuals, leaving initialization branches ambiguous | Compare both models, retain candidates, and verify with nonplanar points and new views |
| Low parallax / distant points | Small epipolar residuals but large triangulation variance | Delay point creation, use inverse depth, increase keyframe baseline |
| Incorrect K / distortion state | Systematically curved epipolar traces or persistent relative-pose bias | Check calibration on static multiview data; keep coordinates consistent with K/D |
| Rolling shutter / time misalignment | No single rigid camera pose describes the whole frame | Use RS / continuous-time models and calibrate camera–IMU/depth timing |
| Motion blur / low texture | Sparse correspondences, weak photometric gradients, sudden tracking loss | Exposure/motion strategies, additional modalities, quality gating, reliable relocalization |
| Repeated texture / perceptual aliasing | Mismatches and false loops can also produce large consensus sets | Local geometry + temporal checks + PnP/Sim(3) verification; gate loop closures strictly |
| Dominant dynamic objects | Foreground motion is interpreted as camera motion, violating the static-world assumption | Semantic/motion segmentation, static-background estimation, or explicit joint object-track optimization |
| Monocular scale drift | Submaps have inconsistent scales and cannot be joined by SE(3) alone | Use Sim(3) loop closure / map merging, or add metric observations |
| Incorrect frame / transform direction | Smooth-looking trajectories but reversed object, map, or robot transform chains | Fix the world-from-camera convention and verify every composition and inverse |
| False loop closure | One strong constraint can distort the entire map | Place retrieval is only a proposal; add geometric verification, switchable constraints, and rollback |
| Marginalization and outlier contamination | Old errors become embedded in the prior and difficult to recover from | Remove outliers before marginalization, monitor prior consistency, and rebuild the local map if needed |
Log each frame's WTC, K/D, image size, timestamp, and units; verify two-view reprojection with ground-truth points.
Plot match tracks, epipolar distances, spatial coverage, and track lifetimes; changing solvers does not fix incorrect identities.
Report both models' support, median parallax, cheirality, triangulation angles, and depth variance.
Stabilize minimal VO / local BA, then add loops, IMU, and object factors in stages to identify which factor type disrupts the graph.
Break down by frame, landmark, image region, dynamic label, and sensor so means do not hide structured bias.
Inject blur, occlusions, false loops, and brief tracking loss to verify quality gating, relocalization, and map rollback.