Camera resectioning

Camera resectioning (often called camera calibration) is the process of finding the true parameters of the camera that produced a given photograph or video. Mostly, the camera parameters were represented in a $$3\times4$$ matrix called Camera matrix.

Parameters of camera model
Often, we use $$\begin{bmatrix}u&v&1\end{bmatrix}^{\mathrm{T}}$$ to represent a 2D point position in Pixel coordinates. $$\begin{bmatrix}x_w&y_w&z_w&1\end{bmatrix}^{\mathrm{T}}$$ is used to represent a 3D point position in World coordinates.Note: they were expressed in augmented notation of Homogeneous coordinates which is most common notation in Robotics and rigid body transforms. Referring to the pinhole camera model, a camera matrix is used to denote a projective mapping from World coordinates to Pixel coordinates.


 * $$z_{c}\begin{bmatrix}

u\\ v\\ 1\end{bmatrix}=A \begin{bmatrix} R & T\\ 0 & 1\end{bmatrix}\begin{bmatrix} x_{w}\\ y_{w}\\ z_{w}\\ 1\end{bmatrix}$$

Intrinsic parameters

 * $$A=\begin{bmatrix}

\alpha_{x} & \gamma & u_{0}\\ 0 & \alpha_{y} & v_{0}\\ 0 & 0 & 1\end{bmatrix}$$

The intrinsic matrix containing 5 intrinsic parameters. These parameters encompass focal length, image format, and principal point. The parameters $$\alpha_{x} = f \cdot m_{x}$$ and $$\alpha_{y} = f \cdot m_{y}$$ represent focal length in terms of pixels, where $$m_{x}$$ and $$m_{y}$$ are the scale factors relating pixels to distance.

Lens distortion is an important parameter of cameras, but is not included in the intrinsic parameter matrix. Many modern camera calibration algorithms estimate these distortion coefficients.

Extrinsic parameters
$$\textbf R,T$$ is the extrinsic parameters denote that coordinate system transformations from world coordinates to camera coordinates.These parameters characterize the transformation that maps 3D points in the scene to 2D points in the camera plane.

Camera calibration is often used as an early stage in Computer Vision and especially in the field of Augmented reality. When a camera is used, light from the environment is focused on an image plane and captured. This process reduces the dimensions of the data taken in by the camera from three to two (light from a 3D scene is stored on a 2D image). Each pixel on the image plane therefore corresponds to a shaft of light from the original scene. Camera resectioning determines which incoming light is associated with each pixel on the resulting image. In an ideal pinhole camera, a simple projection matrix is enough to do this. With more complex camera systems, errors resulting from misaligned lenses and deformations in their structures can result in more complex distortions in the final image. The camera projection matrix is derived from the intrinsic and extrinsic parameters of the camera, and is often represented by the series of transformations; e.g. a matrix of camera intrinsic parameters, a 3x3 rotation matrix, and a translation vector. The camera projection matrix can be used to associate points in a camera's image space with locations in 3D world space.

Camera resectioning is often used in the application of stereo vision where the camera projection matrices of two cameras are used to calculate the 3D world coordinates of a point viewed by both cameras.

Some people call this camera calibration, but many restrict the term camera calibration for the estimation of internal or intrinsic parameters only.

Algorithms
There are many different approaches to calculate the intrinsic and extrinsic parameters for a specific camera setup.
 * 1) Direct linear transformation (DLT) method
 * 2) A classical approach is Roger Y. Tsai's Algorithm.It is a 2-stage algorithm, calculating the pose (3D Orientation, and x-axis and y-axis translation) in first stage. In second stage it computes the focal length, distortion coefficients and the z-axis translation.
 * 3) Zhang Zhenyou's "a flexible new technique for camera calibration" based on a planar chess board. It is based on constrains on homography

Zhang's method
Zhang's camera calibration method employs abstract concepts like the image of the absolute conic and circular points.

Derivation
Assume we have a homography $$\textbf{H}$$ that maps points $$x_\pi$$ on a "probe plane" $$\pi$$ to points $$x$$ on the image.

The circular points $$I, J = \begin{bmatrix} 1 \\ \pm j \\ 0 \end{bmatrix} $$ lie on both our probe plane $$\pi$$ and on the absolute conic $$\Omega_\infty$$. Lying on $$\Omega_\infty$$ of course means they are also projected onto the image of the absolute conic (IAC) $$\omega$$, thus $$x_1^T \omega x_1= 0$$ and $$x_2^T \omega x_2= 0$$. The circular points project as

$$ \begin{align} x_1 & = \textbf{H} I = \begin{bmatrix} h_1 & h_2 & h_3 \end{bmatrix} \begin{bmatrix} 1 \\ j \\ 0 \end{bmatrix} = h_1 + j h_2 \\ x_2 & = \textbf{H} J = \begin{bmatrix} h_1 & h_2 & h_3 \end{bmatrix} \begin{bmatrix} 1 \\ -j \\ 0 \end{bmatrix} = h_1 - j h_2 \end{align} $$.

We can actually ignore $$x_2$$ while substituting our new expression for $$x_1$$ as follows:

$$ \begin{align} x_1^T \omega x_1 &= \left ( h_1 + j h_2 \right )^T \omega \left ( h_1 + j h_2 \right ) \\ &= \left ( h_1^T + j h_2^T \right ) \omega \left ( h_1 + j h_2 \right ) \\ &= h_1^T \omega h_1 + j \left ( h_2^T \omega h_2 \right ) \\ &= 0 \end{align} $$

which, when separating real and imaginary parts gives us

$$ \begin{align} h_1^T \omega h_1 &= 0 \\ h_2^T \omega h_2 &= 0 \end{align} $$

Since conics are symmetric matrices, $$\omega = \omega^T$$ and...