Mediciones relativas en imágenes
El contenido de este tutorial está basado en el libro de Richard Hartley y Andrew Zisserman, Multiple view geometry in computer vision, 2nd Ed., Cambridge University Press, 2003.
El contenido de este tutorial está basado en el libro de Richard Hartley y Andrew Zisserman, Multiple view geometry in computer vision, 2nd Ed., Cambridge University Press, 2003.
El sistema de visión humano es capaz de realizar mediciones comparando los objetos de una escena tridimensional. Una de las dificultades más evidentes para realizar este tipo de mediciones mediante computadora es que las dimensiones se reducen a medida que los objetos se alejan de la cámara.
En este tutorial se ilustrará un método para realizar mediciones relativas en imágenes usando los siguientes conceptos.
Considere un piso plano que se extiende hasta el infinito. Cuando se toma una imagen de este plano con la cámara, los puntos al infinito se detectarán como el "horizonte." La imagen de un punto al infinito va (vanishing point) se puede obtener como sigue.
Vanishing point. En la imagen, tome dos líneas que en el mundo tridimensional son paralelas. Después, tome la intersección de tales líneas. El punto de intersección corresponderá con la imagen de un punto al infinito.
El procedimiento para hallar un vanishing point se puede repetir para obtener la imagen de un segundo punto al infinito vb. Así, con los dos puntos, se puede encontrar la imagen de la línea al infinito (horizonte) como la línea que pasa por los puntos va y vb.
La ventaja de conocer la línea horizonte es que se puede reducir el problema de análisis en el espacio (3D) a un problema de análisis en el plano (2D). Esta idea se ilustra como sigue. Considere dos objetos verticales sobre el plano del piso.
Los puntos b1 y b2 generan la línea hb que intersecta la línea de horizonte en el punto u.
Ahora podemos construir la línea ht que pasa por el punto t1 y u. Observe que las líneas hb y ht generan un plano en el espacio tridimensional.
Pero lo más importante es que los objetos verticales contenidos entre las líneas hb y ht tienen la misma altura.
Usando la línea ht podemos "proyectar" el punto t1 del primer objeto vertical sobre el segundo objeto como el punto τ1. Ahora, la comparación entre las alturas de los objetos es más sencilla porque los puntos a comparar están sobre una misma línea. En otras palabras, los puntos b2, τ1, y t2 son colineales.
Sin embargo, las longitudes desde b2 a τ1 y desde b2 a t2 no se pueden comparar directamente porque esos puntos están sobre una línea que también está en perspectiva. Para realizar la comparación, tenemos que corregir tal perspectiva usando la homografía correspondiente (en una dimensión).
Una línea en perspectiva es similar a un plano en perspectiva. Las distancias aparentes entre dos puntos de la línea cambian cuando tales puntos se alejan de la cámara (o equivalentemente, se acercan al infinito). Para realizar una comparación entre las distancias que hay entre dos puntos, primero se tiene que corregir la perspectiva que tiene la línea.
Para realizar la corrección de perspectiva que tiene una línea, se debe calcular la homografía G correspondiente. Como la línea es un objeto 1-dimensional, la homografía G es una matriz de 2 x 2. Aunque tal homografía tiene cuatro entradas, solo existen tres incógnitas porque las homografías son únicas excepto escala. Por lo tanto, se requiere tres restricciones para determinar la matriz G.
Las restricciones para determinar una homografía 1-dimensional son análogas al caso 2-dimensional. Es decir, necesitamos conocer:
A diferencia del caso 2-dimensional donde cada punto proporciona dos restricciones, en el caso 1-dimensional cada punto proporciona una restricción. Como se requiere tres restricciones, se concluye que al menos tres puntos son necesarios para determinar la homografía que define la transformación.
Sobre la línea imagen tenemos los puntos
b2, τ1, y t2.
Como estamos interesados en saber cuál es la altura τ1 con respecto a t2, solo tenemos disponibles los puntos b2 y t2 para calcular G.
Aún no es posible calcular la matriz G porque hasta el momento solo se han establecido dos de las tres restricciones necesarias:
(0, b2) y (1, t2).
Podemos disponer de una tercera restricción considerando la imagen del punto al infinito sobre la línea. Debe tener cuidado en observar que tal punto al infinito no es la intersección de la línea vertical con la línea horizonte.
Esta observación se puede verificar al considerar que la línea horizonte está formada por puntos del plano que representa al piso. Por otro lado, excepto por el punto b2, todos los puntos de la línea vertical son ajenos al plano del piso. Con esto es fácil concluir que la imagen del punto al infinito sobre la línea vertical no tiene por qué coincidir con un punto de la línea horizonte.
Afortunadamente, el punto vc se puede calcular de forma muy sencilla. Considerando que los objetos en comparación son verticales, podemos calcular la línea que pasa por b1 y t1. Esta línea en la escena tridimensional es vertical y paralela a la línea que pasa por b2 y t2. Por lo tanto, estas dos líneas intersectarán en el punto vc. De esta forma, tenemos disponible una tercera restricción:
(∞, vc).
No hay inconveniente en usar esta última restricción porque las coordenadas (∞, vc) no se usan directamente; sino sus coordenadas homogéneas ([1,0]T, [vc,1]T).
Finalmente, una vez calculada la matriz homografía G, podemos hallar la altura relativa del objeto 1 como:
δ1 = H-1[ G-1 H[τ1] ].
La longitud δ es relativa a la altura del objeto 2 (que se asumió es igual a 1; es decir, d2 = 1). Si se conoce la altura d2 en unidades físicas; por ejemplo, centímetros o metros, entonces la altura d1 del primer objeto se puede calcular en unidades físicas como
d1 = δ1 d2.
Pronto agregaremos a esta página las consideraciones a tener en cuenta para realizar la implementación computacional.
En el menú Students\Teaching de este sitio web encontrarás otros temas que podrían resultar de tu interés. Puedes contactarnos para sugerir algún otro tema que desees que abordemos. Todos los comentarios son bienvenidos.