Vision por computadora, repaso 2 Februar, 206 Geometria euclideana 2D.0. Transformaciones rigidas en el plano euclidiano Una transformación rígida (o isometría es una transformación que deja invariante la distancia entre puntos. Qué tipo de transformaciones del plano tienen esa propriedad? Translaciones. Rotaciones. Refleiones con respeto a una recta. Las combinaciones de las anteriores. En práctica en visión por computadora, manejaremos translaciones rotaciones (las refleiones cambian las orientaciones. Translación en el plano Euclidiano (2 parametros t, t : o ( = ( + p = p + t. ( t Rotación en el plano Euclidiano, centrada en la origen ( parámetro θ: ( ( ( cos θ sin θ = sin θ cos θ o p = R θ p. donde R θ es la matriz 2 2 de rotación de angulo θ. Propriedades de las matrices de rotación: R T θ R θ = I 2 2 det(r = (es la diferencia con las refleiones. Las columnas son las imagenes de los vectores de la base canónica: Permite verificar signos... La composición de los dos da la forma general de las isometrías del plano preservando la orientación (i.e. ecluendo las refleione: p = R θ p + t. Observar que, algebraicamente, no tenemos el mismo tipo de operaciones: uno es una adición entre vectores; el otro es una multiplicación matricial. Una forma de manejar todo linealmente como operaciones t
matriciales es pasar por coordenadas homogeneas. Por el momento, consideren simplemente el hecho de remplazar las coordenadas: ( por Cómo se escriben las translaciones rotaciones con esas coordenadas? Translaciones: = 0 t 0 t 0 0 Rotaciones: las isometrias en general: = = cos θ sin θ 0 sin θ cos θ 0 0 0 cos θ sin θ t sin θ cos θ t 0 0 Las transformaciones rígidas del plano se pueden representar por matrices 3 3 actuando sobre coordenadas homógeneas. Veremos que se generalizará a transformaciones proectivas (perspectivas. In []: import cv2 import math import nump as np img = cv2.imread( imgs/messi5.jpg,0 rows,cols = img.shape theta = 0.2 fac =.0 M = np.float32([[fac*math.cos(theta,-fac*math.sin(theta,0],[fac*math.sin(theta,fac*math.cos( dst = cv2.warpaffine(img,m,(cols,rows cv2.imshow( img,dst cv2.waitke(0 cv2.destroallwindows( Observación: qué pasa si en lugar de.0.2 Ecuaciones de rectas en el plano Forma general de la ecuación de una recta:, usas coordenadas a + b + c = 0 Observar que en coordenadas homogeneas, se puede escribir: a + b + c. = 0 2 2 2? 2
o sea como una relación de ortogonalidad: l T p = 0 podemos ver a l = a b como una representación de la recta. c 2a Observación: 2b también se puede usar! (o cualquiera versión escalada 2c Regresaremos mas adelante en la noción de dualidad entre puntos rectas en el plano. 2 Geometria euclideana 3D 2.0.3 Transformaciones rigidas en el espacio 3D Similarmente al caso 2D: las transformaciones rígidas que conservan las distancias son: Las rotaciones 3D Las translaciones 3D De manera general, razonamos también en coordenadas homogeneas (con 4 coordenadas: ( R t z = 0 0 0 z Las transformaciones rígidas del espacio 3D se pueden representar por matrices 4 4 actuando sobre coordenadas homógeneas (de 4 dimensiones. t es un vector de translación 3D R es una matriz 3 3 de rotación 3D. Observar que t es el vector de coordenadas correspondiendo a la imagen del punto cero antes de la transformación. Propriedades de las matrices de rotación: R T R = I 3 3 det(r =. Se pueden parametrizar por rotaciones elementales al rededor de ejes de rotación sucesivos; por ejemplo (pero ha muchas mas maneras: R = cos ψ sin ψ 0 sin ψ cos ψ 0 0 0 0 0 0 cos θ sin θ 0 sin θ cos θ cos φ sin φ 0 sin φ cos φ 0 0 0 Se necesita elegir los 3 ejes de rotación sucesivos en los cuales se aplicarán rotaciones. Representación de Euler. Esa representación tiene una singularidad: ver lo que pasa con θ = 0: gimbal lock (en unas configuraciones, se pierde la posibilidad de alcanzar todas las rotaciones vecinas. 3
2.0.4 Invertir transformaciones Observar que con la representación de matriz de transformación homogenea, es simple invertir transformaciones 3D: ( R t 0 0 0 = ( R T R T t 0 0 0 Revertir una transformación rígida corresponde a aplicar la rotación inversa (R T la translación R T t. 2.0.5 Ecuaciones de planos Forma general de la ecuación de una recta: a + b + cz + d = 0 Observar que en coordenadas homogeneas, se puede escribir: o sea como una relación de ortogonalidad: podemos ver a π = Observación: 2a 2b 2c 2d a b c d 2.0.6 Producto vectorial Sean dos vectores 3D: a + b + cz + d. = 0 π T p = 0 como una representación del plano. también se puede usar! (o cualquiera versión escalada v = a b c v = el producto vectorial de v v se nota v v es el vector 3D: v v = bc b c a c ac ab a b. El vector obtenido es perpendicular tanto a v como a v : permite por ejemplo dar una epresión facil de una normal a un plano dado por 3 puntos A, B, C: a b c n = (B A (C A Observar también que tenemos la equivalencia: dos vectores 3D v v son colineales v v = 0. 4
2.0.7 Ecuaciones de rectas en 3D Cúantos parámetros necesarios para representar una recta en 3D? 5 parametros: punto particular una dirección (2 parametros La representación más común en vision es la de coordenadas de Plucker: sea v un vector director de la recta, p uno de sus puntos. Las coordenadas de Plucker son Un punto q pertenece a la recta (v, p v q = p + λv q v = p v Verificar que el segundo vector (p v es independiente de la elección de p. Observar también la naturaleza proectiva de la representación: una representación de la misma recta se puede optener al multiplicar esa por un escalar no nulo. 2.0.8 Matriz antismétrica asociada al producto vectorial Observar que si se ve el operador: v como operador unario de (al fijar v, entonces es un operador lineal en Podemos entonces representar la función: de forma matricial: Se puede verificar que La matriz A(v se nota [v]. Es antisimetrica. A(v = f v ( = v f v ( = A(v c 0 a 0 c b b a 0. 3 Tarea. Demostrar que si (λ, v es un par de valor singular, vector singular de derecha de una matriz A, entonces (λ 2, v es un par de eigen valor, eigen vector de la matriz A T A. 2. Demostrar que si F es una matriz cuadrada n n con una eigen-descomposición en los reales, de eigen valores λ,.., λ n, entonces: F positiva definida i [, n], λ i > 0. 3. Sean dos puntos del plano p q tales que q p 2 =. Cuáles son los parametros de la transformación rígida (rotación/translación tal que el cero del plano se vuelva p el punto (, 0 se vuelva q? 4. Sean (v, p v las coordenadas de Plucker de una recta del espacio 3D. Demostrar que esta representación no depende de la elección del punto p en la recta. 5
5. Sea l las coordenadas homogeneas de una recta del plano. Eso significa que un punto p pertenece a la linea si sólo si l T p = 0. Demostrar que si aplicamos una transformación afín A a los puntos p, entonces, las coordenadas de la recta están transformadas en: l = A T l 6