Comprensión de la incertidumbre de los parámetros
La calibración de la cámara generalmente tiene como objetivo ajustar un modelo matemático adecuado a los datos para caracterizar geométricamente una o más combinaciones de cámara/lente.
Muchos usuarios intentan reducir el error de reproyección (RPE) tanto como sea posible. Si bien esto es, de hecho, deseable en la mayoría de los casos, recomendamos juzgar la calidad de la calibración en función de algo más que el RPE obtenido. En primer lugar, las incertidumbres de los parámetros desempeñan un papel crucial para el rendimiento del sistema de cámara en el mundo real.
Profundicemos en este tema utilizando un ejemplo de ajuste de datos más simple que debería revelar la importancia de la incertidumbre en el ajuste de datos.
Un problema de ajuste
En la figura siguiente, hemos trazado una única media onda sinusoidal que sirve como nuestra función de verdad fundamental que pretendemos describir con la mayor fidelidad posible. (Tenga en cuenta que, a diferencia de un modelo de cámara que asigna $R^3 \rightarrow R^2$, esta función es simplemente $R \rightarrow R$, pero los conceptos se aplican independientemente).
Lamentablemente, no conocemos esta función real en una configuración de calibración. En su lugar, tendríamos una serie de valores muestreados que se ven afectados por el ruido y posiblemente el sesgo. En la calibración de la cámara, las fuentes de ruido y sesgo incluyen la corriente oscura del sensor, el ruido de disparo, el ruido de cuantificación, el desenfoque, etc. A continuación, hemos muestreado datos con ruido distribuido de acuerdo con la distribución normal $\mathcal{N}\left(0, 0.05 \right)$.
En este caso, tenemos 8 puntos de datos y nuestro objetivo es ajustar una función que, con suerte, se asemeje lo mejor posible a la verdadera función subyacente. Por razones técnicas, es posible que solo tengamos muestras de la parte central del dominio, que en este caso es el intervalo $[0; \pi]$. Este es un caso muy típico también en la calibración de cámaras, cuando, por ejemplo, la detección de tablero de ajedrez puede requerir que todo el objetivo esté dentro de la imagen, dejando las regiones externas de la imagen sin muestrear o con un muestreo insuficiente.
Ajuste parabólico
Un modelo fácil de ajustar mediante mínimos cuadrados ordinarios sería una parábola (un polinomio de segundo grado) $y = ax^2 + bx + c$. En la figura siguiente se muestra la parábola de mejor ajuste, junto con las bandas de confianza del $95\%$ del ajuste.
Se puede observar que el modelo subyacente real se reconstruyó razonablemente, pero especialmente en los límites del dominio, donde no se proporcionan datos, la función verdadera en realidad queda fuera de la región de confianza. Además, la región de confianza tiene un ancho considerable en toda la función, lo que significa que un nuevo muestreo de puntos de datos probablemente conducirá a una parábola con coeficientes bastante diferentes.
Hemos calculado un error cuadrático medio (RMSE) de 0,026, que es la raíz de la media de los cuadrados de las barras de error rojas verticales. Esto es análogo a la calibración de la cámara, donde normalmente se informa el RMS de los errores de reproyección.
La parábola de mejor ajuste encontrada es:
$y = -0,12 x^2 + 1,42 x - 0,46$
También podemos estimar la covarianza de los parámetros en nuestra solución:$\left[\begin{array}{*{3}c} C_{a,a} y C_{a,b} y C_{a,c} \\ C_{a,b} y C_{b,b} y C_{b,c} \\ C_{a,c} y C_{b,c} y C_{c,c} \\ \end{array}\right]$ = $\left[\begin{array}{*{3}c} 0,0036 y -0,0048 y 0,0014 \\ -0,0048 y 0,0074 y -0,0023 \\ 0,0014 y -0,0023 y 0,0007 \\ \end{array}\right]$
Las raíces cuadradas de las entradas diagonales nos dan la desviación estándar de cada uno de los parámetros del modelo:
$\sigma_a = \sqrt{0.0036} = 0.06$
$\sigma_b = \sqrt{0,0074} = 0,08$
$\sigma_c = \sqrt{0,0007} = 0,03$
Esto nos indica que existe una incertidumbre considerable en todos los parámetros. Las entradas fuera de la diagonal tampoco son despreciables, lo que significa que ciertas combinaciones de parámetros tienen una incertidumbre alta. Si tomamos $C_{a,b} = -0,0048 $ como ejemplo, si aumentamos $a$ un poco y disminuimos $b un poco, obtendremos un valor RMSE muy similar.
Tenga en cuenta que la correlación $\rho(i, j) = C_{i,j}/(\sqrt{C_{i,i}} \sqrt{C_{j,j}} )$ entre parámetros podría ser más fácil de interpretar, ya que normaliza estos valores entre $-1$ y $1$.
Aumentar la flexibilidad del modelo
En nuestra búsqueda de valores RPE bajos, podríamos considerar aumentar el grado del polinomio de ajuste. Esto correspondería a agregar más parámetros a nuestro modelo (piense en $k_3, k_4, k_5, ...$ en el modelo de distorsión OpenCV). A continuación se muestra un ajuste polinomial de quinto orden junto con su banda de confianza del $95\%$.
De hecho, logramos un valor RPE más bajo (de $0,026$ a $0,021$), que casi siempre obtendría un modelo más flexible. Sin embargo, en el límite de dominio correcto, vemos que nuestro modelo se desvía mucho de la verdad. Además, las bandas de confianza son mucho más amplias, por lo que no podemos esperar resultados muy consistentes al volver a muestrear. En estadística, esta situación se llama sobreajuste. - existe una discrepancia entre la flexibilidad del modelo y la cantidad de datos para limitar el ajuste. De hecho, dado que nuestro ruido tiene una desviación estándar de $0,05$, ese es el RMSE que deberíamos esperar lograr.
En este caso, los coeficientes polinomiales encontrados (junto con los errores estándar) son:
$a: -0,351 \pm 1,134$
$b: 2,399 \pm 4,911$
$c: -2,050 \pm 7,688$
$d: 1,253 \pm 5,539$
$e: -0,473 \pm 1,863$
$f: -0,067 \pm 0,237$
Los errores estándar son muy altos y muchos de estos parámetros también están muy correlacionados, lo que da lugar a las bandas de confianza muy amplias que se indican anteriormente.
- No siempre es necesario aumentar la flexibilidad del modelo. Tenga cuidado con los ajustes excesivos.
- Juzgar la calidad del ajuste únicamente por su RMSE no es suficiente.
Aumentar la cantidad de datos
Teniendo en cuenta este último resultado, una forma de evitar el problema del sobreajuste podría ser muestrear más datos. En términos de calibración de la cámara, se podría aumentar la cantidad de observaciones del objetivo o utilizar un objetivo de calibración con más características visuales.
A continuación hemos aumentado el número de muestras a 50.
Observamos que la confianza en el modelo ha aumentado significativamente, pero solo en la región respaldada por los datos. El RMSE ha aumentado, pero antes era anormalmente bajo debido a la situación de sobreajuste.
- El sobreajuste se puede combatir o evitar muestreando suficientes datos.
- Los modelos polinomiales de orden superior pueden "explotar" fuera de las regiones con el apoyo de datos. (Usuarios de OpenCV: tengan cuidado con los coeficientes de distorsión polinomial de orden superior $k_2, k_3, k_4, ...$.)
Adición de datos de límites
Aún tenemos poca confianza en nuestro modelo cerca de los límites del dominio, así que volvamos al polinomio de segundo orden (ajuste parabólico) e investiguemos qué sucede si se agregan algunos puntos de datos en estas regiones:
El RMSE ha aumentado, pero nuestro ajuste es bastante bueno en todo el dominio.
- Las muestras de las regiones límites del dominio ayudan a restringir bien el modelo.
Modificando el modelo
Hasta ahora hemos analizado modelos polinómicos. Quizás otro modelo matemático sea más adecuado para describir los datos. También podría funcionar mejor en aquellas regiones en las que no tenemos información.
A continuación, hemos pasado a una función sinusoidal $a \cdot \sin \left( w \cdot x \right ) + o$. Como sabemos que el modelo verdadero es de naturaleza sinusoidal, este modelo debería ajustarse muy bien.
Y, en efecto, así es. Un resultado bastante cercano a la realidad, con márgenes de confianza estrechos, incluso con datos comparativamente escasos.
La combinación de más muestreos de datos y una buena cobertura debería dar resultados aún mejores. A continuación, utilizamos el mismo modelo sinusoidal, pero tomamos como muestra 50 valores distribuidos uniformemente en el dominio:
Al muestrear suficientes datos de todo el dominio y elegir una función que sea más capaz de modelar la función verdadera subyacente con pocos parámetros, podemos lograr un resultado muy preciso y sólido.
Grafiquemos el RMSE obtenido como una función del número de muestras (espaciadas uniformemente en el intervalo $[0; \pi]$ con distribución de ruido $\mathcal{N}\left(0, 0.05 \right)$).
Como se predijo, el RMSE converge a la desviación estándar de nuestro ruido. Un valor claramente inferior no representa un buen ajuste, sino más bien una situación de sobreajuste.
Qué significa esto para la calibración de la cámara
Arriba hemos explorado una función $R \rightarrow R$, ya que podemos trazarla fácilmente e investigar diferentes ajustes. Sin embargo, todo lo que se aplica al ajuste de datos aquí también se aplica a la calibración de la cámara, que es simplemente un problema de ajuste de datos de dimensiones superiores.
En la calibración de la cámara también debemos utilizar el modelo matemático más adecuado y utilizar datos suficientes para determinar todos los parámetros con el menor error estándar posible. Además, las covarianzas/correlaciones también deben ser bajas. De manera similar a cómo las bandas de confianza ayudan en la interpretación de la covarianza, podemos propagar la incertidumbre en los parámetros de calibración al plano de la imagen y visualizar elipses de confianza del 95 % en el plano de la imagen. La captura de pantalla a continuación muestra cómo Calibrator visualiza este resultado. El software también informa el RMS de los errores simulados, lo que nos brinda una estimación imparcial del error de validación real.
Si llevamos las cosas un paso más allá, nos puede interesar saber qué significa la incertidumbre dada para la precisión de la triangulación de puntos en un sistema de múltiples cámaras. Esto proporciona un valor fácil de interpretar en unidades de metros/milímetros y refleja el parámetro de referencia que realmente interesa a la mayoría de los usuarios. A continuación se muestra la vista "Error de triangulación" del calibrador.
Para resumir:
- Los valores RMSE nunca deben utilizarse por sí solos como criterios de éxito de la calibración.
- El uso de menos parámetros en el modelo de la cámara y la inclusión de más observaciones ayudan a evitar el sobreajuste.
- Las regiones de confianza para parámetros individuales y su propagación, por ejemplo, en la triangulación, son medidas importantes de la calidad de la calibración.
La aplicación Camera Calibrator de Calib.io le permite investigar todos los aspectos de los errores e incertidumbres de calibración de la cámara. Los errores estándar, las covarianzas de parámetros y los errores de triangulación son los equivalentes de calibración de la cámara de las bandas de confianza. Es fundamental tener en cuenta todos estos aspectos para una calibración precisa de la cámara.
Gracias por ayudarnos a mejorar las calibraciones de cámaras en todo el mundo. Sus preguntas y comentarios son bienvenidos.
@Pattabhi Dyta: Thank you for your question. I believe it relates to libCalib. You would run calibration.estimateCovariance(). The individual parameter uncertainties are the square roots of the diagonal entries of the returned covariance structure.
Hi Team,
How does one get the “parameter uncertainty” of the parameters in a given calibration model for an intrinsic calibration. For focal length, center cx and cy and distortion parameters.
@Nicholas Califano: Thanks for your question and please excuse the long wait. The uncertainty estimation is done using our unbiased estimator. We propagate that uncertainty to the projection and triangulation algorithm using proprietary methods that are not based on cross validation.
How is the simulated error of the RMS values calculated? Is it a cross validation-like estimation?