Epipolar geometry
When the same scene is observed from two distinct viewpoints, the epipolar constraint restricts where the projection of a 3D point in one image can appear in the other image — to a line called the epipolar line. This is the geometric foundation of two-view reconstruction and monocular SLAM initialization.
The geometry
The two camera centres and the 3D point span the epipolar plane. This plane cuts each image in an epipolar line; the point where the line joining the two camera centres (the baseline) pierces each image is the epipole. All epipolar lines in an image pass through its epipole. The practical consequence: given a feature in image 1, its match in image 2 must lie on a known line — a 2D search collapses to 1D.
Essential Matrix
For two calibrated cameras (intrinsic parameters known), the essential matrix encodes the relative rotation and translation between the cameras:
where is the skew-symmetric matrix of :
The epipolar constraint for a 3D point observed at normalized camera coordinates (camera 1) and (camera 2):
Where it comes from. The ray directions , , and the baseline must be coplanar (they all lie in the epipolar plane). Coplanarity of three vectors means the scalar triple product vanishes: , and writing the cross product as gives exactly .
has 5 degrees of freedom (3 for rotation, 3 for translation, minus 1 for scale), which is why the minimal solver needs 5 correspondences. Its SVD has the special form — two equal singular values and one zero.
Recovering pose from . Given with , the four candidate poses are and with
The true pose is disambiguated by the cheirality check: triangulated points must lie in front of both cameras. The translation is recovered only up to scale — the root of monocular scale ambiguity.
Fundamental Matrix
For two uncalibrated cameras, the fundamental matrix relates raw pixel coordinates :
is a matrix of rank 2 with 7 degrees of freedom (defined up to scale, with ). It can be estimated from 8+ point correspondences via the 8-point algorithm (Longuet-Higgins, 1981). The epipolar line in image 2 for a point is simply , and the epipoles are the null vectors of and .
Homography
When all scene points are coplanar, or the camera undergoes pure rotation, a homography maps image points directly:
Homographies are used in ORB-SLAM for map initialization: competing Homography and Fundamental models are fit to feature matches, and the one with the better score is selected — a robust way to handle both planar and general scenes.
Degenerate cases to watch for
- Pure rotation (): — the essential matrix is undefined and no depth can be recovered; a homography explains the motion instead.
- Planar scenes: correspondences from a single plane satisfy a homography, and / estimation becomes ambiguous; this is exactly why ORB-SLAM fits both models.
- Tiny baselines: estimation is numerically unstable and triangulated depths are meaningless; initialization waits for enough parallax.
Why it matters for SLAM
Epipolar geometry is how a monocular SLAM system bootstraps itself: from 2D-2D feature matches alone it recovers the relative camera pose and triangulates the first map points. It also provides the epipolar line as a 1D search constraint for stereo matching and guided feature matching, and the epipolar constraint is the standard geometric verification inside RANSAC for rejecting false matches.