Realidad Aumentada
Tarea 5: Cálculo de la homografía
MATERIA | REALIDAD AUMENTADA |
---|---|
ALUMNO | ORTIGOSA FLORES JOSE LUIS |
FECHA ENTREGA | 24-NOV-2015 |
Actividades
Patrón con triangulos rectos, fotografía y modelo
La homografía asociara los puntos que estan en los ángulos rectos de los triangulos 3,1,6 y 7 con los puntos A,B,C y D del modelo. De tal manera que podra transformas puntos del modelo a puntos en la imagen.
Calcular la homografía
El conjunto de puntos
El conjunto de puntos homogeinizados de la imagen son los siguientes: P1 = { (68,119,1)T,(180,100,1)T,(63,257,1)T y (183,280,1)T}
El conjunto de puntos homogeinizados del modelo son los siguientes:
P2 = { (-3,3,1)T,(3,3,1)T,(-3,-3,1)T y (3,-3,1)T}
Para normalizar los vectores necesitamos crear la matriz T asociada a cada
conjunto de puntos.
Se debe de cálcular la matriz T para cada conjunto de puntos. Para la cual
con ayuda de libreOffice se calcula la media, y desviación estandar, para
cada conjunto.
Una vez obtenidos los datos necesarios se construyen las matrices
T1(Asociada con los puntos de la imagen) y T2 (asociada con los puntos
del modelo)
Las matrices obtenidas son las siguientes.
Una vez obtenidas las matrices ya podemos normalizar los vectores. Para
normalizar los vectores, simplemente multiplicamos cada vector por la matriz T,
(Cada vector del conjunto P1 por la matriz T1 y analogamente para P2 y T2)
Como se puede ver en la formula siguiente para calcular H que es
la homografía necesitamos tener 3 matrices la inversa de la matriz T1
H' y la matriz T2. De esas tres matrices ya tenemos T2 y podemos
calcular la inversa de T1, sólo hace falta calcular H'.
Debemos de calcular H', lo que sabemos de H' es que un lambda
multiplicado por un vector(normalizado) de la imagen (P1') sera igual
a multiplicar H' por el vector (normaliado) del modelo (P2')
Al realizar la multiplicación de matrices y despejando a u y v,
tendremos el par de ecuaciones siguientes.
Que en su forma matricial seria algo como lo siguiente:
De donde se deduce que para encontrar la matriz H' debemos de tener
a lo menos 4 vectores, para poder resolver el sistema de ecuaciones
y obtener los valores de H'. Se requieren de 4 vectores en el modelo
y los otros 4 vectores en la imagen para generar almenos 8 ecuaciones.
Tomamos una pareja (uno de la imagen y otro del modelo) de vectores
y los sustituimo en las ecuaciones anteriores (forma matricial) para
rellenar la matriz. de 8x8. Y esto lo repetimos para las parejas
restantes.
Al terminar obtendremos unas matrices como las siguientes:
Para resolver este sistema de ecuaciones sólo hace falta calcular la
inversa de la matriz A(8x8) y multiplicarla por el vector V a fin de
encontrar la solución para los elementos de H'.
En la imagen anterior podemos ver que la matriz verde (8x8) es la inversa
de A y que la estamos multiplicando por el vector V, con lo que obtenemos
cada uno de los elementos de H'.
Para calcular H se necesitaba resolver la siguiente ecuación.
Como ya tenemos T2 y H' ya sólo resta calcular la inversa de T1 que
es la siguiente:
Ya con las tres matrices las multiplicamos para obtener H y con ella
la homobrafía.
Al finalizar la multiplicación obtenemos que la homografía es la
siguiente matriz.
Normalización de los vectores
Calculando la Homografía
Calculando H'
Calculando H
La homografía
Verificar si es correcto el cálculo
Para verificar que el cálculo fue correcto sólo resta multiplicar un vector del modelo por la homografía y nos tiene que dar el vector correspondiente en la imagen, y comparar el resltado de la multiplicación con el vector correspondiente para checar si sus valores son cercanos.
Segun la formula de arriba si multiplicamos un vector de nuestro modelo (P2) por la matriz H (la homografía) debemos obtener el vector correspondiente en P1
El la siguiente imagen vemos los resultados de multiplicar cada uno de los vectores.
Como se puede ver en la imagen anterior los puntos parecen cercanos, en donde en ocaciones el error es grande por ejemplo en el P14 en la coordenada Y vemos que hay una diferencia de 50px.
Ahora resta verificar si al calcular la inversa de la matriz H y al multiplicar vectores que estan en la imagen nos regresa vectores en el modelo. Para lo cual calculamos H^⁻1
Y realizamos las multiplicaciones.
Como podemos ver en la imagen la inversa manda casi correctamente los puntos de la imagen al modelo.
Las posibles causas de que la homografía tenga errores es que la imagen no tiene la suficiente perspectiva como para que funcione mas precisamente la homobrafía o que hay que considerar un lambda.