[Reconstrucción 3D] Calibración de la cámara: método de calibración de Zhang Zhengyou

Directorio de artículos de la serie

Esta serie comenzó el 25 de diciembre de 2022 y comenzó a registrar las notas de estudio durante la investigación del proyecto de reconstrucción 3D , que se divide principalmente en las siguientes partes:

1. La relación de conversión entre la imagen de la cámara y el sistema de coordenadas

2. Calibración de la cámara: método de calibración de Zhang Zhengyou

3. Detección y coincidencia de características

4. Método de la estructura de recuperación del ejercicio


Directorio de artículos

        El principio de imagen de la cámara y la relación de conversión entre cada sistema de coordenadas se presentan arriba , y se establece un modelo idealizado de 3D a 2D, que muestra la matriz de parámetros internos y externos de la cámara. Y para la situación real, se introducen los parámetros de distorsión de la lente de la cámara que pueden distorsionarse. Este artículo es principalmente para resolver el problema de la calibración de la cámara, el método utilizado es: método de calibración Zhang Youzheng.


1. Propósito de la calibración

        La calibración de la cámara tiene dos propósitos: 1. Establecer un modelo de imagen de la cámara 2. Corregir la distorsión de la cámara.

        1. Establecimiento de un modelo de imagen de cámara: hemos introducido el proceso de establecimiento de un modelo idealizado anteriormente. El modelo establecido hace que el punto tridimensional en el espacio se convierta en un punto bidimensional en la imagen. En teoría, si conocemos el parámetro interno La matriz de la cámara y la matriz de parámetros externos pueden ayudarnos a realizar la inversión del modelo, para lograr el propósito de recuperar la información tridimensional de la información bidimensional de la imagen.Este propósito es obtener la información interna desconocida y matriz de parámetros externos de la cámara a través de la calibración de la cámara.

        2. Corrija la distorsión de la cámara: para el modelo de cámara ideal anterior, es un modelo de imagen estenopeica, pero el modelo de imagen estenopeica tiene muchas limitaciones, como menos luz que pasa a través del estenopo, lo que resulta en un brillo más bajo. Más tarde, la gente inventó la lente, pero debido al proceso de fabricación de la lente y sus características de espesor, se producirá una distorsión de la lente. k_{1},k_{2},k_{3}La distorsión de la lente se puede corregir utilizando los parámetros de distorsión de la lente, es decir, la suma mencionada anteriormente p_{1},p_{2}. Estos parámetros de distorsión también son lo que interrogamos.

2. Breve introducción del método de calibración de Zhang Zhengyou

        El siguiente es el texto original y la traducción del artículo.

原文:Calibración de cámara flexible al ver un avión desde orientaciones desconocidas

Traducción: http://t.csdn.cn/tPjLF

        El método de calibración de Zhang utiliza una placa de calibración compuesta por cuadrados bidimensionales para la calibración, recopila imágenes de diferentes poses de la placa de calibración, extrae las coordenadas de píxeles de los puntos de las esquinas de la imagen y calcula el valor inicial de los parámetros internos y externos. de la cámara a través de la matriz de homografía, se estiman multiplicativamente los coeficientes de distorsión y finalmente se optimizan los parámetros mediante el método de estimación de máxima verosimilitud. Este método es simple de operar y tiene una alta precisión, que puede satisfacer la mayoría de las ocasiones.

Los preparativos son los siguientes:

  • Cámara de enfoque fijo: si su cámara tiene zoom, no use su función de zoom al adquirir secuencias de imágenes.Por ejemplo, si desea realizar la calibración de la cámara en su teléfono móvil, no puede tocar la pantalla para hacer zoom al tomar fotografías. La distancia focal del hombre-máquina se puede controlar manualmente, por lo que la distancia focal utilizada en la calibración y la distancia focal utilizada en la reconstrucción 3D en la etapa posterior deben ser consistentes. Si cambia la distancia focal, la matriz de parámetros internos de la cámara calibrada también cambiará
  • La resolución es generalmente conocida.

Algunas publicaciones de blog dicen que se necesita resolución, pero aún no he encontrado dónde usarla.

  • Tablero de ajedrez: el propósito de usar el tablero de ajedrez es que es simple y fácil de preparar, y los puntos de esquina se pueden detectar rápidamente a través del algoritmo de detección de esquinas. Podemos cambiar la orientación del tablero de ajedrez muchas veces para obtener imágenes con el fin de obtener una información de coordenadas más rica.

 Ejemplos de imágenes tomadas desde múltiples ángulos son los siguientes:

 

3. Principio de calibración

3.1 Entrada y salida

  • Entrada: una secuencia de imágenes de un patrón de tablero de ajedrez capturado con una cámara de enfoque fijo.
  • Salida: matriz de parámetros internos y externos de la cámara, parámetros de distorsión, etc.

La matriz de referencia interna y los parámetros de distorsión se utilizan principalmente en los siguientes procedimientos de reconstrucción 3D, y otros se discutirán más adelante.

        Matriz de referencia interna K:

        La matriz de parámetros externos dada anteriormente es: es una matriz de 3 × 4, pero la última columna es 0, y los parámetros requeridos se encuentran en las tres primeras columnas, por lo que, para facilitar el cálculo y la expresión, la matriz de parámetros internos es escrito de la siguiente manera:

        pero:

         [yo|0]Representada como matriz es una matriz de 3×3 y una columna de 0 vectores. La matriz de referencia interna que se analiza a continuación es 3×3 K. f_{x},f_{y},\gamma,u_{0},v_{0}Referencia interna para 5 cámaras.

        Aquí el texto original se expresa como A para la matriz de referencia interna, y este texto se expresa como K, así que no lo confunda.

        Matriz de parámetros externos:

         Esta matriz es una matriz de 4×4, y los vectores columna de la matriz de rotación R pueden nombrarse respectivamente r_{1},r_{2},r_{3}, y escribirse de la siguiente forma:

        Aquí, (X_{C},Y_{C},Z_{C})es la coordenada de la cámara, (X_{A},Y_{A},Z_{A})es la coordenada mundial, R es la matriz de rotación y t es el vector de traslación.

¿Por qué está Zw=0 en el lado izquierdo de la flecha y el lado derecho de la flecha r_{3}desaparece?

        Suponiendo que en el sistema de coordenadas mundial, el origen de coordenadas se selecciona en la esquina superior izquierda del tablero de ajedrez, el plano del tablero de ajedrez coincide con el plano Xw-Yw, y el eje Zw cruza el plano verticalmente hacia arriba. En este momento, Zw =0 de todos los puntos característicos del tablero de ajedrez es particularmente conveniente para cálculos posteriores. Se puede convertir directamente a la forma de la fórmula anterior, es decir, se omite la cantidad de rotación al eje Zw r_{3}.

        Al leer otras publicaciones importantes del blog, incluido el texto original del método de calibración de Zhang, la posición de la flecha es un signo igual, pero debido a que las dimensiones no son iguales, siento que la flecha es más precisa aquí.

        Parámetros de distorsión:

k_{1},k_{2},k_{3}Los p_{1},p_{2}cinco parámetros de distorsión         presentados anteriormente , pero el método de calibración de Zhang Zhengyou no requiere distorsión tangencial . Entonces solo k_{1},k_{2},k_{3}3 parámetros.

        Entonces, el modelo matemático final se puede simplificar a la siguiente fórmula:

         (u,v)es la coordenada de píxel, s=\frac{1}{Z_{C}}es el factor de escala, f_{x},f_{y},\gamma,u_{0},v_{0}son 5 parámetros internos de la cámara, R es la matriz de rotación, t es el vector de traducción, es el parámetro externo de la cámara y (X_{A},Y_{A},Z_{A})es la coordenada mundial.

Para ver la comparación de fórmulas anteriores y los detalles de los símbolos, consulte el artículo anterior.

3.2 Matriz de homografía

3.2.1 Transformación de homografía

        La transformación homográfica es una transformación lineal entre coordenadas homogéneas. En la reconstrucción 3D, describe principalmente la transformación de un objeto entre coordenadas mundiales y coordenadas de píxeles. La matriz de transformación correspondiente es la matriz homográfica H. En resumen, aquí H es como sigue:

        La homografía se utiliza principalmente en la corrección de imágenes, unión de imágenes, estimación de pose de cámara, SLAM, etc.

3.2.2 Resolviendo la matriz homográfica (“método de 4 puntos”)

        Ahora que tenemos una matriz de homografía H que convierte una coordenada (x, y)en otra , surge la pregunta: ¿cómo resolverlo?(x', y')

         Expresar relación entre dos coordenadas:

         De acuerdo con la teoría de matrices, para comprender todos los elementos de la matriz homográfica, es necesario saber cuántos grados de libertad tiene H, para encontrar el número correspondiente de puntos correspondientes y resolver H.

Grado de libertad: El parámetro en la fórmula es n Bajo la restricción de esta fórmula, el número (máximo) de variables que pueden transformarse libremente es el grado de libertad bajo la restricción.

        Aquí, debido a que H tiene 9 parámetros, mucha gente piensa que tiene 9 grados de libertad. De hecho, no es el caso. Aquí, usamos coordenadas homogéneas, que se pueden escalar en cualquier escala. Otra forma de explicar es que en lo anterior En el lado derecho de la flecha en la fórmula, multiplicamos el numerador y el denominador por el mismo número al mismo tiempo, y la ecuación permanece sin cambios. Entonces H y kH son equivalentes (k es un parámetro distinto de cero), entonces:

        En este momento, establezca k como: \frac{1}{h_{33}}, luego k{h_{33}=1, de modo que H sea equivalente a:

        Por lo tanto, el parámetro de H que se puede cambiar libremente bajo esta restricción se reduce en uno, por lo que el grado de libertad de H es en realidad 8. Cuando su grado de libertad es 8, existen los siguientes dos métodos de procesamiento:

        1. Orden h_{33} = 1;

        2. Agregue restricciones: deje que su módulo sea 1

         Tomando el segundo método como ejemplo, expanda la ecuación:

         Suponiendo que se sabe que el número de puntos correspondientes es n, se puede obtener la siguiente ecuación:

        Teóricamente, dado que sus grados de libertad son 8, y un conjunto de puntos correspondientes puede establecer un conjunto de (dos, primera fila y segunda fila) ecuaciones, necesitamos 8 ecuaciones, es decir, 4 conjuntos de puntos para calcular H.

        Pero en escenarios de aplicaciones reales, los pares de puntos que calculamos contendrán ruido. Por ejemplo, la posición de un punto se desvía unos pocos píxeles, o incluso se produce una falta de coincidencia de los pares de puntos característicos.Si solo se utilizan 4 pares de puntos para calcular la matriz de homografía, se producirá un gran error. Por lo tanto, para que el cálculo sea más preciso, generalmente se utilizan más de 4 pares de puntos para calcular la matriz homográfica. Además, las ecuaciones anteriores suelen ser difíciles de obtener la solución óptima utilizando el método de solución lineal directa, por lo que se suelen utilizar otros métodos de optimización, como la descomposición en valores singulares, el algoritmo de Levenberg-Marquarat (LM), etc. práctica.

3.2.3 Del tablero de ajedrez a la matriz homográfica

        Proceso general:

        1. Imprima un dibujo de calibración de tablero de ajedrez y péguelo en la superficie del objeto plano.

        2. Tome un conjunto de imágenes de tablero de ajedrez en diferentes direcciones, que se pueden realizar moviendo la cámara o moviendo la imagen de calibración.

        3. Para cada imagen de tablero de ajedrez tomada, detecte los puntos característicos (puntos de esquina, que son los puntos de intersección del tablero de ajedrez blanco y negro en la figura siguiente) de todas las cuadrículas de tablero de ajedrez de la imagen. Definimos que el dibujo de tablero de ajedrez impreso se ubica en el plano del sistema de coordenadas universales Zw=0, y el origen del sistema de coordenadas universales se ubica en una esquina fija del dibujo de tablero de ajedrez. El origen del sistema de coordenadas de píxeles se encuentra en la esquina superior izquierda de la imagen.

        4. Debido a que se conocen las coordenadas espaciales de todos los puntos de esquina en el dibujo de calibración del tablero de ajedrez, también se conocen las coordenadas de píxeles de estos puntos de esquina correspondientes a los puntos de esquina en la imagen de calibración capturada. Si obtenemos tales N>=4 coincidencias Pares de puntos (cuantos más resultados de cálculo son más robustos), la matriz de homografía H se puede obtener de acuerdo con métodos de optimización como LM. Por supuesto, el cálculo de la matriz de homografía generalmente no necesita implementarse escribiendo una función.Hay funciones listas para usar en MATLAB y OpenCV que se pueden llamar.

4. Derivación matemática

        En primer lugar, ya conocemos la forma de la matriz de homografía en el modelo de imagen de la cámara, y podemos usar el método de 4 puntos para resolver H anterior, pero en el medio, las matrices de parámetros internos y externos se mezclan, porque el parámetros internos de cada imagen La matriz es fija, por lo que resolvemos la matriz de parámetros internos allí y luego resolvemos la matriz de parámetros externos.

        Entre ellos, s es una constante distinta de cero, que se puede conocer en la sección anterior, porque H utiliza aquí un sistema de coordenadas homogéneo, es decir, se puede escalar a cualquier escala, y s se puede entender simplemente como un múltiplo de escala.

        Las propiedades de la matriz de rotación se utilizan principalmente en la solución. ¿Por qué se dice que las propiedades de los parámetros externos se utilizan para la solución de los parámetros internos? Esto se introducirá cuando se realice la solución a continuación. Aquí, algunas propiedades de primero se introducirá la matriz de rotación.

4.1 Propiedades de la matriz de rotación

        En primer lugar, sabemos que la matriz de rotación R en la matriz de parámetros externos se puede escribir R=R_{1} \times R_{2} \times R_{3}como R_{1} , R_{2}, R_{3}las coordenadas de rotación generadas por la rotación del sistema de coordenadas mundial alrededor de los ejes X, Y y Z (detallado anteriormente). Lo comentamos por separado. para  R_{1},

        R_{1}es una matriz ortogonal, según la naturaleza de una matriz ortogonal: A^{T}A=E, no es difícil para nosotros probar, y R_{2}, R_{3}ambas son matrices ortogonales.

        No es difícil encontrar a partir de algunas propiedades de las matrices ortogonales:

        El determinante de una matriz ortogonal debe ser +1 o -1.

        Y una matriz ortogonal cuyo valor determinante es +1 se llama matriz ortogonal especial, que es una matriz de rotación.

        Una matriz ortogonal cuyo valor determinante es -1 se llama matriz de rotación. La rotación defectuosa es rotación más reflejo. Reflejar es también una forma de rotación.

        De esto también podemos concluir que la matriz de rotación es una matriz ortogonal. Y todas las matrices ortogonales especiales forman un subgrupo, llamado grupo ortogonal especial. Por lo tanto, el producto de la matriz de rotación y la matriz de rotación también es una matriz de rotación, es decir, R también es una matriz ortogonal.

         Entonces, para la matriz de rotación R, tiene las propiedades de una matriz ortogonal, sin embargo, las propiedades que usamos principalmente son los siguientes dos puntos:

  • Todos los vectores columna en R son vectores unitarios y son mutuamente ortogonales.
  • La inversa de R es igual a su transpuesta.

4.2 Solución de parámetros internos        

        A través de la sección anterior, sabemos que los vectores columna de R son ortogonales entre sí y son vectores unitarios, por lo que aquí r_{1},r_{2}se cumplen las propiedades anteriores. Para aprovechar esta relación, convierta H en un vector de columna para obtener la siguiente relación:

         A continuación, se utilizan las propiedades: 1. Son r_{1},r_{2}mutuamente ortogonales, 2. r_{1},r_{2} Son vectores unitarios con igual longitud de módulo y 1. Obtenga la siguiente fórmula:

         hacer:

         No es difícil ver que B es simétrico a lo largo de la diagonal.

        La fórmula anterior se puede escribir de la siguiente manera: , Hola}que es el i-ésimo vector columna de H, entonces:

         Traer y ordenar:

        No está en el texto original \lambda, pero se agrega aquí para el rigor de los cálculos posteriores \lambda. Aunque este parámetro se agrega, porque es un factor de escala y se puede restar en la ecuación, no afecta otras fórmulas. 

         hacer:

         Luego simplifica de la siguiente manera: 

         Ahora mismo:

         De acuerdo con las imágenes de calibración de n ángulos diferentes, finalmente obtenemos un conjunto de matrices Vb=0, donde V es una matriz (2n x 6). 

        Una imagen puede obtener un conjunto (2) de las ecuaciones anteriores. Tomando n fotografías de calibración desde diferentes ángulos, podemos obtener 2n ecuaciones. Entre ellos, v_{12},v_{11},v_{22},se obtiene a través de la matriz de homografía previamente calculada, por lo que es conocido, y los 6 elementos en b son incógnitas de encontrar. Por lo tanto, al menos debemos asegurarnos de que el número de imágenes n>=3, podamos resolver b. Pero esta vez con un factor de escala \lambda. Si se conoce b, entonces se conoce B.

        La n aquí es el número de imágenes, y la n utilizada para resolver la matriz homográfica anterior es la cantidad de puntos correspondientes en las dos imágenes.

       Luego calcule la matriz de parámetros internos de acuerdo con la siguiente fórmula:

4.3 Resolución de parámetros externos 

         Ahora que se conoce H y también se conoce K, podemos resolver los parámetros extrínsecos, pero nunca antes lo hemos usado r_{3}, pero se puede obtener siguiendo la ortogonalidad entre los ejes de coordenadas r_{3}=r_{1} \veces r_{2}, entonces:

         y de acuerdo \izquierda \|  r_{1}\derecha \|=\izquierda\|  r_{2}\derecho\|=1a

        Realmente no sé por qué volví a preguntar. En realidad, hay ruido en los datos, por lo que la matriz de rotación R calculada no satisface necesariamente las propiedades de la matriz de rotación. Por tanto, la matriz de rotación R suele obtenerse según la descomposición en valores singulares.

5. Optimización de Máxima Verosimilitud

        Lo anterior es una derivación teórica, pero en el proceso de aplicación real, el método de estimación de máxima verosimilitud se utiliza a menudo para la optimización. (Minimizar la posición de x, x' para resolver).

  • Calibrar imágenes de tablero de ajedrez n
  • Una imagen de tablero de ajedrez tiene m puntos de esquina
  • Coordenada del punto espacial X
  • La coordenada de píxel x correspondiente al punto espacial en la imagen
  • La coordenada x' se obtiene después de que el punto espacial sea transformado por el parámetro interno K de la cámara, el parámetro externo R y t
  • Los parámetros de distorsión deben agregarse al considerar la distorsión (solo se consideran aquí k_{1},k_{2}, otros parámetros tienen poco efecto y aumentarlo hará que el modelo sea responsable e inestable)
  • Suposición: el ruido es independiente e idénticamente distribuido

         Encontrar el mínimo es un problema de optimización no lineal que puede resolverse mediante el algoritmo LM (Levenberg-Marquardt). Generalmente, los valores iniciales de k1 y k2 se establecen en 0.


Resumir

        Se presenta el principio y el proceso de solución del método de calibración de Zhang Zhengyou.La matriz de parámetros internos y externos de la cámara se puede resolver a partir de la secuencia de imágenes del tablero de ajedrez para el trabajo de reconstrucción posterior.

 el código se muestra a continuación:

daheizy/Camera-Calibration: Calibración de la cámara Zhang Zhengyou, utilice la secuencia de entrada del tablero de ajedrez para la calibración de la cámara, salida de los parámetros internos de la cámara, parámetros de distorsión, parámetros internos de la cámara, etc. (github.com)

referencia

1. [Comprensión en un artículo] Método de calibración de Zhang Zhengyou - notas de estudio completas - desde el principio hasta el combate real

2. Traducción del método de calibración de Zhang Zhengyou

3. Visión artificial - Calibración de la cámara

4. La inversa de la matriz | Tutorial Geek (geek-docs.com) 

Supongo que te gusta

Origin blog.csdn.net/shisniend/article/details/128527905
Recomendado
Clasificación