4. Solución de calibración de cámara

1. Matriz de homografía

Antes de aprender la solución de calibración de la cámara, primero comprenda un concepto: la matriz de homografía, que se define como un mapeo de proyección de un plano a otro plano, por lo que el mapeo entre el plano del objeto en el sistema de coordenadas del mundo y el plano de imagen se puede entender como un relación de homografía. Sabemos que la calibración de la cámara generalmente usa una placa de calibración para la calibración, por lo que el plano en el sistema de coordenadas mundiales es el plano de la placa de calibración.

Suponiendo un punto en el plano de la placa de calibración Q=[X,Y,Z,1]^{T}, el punto asignado al plano de imagen es q=[x,y,1]^{T}y la relación de homografía se cumple entre los dos: q=s\cdot H\cdot Qdonde H es la matriz de homografía, s es el factor de escala y la matriz de homografía tiene 8 parámetros, es decir, se deben resolver 8 parámetros, por lo que se necesitan 8 ecuaciones, y se pueden obtener 8 ecuaciones a través de 4 puntos, por lo que se necesitan al menos 4 puntos para resolver la relación de homografía.

opencv proporciona una interfaz: fingHomography se usa para resolver la matriz de homografía.

2. Ecuaciones básicas

2.1 Variables básicas

Defina el punto en el sistema de coordenadas de píxeles m=[u,v]^{T}, que corresponde al punto del espacio tridimensional en el sistema de coordenadas mundial M= [X,Y,Z]^{T}. Para facilitar el cálculo, agregue 1 para obtener el vector aumentado \widetilde{m}=[u,v,1]^{T}. \widetilde{M}=[X,Y,Z,1]^{T}De acuerdo con el principio de formación de imágenes de agujeros pequeños mencionado anteriormente capítulo, la relación entre el punto tridimensional y el punto proyectado se puede describir como: s\widetilde{m}=A[R,t]\widetilde{M}, donde s es el factor de escala y [R,t] es la matriz de rotación y traslación del parámetro externo. A es la referencia interna:

A = \begin{bmatriz} f_{x} &\gamma &u_{0} \\ 0& f_{y} &v_{0} \\ 0&0 &1 \end{bmatriz}

\gamaEs el ángulo de inclinación de los dos sistemas de coordenadas, que no se menciona anteriormente, porque los dos ejes de coordenadas son verticales por defecto, pero es posible que no lo sean de hecho.

2.2 Calibración de la cámara

Podemos suponer que la coordenada z del sistema de coordenadas mundo plano de la placa de calibración es 0, y la i-ésima columna de R es Rhode Island}, entonces podemos obtener:

s\begin{bmatrix} u\\v \\ 1 \end{bmatrix}=A\begin{bmatrix} r_{1} & r_{2} &r_{3} &t \end{bmatrix}\begin{bmatrix} X \\ Y\\ 0\\ 1 \end{bmatrix}=A\begin{bmatrix} r_{1} &r_{2} &t \end{bmatrix}\begin{bmatrix} X\\ Y\\ 1 \end{ bmatriz}

La relación de homografía entre el plano de calibración y el plano de imagen: s\widetilde{m}=H\widetilde{M}, con  H =A\begin{bmatriz} r_{1} & r_{2} &t \end{bmatriz}.\

Como se mencionó anteriormente, podemos resolver la matriz de homografía H a través de múltiples puntos en los dos planos

supongamos H=\begin{bmatriz} h_{1} & h_{2} & h_{3} \end{bmatriz},\Flecha correcta\begin{bmatrix} h_{1} &h_{2} &h_{3} \end{bmatrix} = \lambda A\begin{bmatrix} r_{1}& r_{2} &t \end{bmatrix}

De acuerdo con la fórmula anterior se puede obtener:

\left\{\begin{matriz} h_{1}=\lambda \cdot A\cdot r_{1}\\ h_{2}=\lambda \cdot A\cdot r_{2} \\ h_{3}= \lambda \cdot A\cdot t \end{matriz}\right.

De este modo:

\left\{\begin{matriz} r_{1}=\frac{1}{\lambda }\cdot A^{-1}\cdot h_{1} \\ r_{2}=\frac{1}{ \lambda }\cdot A^{-1}\cdot h_{2} \\ t=\frac{1}{\lambda }\cdot A^{-1}\cdot h_{3} \end{matriz}\ bien.

Las imágenes de la cámara tienen dos limitaciones:

1. Los vectores de rotación r_{1},r_{2}representan la rotación alrededor de los ejes x e y respectivamente, por lo que estos dos vectores son ortogonales, por lo que:

r_{1}^{T}r_{2}=0, de modo que:h_{1}^{T}A^{-T}A^{-1}h_{2}=0

2. El vector de rotación es un vector unitario, por lo que hay:

r_{1}^{T}r_{1}=r_{2}^{T}r_{2}y\izquierda |  \izquierda |r_{1} \derecha |  \derecha |=\izquierda |  \izquierda |r_{2} \derecha |  \derecho |

Y luego obtener:

h_{1}^{T}A^{-T}A^{-1}h_{1}=h_{2}^{T}A^{-T}A^{-1}h_{2}

3. Solución cerrada

Las dos limitaciones de las imágenes de la cámara se mencionan anteriormente.

A continuación, defina variables intermediasB= A^{-T}AA^{-1}=\begin{bmatriz} B_{11} &B_{12} &B_{13} \\ B_{21}& B_{22} &B_{23} \\ B_ {31}& B_{32} &B_{33} \end{bmatrix}=\begin{bmatrix} \frac{1}{f_{x}^{2}} & -\frac{\gamma}{f_{x }^{2}f_{y}} & \frac{v_{0}\gamma -u_{0}f_{y}}{f_{x}^{2}f_{y}}\\ -\frac{ \gamma }{f_{x}^{2}f_{y}} &\frac{\gamma ^{2}}{f_{x}^{2}f_{y}^2} +\frac{1} {f_{y}^2} & -\frac{\gamma (v_{0}\gamma -u_{0}f_{y}))}{f_{x}^{2}f_{y}^2} -\frac{v_{0}}{f_{y}^2}\\ \frac{v_{0}\gamma -u_{0}f_{y}}{f_{x}^{2}f_{y }}& -\frac{\gamma (v_{0}\gamma -u_{0}f_{y}))}{f_{x}^{2}f_{y}^2}-\frac{v_{ 0}}{f_{y}^2} & -\frac{(v_{0}\gamma -u_{0}f_{y}))}{f_{x}^{2}f_{y}^2 }+\frac{v_{0}^2}{f_{y}^2}+1 \end{bmatriz}

B es una matriz simétrica, por lo que solo se deben resolver 6 parámetros, definab=\begin{bmatriz} B_{11} & B_{12} & B_{22} & B_{13} & B_{23} &B_{33} \end{bmatriz}

Descomponga los vectores columna de la matriz homográfica:h_{i}=\begin{bmatriz} h_{i1} &h_{i2} & h_{i3} \end{bmatriz}

Sustituya en la fórmula anterior para obtener:h_{i}^{T}Bh_{j}=v_{ij}b

v_{ij}=\begin{bmatriz} h_{i1}h_{j1}& h_{i1}h_{j2}+h_{i2}h_{j1} &h_{i2}h_{j2} &h_{i3}h_{ j1}+h_{i1}h_{j3} &h_{i3}h_{j2}+h_{i2}h_{j3} & h_{i3}h_{j3} \end{bmatriz}

Sustituya en la fórmula anterior para obtener:

\begin{bmatrix} v_{12}^{T}\\ (v_{11}-v_{22})^{T}) \end{bmatrix}b=0

Al tomar N fotografías de la placa de calibración, las N ecuaciones anteriores se pueden juntar y podemos obtenerVb=0

V es una matriz de 2n*6, b tiene 6 parámetros y b se puede calcular resolviendo la ecuación, como b tiene 6 parámetros, se requieren al menos 3 matrices de homografía, es decir, al menos 3 ángulos diferentes deben ser tomado Una foto de la placa de calibración.

Después de calcular b, puede resolver los parámetros internos de la cámara:

v_{0}=(B_{12}B_{13}-B_{11}B_{23})/(B_{11}B_{22}-B_{12}^{2})

\lambda =B_{33}-[B_{13}^2+v_{0}(B_{12}B_{13}-B_{11}B_{23})]/B_{11}

f_{x}=\raíz cuadrada{\lambda /B_{11}}

f_{y}=\sqrt{\lambda B_{11}/(B_{11}B_{22}-B_{12}^2)}

\gamma =-B_{12}f_{x^2}f_{y}/\lambda

u_{0}=\gamma v_{0}/f_{y}-B_{13}f_{x}^2/\lambda

Calcular la matriz de rotación-traslación: \begin{bmatrix} h_{1} &h_{2} &h_{3} \end{bmatrix}=\lambda A\begin{bmatrix} r_{1} &r_{2} &t \end{bmatrix}, de modo que:

r_{1}=\lambda ^{-1}\cdot A^{-1}\cdot h_{1}

r_{2}=\lambda ^{-1}\cdot A^{-1}\cdot h_{2}

r_{3}=r_{1}\veces r_{2}

t=\lambda ^{-1}\cdot A^{-1}\cdot h_{3}

4. Resolver parámetros de distorsión radial

Anteriormente hablamos sobre el modelo de distorsión radial:

\left\{\begin{matriz} x_{distorsionada} = x(1+k_{1}r^{2}+k_{2}r^{4}+k_{3}r^{6}))\ \ y_{distorsionada} = y(1+k_{1}r^{2}+k_{2}r^{4}+k_{3}r^{6})) \end{matriz}\right.

Entre ellos r^{2}=x^{2}+y^{2}, la distorsión radial generalmente solo considera los dos primeros elementos:

Por lo tanto:

\left\{\begin{matriz} \widehat{x}=x+x[k_{1}(x^2+y^2)+k_{2}(x^2+y^2)^2)] \\ \widehat{y}=y+y[k_{1}(x^2+y^2)+k_{2}(x^2+y^2)^2)] \end{matriz}\right .

Donde (x, y)es la coordenada ideal del punto en el sistema de coordenadas de la imagen, es decir, la coordenada sin distorsión alguna, y es la (\sombrero ancho{x},\sombrero ancho{y}) coordenada del punto real en el sistema de coordenadas de la imagen, es decir, la coordenada después de la distorsión.

En el sistema de coordenadas de píxeles:

\left\{\begin{matriz} \widehat{u}=u+(u-u_{0})[k_{1}(x^2+y^2)+k_{2}(x^2+y^ 2)^2)]\\ \widehat{v}=v+(v-v_{0})[k_{1}(x^2+y^2)+k_{2}(x^2+y^2 )^2)] \end{matriz}\right.

Donde (u,v)es la coordenada ideal del punto en el sistema de coordenadas de píxeles, es decir, la coordenada sin ninguna distorsión, y es la (\sombrero ancho{u},\sombrero ancho{v}) coordenada del punto real en el sistema de coordenadas de píxeles, es decir, la coordenada después de la distorsión.

Las ecuaciones anteriores se expresan en forma matricial:

\begin{bmatriz} (u-u_{0}(x^2+y^2) &(u-u_{0}(x^2+y^2)^2 \\ (v-v_{0}( x^2+y^2) & (v-v_{0}(x^2+y^2)^2 \end{bmatriz}\begin{bmatriz} k_{1}\\k_{2} \end{ bmatrix}=\begin{bmatrix} \widehat{u}-u\\ \widehat{v}-v \end{bmatrix}

Entre ellos, ( tú, v) se puede obtener resolviendo los parámetros internos y externos de la cámara, y (\sombrero ancho{u},\sombrero ancho{v})los puntos de las esquinas se pueden obtener a través del reconocimiento de imágenes, y lo mismo es cierto para (x, y).

Suponiendo que se toman n fotografías de la placa de calibración y que cada fotografía tiene m puntos de esquina, 2 minutosse puede obtener una ecuación y escribirla en forma de matriz:

NS=d,enK=\begin{bmatriz} k_{1} &k_{2} \end{bmatriz}^{T}

 Resuelva las ecuaciones de acuerdo con el método de mínimos cuadrados (minimice el error cuadrático medio para encontrar la mejor coincidencia de los datos, que se utiliza para resolver la situación en la que el número de ecuaciones es mayor que la incógnita), y el coeficiente de distorsión puede ser resuelto de acuerdo con la ecuación anterior.

Supongo que te gusta

Origin blog.csdn.net/csucmee502/article/details/129880822
Recomendado
Clasificación