next up previous
Next: Algorithms for estimating C Up: Computer Vision IT412 Previous: Camera calibration

Solving for the calibration matrix

Calibration is the process of estimating the intrinsic and extrinsic parameters of the camera. It can be thought of as a two stage process: In many cases, particularly for stereo, the second stage is not necessary.

Clearly, not every $3 \times 4$ matrix can be written in the form of equation (3) above. Indeed, this matrix depends upon ten parameters, $\alpha_u, \alpha_v, u_c, v_c, t_x, t_y, t_z,$ and the three independent degrees of freedom associated with the rotation matrix R = $({\bf r}_1, {\bf r}_2, {\bf r}_3)^T.$ A general $3 \times 4$projective matrix has eleven degrees of freedom: it has 12 entries, but an arbitrary scale factor is involved, so one of the entries can be set to 1 without loss of generality.

Let us write C in the following form:

\begin{displaymath}
{\bf C} = \left[ \begin{array}
{cc}
 {\bf q}_1^{\top} & q_{1...
 ... & q_{24} \\  {\bf q}_3^{\top} & q_{34} 
 \end{array} \right]. \end{displaymath}

Then there exist four sets of intrinsic and extrinsic parameters such that C can be written in the form of equation (3) if and only if the following two conditions are satisfied:
1.
$\Vert{\bf q}_3 \Vert = 1$, and
2.
$({\bf q}_1 \wedge {\bf q}_3) \cdot ({\bf q}_2 \wedge {\bf q}_3) = 0.$

To see why this is true, we will consider the following proof, and in the process compute explicitly the ten unknown parameters:

If C is in the form of equation (3), then ${\bf q}_3 = {\bf r}_3$, and since ${\bf r}_3$ is a row of a rotation matrix, its norm is 1. Moreover,

So in the case when C is a matrix in the form of equation (3), both these conditions clearly hold.

In the other direction, we need to show that if both these conditions hold, then C is actually in the form of equation (3). Understanding why this is so will help us develop algorithms for estimating C, and subsequently for extracting the intrinsic and extrinsic parameters of the camera.

We know that C is known up to a scale factor s, and s must be $\pm 1$ because $\Vert{\bf q}_3 \Vert = 1$. So if we have
\begin{displaymath}
\left[ \begin{array}
{c c}
 \alpha_u {\bf r}_1 + u_c {\bf r}...
 ...} & q_{24} \\  {\bf q}_3^{\top} & q_{34} 
 \end{array} \right],\end{displaymath} (4)
then

\fbox {
\parbox{11cm}{
\begin{center}
$t_z = \pm q_{34} \hspace{0.5cm} \mbox {and} \hspace{0.5cm}
{\bf r}_3 = \pm {\bf q}_3^{\top}.$\space \end{center}}}
Taking the inner products of ${\bf q}_3$ with ${\bf q}_1$ and ${\bf q}_2$yields uc and vc:
\fbox {
\parbox{11cm}{\begin{center}
$u_c = {\bf q}_1^{\top}{\bf q}_3 \hspace{1cm} \mbox {and} \hspace{1cm} v_c = {\bf q}_2^{\top}{\bf q}_3. $\end{center}}}
Computing the squared magnitudes of ${\bf q}_1$ and ${\bf q}_2$ yields

\begin{displaymath}
\alpha_u = \pm \sqrt{{\bf q}_1^{\top}{\bf q}_1 - u_c^2} \hsp...
 ....5cm} \alpha_v = \pm \sqrt{{\bf q}_2^{\top}{\bf q}_2 - v_c^2}. \end{displaymath}

Substituting the previous values for uc and vc and remembering that ${\bf q}_3$ has norm 1, we can simplify even further to get
\fbox {
\parbox{11cm}{\begin{center}
$\alpha_u = \pm \Vert{\bf q}_1 \wedge {\bf ...
 ...m} \alpha_v = \pm \Vert{\bf q}_2 \wedge {\bf q}_3 \Vert. $\space \end{center}}}
Having $\alpha_u, \alpha_v, u_c$ and vc, we can now compute ${\bf r}_1, {\bf r}_2, t_x$ and ty:
\fbox {
\parbox{11cm}{\begin{center}
$ {\bf r}_1 = \pm ({\bf q}_1^{\top} - u_c {...
 ...lpha_u $\space \\ $ t_y = \pm (q_{24} - v_ct_z)/\alpha_v.$\space \end{center}}}
Because of the choices of $\pm 1$ in front of many of the solutions, we see that there are several sets of solutions for the intrinsic and extrinsic parameters. In fact, it turns out that there are only four sets possible: these correspond to whether the origin of the coordinates is in front of the camera (tz > 0) or behind it (tz < 0), and to the choice of which axis is u and which is v.


next up previous
Next: Algorithms for estimating C Up: Computer Vision IT412 Previous: Camera calibration
Robyn Owens
10/29/1997