Homography (computer vision)

For other uses of this term, see homography (disambiguation).
Geometrical setup for homography: stereo cameras O1 and O2 both pointed at X in epipolar geometry. Drawing from Neue Konstruktionen der Perspektive und Photogrammetrie by Hermann Guido Hauck (1845 — 1905)

In the field of computer vision, any two images of the same planar surface in space are related by a homography (assuming a pinhole camera model). This has many practical applications, such as image rectification, image registration, or computation of camera motion—rotation and translation—between two images. Once camera rotation and translation have been extracted from an estimated homography matrix, this information may be used for navigation, or to insert models of 3D objects into an image or video, so that they are rendered with the correct perspective and appear to have been part of the original scene (see Augmented reality).

3D plane to plane equation

We have two cameras a and b, looking at points P_i in a plane. Passing the projections of P_i from {}^bp_i in b to a point {}^ap_i in a:

{}^ap_i = K_a \cdot H_{ba} \cdot K_b^{-1} \cdot {}^bp_i

where the homography matrix H_{ba} is

H_{ba} = R - \frac{t n^T}{d}.

R is the rotation matrix by which b is rotated in relation to a; t is the translation vector from a to b; n and d are the normal vector of the plane and the distance to the plane respectively. Ka and Kb are the cameras' intrinsic parameter matrices.

The figure shows camera b looking at the plane at distance d. Note: From above figure, assuming n^T P_i + d = 0 as plane model, n^T P_i is the projection of vector P_i into n^T, and equal to -d. So t = t \left(-\frac{n^TP_i}{d}\right). And we have H_{ba} P_i = R P_i + t where H_{ba} = R - \frac{t n^T}{d}.

This formula is only valid if camera b has no rotation and no translation. In the general case where R_a,R_b and t_a,t_b are the respective rotations and translations of camera a and b, R=R_a R_b^T and the homography matrix H_{ba} becomes

H_{ba} = R_a R_b^T - R_a \frac{(t_b-t_a) n^T}{d}R_b^T = R_a \left(I - \frac{(t_b-t_a) n^T}{d}\right)R_b^T .

where d is the distance of the camera b to the plane.

The homography matrix can only be computed between images taken from the same camera shot at different angles. It doesn't matter what is present in the images. The matrix forms contains a warped form of the images.

Affine homography

When the image region in which the homography is computed is small or the image has been acquired with a large focal length, an affine homography is a more appropriate model of image displacements. An affine homography is a special type of a general homography whose last row is fixed to

h_{31}=h_{32}=0, \; h_{33}=1.

See also

References

    External links

    This article is issued from Wikipedia - version of the Thursday, March 24, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.