Contents — find the section you need
Si se mueve ligeramente la cámara lateralmente y se captura la misma escena, los objetos cercanos se desplazan más con respecto al fondo que los distantes. Este efecto de paralaje permite recuperar la forma 3D y el movimiento de la cámara a partir de imágenes 2D. Sin embargo, no basta con hacer coincidir el mismo punto físico en todas las imágenes. En imágenes reales, llenas de desajustes, distorsión de la lente, rotación pura, planos y objetos en movimiento, es necesario determinar qué pares de puntos son consistentes con un único movimiento de la cámara. La geometría epipolar es el lenguaje común para lograrlo.
Esto no se limita a la medición estéreo. La reconstrucción 3D a partir de imágenes (SfM), la odometría visual, el SLAM visual, el seguimiento de planos en realidad aumentada, la autolocalización de robots y la reconstrucción dispersa de COLMAP se basan en correspondencias y geometría proyectiva. Este artículo mantiene la claridad de los sistemas de coordenadas, explicando el significado de cada matriz, qué estimador elegir y cuándo no se debe confiar en el resultado.
Ejemplo de un vehículo con cámara estéreoImagen: Subaru WRX S4 2.0GT-S EyeSight (Tokumeigakarinoaoshima, CC BY-SA 4.0), Wikimedia Commons. Vista exterior, no un primer plano del interior de la cámara.
0. Resumen de 30 segundos
-
El plano formado por los centros de dos cámaras y un punto 3D se denomina plano epipolar. Este plano corta cada imagen como una línea, por lo que Un punto correspondiente en una imagen solo puede aparecer en esa línea —la línea epipolar— en la otra imagen.
-
Para imágenes sin calibrar, la Matriz Fundamental F satisface \mathbf{x}'^\mathsf{T}F\mathbf{x}=0. En coordenadas normalizadas con intrínsecos conocidos, se utiliza la Matriz Esencial E=[\mathbf{t}]_\times R. E recupera la rotación R y la dirección de la traslación, pero un único par monocular de dos vistas no puede recuperar la escala absoluta de la traslación.
-
El algoritmo normalizado de 8 puntos es una estimación inicial lineal fácil de implementar; el algoritmo de 5 puntos es un solucionador mínimo que requiere menos correspondencias para una cámara calibrada. Ambos son sensibles a las discrepancias, por lo que en la práctica se eliminan los valores atípicos con RANSAC/USAC y se evalúa con el error de reproyección.
-
La triangulación encuentra la intersección de dos líneas de visión, pero la profundidad se vuelve inestable cuando la paralaje es pequeña, la línea base es corta o hay ruido en la imagen. es grande. Tras la estimación, el ajuste de haces refina conjuntamente las poses de la cámara y los puntos 3D.
-
Para una escena completamente plana o una cámara con rotación casi pura, una homografía H describe bien las imágenes, mientras que la recuperación de traslación/profundidad mediante F/E resulta degenerada. La selección del modelo no debe basarse únicamente en el número de puntos coincidentes; conviene comprobar conjuntamente los residuos, la paralaje, la distribución espacial y la quiralidad.
1. Escritura de la proyección de dos vistas a partir de coordenadas
Sea un punto de coordenadas del mundo la coordenada homogénea \mathbf{X}=(X,Y,Z,1)^\mathsf{T}. La proyección de la cámara estenopeica, a escala, se escribe:
Aquí, \tilde{\mathbf{x}}=(u,v,1)^\mathsf{T} es la coordenada de imagen homogénea, K es la matriz intrínseca, y R\in SO(3) y \mathbf{t} son las Pose extrínseca del mundo a la cámara. Típicamente:
donde f_x,f_y son las distancias focales en píxeles, (c_x,c_y) es el punto principal y s es la inclinación. Una vez corregida la distorsión, la coordenada de imagen normalizada es \mathbf{x}=K^{-1}\tilde{\mathbf{x}}. A partir de aquí, se toma la cámara izquierda como referencia con P_1=K[I\mid\mathbf{0}] y la cámara derecha como P_2=K[R\mid\mathbf{t}].
2. La matriz esencial y la matriz fundamental
Centrándonos exclusivamente en la pose extrínseca, consideremos las coordenadas calibradas y normalizadas (\mathbf{x},\mathbf{x}'). La dirección de la línea de visión desde la cámara izquierda hasta el punto es \mathbf{x}, y en el sistema de coordenadas de la cámara derecha es R\mathbf{x}. El hecho de que el vector de traslación \mathbf{t} y las dos líneas de visión se encuentren en el mismo plano se puede expresar como un triple producto escalar nulo:
Aquí, [\mathbf{t}]_\times es la matriz antisimétrica del producto vectorial.
Esta matriz E=[\mathbf{t}]_\times R se denomina Matriz Esencial. E no es una matriz arbitraria 3\times3; tiene rango 2, con la restricción de que sus dos valores singulares no nulos sean iguales. Al proyectar mediante la descomposición en valores singulares (SVD) a la forma E=U\operatorname{diag}(s,s,0)V^\mathsf{T}, se recupera esta restricción física.
Para el caso sin calibrar, utilizando directamente las coordenadas de píxeles sin procesar,
y F es la Matriz Fundamental. F\tilde{\mathbf{x}} proporciona la línea epipolar l' en la imagen derecha, y F^\mathsf{T}\tilde{\mathbf{x}}' proporciona la línea l en la imagen izquierda. Dado que F absorbe los parámetros intrínsecos, resulta conveniente para la verificación geométrica de pares de imágenes, pero la interpretación de la pose en unidades métricas requiere calibración.
| Matriz | Coordenadas | Cantidad conocida requerida | Restricción de forma | Resultado | Uso principal |
|---|---|---|---|---|---|
| F | Coordenadas homogéneas de píxeles sin procesar | Ninguna | Rango 2, 7 grados de libertad | Líneas epipolares | SfM sin calibrar, verificación de correspondencia |
| E | K^{-1}\tilde{\mathbf{x}} | K de ambas cámaras | Rango 2, valores singulares (s,s,0) | Dirección de R y \mathbf{t} | VO, SLAM, estéreo calibrado |
| H | Píxeles en un plano o bajo rotación pura | Modelo de plano o rotación | Generalmente 8 grados de libertad | Deformación planar | Planos AR, unión de imágenes |
Lo que indica el epipolo
El punto donde el centro de la cámara derecha se proyecta en la imagen izquierda es el epipolo izquierdo \mathbf{e}, que satisface F\mathbf{e}=0. De igual manera, F^\mathsf{T}\mathbf{e}'=0. Si el epipolo se encuentra dentro de la imagen, las líneas epipolares convergen radialmente, lo que indica que la cámara se movió aproximadamente hacia adelante o hacia atrás. Si se encuentra en el infinito, las líneas son casi paralelas, lo que indica un movimiento cercano al lateral. Este diagnóstico es útil, pero una mala estimación por sí sola puede producir una posición epipolar anómala, por lo que nunca se debe determinar el movimiento basándose únicamente en esto.
3. Estimación de la matriz a partir de correspondencias: El algoritmo de 8 puntos
Una sola correspondencia entre \tilde{\mathbf{x}}=(u,v,1)^\mathsf{T} y \tilde{\mathbf{x}}'=(u',v',1)^\mathsf{T} proporciona una restricción lineal sobre las nueve entradas de F. Con \mathbf{f}=\operatorname{vec}(F), por ejemplo:
Al combinar ocho o más correspondencias en la matriz A, el algoritmo de 8 puntos toma el vector singular más pequeño de A\mathbf{f}=0. El nombre proviene de que ocho correspondencias satisfacen los grados de libertad, pero en el caso real, con ruido, se utilizan muchos más puntos con mínimos cuadrados.
Resolver con coordenadas de píxeles sin procesar conduce a un mal condicionamiento debido a la magnitud de los valores de las coordenadas. El algoritmo normalizado de 8 puntos de Hartley normaliza el conjunto de puntos de cada imagen con transformaciones de similitud T,T', de modo que el centroide sea cero y la distancia media sea \sqrt{2}. Resuelve en ese espacio y, finalmente, recupera
Además, al calcular la descomposición en valores singulares (SVD) del F resultante y poner a cero el valor singular más pequeño, se impone el rango 2. Esto puede parecer un detalle menor de implementación, pero afecta significativamente la estabilidad de la solución.
Si se calibra, la misma idea permite construir una estimación inicial de E a partir de correspondencias normalizadas. Sin embargo, la solución lineal de 8 puntos no satisface automáticamente la restricción de valor singular más estricta de la Matriz Esencial. Se calcula E=U\operatorname{diag}(\sigma_1,\sigma_2,\sigma_3)V^\mathsf{T} y se reemplaza por \operatorname{diag}((\sigma_1+\sigma_2)/2,(\sigma_1+\sigma_2)/2,0) para proyectarlo.
4. El algoritmo de 5 puntos: Reducción de la muestra mínima tras la calibración
La matriz esencial tiene 5 grados de libertad. El algoritmo de 5 puntos es un solucionador mínimo que encuentra un conjunto finito de candidatos E a partir de 5 correspondencias; el método de Nistér sustituye el espacio nulo en restricciones polinómicas, enumerando hasta 10 candidatos a soluciones reales. Tanto la derivación como la implementación son más complejas que las del algoritmo de 8 puntos, pero la ventaja de necesitar solo 5 puntos por hipótesis RANSAC es muy grande.
Dado el índice de coincidencias w, la probabilidad de que una sola extracción contenga solo coincidencias es w^s, la probabilidad de fallo es p y el tamaño mínimo de muestra es s, la estimación de iteraciones requeridas es:
Para w=0.5,p=0.01: s=8 requiere aproximadamente 1177 iteraciones, mientras que s=5 requiere aproximadamente 145. En la práctica, esta comparación no es directa, ya que métodos como PROSAC extraen muestras en orden de calidad de coincidencia y finalizan de forma adaptativa. Aun así, el valor del algoritmo de 5 puntos es evidente en entornos con bajo índice de coincidencias.
La biblioteca findEssentialMat de OpenCV proporciona RANSAC/LMEDS junto con implementaciones de la familia de 5 puntos, y recoverPose gestiona la descomposición de candidatos y la verificación de quiralidad. Para los implementadores, confirmar si la entrada no está distorsionada/normalizada y qué unidades de coordenadas utiliza el umbral es más importante que el hecho de que "llamemos al algoritmo de 5 puntos".
5. RANSAC: Uso de la geometría asumiendo valores atípicos
Los algoritmos de comparación como SIFT, ORB, SuperPoint y LoFTR producen discrepancias debido a texturas repetidas, reflejos, cuadrículas repetitivas y oclusión. Ajustar F a todas las correspondencias mediante mínimos cuadrados permite que un pequeño número de errores destruya toda la matriz. RANSAC repite lo siguiente:
- Seleccionar aleatoriamente un conjunto mínimo de correspondencias y construir una hipótesis F o E.
-
Calcula el residuo para cada correspondencia, marcando como puntos de referencia aquellos que se encuentren dentro de un umbral.
-
Conserva la hipótesis con mayor respaldo o la mejor puntuación de robustez.
-
Reestima utilizando todos los puntos de referencia finales y refina con optimización no lineal si es necesario.
No debes establecer el umbral de la restricción epipolar utilizando únicamente el error algebraico \mathbf{x}'^\mathsf{T}F\mathbf{x}, ya que depende de la escala de F. En la práctica, se suele utilizar la distancia de Sampson
en su lugar. Se trata de una aproximación de primer orden del error geométrico: una medida normalizada de la distancia de cada correspondencia a su línea epipolar. El umbral en coordenadas de píxeles depende de la resolución de la imagen, la precisión de la localización de los puntos clave, la distorsión residual y el desenfoque. No existe un valor universal de "1 píxel". Se ajusta visualizando el histograma residual y la distribución espacial de los puntos de referencia en la imagen.
La versión actual de OpenCV también ofrece estimación robusta de la familia USAC. Al combinar el muestreo ordenado por calidad, la optimización local y las comprobaciones de degeneración, puede ser más rápido y estable que el RANSAC convencional. Sin embargo, el rechazo estadístico de valores atípicos nunca puede superar la suposición de que "la mayoría sigue un único movimiento estático de cuerpo rígido". Si la mayor parte del fotograma corresponde a un vehículo en movimiento o a una persona, es necesario añadir información adicional como máscaras semánticas, segmentación de movimiento, datos de la IMU o profundidad.
6. Descomposición de E en pose y selección del candidato adecuado
Para un E=U\operatorname{diag}(s,s,0)V^\mathsf{T} corregido, el uso de
proporciona los candidatos de rotación R=UWV^\mathsf{T} o UW^\mathsf{T}V^\mathsf{T}, y los candidatos de dirección de traslación \pm U_{:,3}. Existen 4 combinaciones de signo y rotación. Lo importante aquí es que la restricción de dos vistas por sí sola hace que todas sean algebraicamente consistentes con la misma E.
La selección utiliza quiralidad (profundidad positiva). Para cada candidato, triangula un pequeño número de puntos coincidentes y elige el que proporcione Z>0 con la mayor cantidad de puntos en ambos sistemas de coordenadas. Además, verifica si el determinante de la matriz de rotación es +1, si el error de reproyección es pequeño y si hay suficiente paralaje. Una limitación que conviene recordar: \mathbf{t} solo se puede recuperar hasta una dirección. Escalar \mathbf{t} y todos los puntos 3D por el mismo factor no altera la proyección. Una línea base estéreo conocida, la odometría de las ruedas, una IMU, un objeto de tamaño conocido o un GNSS pueden proporcionar la escala.
7. Triangulación: De dos rayos a un punto 3D
La ecuación de proyección \mathbf{x}\times(P\mathbf{X})=\mathbf{0} produce dos ecuaciones independientes por vista. La triangulación DLT resuelve el sistema lineal A\mathbf{X}=0, apilado a partir de dos vistas, mediante SVD; es sencillo, y la función triangulatePoints de OpenCV se asemeja a esta forma. Por ejemplo, si \mathbf{p}_{ij}^\mathsf{T} es la fila j de P_i, un punto (u_i,v_i) da como resultado:
Antes de dividir por el componente homogéneo al final, compruebe que w no sea extremadamente pequeño.
Para un par estéreo horizontal rectificado, esto resulta más intuitivo. Con una disparidad d=u_L-u_R (la diferencia de coordenadas horizontales entre izquierda y derecha), una distancia focal f y una línea base B,
El error de profundidad es aproximadamente \delta Z\simeq \frac{Z^2}{fB}\delta d. Cuanto mayor sea la distancia y menor la distancia focal o la línea base, mayor será el error de profundidad para el mismo error de disparidad de 1 píxel. Por lo tanto, en lugar de simplemente añadirlo a la nube de puntos, utilice el ángulo de triangulación, la disparidad, el error de reproyección y la profundidad positiva como criterios de calidad.
La triangulación lineal es solo una estimación inicial; no minimiza correctamente el ruido de la imagen. El ajuste de haces, que optimiza conjuntamente las poses de la cámara P_i y los puntos \mathbf{X}_j, resuelve
donde \rho es una función de pérdida robusta como Huber o Cauchy, y \pi es la división de perspectiva. Por eso, las reconstrucciones que utilizan COLMAP, Theia o Ceres Solver ganan precisión. Para fijar la libertad de calibre, coloque la primera cámara en el origen y, si es necesario, fije una escala conocida.
8. Elección entre geometría epipolar y homografía
Cuando cada punto de la escena se encuentra en un solo plano \pi, o la cámara experimenta una rotación pura, la correspondencia entre imágenes se describe bien mediante una homografía de 3×3 \tilde{\mathbf{x}}'\sim H\tilde{\mathbf{x}}. Si se calibra, con la normal del plano \mathbf{n} y la distancia d,
Bajo rotación pura, el término de traslación desaparece y H=KRK^{-1}. Para un póster, un escritorio, la fachada de un edificio o una secuencia panorámica de una escena distante, H se convierte en un modelo excelente, y es la primera opción natural para anclajes planares de RA y composición de imágenes.
Sin embargo, estimar F/E a partir de datos solo planares puede generar muchos puntos de coincidencia aparentes, sin lograr separar de forma estable la estructura 3D de la traslación. Por el contrario, forzar una escena general no plana a un único H provoca que los objetos cercanos y lejanos se deformen de forma inconsistente. En la implementación, estime tanto F/E como H con RANSAC y compare los residuos, el número de puntos explicados, la distribución de puntos y la paralaje después de la reconstrucción. Si decide aceptar un modelo basándose únicamente en el número de coincidencias, tenderá a obtener un modelo con una pared plana grande o un plano que domine el centro de la imagen.
| Situación | Primer candidato | Resultados | Advertencias |
|---|---|---|---|
| Calibrado, 3D general, traslación presente | E + algoritmo de 5 puntos | Pose relativa, profundidad dispersa | Escala indeterminada, inestable con baja paralaje |
| Par de imágenes sin calibrar | F + algoritmo normalizado de 8 puntos | Líneas epipolares, verificación de correspondencia | No interprete la pose física sin K |
| Casi plano, póster, escritorio | H + algoritmo de 4 puntos | Deformación planar, candidatos a pose planar | Sin profundidad fuera del plano |
| Rotación pura / panorama | H | Alineación de imagen, rotación | Traslación y profundidad no observables |
| Mapa 3D conocido con observaciones 2D | PnP + RANSAC | Pose absoluta | Depende de la calidad y escala del mapa |
9. La calibración no es un paso de preprocesamiento: forma parte del modelo
Tome una cuadrícula de tablero de ajedrez, Charuco o AprilTag a múltiples distancias, inclinaciones y posiciones de imagen para estimar K y los coeficientes de distorsión. La distorsión radial de Brown-Conrady se expresa aproximadamente, para el radio normalizado r^2=x^2+y^2, como:
Para lentes gran angular y ojo de pez, no fuerce un modelo de distorsión estenopeica estándar; elija el modelo ojo de pez de OpenCV o uno que coincida con la lente en uso. Incluso cuando el error medio de reproyección de la calibración es pequeño, la estructura del error puede variar en los bordes de la imagen, con diferentes distancias focales, con la temperatura, con el enfoque o con cambios de resolución.
Antes de iniciar el procesamiento de dos vistas, confirme que los valores de calibración se obtuvieron con la misma resolución, recorte y zoom digital que su captura actual. Es fácil confundir la estimación de E a partir de puntos normalizados mediante undistortPoints con la estimación de F a partir de imágenes sin distorsión. Siempre verifique si una API utiliza internamente la distancia focal, el punto principal y la distorsión, o si espera coordenadas ya corregidas. Para un sistema estéreo, además de los parámetros intrínsecos de ambas cámaras, determine la pose relativa con stereoCalibrate y rectifique las líneas epipolares a horizontales con stereoRectify.
10. Un flujo de trabajo mínimo en OpenCV
A continuación se muestra el esquema para obtener la pose relativa y un conjunto de puntos 3D dispersos filtrados por calidad a partir de dos fotogramas de una cámara monocular calibrada. Utiliza ORB para las características, pero se puede reemplazar por SIFT o un algoritmo de coincidencia basado en aprendizaje, según las condiciones de captura. En la práctica, también se registraría la exposición, los objetos en movimiento y la sincronización temporal.
import cv2 as cv
import numpy as np
# K, dist are values calibrated for this capture resolution and lens
orb = cv.ORB_create(nfeatures=3000)
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)
matches = cv.BFMatcher(cv.NORM_HAMMING).knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.75 * n.distance]
p1 = np.float32([kp1[m.queryIdx].pt for m in good])
p2 = np.float32([kp2[m.trainIdx].pt for m in good])
# threshold is in pixel units. Decide it from the residual distribution, not an initial guess.
E, mask = cv.findEssentialMat(p1, p2, K, method=cv.USAC_MAGSAC,
prob=0.999, threshold=1.0)
in1, in2 = p1[mask.ravel() != 0], p2[mask.ravel() != 0]
count, R, t, pose_mask = cv.recoverPose(E, in1, in2, K)
# P1, P2 are for normalized coordinates. Scale is arbitrary, so t's length is not a physical unit.
n1 = cv.undistortPoints(in1.reshape(-1, 1, 2), K, dist).reshape(-1, 2)
n2 = cv.undistortPoints(in2.reshape(-1, 1, 2), K, dist).reshape(-1, 2)
P1 = np.hstack([np.eye(3), np.zeros((3, 1))])
P2 = np.hstack([R, t])
X4 = cv.triangulatePoints(P1, P2, n1.T, n2.T)
X = (X4[:3] / X4[3]).T
# Further filter by positive depth in both views, reprojection error, and triangulation angle.
z1 = X[:, 2]
z2 = (R @ X.T + t).T[:, 2]
valid = (z1 > 0) & (z2 > 0) & np.isfinite(X).all(axis=1)
Este ejemplo pasa los píxeles sin procesar y K directamente a findEssentialMat, pero si la distorsión no es despreciable, primero pase los puntos normalizados de undistortPoints y cambie al formato API correspondiente. También es un error interpretar el valor devuelto por \mathbf{t} mediante recoverPose como una "distancia recorrida". Las aplicaciones que requieren escala deben limitarlo con una línea base conocida, VIO, odometría de rueda, un sensor de profundidad o similar.
COLMAP implementa la extracción de características, la correspondencia, la verificación geométrica, el mapeo incremental y el ajuste de haces como una única canalización conectada. Para conjuntos de datos pequeños, puede inspeccionar el modelo de cámara y la reconstrucción a través de la interfaz gráfica de usuario (GUI). En la línea de comandos, la elección del modelo de cámara, el manejo de la distancia focal EXIF, la estrategia de correspondencia (exhaustiva/secuencial/árbol de vocabulario) y el intervalo de tiempo entre pares de imágenes determinan tanto la precisión como el coste computacional. Tras la reconstrucción, compruebe no el número de puntos, sino el número de imágenes registradas, el error medio de reproyección, el número de observaciones por imagen y los huecos en la nube de puntos.
11. Fallos comunes y cómo diagnosticarlos
Paralaje pequeño, sin línea base
Con movimiento hacia adelante, una escena distante o un intervalo de fotogramas corto, es posible obtener correspondencias sin profundidad. Si las líneas epipolares parecen razonables, pero el ángulo de triangulación es cercano a cero, espere antes de actualizar la profundidad en lugar de forzarla. Las soluciones fundamentales consisten en espaciar más los fotogramas clave, capturar observaciones con movimiento lateral o usar un sistema estéreo con una línea base conocida.
Rotación pura o degeneración planar
En tomas panorámicas o con un campo de visión que solo contiene una pared, H tiene poder explicativo. Un alto número de coincidencias para E no significa necesariamente que se haya observado traslación. Registre la competencia entre H y E, y analice la tasa de profundidad positiva y el paralaje medio después de la triangulación. En el seguimiento de pósteres en realidad aumentada, esto no es un fallo, sino la selección correcta del modelo.
Discrepancias, patrones repetitivos y reflejos
Ventanas, azulejos, estanterías, pantallas LCD y superficies de agua producen descriptores locales similares. Superponga la prueba de proporción, la coincidencia mutua del vecino más cercano y el RANSAC geométrico, y compruebe si los puntos coincidentes se distribuyen por toda la imagen. Las imágenes especulares y los objetos transparentes rompen la suposición de reflectancia lambertiana de cuerpo rígido, por lo que ningún ajuste de umbral será suficiente.
Objetos dinámicos y movimientos múltiples
RANSAC solo selecciona el movimiento más grande. Si el fondo es minoritario, podría terminar estimando el movimiento de un coche. Según su aplicación, elija entre excluir semánticamente personas/vehículos, agrupar el flujo óptico, ejecutar la estimación multimodelos o alinear con la profundidad/IMU.
Distorsión de lente, obturador rodante, asincronía
El uso de un borde gran angular sin corregir produce una curvatura sistemática en las líneas epipolares. Con el obturador rodante durante el movimiento rápido, la orientación cambia dentro de un mismo fotograma, por lo que un solo E es solo una aproximación. Incluso un ligero desfase en la sincronización de la exposición izquierda/derecha para un par estéreo produce una disparidad espuria en los objetos en movimiento. Considere el obturador global, la exposición corta, un modelo de sincronización por filas, la corrección basada en la IMU y la sincronización por hardware.
Errores numéricos y de coordenadas
Mezclar coordenadas de píxeles y normalizadas, confundir la información del mundo a la cámara con la de la cámara al mundo para R,\mathbf{t}, intercambiar el orden de los puntos izquierdo/derecho y olvidar actualizar K después de redimensionar una imagen son errores comunes. No aceptes los valores estimados al pie de la letra: superpón correspondencias y líneas epipolares, y automatiza las comprobaciones de profundidad positiva en ambas cámaras, el error de reproyección, \det R=1 y R^\mathsf{T}R\simeq I.
12. Métricas de evaluación prácticas y lista de verificación de diseño
No consideres exitosa la estimación con dos vistas solo porque "se obtuvo una matriz". El número de coincidencias se ve afectado por la cantidad de textura, y el error promedio por sí solo puede ocultar algunos puntos positivos. Guardar la siguiente información por fotograma permite identificar posteriormente dónde se produjo el fallo en la cadena sensor/comparador/estimación de pose:
- Recuento de detecciones, recuento de pruebas de razón de aprobación, recuento/ratio de valores atípicos de RANSAC, distribución en las celdas de la cuadrícula de la imagen.
- Distancia de Sampson mediana y percentil superior, error de reproyección, tasa de profundidad positiva, distribución del ángulo de triangulación.
- Recuento de soporte y puntuación robusta para H frente a E/F, y el motivo por el que se aceptó o rechazó un modelo.
- Magnitud de la rotación estimada, continuidad temporal de la dirección de traslación, consistencia con un sensor externo escalado.
- Tiempo de exposición, ganancia, velocidad angular de la IMU, desfase temporal izquierda/derecha, métrica de desenfoque, relación de la máscara de imagen.
Para investigación o evaluación de productos con datos de referencia disponibles, informe por separado el error de rotación relativo, el error de dirección de traslación, el ATE/RPE de la trayectoria y el error de profundidad absoluto/relativo. Dado que la traslación monocular de dos vistas presenta ambigüedad de escala, indique claramente si el error se produce tras la normalización o tras la alineación Sim(3). En lugar de excluir los fotogramas fallidos del promedio, señalar la degeneración o condición visual bajo la cual se produjo cada fallo comunica con mayor precisión las limitaciones del sistema.
13. Desarrollos recientes: ¿Ha sustituido el aprendizaje a la geometría?
Los puntos clave y descriptores basados en aprendizaje (SuperPoint), los sistemas de correspondencia de grueso a fino (LoFTR) y la estimación de correspondencia de propósito general (LightGlue y similares) pueden generar más coincidencias candidatas que los descriptores clásicos en condiciones de baja textura o cambio de punto de vista. Sin embargo, las correspondencias devueltas por una red aún pueden ser erróneas, y las ambigüedades físicas del movimiento de la cámara, los planos, el obturador rodante y la escala persisten. En la práctica de SfM/SLAM, una configuración híbrida que verifica la salida de un sistema de correspondencia aprendido mediante una estimación robusta de E/F/H más el ajuste de haces sigue siendo la opción más práctica.
En un nivel más general, las representaciones neuronales/explícitas de escenas, como NeRF y 3D Gaussian Splatting, también aprovechan la consistencia entre múltiples vistas. Estas permiten una síntesis atractiva de vistas novedosas, pero son sensibles a la calidad de la pose de la cámara y la geometría de observación, y muchas implementaciones se inicializan con poses derivadas de COLMAP. La investigación continúa en la estimación conjunta de correspondencia, profundidad, segmentación, datos inerciales y modelos de temporización para entornos a gran escala, dinámicos y reflectantes.
Por lo tanto, la decisión de adoptar un modelo más reciente no debería basarse únicamente en si "aumentó el número de coincidencias en comparación con ORB", sino que también debería tener en cuenta la distribución de puntos de referencia posteriores a la estimación, el error de pose, la latencia de cálculo, los requisitos de GPU, el fallo fuera de las condiciones de entrenamiento y las licencias. La geometría no es un paso de preprocesamiento obsoleto; sigue siendo el verificador que compara la salida de un modelo aprendido con la estructura 3D real.
14. Conclusión
La geometría epipolar es el marco que eleva las correspondencias entre dos imágenes, pasando de ser "puntos que se parecen más" a "puntos explicables mediante un único movimiento de cámara". Si se conocen los parámetros intrínsecos, se procede a la pose relativa mediante E=[\mathbf{t}]_\times R; de lo contrario, se verifican las líneas epipolares y las correspondencias con F. El algoritmo de 8 puntos es la base para la comprensión y la inicialización; el algoritmo de 5 puntos es un solucionador mínimo eficiente para una estimación robusta; RANSAC es el mecanismo que asume valores atípicos; y la triangulación, junto con el ajuste de haces, constituyen el puente hacia el 3D.
Sin embargo, cuando no hay paralaje, solo un plano, rotación pura, muchos objetos en movimiento o una fuerte distorsión/asincronía, la matriz resultante no garantiza una profundidad o traslación físicamente significativas. Diseñar la selección de modelos en función de la homografía, gestionar las condiciones de calibración, comprobar el error de reproyección y la profundidad positiva, e integrar la escala externa en un único flujo de trabajo es lo que permite obtener una visión artificial reproducible.
¿Una línea epipolar determina de forma unívoca una coincidencia?
Reduce la búsqueda a una línea.
La evidencia de la imagen aún debe ubicar el punto, y la repetición o la oclusión pueden generar ambigüedad. ## Referencias (Fuentes primarias y documentación oficial) - [Hartley y Zisserman, Geometría de múltiples vistas en visión por computadora (página oficial del autor)](https://www.robots.ox.ac.uk/~vgg/hzbook/) - [Longuet-Higgins, Un algoritmo informático para reconstruir una escena a partir de dos proyecciones (1981, Royal Society)](https://royalsocietypublishing.org/doi/10.1098/rspa.1981.0136) - [Hartley, En defensa del algoritmo de ocho puntos (IEEE TPAMI, 1997)](https://doi.org/10.1109/34.601246) - [Nistér, Una solución eficiente al problema de la pose relativa de cinco puntos (IEEE TPAMI, 2004)](https://doi.org/10.1109/TPAMI.2004.17) - [Fischler y Bolles, Consenso de muestra aleatoria] (Comunicaciones de la ACM, 1981)](https://doi.org/10.1145/358669.358692) - [OpenCV — Tutorial de Geometría Epipolar](https://docs.opencv.org/4.x/da/de9/tutorial_py_epipolar_geometry.html) - [OpenCV — calib3d: findEssentialMat / recoverPose](https://docs.opencv.org/4.x/d9/d0c/group__calib3d.html) - [Documentación oficial de COLMAP](https://colmap.github.io/) - [Schönberger y Frahm, Reconstrucción de Estructuras a partir del Movimiento: Una Revisión (CVPR 2016)](https://openaccess.thecvf.com/content_cvpr_2016/html/Schoenberger_Structure-From-Motion_Revisited_CVPR_2016_paper.html) - [Sarlin et al., LightGlue (ICCV 2023)](https://openaccess.thecvf.com/content/ICCV2023/html/Lindenberger_LightGlue_Local_Feature_Matching_at_Light_Speed_ICCV_2023_paper.html)
Comentarios
Inicia sesión para continuar.
Todavía no hay datos.