2010-09-09 18 views
6

Creé una aplicación de prueba simple para realizar la traducción (T) y la rotación (R) estimación de la matriz esencial.T y R estimación de la matriz esencial

  1. Generar 50 aleatorios Puntos.
  2. Calcular proyección pointSet1.
  3. Transform Puntos a través de la matriz (R | T).
  4. Calcular nueva proyección pointSet2.
  5. Luego calcule la matriz fundamental F.
  6. Extraer la matriz esencial como E = K2^T F K1 (K1, K2 - matrices internas de la cámara).
  7. Utilice SVD para obtener UDV^T.

Y calcule restoredR1 = UWV^T, restoredR2 = UW^T. Y ver que uno de ellos igual a inicial R.

Pero cuando calculo el vector de traducción, restoredT = UZU^T, me normalizo T.

restoredT*max(T.x, T.y, T.z) = T

Cómo restaurar vector de traducción correcta?

Respuesta

1

¡Entiendo! No necesito una estimación de longitud real en este paso. Cuando obtengo la primera imagen, debo establecer la transformación métrica (factor de escala) o estimarla a partir de la calibración desde un objeto conocido. Después, cuando recibo el segundo cuadro, calculo T normilizado, y usando las coordenadas 3d conocidas del primer cuadro para resolver la ecuación (sx2, sy2, 1) = K (R | lambda T) (X, Y, Z); y encontrar lambda - que lambda T será la traducción métrica correcta ...

Lo comprobo, y esto es cierto/Entonces ... ¿quién sabe si la solución más simple?

+0

Esto suena como la solución propuesta por Bae et al. en * Re-Fotografía computacional * (2010), busqué en Google y no encontré un enfoque diferente. – oarfish

Cuestiones relacionadas