The blog post introduces epipolar geometry in computer vision.

In the previous article, we covered single-view metrology and unveiled its effectiveness in estimating orientations of objects and its limitations in estimating scales and positions. Although I also briefly mentioned in the previous article that the inherent limitations apply to humans as well, this is only partially correct. They apply when we look at an image already captured by a camera, but not when we use our two eyes to capture more information and interpret the 3D world. In this article, we will mathematically analyze how having two eyes or cameras is helpful in understanding more about the 3D world.
Epipolar Geometry
Epipolar geometry describes the relationships between two cameras (stereo vision), 3D points, and the projections of those points on the image planes. This helps us understand why having additional viewpoints uncovers additional information. The figure below shows the general setup of epipolar geometry involving two cameras observing the same 3D point , projected to and respectively.

and are the locations of the camera centers, and the line between them is the baseline with distance . The plane containing the two camera centers and is called the epipolar plane. The intersections of the epipolar plane with the two image planes are called epipolar lines. By definition, the epipolar lines contain the projections of and the epipoles and , which are the intersections between the baseline and the image planes. In this setup, we are mainly concerned with first finding the corresponding projections and by discovering the relationships between them and using those projections for estimating the position and finding the camera parameters (for depth estimation and 3D reconstruction).
Essential & Fundamental Matrices
In this setup, we can further define camera projection matrices and , corresponding to and , which can be expressed as and assuming that the world coordinate system is set to the first camera and the second camera is offset by rotation and translation . To unveil the relationship between the corresponding projections, we can temporarily simplify the setup by assuming canonical cameras where . Here, we can express in the first camera system as , and since both and lie in the epipolar plane, taking the cross product yields a vector normal to the epipolar plane.
As also lies in the epipolar plane, we can arrive at the epipolar constraint . From linear algebra, we can use an alternative expression of the cross product using matrix multiplication (shown above) to arrive at , where is the essential matrix with 5 degrees of freedom (rotation and translation) and rank 2 (a singular matrix mapping a 3D plane to 2D lines), which is useful for computing the epipolar lines. For example, we can obtain the epipolar line of using and the epipolar line of using . Also, the epipoles are mapped to an epipolar point or zero vector where .
Then, we can bring back the camera matrices by defining and , resulting in . From here, we can substitute back and to arrive at , and obtain the fundamental matrix , which is the general version of the essential matrix with 7 degrees of freedom (2 for camera matrices) and rank 2 (a singular matrix mapping a 3D plane to 2D lines). Similarly to the essential matrix, the fundamental matrix can also be used to obtain epipolar lines of and using and and is useful for estimating the projection from a different viewpoint without knowing solely by the constraint (view morphing and 3D reconstruction).
Eight-Point Algorithm
Although is useful to some extent, we cannot simply assume that we have access to it. However, it is possible to estimate from the two images of the same scene using the eight-point algorithm. We can identify 8 pairs of corresponding points and , and formulate a system of equations to estimate using Singular Value Decomposition (SVD), which may have full rank. To obtain an that is singular and has rank 2, we can perform a rank 2 approximation of under the constraint (the determinant of a singular matrix is 0) also using SVD.
Though the eight-point algorithm seems to work well in theory, it tends to have large errors in practice, especially when using modern cameras with large pixel ranges and when the selected points are relatively close together, resulting in large and similar and . To address this issue, we often use the normalized eight-point algorithm, where points and are normalized by matrices and (translation and scaling) and used to estimate (where represents the normalized ). This can then be denormalized to obtain a quality estimate of ().
Parallel Images
Although the essential and fundamental matrices for the general case are already useful, they become far simpler when the two image planes are parallel. Parallelism eliminates rotation from the matrices and reduces the constraint to , where and . The simplicity afforded by parallel images is useful for various problems in epipolar geometry (specifics will be discussed later), so we would prefer to acquire parallel images in advance or even correct the images to be parallel via a process called rectification.
Rectification is the problem of finding corresponding projective transformations for the image planes that can render them parallel. We can then apply these transformations to obtain parallel images, which are useful for various problems. Unfortunately, the details of rectification are outside the scope of this article, but it can be framed as an optimization problem involving samples of corresponding points and and solved using any suitable method.
Triangulation
Aside from the relationships between the corresponding points, the setup allows us to infer the position or depth of , which was simply not possible with monocular vision alone. We can formulate as the intersection of the extended lines of and and infer the position of by finding that minimizes the total distance between and and and when camera parameters are known. This process of estimating the position of from the corresponding and is called triangulation.

Triangulation is difficult for non-parallel and to some extent, but is much easier for parallel images, since we know that for parallel images and the position can be determined only by comparing and . Specifically, we can determine that the disparity, the distance between and , correlates with , where is the baseline, is the focal length, and is the depth. This means that the further away an object is and the longer the baseline is, the less disparity we will observe. This explains why we (and many predators) have two eyes placed forward-facing and relatively parallel. They ensure stereo vision and allow us to perform relative depth estimation via triangulation and do so relatively easily using disparity (while prey eyes prioritize panoramic view for spotting potential danger).
Correspondence Problem
We can notice here that all of the processes we have discussed so far, the eight-point algorithm for estimating , rectification to create parallel images, and triangulation for depth estimation—involve knowing corresponding projections and . However, it is not as trivial for computers, and sometimes even for us, to determine these correspondences. For example, we can devise an algorithm that compares the aggregate of neighboring pixels to find corresponding points. However, it will inevitably struggle with images containing homogenous regions or repetitive patterns, and with images exhibiting different brightness and exposure. To address this issue, we need to implement an algorithm that performs both local and global comparisons at a high level.

In addition to such difficulties, the correspondence problem has inherent limitations, such as occlusions and foreshortening, visualized above. These limitations are more pronounced when we are presented with a larger ratio. However, a small implies a large error in depth estimation for small measurement errors, and it also implies an extremely small disparity for parallel cameras, which presents us with a baseline tradeoff, a longer baseline strengthens the limitations of occlusions and foreshortening, while a shorter baseline implies larger error and difficulty in depth estimation. This explains why humans, with a fixed and relatively small baseline length, need to use our knowledge of object size to infer depth especially for far-away objects, even with stereo vision, and sometimes have difficulty estimating the depth of far-away objects with unfamiliar shapes and sizes.
Conclusion
In this article, we discussed how introducing a second viewpoint gives rise to epipolar geometry, which opens up the opportunity for defining many relationships between variables and performing view morphing and depth estimation from corresponding points to better understand the 3D world. However, we also discovered that all of this is possible only by first obtaining the corresponding points, which might be complicated and limited to some extent, and we related the concepts to how our vision works. In the next article, we will discuss the potential ways of overcoming those difficulties and limitations.
Resources
- Hata, K. & Savarese, S. 2025. CS231A Course Notes 3: Epipolar Geometry. Stanford.
- Savarese, S. & Bohg, J. 2025. Lecture 5 Epipolar Geometry. Stanford.
- Savarese, S. & Bohg, J. 2025. Lecture 6 Stereo Systems Multi-view Geometry. Stanford.