Mejores prácticas de calibración
La calibración precisa es de vital importancia para el rendimiento en la mayoría de las tareas de visión artificial y computacional. A continuación, se enumeran nuestras mejores prácticas, que hemos descubierto a través de una amplia experimentación y consideraciones teóricas.
- Elija el tamaño adecuado del objetivo de calibración. Lo suficientemente grande como para limitar los parámetros de forma adecuada. Lo ideal es que cubra al menos la mitad del área total cuando se lo ve en sentido frontoparalelo en las imágenes de la cámara.
- Realice la calibración a la distancia de trabajo (WD) aproximada de su aplicación final. La cámara debe estar enfocada a esta distancia y el enfoque y la apertura del lente no deben modificarse durante o después de la calibración.
- El objetivo debe tener un alto número de características. Es preferible utilizar patrones precisos. Sin embargo, en algún punto la solidez de la detección se ve afectada. Nuestra recomendación es utilizar patrones precisos para cámaras de más de 3 MPx y si la iluminación está controlada y es buena.
- Recopile imágenes de diferentes áreas e inclinaciones. Mueva el objetivo para cubrir completamente el área de la imagen y trate de lograr una cobertura uniforme. La distorsión de la lente se puede determinar correctamente a partir de imágenes frontoparalelas, pero la estimación de la distancia focal y del punto principal depende de la observación del escorzo . Incluya imágenes frontoparalelas e imágenes tomadas con la tabla inclinada hasta +/- 45 grados en ambas direcciones horizontal y vertical. Inclinar más no suele ser una buena idea, ya que la precisión de la localización de características se ve afectada y puede volverse sesgada.
- Utilice una buena iluminación. Esto a menudo se pasa por alto, pero es muy importante. El objetivo de calibración debe estar preferiblemente iluminado de forma difusa mediante una iluminación fotográfica controlada. Las fuentes puntuales intensas dan lugar a una iluminación desigual, lo que puede hacer que la detección falle y no se utilice muy bien el rango dinámico de la cámara. Las sombras pueden hacer lo mismo.
- Tener suficientes observaciones. Por lo general, la calibración debe realizarse en al menos 6 observaciones (imágenes) de un objetivo de calibración. Si se utiliza una cámara de orden superior o un modelo de distorsión, es beneficioso contar con más observaciones.
- Considere utilizar objetivos codificados de forma única, como las placas CharuCo. Estas le permiten recopilar observaciones desde los mismos bordes del sensor y la lente de la cámara y, por lo tanto, limitan muy bien los parámetros de distorsión. Además, le permiten recopilar datos incluso cuando algunos de los puntos característicos no cumplen con los demás requisitos.
- La calibración es tan precisa como el objetivo de calibración utilizado. Utilice objetivos impresos con láser o inyección de tinta únicamente para validar y probar.
- Montaje adecuado del objetivo de calibración y la cámara. Para minimizar la distorsión y la curvatura en objetivos más grandes, móntelos en posición vertical o apoyados sobre un soporte rígido. Considere mover la cámara en lugar del objetivo en estos casos. Utilice un trípode de calidad y evite tocar la cámara durante las adquisiciones.
- Elimine las observaciones incorrectas. Inspeccione cuidadosamente los errores de reproyección, tanto por vista como por característica. Si alguno de ellos aparece como un valor atípico, exclúyalo y vuelva a calibrar.
- Obtener un error de reproducción bajo no es sinónimo de una buena calibración de la cámara, sino que simplemente indica que los datos o las pruebas proporcionadas pueden describirse con el modelo utilizado. Esto podría deberse a un sobreajuste. Las incertidumbres de los parámetros son indicaciones de qué tan bien se limitó el modelo de cámara elegido.
- Analice los errores de reproyección individuales. Su dirección y magnitud no deben correlacionarse con la posición, es decir, deben apuntar de forma caótica en todas las direcciones. El software Camera Calibrator de Calib.io proporciona visualizaciones potentes para investigar los errores reproyectados.
Seguir estas prácticas debería garantizar la calibración más exacta y precisa posible.
¿Tiene alguna pregunta, comentario o información adicional? Publíquela a continuación.
@Ernest: This depends on the detection and sub pixel algorithms you are using and also on the contrast and image noise present. It usually needs testing. We would generally not recommend having squares smaller than 20×20px in the image. If detections look ok, bad numbers you are seeing are probably caused by other issues/bugs.
Hi, Your site is all very helpful. I am using your square based calibration target. Is there a minimum recommended resolution for each square in the image? For example, at my working distance, each square in the target is about 20×20 pixels on the ‘full frontal’ 640×512 image, but of course as I tilt the board for other views the squares appear smaller. OpenCV routine is returning bad numbers for focal length causing ‘undistorted()’ image to appear as if they were taken by a fisheye lens when in fact I am using 12mm lens with low distortion. Should I be using a target with larger (but fewer) squares? Thanks!
@Toby: the offset could very well be due to diffraction in the glass. With the glass exactly perpendicular to the optical axis, you would (ideally) expect no shift of the principal point but a slight change of focal length.
Thank you for the excelent recommendations for calibration.
I have calibrated a camera with and without a cover glass and found the center offset to be 129 pixels with the cover glass! (3096×2080 camera) could this indicate an incorrect camera calibration or could this be due to the cover glass?
@Eugene, the short answer would be no, you do not need to cover different distances. In fact, it is usually advisable to have the calibration target at the exact focus distance (albeit tilted to observe foreshortening), or at least at the hyperfocal distance. Moving further away would constraint a smaller image area which would not help.
Non-central general camera models would be the exception, but these are usually not called for. If you suspect the camera to exhibit distance-dependent projection, moving to different distance could help average the parameters in a standard model such that they work well under all conditions which your application calls for.