Computer vision mini projects

Two-view 3D reconstruction.

Recovering the 3D shape of an object from two different images of it, going from raw correspondences through epipolar geometry to a metric point cloud.

Course 16-720 Computer Vision
Level Graduate
Method Eight-point algorithm
Focus Epipolar geometry

The pipeline

The goal is a 3D reconstruction of an object from two different images. After finding corresponding points, I estimated the fundamental matrix with the eight-point algorithm, then combined it with the calibrated camera intrinsics to compute the essential matrix, and triangulated the 2D correspondences into a 3D metric reconstruction.

The distinction between those two matrices is the crux. The fundamental matrix relates pixel coordinates between views and knows nothing about the cameras; folding in the intrinsics turns it into the essential matrix, which encodes actual relative rotation and translation, and only then can triangulation produce real geometry rather than something correct up to an unknown projective transformation.

Input view 1
Input view 1.
Input view 2
Input view 2.

I then added automatic point matching using the epipolar constraint, which reduces the search for a match from the whole second image to a single line. In the figure below, points selected on the left image lie on the corresponding epipolar lines on the right.

Epipolar constraint point correspondences
A selected point and its corresponding epipolar line in the second view.
3D reconstructed point cloud
The triangulated 3D point cloud of the object.
Epipolar Geometry Fundamental Matrix Essential Matrix Eight-Point Algorithm Triangulation