v9.1.1
Menu

Chapter 4: Multi-View Geometry

Week 4

Move beyond stereo to reconstruct 3D scenes from arbitrary collections of images. Learn the Structure from Motion pipeline that powers Google Maps 3D, feature matching strategies, bundle adjustment for global optimization, and practical tools like COLMAP that bring theory to life.

Topics
6
Demo
1
Videos
3
Min read
34

Chapter Overview

Multi-view geometry extends the principles of two-view (stereo) geometry to an arbitrary number of images. While stereo vision works with a calibrated pair, multi-view methods can reconstruct 3D scenes from dozens, hundreds, or even thousands of uncalibrated photographs. This is the technology behind Google Earth's 3D cities, photogrammetric survey, and visual SLAM systems that build maps while navigating.

What is this chapter about? We develop the theory and practice of 3D reconstruction from multiple images. Starting with the trifocal tensor (the three-view generalization of the fundamental matrix), we build up the complete Structure from Motion (SfM) pipeline: feature detection, matching, incremental reconstruction, and bundle adjustment. We then explore practical SfM tools and compare incremental versus global approaches.

Why does this matter? Most real-world 3D reconstruction tasks have far more than two views. A drone surveying a building captures hundreds of images. A tourist photographing a monument takes shots from many angles. Multi-view geometry enables us to extract the full 3D structure and all camera poses from these unordered image collections---automatically, without calibration targets, and with high precision.

How the topics connect: We begin with N-view geometry to generalize two-view constraints. The SfM pipeline shows how to chain these constraints into a full reconstruction system. Feature matching solves the correspondence problem across many images. Bundle adjustment jointly optimizes everything. COLMAP demonstrates a production-quality implementation. Finally, we compare incremental vs global SfM approaches.

Chapter Roadmap

Click any topic to jump in

Explainer videoInteractive demo
1
N-View Geometry

The trifocal tensor, multi-view triangulation, and projective reconstruction beyond stereo.

The Trifocal TensorMulti-View TriangulationProjective Reconstruction and Self-Calibration
Building the reconstruction

Pipeline and correspondence

2
SfM Pipeline

The incremental reconstruction loop — initial pair, register cameras, triangulate, repeat.

The Reconstruction PipelineInitial Pair SelectionIncremental Camera Registration
3
Feature Matching

SIFT, SuperPoint, LoFTR — finding correspondences across many views.

SIFT and Classical DescriptorsSuperPoint and Learned FeaturesLoFTR: Detector-Free Matching
Refining the reconstruction
4
Bundle Adjustment

Joint optimization of all cameras and points — minimizing total reprojection error.

The Reprojection Error ObjectiveSchur Complement and Sparse SolversRobust Loss Functions and Outlier Handling
Tools and trade-offs

Production systems

5
COLMAP

The standard open-source SfM tool — from images to dense 3D reconstruction.

COLMAP's SfM ArchitectureDense Reconstruction with MVSPractical COLMAP Usage
6
Incremental vs Global SfM

Trade-offs between growing reconstructions incrementally and solving everything at once.

Incremental SfM: Strengths and WeaknessesGlobal SfM: Strengths and WeaknessesHybrid Approaches and Modern Trends

Topics

6 topics in this chapter

Chapter 3 squeezed everything it could out of two views: the fundamental and essential matrices, rectification, and depth from a single baseline. Two views have hard limits. Every 3D point rests on just two rays, so pixel noise turns directly into depth error, and points near the baseline or far away are barely constrained. Real reconstructions use tens to thousands of photographs, so this chapter asks what changes when there are more than two. Three views carry a constraint that no set of pairwise fundamental matrices captures, the trifocal tensor, which also lets a match in two images predict where the point must appear in a third. Many views let a point be triangulated by least squares over all its rays, which averages noise and, more importantly, widens the angle between rays. And with no calibration at all, many views still determine the scene up to a projective transformation, which self-calibration can upgrade to true Euclidean shape. This topic covers those three ideas; the rest of the chapter turns them into a structure-from-motion pipeline.

Definition

N-view geometry studies the constraints linking images of one scene taken by NN cameras. For three views the trifocal tensor, a 3 by 3 by 3 array with 18 degrees of freedom, captures them trilinearly. For many views, points are triangulated by minimizing reprojection error over all observations, and uncalibrated reconstructions are recovered up to a projective transform.

In this topic

  1. 1The Trifocal Tensor
  2. 2Multi-View Triangulation
  3. 3Projective Reconstruction and Self-Calibration
1 of 3
The Trifocal Tensor

The trifocal tensor T\mathcal{T} is a 3×3×33 \times 3 \times 3 array (27 elements, 18 degrees of freedom) that relates corresponding points and lines across three views. For three corresponding points x1,x2,x3x_1, x_2, x_3 in three images, the tensor satisfies a set of trilinear constraints. Unlike the fundamental matrix (which is bilinear in two points), the trifocal tensor is linear in each of the three image observations. It can be estimated from at least 7 point correspondences across three views using linear methods, and it encodes three fundamental matrices (between each pair of views) plus additional three-view information.

Mathematical Intuition

The trifocal tensor Tijk\mathcal{T}_{ijk} is a 3×3×33 \times 3 \times 3 array with 27 entries and 18 DOF that captures the projective geometry of three views. For corresponding points (x1,x2,x3)(x_1, x_2, x_3), the trilinear constraint ∑i,j,kx2ix3jTijkx1k=0\sum_{i,j,k} x_2^i x_3^j \mathcal{T}_{ijk} x_1^k = 0 must hold. The tensor encodes more information than three pairwise fundamental matrices: it captures the three-view geometric consistency that no pair of FF matrices can express. It also transfers points and lines: given a point in views 1 and 2, the tensor predicts the point in view 3 without explicit 3D reconstruction.

Example:

The trifocal tensor has 27 entries but only 18 DOF. How many correspondences are needed for estimation, and how many equations does each correspondence provide?

2 of 3
Multi-View Triangulation

Triangulation from two views finds a 3D point as the intersection of two rays, but noise means the rays rarely intersect exactly. Multi-view triangulation uses observations from NN cameras to over-determine the 3D point position, averaging out per-view noise. The optimal triangulation minimizes the reprojection error across all views: X∗=arg⁡min⁡X∑i∥xi−π(Pi,X)∥2X^* = \arg\min_X \sum_i \|x_i - \pi(P_i, X)\|^2, where π\pi is the projection function. The midpoint method (finding the closest point to all rays) provides a fast initial estimate, while nonlinear refinement achieves sub-pixel accuracy.

Mathematical Intuition

Linear DLT triangulation stacks two equations per view into a 2N×42N \times 4 system and takes the SVD null vector. Nonlinear refinement then minimizes the reprojection error ∑i∥xi−π(Pi,X)∥2\sum_i \|x_i - \pi(P_i, X)\|^2, with covariance roughly σ2(JTJ)−1\sigma^2 (J^T J)^{-1}. That covariance is anisotropic: the error along the viewing direction scales like 1/sin⁡θ1/\sin\theta in the triangulation angle θ\theta, while the lateral error is small. Adding views only shrinks the error as 1/N1/\sqrt{N} when the new rays add new directions. Cameras packed on a narrow arc mostly repeat the same weak depth constraint, so the angular spread of the views controls the accuracy.

Example:

A 3D point is observed in 5 cameras with 0.5-pixel noise each. How much does triangulation accuracy improve compared to 2-view triangulation?

3 of 3
Projective Reconstruction and Self-Calibration

From uncalibrated images, the best possible reconstruction without additional knowledge is a projective reconstruction: the 3D structure and camera poses are determined up to an unknown 4×44 \times 4 projective transformation (15 DOF). This means the reconstruction may appear stretched, sheared, or otherwise distorted. Self-calibration (autocalibration) upgrades this to a metric reconstruction by exploiting constraints like constant intrinsic parameters across images, zero skew, or known aspect ratio. The Absolute Dual Quadric (ADQ) method is a standard approach for self-calibration.

Mathematical Intuition

From uncalibrated images, reconstruction is possible only up to a projective ambiguity: an unknown 4×44 \times 4 projective transformation HH. The true structure is X=HX~\mathbf{X} = H \tilde{\mathbf{X}} and the true cameras are Pi=P~iH−1P_i = \tilde{P}_i H^{-1}. Self-calibration resolves this ambiguity using assumptions about the cameras. The Absolute Dual Quadric (ADQ) Q∞∗=KKTQ^*_\infty = K K^T satisfies PiQ∞∗PiT∝ωi∗P_i Q^*_\infty P_i^T \propto \omega^*_i (the dual image of the absolute conic). With ≥3\geq 3 images and constant-intrinsics assumption, the 10 unknowns of Q∞∗Q^*_\infty can be solved from the constraints.

Example:

A projective reconstruction of a building looks skewed. What assumptions can self-calibration use to recover the true shape?

Related Problems on PixelBank