Explicación de la calibración de la cámara

La calibración de la cámara es el proceso de determinar con precisión los parámetros del modelo de la cámara y del lente. Con el modelo de cámara común Brown-Conrady , esto equivale a determinar los parámetros de un modelo de cámara adecuado, al menos la distancia focal $f$, y posiblemente las coordenadas del punto central ($c_x, c_y$) y los parámetros de distorsión del lente $\boldsymbol{k}$.

En el proceso de calibración fuera de línea más común, las imágenes se toman bajo restricciones específicas. El objeto de calibración define un sistema de coordenadas mundial de modo que se conozcan las coordenadas 3D de las características visuales. La mayoría de estos métodos funcionan observando un objeto de calibración con características visuales conocidas. Esto es preferible cuando se necesita un control total sobre el procedimiento de calibración y se exige una alta precisión.

Modelo de cámara

En cualquier proceso de calibración de una cámara, es fundamental seleccionar un modelo de cámara adecuado que no tenga parámetros excesivos ni insuficientes. Puede encontrar más información sobre los modelos de cámara en nuestro artículo sobre el tema .

Procedimientos de calibración

En la literatura se han propuesto muchos procedimientos para la calibración de cámaras. Véase, por ejemplo, el método de Tsai [3] y el de Heikkilä y Silvén [4]. Estos procedimientos difieren en el tipo de objeto de calibración necesario y en la derivación de una estimación inicial de los parámetros de la cámara y el siguiente paso de optimización no lineal. Probablemente el más popular de todos los procedimientos sea el de Zhang [5].

Todos estos métodos siempre deben ir seguidos de una optimización no lineal (ajuste de paquetes), ya que solo devuelven soluciones algebraicas y no tienen en cuenta los efectos de lente. Sin embargo, proporcionan una estimación inicial que es necesaria para que la optimización no lineal converja.

El método de Zhang

Un método moderno y popular en la comunidad de visión artificial es el de Zhang, que también se implementa en bibliotecas de software populares como libCalib , OpenCV, Camera Calibration Toolbox de Jean-Yves Bouguet para Matlab y Computer Vision Toolbox de Matlab. La rutina de calibración de Zhang se basa en observaciones de una placa de calibración plana con características fácilmente reconocibles. Comienza por descuidar la distorsión de la lente y relaciona las coordenadas 2-D de estas con las proyecciones de las coordenadas de la imagen observada por medio de homografías. Esto permite resolver los parámetros más importantes del orificio estenopeico y los extrínsecos del plano de calibración (la posición y orientación de la cámara en relación con el sistema de coordenadas de la placa de calibración), por medio de una solución de forma cerrada.

El método de Tsai

A diferencia de los métodos de Zhang, el de Tsai no formula la relación entre los puntos del objeto y de la imagen como una serie de homografías, sino que se derivan restricciones algebraicas que conducen a un procedimiento gradual para eliminar las incógnitas de forma incremental. La cámara se modela como un orificio estándar + un único coeficiente de distorsión radial.

Una ventaja del método de Tsai sobre el de Zhang es que puede encontrar una solución para los parámetros del modelo también para objetos de calibración no planares (por ejemplo, objetivos escalonados o plataformas de calibración en forma de V). Por este motivo, libCalib implementa el método de Tsai.

Ajuste del bloque de paquetes

Siguiendo cualquiera de los métodos de inicialización anteriores, se emplea una optimización no lineal para refinar las estimaciones de los parámetros e incluir parámetros adicionales de la cámara que no se pueden resolver con esas técnicas (por ejemplo, parámetros de distorsión radial de la lente). Este problema de estimación se puede considerar como un caso particular de ajuste de bloques de paquetes (a veces, solo ajuste de paquetes) y tiene como objetivo encontrar la solución de máxima verosimilitud para minimizar el error de reproyección promedio bajo el supuesto de ruido gaussiano en las detecciones de características.

La función objetivo a minimizar es la suma de los errores de reproyección al cuadrado, definidos en el plano de la imagen:
$$\sum_i{\sum_j{||\vec{p}_{ij} - \pi(\vec{P}_j, \boldsymbol{K}, \vec{k}, \boldsymbol{R}_i, \vec{T}_i) ||^2}} \quad ,$$
donde $\pi(\vec{P}_j, \boldsymbol{K}, \vec{k}, \boldsymbol{R}_i, \vec{T}_i)$ es el operador de proyección que determina las coordenadas de puntos 2-D dadas las coordenadas 3-D y los parámetros de la cámara. $i$ suma sobre las posiciones de la placa de calibración y $j$ sobre los puntos en una sola posición. $\vec{P}_j$ son las coordenadas de puntos 3-D en el sistema de coordenadas del objeto de calibración local, $\vec{P}_j = [x, y, 0]^\top$, y $\vec{p}_{ij}$ las coordenadas 2-D observadas en la cámara. La extrínseca por posición $\boldsymbol{R}_i, \vec{T}_i$ puede entenderse como la posición de la cámara relativa al sistema de coordenadas definido por el objeto de calibración. Con lentes de calidad y objetivos de calibración, normalmente se consiguen errores de reproyección medios finales del orden de unas décimas de píxel.

El algoritmo de Levenberg-Marquardt ha surgido como el estándar de facto para resolver este problema de mínimos cuadrados con muchos parámetros e incógnitas. Puede considerarse un método híbrido, que interpola entre el esquema de optimización iterativa de Gauss-Newton y el de gradiente descendente. Por razones computacionales, se debe utilizar un solucionador disperso, ya que el jacobiano del error de reproyección tiende a ser muy disperso (la mayoría de los parámetros dependen únicamente de un pequeño número de ecuaciones).

Calib Camera Calibrator y libCalib implementan una optimización robusta que puede utilizar la función de pérdida de Huber. Esta función de pérdida pondera los errores grandes de forma lineal, lo que garantiza una buena convergencia incluso en presencia de algunos valores atípicos.

Calibración automática

Una alternativa a las rutinas de calibración fuera de línea estándar descritas anteriormente es la autocalibración. En la autocalibración , los parámetros se determinan a partir de imágenes normales de la cámara que visualizan una escena general [1,2]. Dependiendo del método específico, se hacen pocas o ninguna suposición sobre la escena visualizada o el movimiento de la cámara entre imágenes. Para algunas aplicaciones, esto de hecho funciona, pero generalmente, se deben hacer algunas suposiciones sobre la cámara o se debe elegir un modelo de cámara reducido. Sin embargo, incluso en ese caso, el proceso de autocalibración tiende a ser poco confiable y su éxito depende en gran medida de la composición específica de la escena.

[1]: OD Faugeras, Q.-T. Luong y SJ Maybank. Autocalibración de cámaras: teoría y experimentos. En la Conferencia Europea sobre Visión por Computador , 1992.

[2]: Ri Hartley. Reconstrucción euclidiana a partir de vistas no calibradas. En Aplicaciones de la invariancia en la visión artificial , páginas 235-256, 1994.

[3]: Roger Y. Tsai. Una técnica de calibración de cámara eficiente y precisa para visión artificial en 3D. En IEEE Conference on Computer Vision and Pattern Recognition , páginas 364–374, 1986.

[4]: Janne Heikkilä y Olli Silvén. Procedimiento de calibración de cámara de cuatro pasos con corrección de imagen implícita. En IEEE Conference on Computer Vision and Pattern Recognition , páginas 1106–1112, 1997.

[5]: Zhengyou Zhang. Calibración flexible de cámaras mediante la visualización de un plano desde orientaciones desconocidas. En IEEE International Conference on Computer Vision , volumen 1, páginas 666–673, 1999.


Dejar un comentario

Por favor tenga en cuenta que los comentarios deben ser aprobados antes de ser publicados