Why do homographies transform points contravariantly and lines covariantly?

383 Views Asked by At

In the context of projective spaces, a homography is the most general transform. In $\mathbb{P}^2$ (projective space of $\mathbb{R^2}$), a homography can be represented as a matrix $H \in \mathbb{R}^{3 \times 3}$, which, nevertheless, has only 8 degrees of freedom, because, intuitively, in homogeneous coordinates, points are equivalent up to a scalar multiplication. In $\mathbb{P}^2$, both points and lines can be represented as vectors, so a homography can transform both points and lines.

In the context of computer vision specifically, why do we say that homographies transform points contravariantly and lines covariantly? What does that mean?

I have the following two equations

$$ m = (H^{-1})^{T} l $$

$$ \mathbf{x}' = H \mathbf{x} $$

where $H$ is a homography matrix, $m$ and $l$ are lines and $\mathbf{x}$ and $\mathbf{x}'$ are points in $\mathbb{P}^2$. Could this be the meaning of the expressions above? If yes, why exactly those expressions?

2

There are 2 best solutions below

1
On

Define a function $f:\mathbb P^2 \rightarrow \mathbb P^2$ by $$f(x:y:z)=(x':y':z')$$ where $$\begin{bmatrix}x'\\y'\\z'\end{bmatrix}=H\begin{bmatrix}x\\y\\z\end{bmatrix}$$ Let $L$ be the line $\{(a:b:c)|la+mb+nc=0\}.$ The point $(x:y:z)$ is in $f(L)$ iff $$\begin{bmatrix}x\\y \\z\end{bmatrix}=H\begin{bmatrix}a\\b\\c\end{bmatrix}$$ for some $(a:b:c) \in L.$ $$\begin{bmatrix}l&m&n\end{bmatrix}\begin{bmatrix}a\\b\\c\end{bmatrix}=[0]$$ $$\begin{bmatrix}l&m&n\end{bmatrix}H^{-1}\begin{bmatrix}x\\y\\z\end{bmatrix}=[0]$$ Thus $f(L)$ is the line with equation $l'x+m'y+n'z=0$ where $$\begin{bmatrix}l'&m'&n'\end{bmatrix}=\begin{bmatrix}l&m&n\end{bmatrix}H^{-1}$$ $$\begin{bmatrix}l'\\m'\\n'\end{bmatrix}=(H^{-1})^T\begin{bmatrix}l\\m\\n\end{bmatrix}$$

0
On

Richard Hartley and Andrew Zisserman, in the book Multiple view geometry in computer vision, on page 36, say that points transform contravariantly and lines covariantly because, in one case, we use $H$ and, in the other, we use $H^{-1}$. They also talk about this, in the context of tensors, in Appendix 1 (page 562), but they don't apparently explain the origin of the expressions "covariant" and "contravariant". However, I found this related Wikipedia article that may be helpful.