Correspondencia estéreo
Técnica que encuentra píxeles correspondientes entre un par de imágenes capturadas por dos cámaras para recuperar información de profundidad. Método fundamental para la medición 3D en conducción autónoma y robótica.
La correspondencia estéreo es el proceso de identificar píxeles correspondientes entre dos imágenes (un par estéreo) capturadas desde diferentes puntos de vista. El desplazamiento horizontal entre píxeles emparejados, llamado disparidad, es inversamente proporcional a la profundidad, permitiendo la reconstrucción 3D de la escena mediante triangulación. Este principio imita la visión binocular humana.
La correspondencia estéreo asume cámaras calibradas con parámetros intrínsecos y extrínsecos conocidos. La rectificación (alinear las líneas epipolares horizontalmente) se aplica como preprocesamiento, restringiendo la búsqueda de correspondencias a la misma línea de escaneo en ambas imágenes y reduciendo el problema de búsqueda 2D a 1D.
- Métodos locales: Comparan patrones de intensidad dentro de una ventana fija (ej. bloque 9x9) entre imágenes izquierda y derecha usando funciones de coste como SAD (Suma de Diferencias Absolutas) o NCC (Correlación Cruzada Normalizada). Rápidos pero poco fiables en regiones sin textura y cerca de discontinuidades de profundidad
- Semi-Global Matching (SGM): Agrega costes de correspondencia a lo largo de 8-16 direcciones con penalizaciones de suavidad, logrando un equilibrio práctico entre velocidad local y precisión global. Ampliamente usado en aplicaciones automotrices y cartografía aérea
- Métodos de aprendizaje profundo: Redes como GC-Net, PSMNet y RAFT-Stereo construyen volúmenes de coste 4D y aplican convoluciones 3D o refinamiento iterativo para regresionar mapas de disparidad. Superan significativamente los métodos clásicos en benchmarks como KITTI y Middlebury
OpenCV proporciona cv2.StereoBM_create() para correspondencia por bloques y cv2.StereoSGBM_create() para correspondencia semi-global. Los parámetros clave incluyen numDisparities (rango de búsqueda, debe ser divisible por 16) y blockSize, que deben ajustarse según el rango de profundidad y las características de textura de la escena.