Document

Anuncio
PROYECTO TERMINAL
“PROCESAMIENTO DE IMÁGENES PARA
LA DETECCION DE OBJETOS EN MOVIMIENTO”
HERRERA ARVEA ANDRES SANTIAGO
NUÑEZ AVILA MARIO
SANCHEZ OCAMPO SALMA LUCERO
AL DR. LEONARDO TRAVERSONI DOMINGUEZ:
Por la oportunidad brindada para la realización de este proyecto y el
compartir sus conocimientos para el logro de éste. Gracias por su tiempo,
dedicación y apoyo.
A JESUS BARRERA MENDEZ
Por ayudarnos a comprender y superar este reto, y por la gran amistad
brindada a lo largo de estos mese, simplemente muchas gracias.
Herrera Arvea Andrés Santiago
Núñez Avila Mario
Sánchez Ocampo Salma Lucero
A MI FAMILIA:
Quienes me dieron apoyo y consejo durante los momentos más difíciles en este
camino de mi carrera profesional, ya que sin ustedes el recorrido hubiera sido
más difícil. Porque siempre han estado cuando los he necesitado y sobre todo
por el amor y cariño brindados en toda mi vida; los amo.
A SALMA:
Gracias por estar a mi lado y a ayudarme a superar todos mis temores y
obstáculos en esta etapa de mi vida, gracias por tu apoyo, cariño, paciencia y tu
consejo, eres mi vida.
A MARIO NUÑEZ:
Gracias por ser un amigo y compartir todos estos momentos durante la
realización del proyecto.
Andrés Santiago Herrera Arvea.
A MIS PADRES:
Por estar conmigo en cada momento de mi vida. Que con su incondicional
apoyo me han demostrado el gran cariño y amor que sienten por mí. No hay
palabras para agradecer todo lo que me han brindado. Teniendo como única
forma de agradecimiento la promesa de seguir adelante con la esperanza de
llenarlos de orgullo.
A MIS HERMANOS:
Que me han apoyado de mil maneras diferentes, por inspirarme a seguir siempre
adelante, por ser más que mis hermanos mis compañeros y amigos.
A MIS COMPAÑEROS DE PROYECTO:
Salma y Andrés gracias por todo el apoyo no solo en lo académico. En verdad
estoy feliz de haber compartido todo este tiempo con ustedes.
A MIS COMPAÑEROS DE CARRERA:
Que me ayudaron disfrutar la mayor experiencia académica de mi vida.
Mario Núñez Avila.
A MIS PADRES:
Por su apoyo, cariño y comprensión, por hacer de mí la persona que soy y por
que hoy puedo decir que este éxito logrado nos pertenece a todos gracias.
A ANDRÉS SANTIAGO HERRERA ARVEA:
Por tu amistad incondicional tú apoyo y cariño y porque ahora se que a tú lado
no hay barrera que no pueda ser derribada solo me queda decirte gracias.
A MARIO NUÑEZ AVILA:
Por la gran amistad brindada durante estos meses y por tu ayuda incondicional
para lograr la culminación de este proyecto.
Salma Lucero Sánchez Ocampo
INDICE.
CAPITULO I
Fundamentos de Geometría Proyectiva
1 Introducción…………………………………………………………...
1.1 El plano proyectivo………………………………………………….
1.1.1 Coordenadas homogéneas…………………………………
1.1.2 Rectas proyectivas…………………………………………
1.1.3 Parametrización de rectas proyectivas…………………….
1.2 El espacio proyectivo………………………………………………..
1.3 Subespacios proyectivos…………………………………………….
1.3.1 Intersección de subespacios proyectivos…………………..
CAPITULO II
Geometría de la cámara
2 Introducción…………………………………………………………...
2.1 Geometría de imágenes……………………………………………...
2.1.1 Proyección en perspectiva…………………………………
2.1.2 Sistema coordinador de la imagen………………………...
2.1.3 Matriz de calibración de la cámara………………………..
2.1.4 Parámetros de la cámara externa…………………………..
2.2 Una cámara proyectiva………………………………………………
2.2.1 ¿Qué da la calibración?........................................................
2.2.2 Ángulos entre líneas……………………………………….
2.2.3 Calibración de la cámara…………………………………..
2.2.3.1. Ejemplos de objetos calibrados…………………
2.3 Perspectiva débil…………………………………………….............
2.3.1 La cámara afín……………………………………………..
2.4 Transformación del plano proyectivo……………………………….
2.4.1 Cuatro puntos definen una transformación proyectiva……
2.5 Ejemplos prácticos…………………………………………………..
2.5.1 Removiendo la distorsión de la perspectiva……………….
2.5.1.1 El cono de líneas…………………………………
2.5.2 Rotaciones sintéticas………………………………………
2.5.3 Relación entre la coordenada de un píxel y
la coordenada en pantalla………………………………….
2.6 Geometría de dos vistas……………………………………………..
2.6.1 Imágenes del plano………………………………………...
2.6.2 Geometría de la correspondencia………………………….
CAPITULO III
Generación de bordes
3 Introducción…………………………………………………………...
3.1 Concepto de derivada en la extracción de bordes…………………...
3.2 Operadores primera derivada………………………………………..
3.2.1 Operadores gradiente………………………………………
3.2.2 Operadores de Sobel……………………………………….
3.2.3 Operador de Prewitt……………………………………….
3.2.4 Operador de Roberts……………………………………….
3.3 Extensión de operadores…………………………………………….
3.4 Algoritmo de Canny…………………………………………………
3.5 Operadores segunda derivada……………………………………….
3.5.1 Operador laplaciana………………………………………..
2
2
2
3
4
4
6
6
8
8
8
8
9
9
10
10
11
11
12
13
13
14
15
15
15
16
16
16
17
18
18
20
20
21
21
22
23
23
23
24
26
26
CAPITULO IV
Cuaterniones y álgebra geométrica
4 Introducción…………………………………………………………...
4.1 Historia………………………………………………………………
4.2 Detalles Algebraicos………………………………………………...
4.3 Aplicaciones…………………………………………………………
4.4 Representaciones de los Cuaterniones………………………………
4.4.1 Vectoriales……………………………………………….
4.4.2 Matriciales……………………………………………….
4.5 Aritmética Básica de Cuaterniones………………………………….
4.5.1 Adición…………………………………………………..
4.5.2 Producto………………………………………………….
4.5.3 Cociente………………………………………………….
4.6 Cuaterniones y rotación en el espacio……………………………….
4.6.1 Descubriendo la fórmula………………………………..
4.6.2 La fórmula………………………………………………
4.6.3 Un ejemplo……………………………………………...
4.6.4 Cuaterniones y Ángulos de Euler……………………….
4.7 El algebra geométrica en espacios 3d y 4d………………………….
4.8 Espacio tridimensional e imagen del plano bidimensional………….
4.9 Algebra geométrica del espacio euclidiano en 3D…………………..
4.10 Algebra geométrica para espacios proyectivos…………………….
4.10.1 Transformaciones proyectivas…………………………...
4.10.2 La línea proyectiva………………………………………
29
29
29
30
30
30
31
31
31
31
32
32
32
33
33
34
35
35
36
37
37
38
CAPITULO V
Aplicaciones de álgebra geométrica
5 Introducción…………………………………………………………...
5.1 El bracket (soporte)………………………………………………….
5.2 El principio de dualidad y las operaciones de encuentro y unión…...
5.3 Algebra en espacio proyectivo………………………………………
5.4 Intersección de una línea y un plano………………………………...
5.5 Intersección de dos planos…………………………………………..
5.6 Intersección de dos líneas…………………………………………...
42
42
43
45
46
46
47
CAPITULO VI
Aplicaciones de geometría epipolar
6 Introducción…………………………………………………………...
6.1 Geometría epipolar…………………………………………………..
6.2 Autovalor y autovector de una aplicación lineal…………………….
6.2.1 Autovalor de una matriz…………………………………...
6.3
La
matriz
pseudoinversa……………………………………………...
6.4 La matriz antisimétrica………………………………………………
6.5 La transformada SVD……………………………………………….
6.6 La matriz fundamental………………………………………………
6.7 Solución lineal (Algoritmo de los ocho puntos)…………………….
6.7.1 Algoritmo de los ocho puntos normalizado……………….
ANEXOS
BIBLIOGRAFIA
49
49
52
53
53
54
54
56
56
56
CAPITULO I
Capítulo I
Fundamentos de Geometría Proyectiva
2
Fundamentos de geometría proyectiva.
1. Introducción.
La exposición de geometría proyectiva que a continuación se dará, no esta basada en
axiomas como disciplina matemática independiente, si no que partiremos de los
axiomas de espacios vectoriales. Esto nos permitirá utilizar los elementos de un cuerpo
para expresar los elementos del espacio proyectivo por coordenadas.
Consideremos entonces el hecho de mirar un objeto, los rayos de luz que parten de este
entran en el ojo, si se pusiera una pantalla transparente entre el ojo y el objeto, estos
rayos de luz cortarían a la pantalla en una colección de puntos, a esta colección de
puntos le llamaremos proyección del objeto sobre la pantalla. Es así como
comenzaremos a adentrarnos en el mundo de la geometría proyectiva.
1.1 El plano proyectivo.
A continuación se generará una definición analítica, generalizando la idea de
coordenadas homogéneas, lo que nos permitirá hacer cálculos y definir objetos
geométricos de manera precisa.
Para tener una intuición geométrica del plano proyectivo, que es muy importante,
veremos también otros modelos. Es preciso remarcar, una y otra vez, que cada modelo
tiene ventajas y desventajas, no hay una manera de “ver” todo el plano proyectivo de
golpe, como creemos tener la idea del plano euclidiano. Pero observemos que esto
último tampoco es cierto. Lo que intuitivamente sabemos del plano euclidiano es por
pequeñas porciones de él, el pizarrón, el piso o una hoja de papel. Lo mismo sucede con
el plano proyectivo, en pequeñas porciones es como el euclidiano pero también incluye
un cierto comportamiento al infinito que se convierte en parte integral de él.
1.1.1 Coordenadas homogéneas.
Dado x = (x, y, z) ℜ 3 tal que x ≠ 0 (esto es, tal que alguna de las tres coordenadas de
x es distinta de cero).
Sea [x] = [x : y : z] := {(tx, ty, tz) | t ∈ ℜ , t ≠ 0}.
Es decir, [x] es la recta por el origen con dirección x, menos el origen. Se tiene entonces
que, [x] = [t x] para cualquier t ≠ 0.
Y además consideraremos a [0] o [0 : 0 : 0] como una expresión sin sentido.
Definimos al plano proyectivo P 2 como:
P 2 := {[x] | x ∈ ℜ 3 , x ≠ 0.}
Nos referimos a los elementos de P 2 como puntos y a la expresión [x : y : z] o [x] como
un punto de P 2 dado por coordenadas homogéneas.
Nótese que las coordenadas homogéneas de un punto en P 2 no son únicas (a diferencia
de ℜ 2 , donde sí lo son). Hay cierta ambigüedad, pero no es tan grave, pues.
[x] = [y] si y sólo si y = t x para alguna t ≠ 0.
Capítulo I
Fundamentos de Geometría Proyectiva
3
1.1.2 Rectas proyectivas.
Tenemos que los puntos de P 2 corresponden de manera biunívoca con las rectas en ℜ 3
que pasan por el origen. Podemos definir entonces a los subconjuntos distinguidos de
P 2 que llamaremos rectas correspondiendo a los planos por el origen en ℜ 3 , es decir,
una recta en P 2 es el conjunto de puntos cuyas correspondientes rectas en ℜ 3 forman
un plano. Tiene sentido, pues en la sección anterior vimos que los puntos de una recta
proyectiva corresponden biunívocamente a las rectas por el origen en un plano.
Puesto que los planos en R3 están dados por una ecuación lineal, podemos ser más
explícitos:
Sea n un vector no nulo en ℜ 3 , definimos la recta dada por n en P 2 como.
l n := {[x] ∈ P 2 | n · x = 0}.
Esta bien definida pues si tomamos t ≠ 0, entonces.
n · x = 0 ⇔ n · t x = 0.
Dado que n · t x = t(n · x), lo cual implica que no importa qué representante de un punto
tomemos ([x] o [t x]) la condición para pertenecer al conjunto da el mismo resultado (es
cierta o no dependiendo del punto en P 2 , no del representante en ℜ 3 ).
Si n = (a, b, c) entonces l n se describe por coordenadas homogéneas como.
l n := {[x : y : z] ∈ P 2 | ax + by + cz = 0} .
Y podemos decir que las rectas de P 2 son precisamente los conjuntos l n para n ∈ ℜ 3 ,
n ≠ 0. Notemos además que si t ≠ 0, entonces l n = l tn , (pues t n·x = t(n·x) = 0 ⇔ n ·
x = 0). Así que la recta proyectiva l n depende no de n (un vector no nulo en ℜ 3 ) sino
de [n] (el correspondiente punto en P 2 ); entonces podemos definir para [n] ∈ P 2 su
recta dual.
l [n ] := l n .
Dicho de otra manera, a cada recta por el origen en ℜ 3 ([n]) le asociamos su plano
perpendicular que pasa por el origen ( l [n ] ). Pero además como cada plano por el origen
tiene una única recta perpendicular por el origen, se tiene que.
l n = l m ⇔ [n ] = [m] .
Así que hemos establecido una biyección entre las rectas de P 2 y los puntos de P 2 .
l [n ] ↔ [n ] .
Capítulo I
Fundamentos de Geometría Proyectiva
4
Al cual llamaremos dualidad. La dualidad cumple propiedades muy bonitas que vienen
de una básica que dice que un punto está en una recta si y sólo si su recta dual contiene
al punto dual; es decir, dados [p] y [q] en P 2 .
[p] ∈ l[q ] ⇔ [q] ∈ l[ p ] .
Cuya demostración es obvia pues ambas condiciones son, por definición, equivalentes
a, p · q = 0.
1.1.3 Parametrización de rectas proyectivas.
Dados puntos [a], [b] ∈ P 2 , tales que [a] ≠ [b] tenemos una parametrización de la recta
que pasa por ellos dada por la función.
P1 → P 2
[x : y] → [xa + yb]
Que corresponde a la manera natural de generar un plano por dos vectores dados. Esta
función es inyectiva y nos dice que cada recta del plano es como la recta proyectiva
modelo P1. Sin embargo no está unívocamente determinada por los puntos [a] y [b]
(aunque sí por sus representantes a y b). Si tomamos t a en vez de a, con t ≠ 0 por
supuesto, entonces la asignación [x: y] → [x (t a) + yb] sigue mandando pero en el
resto de los puntos es diferente (si t ≠ 1). Esto corresponde a que una transformación
proyectiva de P1 está determinada por su valor en tres puntos, no sólo en dos. Pero dado
cualquier otro punto [c] ∈ ⟨ [a] , [b] ⟩ i se tiene que c = t a + s b para algunos t y s que
son distintos de cero si [a] ≠ [c] ≠ [b]. Y entonces la función.
P1 → P 2
[x : y] → [x(ta) + y(sb)]
Que manda si está unívocamente determinada. Estas inclusiones de P1 en P 2 se llaman
funciones proyectivas. Tenemos entonces que todas las rectas de P 2 son como nuestro
modelo ideal de recta proyectiva P1.
1.2 El espacio proyectivo
Consideremos el plano de la geometría elemental y en el una recta r y un punto O, no
perteneciente a la misma. Hagamos corresponder a cada punto A de r la recta a ≡ OA que lo
proyecta desde O. Se tiene así una correspondencia entre los puntos de la recta r y las rectas del
haz con base en O. Esta correspondencia no es biunívoca, pues a la recta r’, paralela a r, no le
corresponde ningún punto de r.
Para que la correspondencia sea biunívoca se conviene en decir que a la recta r’ le corresponde
también un punto, al cual se le llama punto impropio o punto del infinito de la recta r.
Si a los puntos de la recta r se le añade el punto impropio, se tiene la recta proyectiva: “Es
equivalente al conjunto de rectas del plano que pasan por un punto" (considerándose estas rectas
como los puntos de la recta proyectiva).
Capítulo I
Fundamentos de Geometría Proyectiva
5
Consideremos ahora el espacio ordinario y en él un plano π y un punto O exterior a él.
Hagamos corresponder a cada punto A de π la recta a ≡ OA que lo proyecta desde O. A cada
punto de ¼ le corresponde una recta, pero esta correspondencia no es biunívoca, pues a las
rectas por O paralelas a π (que están en el plano π ’ paralelo a π por O) no les corresponde
ningún punto en π .
Para hacer que la correspondencia sea biyectiva se puede convenir en que a cada recta que pasa
por O paralela a π le corresponde un punto impropio o punto del infinito del plano π (p → P ∞ ;
q → Q ∞ ).
A las rectas r de π les corresponden los planos que las proyectan desde O y al punto de
intersección de dos rectas le corresponde la recta intersección de los planos proyectantes. Si las
rectas en π son paralelas, la recta intersección de los planos correspondientes es paralela a π .
Se puede decir que las rectas paralelas tienen un punto impropio o del infinito común.
El conjunto de los puntos impropios de π corresponden a las rectas contenidas en π ’ que
pasan por O y como a los planos por O corresponden rectas de π , es natural decir que los
puntos impropios constituyen la recta impropia o recta del infinito del plano π .
Si a los puntos del plano π se les añaden los puntos impropios, se tiene el plano proyectivo:
“Es equivalente al conjunto de rectas que pasan por un punto del espacio" (considerando a estas
rectas como puntos y a los planos como rectas del plano proyectivo).
Figura1.1.El espacio Proyectivo.
Para hacer que la correspondencia sea biyectiva se puede convenir en que a cada recta que pasa
por O paralela a π le corresponde un punto impropio o punto del infinito del plano π (p → P ∞ ;
q → Q ∞ ).
A las rectas r de π les corresponden los planos que las proyectan desde O y al punto de
intersección de dos rectas le corresponde la recta intersección de los planos proyectantes. Si las
rectas en π son paralelas, la recta intersección de los planos correspondientes es paralela a π .
Se puede decir que las rectas paralelas tienen un punto impropio o del infinito común.
El conjunto de los puntos impropios de π corresponden a las rectas contenidas en π ’ que pasan
por O y como a los planos por O corresponden rectas de π , es natural decir que los puntos
impropios constituyen la recta impropia o recta del infinito del plano π .
Capítulo I
Fundamentos de Geometría Proyectiva
6
Si a los puntos del plano π se les añaden los puntos impropios, se tiene el plano proyectivo: “Es
equivalente al conjunto de rectas que pasan por un punto del espacio" (considerando a estas
rectas como puntos y a los planos como rectas del plano proyectivo).
1.3 Subespacios proyectivos.
Sea E un espacio vectorial de dimensión n+1, sobre un cuerpo conmutativo K, P(E) el espacio
→
proyectivo asociado a E y ϕ :E – { 0 } → P(E) la proyección canónica.
En la interpretación intuitiva de las rectas del plano proyectivo, (apartado B de la página 3),
estas quedan determinadas por los planos (subespacios de dimensión dos) que las proyectan
desde O; o sea, las rectas son las imágenes de los subespacios bidimensionales mediante la
proyección canónica. Esto justifica la siguiente definición general:
→
Se denomina variedad lineal proyectiva de P(E) a la imagen ϕ (F – { 0 }), donde F es un
subespacio vectorial de E.
Toda variedad lineal proyectiva correspondiente a un subespacio vectorial F ⊂ E, coincide con
el espacio proyectivo P(F) asociado a F.
→
Demostración: Es evidente que la relación de equivalencia definida en F – { 0 } para construir
el espacio P(F) es la inducida por la correspondiente relación de equivalencia definida en E –
→
{ 0 } para obtener P(E).
Esta proposición nos da pie para denominar a las variedades lineales proyectivas subespacios
proyectivos.
Casos particulares de subespacios proyectivos:
a) Si dim F = 2, a P(F) se le denomina recta (subespacio proyectivo de dim P(F) = 1).
b) Si dim F = 3, a P(F) se le denomina plano (subespacio proyectivo de dim P(F) = 2).
c) Si dim F = n, a P(F) se le denomina hiperplano (subespacio proyectivo de dim P(F) = n -1).
1.3.1
Intersección de subespacios proyectivos.
Si P(F) y P(G) son subespacios proyectivos de P(E) deducido de los subespacios vectoriales F
y G, respectivamente, entonces.
P(F) ∩ P(G) = P(F ∩ G)
Es decir, la intersección de subespacios proyectivos es un espacio proyectivo.
Demostración.→
→
X ∈ P(F ∩ G) ⇔ ( ∃ x ∈ F ∩ G - { 0 } /
→
→
ϕ ( x ) =X)
→
→
→
→
⇔ ( ∃ x ∈ F - { 0 } / ϕ ( x ) =X) y
→
( ∃ x ∈ G - { 0 } / ϕ ( x ) =X) ⇒ X ∈ P(F) ∩ P(G) .
→
→
→
→
→
→
X ∈ P(F) ∩ P(G) ⇔ ( ∃ x ∈ F - { 0 } / ϕ ( x ) =X) y ( ∃ x ∈ G - { 0 } / ϕ ( x ) =X) ⇒ ∃
λ ∈ K – {0} e y = λ x ⇒ y ∈ F ∩ G – {0} ⇒
ϕ (y) ∈ P(F ∩ G).
CAPITULO II
Capítulo II Geometría de la cámara
8
Geometría de la cámara.
2 Introducción.
Los puntos principales que se ven en esta parte son:
•
•
•
Una proyección perspectiva de la cámara es representada por una matriz de3x4.
La transformación de perspectiva mas general entre dos planos (un mundo plano y la
imagen plana, o dos imágenes planas inducidas en un mundo plano) es la
transformación de un plano proyectivo. Esto puede ser computado por la
correspondencia de cuatro (o más) puntos.
El conocer los valores de una coordenada en píxeles, puede ser de utilidad para obtener
el valor de la coordenada en pantalla mediante una operación matricial simple.
2.1. Geometría de imágenes.
2.1.1. Proyección en perspectiva
⎛x ⎞ ⎛x⎞
⎜ ⎟ ⎜ ⎟
λ ⎜ y ⎟=⎜ y⎟
⎜ f ⎟ ⎜z ⎟
⎝ ⎠ ⎝ ⎠
En donde λ =z / f
Figura2.1.Proyección en perspectiva de una imagen.
Esto puede ser escrito como un mapeo lineal entre coordenadas homogéneas:
⎛x ⎞
⎜ ⎟
⎜y⎟
⎜f⎟
⎝ ⎠
=
⎡1000 ⎤
⎢0100⎥
⎥
⎢
⎢⎣0010⎥⎦
⎛x⎞
⎜ ⎟
⎜ y⎟
⎜z ⎟
⎜ ⎟
⎜1 ⎟
⎝ ⎠
Donde una matriz de proyección de 3x4, representa un mapa desde 3D a 2D.
2.1.2. Sistema coordinador de imagen.
Parámetros internos de la cámara:
kx xcam = x-x0
ky ycam = y-y0
Figura2.2.Parámetros internos de la cámara.
Capítulo II Geometría de la cámara
9
Donde las unidades de kx, ky están dado por pixeles/longitud.
⎡
⎛x⎞
⎜ ⎟ 1 ⎢α X
X =⎜ y⎟ =
⎢
⎜1 ⎟ f ⎢
⎝ ⎠
⎣
α
⎛ xcam ⎞
X 0⎤ ⎛⎜ xcam ⎞⎟
⎜
⎟
⎥⎜
⎜
⎟
Y0⎥ y
=K y ⎟
⎜ cam ⎟
⎜ cam ⎟
1 ⎥⎦ ⎜ f ⎟
⎜f ⎟
⎝
⎝
⎠
⎠
Y
En donde α x = f kx y α y = f ky
2.1.3. Matriz de calibración de la cámara.
k es una matriz diagonal superior de 3x3, llamada matriz de calibración de la cámara:
⎡α X
⎢
K= ⎢
⎢⎣
•
•
α
Y
X 0⎤
⎥
Y0⎥
1 ⎥⎦
Hay cuatro parámetros:
(i)
La escala de la imagen en la dirección x y y, αx y αy
(ii)
El punto principal (xo, yo), que el punto donde el eje óptico interfecta el plano.
La razón de aspecto es: (αx / αy)
2.1.4. Parámetros de la cámara externa
Figura2.2 Transformación entre el mundo y las coordenadas de la cámara.
Transformación euclidiana entre el mundo y las coordenadas de la cámara
• R es una matriz de rotación de 3x3
• T es un vector de translación de 3x1
Concatenando las tres matrices.
⎛x⎞
⎜ ⎟
X= ⎜ y ⎟ =K
⎜1 ⎟
⎝ ⎠
⎛X⎞
⎜ ⎟
⎡1 0 0 0 ⎤
⎢0 1 0 0⎥ ⎡ ℜ t ⎤ ⎜ Y ⎟ =K [ℜ | t ] X
⎥ ⎢ T 1⎥ ⎜ Z ⎟
⎢
⎦⎜ ⎟
⎢⎣0 0 1 0⎥⎦ ⎣0
⎜1 ⎟
⎝ ⎠
Capítulo II Geometría de la cámara
10
Que define la matriz de proyección de 3 x 4 de el espacio tridimensional euclidiano a la imagen
como
X=PX
[
P= K [ℜ | t ] =K ℜ I |
ℜ
T
t
]
Nota, el centro de la cámara esta en (X,Y,Z)T= - ℜ Tt
En adelante será común solo la forma 3x4 de p que es importante, preferible a su
descomposición.
2.2 Una cámara proyectiva.
El modelo de la cámara para la proyección perspectiva es un mapa lineal entre los puntos
coordinados homogéneos
⎛X⎞
⎜ ⎟
⎛x⎞
⎜ ⎟
⎜Y ⎟
⎜ y ⎟ [P(3 × 4)] ⎜ ⎟
Z
⎜1 ⎟
⎜ ⎟
⎝ ⎠
⎜1 ⎟
⎝ ⎠
•
•
•
El centro de la cámara es el vector nulo de p, es decir
Si P=[I | 0] entonces el centro es X=(0,0,0,1)Τ .
P tiene 11 grados de libertad (parámetros esenciales).
P tiene rango 3
2.2.1. ¿Qué da la calibración?
•
•
•
K proporciona la transformación entre el punto de una imagen y un rayo en el espacio
tridimensional de euclides
Una vez que K es conocido la cámara está calibrada
Una cámara calibrada es un sensor de dirección, capaz de medir la dirección del rayo –
como un transportador de 2D.
⎛ x ⎞ ⎡α X
⎜ ⎟ ⎢
X= ⎜ y ⎟ = ⎢
⎜1 ⎟ ⎢
⎝ ⎠ ⎣
α
Y
X 0⎤ ⎛⎜ xcam ⎞⎟
⎥
Y 0 ⎥ ⎜ y ⎟ =Kd
⎜ cam ⎟
1 ⎥⎦ ⎜ f ⎟
⎝
⎠
Capítulo II Geometría de la cámara
11
2.2.2. Ángulos entre líneas.
En donde ω = (KKT)-1
2.2.3. Calibración de la cámara.
Declaración de problema:
Dadas n correspondencias xi ↔ Xi donde Xi es un punto en el lugar y xi su imagen:
Calcular
P= [R | t] tal que xi =PXi .
El algoritmo para la calibración de la cámara tiene dos partes
(i) calcular la matriz P de un conjunto de puntos de correspondencia.
(ii) Descomponer P en K, R a través de la descomposición QP.
Paso 1 del algoritmo: Calcular la matriz P:
Xi=PXi
Cada correspondencia genera dos ecuaciones:
p +p y+p z+p
x p +p y+p +p
x
z
i
11
=
12
i
31
32
i
13
i
i
33
i
p x+p y+p z+p
y
p x+p y+p z+p
14
=
21
i
22
i
23
i
24
31
i
32
i
33
i
34
i
31
Despejando obtenemos las ecuaciones lineales en la matriz de elementos de P
x (p x + p y + p z + p ) = p x + p y + p z + p
y (p x + p y + p z + p ) = p x + p y + p z + p
i
i
31
31
i
32
i
32
33
i
i
33
i
34
i
34
i
11
21
12
i
13
i
22
i
23
i
14
i
Estas ecuaciones podemos arreglarlas como:
⎛X
⎜⎜
⎝0
Y
0
Z
0
1
0
0
X
0
Y
0
Z
0 − xX
1 − yX
− xY
− yY
Con p=(p11, p12, p13, p14, p21, p22, p23, p24, p31, p32, p33, p34)
Un 12-vector
− xZ
− yZ
− x⎞
⎟ p=0
− y ⎟⎠
34
Capítulo II Geometría de la cámara
12
Resolviendo para P
(i)
concatenamos la ecuación de (n≥6) correspondencias para generar 2n ecuaciones
simultáneas, que pueden ser escritas: Ap=0, donde A es una matriz de 2n x 12.
(ii)
En general esta no será una solución exacta, pero una solución (lineal) que minimiza
|Ap|, sujeto a |p|=1 es obtenido del eigenvector con al menos un eigenvalor de AΤA. O
equivalentemente de un vector correspondiente a un valor singular más pequeño del
SVD de A.
(iii)
Esta solución lineal es entonces usada como el punto inicial para una minimización no
lineal de las diferencias entre las mediciones y el punto de proyección:
min
p
∑ ((x , y ) − P(x , y , z ,1))
2
i
i
i
i
i
i
2.2.3.1. Ejemplos de objetos calibrados.
Figura2.3 Ejemplo de objetos calibrados .
Determinar la posición exacta de la esquina mediante:
(i)
extraer y ligar las orillas usando el operador de orillas astutas
(ii)
ajustar las líneas de las orillas usando regresiones ortogonales
(iii)
intersectar líneas para obtener las esquinas por precisión de sub-pixeles.
El error final entre los puntos medidos y proyectados es típicamente menor a 0.2 pixeles.
Paso 2 del algoritmo: descomponer P en K, R y t
La primer submatriz de 3x 3, M, es el producto de (M=KR) de una matriz triangular de rotación
superior.
(i)
Factorizar M en KR usando la matriz de descomposición QR. Esto determina K y R.
(ii)
Entonces.
t=
K (p , p , p
−1
14
24
)
T
34
Capítulo II Geometría de la cámara
13
Nota. Esto produce una matriz con un parámetro extra distorsionado s
⎡α X
⎢
K= ⎢
⎢⎣
α
Y
X 0⎤
⎥
Y0⎥
1 ⎥⎦
Con s=tan θ, y θ el ángulo entre los ejes de la imágenes.
2.3. Perspectiva débil.
Proyectar, mientras se enfoca para mantener el tamaño de la imagen fija.
Figura 2.4. Proyección de una imagen .
Las líneas de la imagen se convierten paralelas, y el resultado es:
⎡ r11
⎢
P=K ⎢r 21
⎢⎣ 0
r
r
12
22
0
r
r
*⎤
⎥
*⎥
*⎥⎦
13
23
0
Una generalización de la cámara afín
2.3.1. La cámara afín.
⎡ m11
⎢
P= ⎢m21
⎢⎣ 0
m m t ⎤⎥
m m t⎥
12
13
22
23
0
0
1
2
1 ⎥⎦
La matriz M2x3 tiene rango dos.
La proyección bajo la cámara afín es un mapa lineal sobre coordenadas no homogéneas
compuestas con una transición:
⎛ x ⎞ ⎡ m11
⎜⎜ ⎟⎟ = ⎢
⎝ y ⎠ ⎣m21
m
m
12
22
⎛X⎞
⎤ ⎜ ⎟ ⎛ t1 ⎞
⎥ ⎜ Y ⎟ + ⎜⎜ ⎟⎟
23⎦ ⎜
⎟ ⎝t 2 ⎠
⎝Z ⎠
m
m
El punto (t1, t2) es una imagen del mundo original.
• El centro de la cámara afín es el infinito
• Una cámara afín tiene 8 grados de libertad
• Modela perspectiva débil y para-perspectiva
13
Capítulo II Geometría de la cámara
14
2.4. Transformación del plano proyectivo.
Figura 2.5. El plano proyectivo.
Se escoge el sistema coordinado del espacio tal que el plano de los puntos tenga coordenada
cero z. Entonces la matriz P de 3x4 se reduce a
⎛ x1 ⎞ ⎡ p
⎜ ⎟ ⎢ 11
⎜x ⎟=⎢p
⎜ 2 ⎟ ⎢ 21
⎜ ⎟ ⎢p
⎝ x3 ⎠ ⎣ 31
p
p
p
12
22
32
p
p
p
13
23
33
⎤
⎥
⎥
24
⎥
34 ⎥
⎦
p
p
p
14
⎛X⎞ ⎡
⎜ ⎟ p11
⎜Y ⎟ ⎢
⎜ 0 ⎟ = ⎢ p21
⎜ ⎟ ⎢p
⎜1 ⎟ ⎢⎣ 31
⎝ ⎠
p
p
p
12
22
32
⎤ ⎛X ⎞
⎥⎜ ⎟
⎥ ⎜Y ⎟
24
⎥⎜ ⎟
1
34 ⎥
⎦⎝ ⎠
p
p
p
14
Que es una matriz de 3x3 que representa una transformación del plano general al plano
proyectivo.
⎛ '⎞
⎜ x1 ⎟ ⎡ h11
⎜ '⎟ ⎢
⎜ x2 ⎟ = ⎢h21
⎜⎜ ' ⎟⎟ ⎢⎣h31
⎝ x3 ⎠
h
h
h
12
22
32
⎤ ⎛⎜ x1 ⎞⎟
⎥⎜ ⎟
23⎥ x 2
⎜ ⎟
⎥⎜ ⎟
33 ⎦ ⎝ x3 ⎠
h
h
h
13
O x’ =Hx, donde H es una matriz no particular homogénea de 3x3.
•
•
•
•
Esta es la transformación más general entre el mundo y el plano de la imagen bajo la
perspectiva de la imagen de la cámara.
Es por lo general solo la forma de la matriz 3x3 que es importante para establecer
propiedades de esta transformación.
Una transformación proyectiva es también llamada una “homografía” y una “colineación”.
H tiene 8 grados de libertad.
Capítulo II Geometría de la cámara
15
2.4.1. Cuatro puntos definen una transformación proyectiva.
Dado un punto de correspondencia n (x, y) ↔ (x’, y’)
Calcular H tal que x’i = Hxi
'
x h
x= =
x h
'
•
•
1
'
11
3
31
x + h12 y + h13
x + h32 y + h33
2
'
21
3
31
x + h22 y + h23
x + h32 y + h33
Cada punto de correspondencia da dos limitaciones y despejando genera dos ecuaciones
lineales para elementos de H
x (h
y (h
'
31
'
31
•
•
'
y =x =h
x h
'
x + h32 y + h33 ) = h11 x + h12 y + h13
x + h32 y + h33 ) = h21 x + h22 y + h23
Si n≥4 (tres puntos no colineales), entonces H determinado únicamente.
La conversión de esto es lo que hace posible la transformación de cualesquiera cuatro
puntos la posición general a cualesquiera otros cuatro puntos de la posición general por una
proyección.
2.5. Ejemplos prácticos.
2.5.1. Removiendo la distorsión de la perspectiva.
Dadas las coordenadas de cuatro puntos en el plano encontrar la rectificación proyectiva
en el plano.
Figura 2.6.Rectificación proyectiva del plano
•
•
Esta rectificación no requiere conocimiento de ninguno de los parámetros de la cámara o de
la postura del plano
No es siempre necesario conocer coordenadas para cuatro puntos
Capítulo II Geometría de la cámara
16
2.5.1. 1. El cono de líneas.
Una imagen es la intersección de un plano con el cono de líneas entre puntos en el espacio
tridimensional y el centro óptico. Cualesquiera dos imágenes (con el mismo centro de cámara)
están relacionadas por la transformación proyectiva del plano.
Es decir, rotación con respecto al centro de la cámara.
2.5.2. Rotaciones sintéticas.
Figura 2.7.Rotaciones Sintéticas
Las imágenes sintéticas son producidas por el barrido proyectivo de la imagen original, de tal
modo que las cuatro esquinas del mapa de la imagen del rectángulo van a las esquinas del
rectángulo. Ambos barridos corresponden a la rotación sintética de la cámara con respecto al
centro de la cámara (ajustada).
2.5.3. Relación entre la cordeada de un píxel y la coordenada en pantalla.
Hay una relación entre coordenada del píxel y coordenada en la pantalla. De una manera
intuitiva se ve que se puede pasar de una a la otra por un cambio de la marca de referencia que
resulta adentro.
U=C*(x/f)
Figura 2.7.Relación entre las coordenadas del píxel y las de la pantalla.
Capítulo II Geometría de la cámara
17
En donde:
U=(u,v) : Son las coordenadas del píxel.
x=(x,y,f): Son las coordenadas de pantalla.
f
Es el foco.
⎛α
⎜
C= ⎜ γ
⎜0
⎝
β
δ
0
u ⎞⎟
v ⎟⎟
0
0
1⎠
l y h son el largo y ancho del plano de la imagen respectivamente, nl y nh, el número del pixel
en longitud y altura en la pantalla.
Estos elementos permiten definir la siguiente matriz.
C=
nl /(l / f ) nl / 2 ⎞
0
⎛
⎜
⎟
nh / 2 ⎟
0
⎜ − nh /( h / f )
⎜
0
0
1 ⎟⎠
⎝
Al conocer la coordenada del pixel, uno puede encontrar la coordenada en la pantalla usando
una operación matricial simple.
(x/f)= C −1 *u
Para mas detalles con respecto a este punto ver Anexo III
2.6 Geometría de dos vistas.
•
•
Cámaras P y P’ de tal modo que
X=PX x’=PX
La línea de fondo entre las cámaras no es cero
Dado un punto de la imagen en la primera vista, ¿donde está el punto de correspondencia de la
segunda vista?
¿Cuál es la posición relativa de las cámaras?
¿Cuál es la geometría tridimensional de la escena?
Capítulo II Geometría de la cámara
18
2.6.1. Imágenes del plano
•
H puede ser calculado desde la correspondencia de cuatro puntos sobre el plano.
2.6.2. Geometría de la correspondencia
Dada la imagen de un punto en una vista, que podemos decir con respecto a su posición en otra
vista?
Un punto en una imagen “genera” una línea en otra imagen.
Esta línea es conocida como línea epipolar, y la geometría que le da lugar es conocida como
geometría epipolar.
CAPITULO III
Capítulo III Generación de bordes
20
Generación de bordes.
3 Introducción.
Podemos definir el término borde como píxeles alrededor de los cuales la imagen
presenta una brusca variación en los niveles de gris.
Borde se refiere a cadenas conectadas de puntos de borde, es decir, fragmentos de
contorno, cabe mencionar que esto no impide que la imagen también pueda contener
puntos aislados que presentan un alto contraste en los niveles de gris. Los puntos de
borde son también denominados en terminología anglosajona “edgels”.
Existen varias razones que sostienen el interés por los bordes, de manera particular, las
líneas de las imágenes, las curvas y contornos son elementos básicos para muchas
aplicaciones tales como estereopsis, calibración, movimiento o reconocimiento, así
como sistemas de visión.
Cabe mencionar que la filosofía básica de muchos algoritmos de detección de bordes es
el cómputo de operadores derivada locales (primera o segunda).
3.1 Concepto de Derivada en la extracción de Bordes.
Podemos observar en la imagen 3.1 que los bordes se modelan como una rampa en
lugar de hacerlo como un cambio brusco de intensidad, debido a que en la imagen
original suelen estar desdibujados como resultado del muestreo.
La primera derivada es cero en rodas las regiones de intensidad constante y tiene un
valor constante en toda la transacción de intensidad. Por otra parte la segunda derivada
es cero en todos los puntos, excepto en el comienzo y el final de una transacción de
intensidad. Por lo tanto un cambio de intensidad se manifiesta como un cambio brusco
en la primera derivada y presenta un paso por cero, es decir, produce un cambio de
signo en su valor, en la segunda derivada.
En base a lo anterior podemos determinar que el valor de la primera derivada puede
utilizarse para detectar la presencia de un borde, así como el signo de la segunda
derivada.
Capítulo III Generación de bordes
21
3.2 Operadores Primera Derivada.
3.2.1 Operador Gradiente.
El gradiente de una imagen f(x,y) en un punto (x,y) se define como un vector
bidimensional dado por la ecuación (3.1 ),siendo un vector perpendicular al borde donde
⎤
⎡∂
⎡G x ⎤ ⎢ ∂x f ( x, y )⎥
⎥
G [ f ( x, y ) ] = ⎢ ⎥ = ⎢
⎢⎣G y ⎥⎦ ⎢ ∂ f ( x, y ⎥
⎥⎦
⎢⎣ ∂y
Ecuación 3.1 Gradiente de una imagen.
el vector G apunta en la dirección de variación máxima de f en el punto (x,y) por
unidad de distancia con la magnitud y dirección dadas por.
G=
G
2
x
+
G
φ ( x, y ) = tan
2
y
Ecuación 3.2 Magnitud de G
−1
G
G
y
x
Ecuación 3.3 Dirección de G
Podemos aproximar la magnitud del gradiente mediante valores absolutos
G ≈
G +G
x
y
Ecuación 3.4 Aproximación de la magnitud del gradiente.
Esto se hace debido a que la magnitud del gradiente no es tan importante como la
relación entre diferentes valores. Es decir se va a decidir si un punto es de borde según
si la magnitud del gradiente supere o no un determinado umbral.
Para calcular la derivada en la ecuación 3.1 se pueden utilizar las diferencias de primer
orden entre dos pixeles adyacentes como se muestra a continuación.
G
=
x
f ( x + Δx) − f ( x − Δx)
2Δx
G
y
=
f ( y + Δy ) − f ( y − Δy )
2Δy
Ecuación 3.5 Diferencias entre dos pixeles.
Esta es la forma más elemental de obtener el gradiente de un punto. La magnitud del
gradiente puede tomar cualquier valor real, y el ángulo también puede obtener valores
entre 0o y 360o.
Capítulo III Generación de bordes
22
3.2.2 Operadores de Sobel
En general los operadores gradiente tienen el efecto de magnificar el ruido subyacente
en la imagen, tanto los operadores de Sobel como el resto de los operadores de vecindad
tienen la propiedad añadida de suavizar la imagen, eliminando parte del ruido y por
consiguiente minimizar la aparición de falsos bordes debido al efecto de magnificación
del ruido por parte de los operadores derivada.
Podemos entonces determinar los operadores de Sobel como sigue.
Gx =(z3+2z6+z9) - (z1+2z4+z7)
Gy =(z7+2z8+z9) - (z1+2z2+z3)
Ecuación 3.6 Operadores de Sobel.
En donde los distintos valores de z son los niveles de gris de los píxeles solapados por
las mascaras en cualquier localización de la imagen. Para obtener los valores de las
componentes del vector gradiente en el punto definido por el píxel central de la región
se utiliza la ecuación 3.6 por lo que la magnitud y el ángulo se pueden obtener a partir
de las ecuaciones 3.2, 3.3 y 3.4. En otras palabras podemos decir obtenemos un valor
del gradiente en dicho punto. Para obtener el siguiente valor las mascaras se mueven a
la siguiente posición del nuevo píxel y se repite el proceso, después de haber barrido
todas las posible posiciones, el resultado es una imagen gradiente. Es preciso tener en
cuenta que en los bordes de la imagen los valores del gradiente no se pueden calcular
por sobrepasar las mascaras de la propia imagen. Una vez que se ha obtenido la
magnitud del gradiente se puede decir si un determinado punto es de borde o no
aplicando la siguiente ecuación que nos permite obtener una imagen binaria como
resultado.
⎧1 si G[f(x, y)] > T
g(x,y)= ⎨
⎩0 si G[f(x, y)] ≤ T
Ecuación 3.7 Generación de una imagen binaria.
En donde T es un umbral no negativo. Solo los píxeles de borde cuyo gradiente
excedan el valor de T se consideran importantes. De manera que la ecuación (3.7) se
puede ver como un procedimiento que extrae solo aquellos píxeles caracterizados por
transiciones de intensidad significativas (dependiendo de T).
⎡ z1 z 2 z 3 ⎤
⎥
⎢
⎢ z 4 z5 z 6⎥
⎥
⎢
⎢⎣ z 7 z8 z 9 ⎥⎦
(a)
⎡ − 1 0 1⎤
⎢ − 2 0 2⎥
⎥
⎢
⎢⎣ − 1 0 1 ⎥⎦
(b)
⎡− 1 − 2 − 1⎤
⎢0
0
0 ⎥⎥
⎢
⎢⎣ 1
2
1 ⎥⎦
(c)
Figura 3.1 (a) Región de la imagen de dimensión 3x3; (b) Máscara usada para obtener G
para obtener G y.
x;
(c) Máscara usada
Capítulo III Generación de bordes
23
3.2.3 Operador de Prewitt.
Este operador es similar al operador de Sobel la diferencias radica en los coeficientes de
las mascaras.
⎡− 1 0 1⎤
⎢− 1 0 1⎥
⎥
⎢
⎢⎣− 1 0 1⎥⎦
(a)
1
1⎤
⎡1
⎢0
0
0 ⎥⎥
⎢
⎢⎣− 1 − 1 − 1⎥⎦
(b)
Figura 3.2 (a) Máscara usada para obtener G x en el punto central de una región de dimensión 3x3; (b) Máscara
usada para obtener G y en el mismo punto.
Estas máscaras de denominan operadores de Prewitt.
La magnitud y dirección del gradiente se obtienen como en el caso de Sobel ver
ecuaciones (3.2),(3.3) y (3.4).
3.2.4 Operador de Roberts.
Este operador a diferencia de los anteriores, marca solamente los puntos de borde, sin
informarnos sobre la orientación de éstos. Existen dos formas del operador de Roberts:
1) raíz cuadrada de la suma de las diferencias de los vecinos diagonales al
cuadrado.
([ f ( x, y) − f ( x − 1, y − 1]
2
+ [ f ( x, y − 1) − f ( x − 1, y )]
2
)
Ecuación 3.8 Primer forma del operador de Prewitt.
2) suma de magnitud de las diferencias de los vecinos diagonales.
f ( x, y ) − f ( x − 1, y − 1) + f ( x, y − 1) − f ( x − 1, y )
Ecuación 3.9 Segunda forma del operador de Prewitt.
3.3 Extensión de Operadores.
Si una imagen contiene ruido el resultado de la detección de bordes es relativamente
malo. Para esto podemos procesar previamente la imagen con la intención de eliminar el
ruido. Otra manera es expandir los operadores de borde.
Capítulo III Generación de bordes
24
Una manera de generar mascaras para obtener G y en el caso de Sobel y G x en el caso de
Prewitt es la siguiente.
⎡1
⎢1
⎢
⎢1
⎢
⎢1
⎢1
⎢
⎢1
⎢1
⎣
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
−1
−1
−1
−1
−1
−1
−1
(a)
−1
−1
−1
−1
−1
−1
−1
− 1⎤
− 1⎥⎥
− 1⎥
⎥
− 1⎥
− 1⎥
⎥
− 1⎥
− 1⎥⎦
⎡− 1 − 1 − 1 − 2 − 1 − 1 − 1⎤
⎢− 1 − 1 − 1 − 2 − 1 − 1 − 1⎥
⎢
⎥
⎢− 1 − 1 − 1 − 2 − 1 − 1 − 1⎥
⎢
⎥
0
0 0 0⎥
⎢0 0 0
⎢1 1 1
2
1 1 1⎥
⎥
⎢
2
1 1 1⎥
⎢1 1 1
⎢1 1 1
2
1 1 1 ⎥⎦
⎣
(b)
Figura 3.3 (a) Extensión de los operadores de Prewitt para obtener G x ;(b) Extensión de los operadores de Sobel
para obtener G y .
Una ventaja es que se pueden rotar estas máscaras 90o en cualquiera de los dos sentidos para
obtener las mascaras complementarias, es decir las mascaras utilizadas para calcular G y en el
caso de Prewitt, y G x en el caso de Sobel, por lo que se podría obtener la magnitud y dirección
del gradiente.
3.4 Algoritmo de Canny.
Este esta fundamentado en la teoría de operadores primera derivada, una de sus
particularidades es extraer bordes y cerrar contornos evitando posibles rupturas de los
mismos durante su extracción. Lo podemos desglosar en tres módulos.
1) Obtención del gradiente (magnitud y ángulo en cada píxel).
2) Adelgazamiento del ancho de los bordes, hasta lograr bordes de un píxel de ancho.
3) Histéresis de umbral al resultado de la supresión no máxima.
1) Obtención del gradiente.
La entrada es una imagen I corrompida por el ruido. Sea H un núcleo Gaussiano
discreto con media de cero y desviación estándar σ .
a) Suavizar la imagen con dicho núcleo para obtener una imagen de salida J.
b) Para cada píxel (i,j) en J obtener la magnitud y módulo del gradiente como se ha
explicado anteriormente. Se obtienen dos imágenes de salida: Em de la magnitud
del gradiente y Ea del ángulo del gradiente, de acuerdo a las ecuaciones (3.2),
(3.3) y (3.4).
2) Supresión no máxima al resultado del gradiente.
Con Em y Ea como entradas y una nueva imagen IN como salida, considerar las cuatro
direcciones d1, d2, d3, d4 identificarlas por las orientaciones de 0o, 45o, 90o, y 135o con
respecto al eje horizontal para cada píxel (i,j):
a) Encontrar la dirección dk que mejor se aproxima a la dirección Ea(i,j) (la
perpendicular al borde).
Capítulo III Generación de bordes
25
b) Si Em(i,j) es mas pequeño que al menos uno de sus dos vecinos en la dirección
dk, al píxel (i,j) de IN se le asigna el valor 0, In(i,j)=0 (supresión); de otro modo
In(i,j)=Em(i,j).
La salida IN(i,j) es una imagen con los bordes adelgazados (esto es Em(i,j) después de la
supresión no máxima de puntos de borde).
3) Histéresis de umbral a la supresión máxima.
La salida IN(i,j) suele contener máximos locales creados por el ruido, por lo cual se
podría intentar eliminar los píxeles por debajo de un determinado umbral, sin embargo
esto presenta dos problemas.
a) Si se elige un umbral bajo en el intento de capturar bordes verdaderos pero con
un valor pequeño en la magnitud del gradiente, algunos puntos de ruido serán
también aceptados solo como validos (falsos bordes).
b) Los valores de bordes verdaderos máximos pueden fluctuar por arriba y por
debajo del umbral lo que produce un fragmentado del borde.
Una solución puede ser la histéresis de umbral cuyo algoritmo es el siguiente.
a) Tomar como entrada, IN que es la salida del módulo anterior, E0 la orientación
de los puntos de borde de la imagen y dos umbrales t1 y t2 tales que t1 < t2.
b) Para todos los puntos de IN y explorando IN en un orden fijo.
b.1) Localizar el siguiente punto de borde no explorado previamente, IN(i,j),
talque IN(i,j) > t2.
b.2) Comenzar a partir de IN(i,j), seguir las cadenas de máximos locales
conectados en ambas direcciones perpendiculares a la normal del borde, siempre
que IN>t1. Marcar todos los puntos explorados y salvar la lista de todos los
puntos en el contorno conectado encontrado.
c) La salida es un conjunto de bordes conectados de contornos de la imagen, así
como la magnitud y orientación, describiendo las propiedades de los puntos de
borde.
La histéresis encuentra cadenas de píxeles conectados por lo que, además, se puede
utilizar para la obtención de curvas.
4) Cierre de contornos abiertos.
Al extraer contornos en la imagen no suele presentarse con los contornos cerrados. Esto
quiere decir que a la hora de determinar si un contorno delimita una región o no, existe
la problemática de determinar su cierre.
Capítulo III Generación de bordes
26
A continuación se presenta el algoritmo de Deriche y Cocquerez para llevar a cabo el
cierre de bordes. Este algoritmo busca los extremos de los contornos abiertos y sigue la
dirección del máximo gradiente hasta cerrarlos con otro extremo abierto.
Algoritmo de Deriche y Cocquerez.
a) La imagen de entrada es una imagen de contornos de borde binarizada, donde
los puntos de borde se codifican con valor 1 y el resto con valor 0.
b) Para cada punto de borde perteneciente al extremo de un contorno abierto de la
imagen de entrada, determinar a cuál de los ocho patrones de puntos extremos
corresponde el borde de dicho punto. A cada patrón se le asigna un código que
codifica las coordenadas de los píxeles que determinan tres posibles direcciones
por las que se debe buscar el cierre del contorno.
c) Cuando alguno de los tres píxeles que marcan la dirección de búsqueda es ya un
píxel de borde, se asume que el contorno se ha cerrado.
d) En caso contrario, se examina el valor del gradiente en los píxeles que definen
las tres direcciones posibles y se elige el píxel con el valor del máximo
gradiente. Dicho píxel se marca como nuevo píxel de borde.
e) Se repiten los pasos anteriores para este nuevo extremo abierto hasta encontrar el
cierre del contorno. También se podría determinar la parada tras un cierto
número de iteraciones o cuando el número de píxeles que cambian de una
iteración a la siguiente es inferior a un determinado valor f.
Conviene reseñar que una de las características que se le exigen al detector de bordes es
que los bordes que produzca tengan una anchura de un píxel.
3.5 Operadores Segunda Derivada.
3.5.1 Operador Laplaciana.
La Laplaciana de una función 2-D f(x,y) es un operador segunda derivada definido
como.
2
∂2 f ∂2 f
∇ f= 2 + 2
∂x
∂y
Ecuación 3.10 Definición de la Laplaciana
Como en el caso del gradiente, la ecuación (3.10) se puede implementar en forma digital
de varias formas, una de ellas es la siguiente.
2
∇ f =4z5-(z2+z4+z6+z8)
Ecuación 3.11 Definición de la Laplaciana en forma digital.
El requisito básico para definir la Laplaciana digital es que los coeficientes asociados
con el píxel central y los coeficientes asociados con el resto de píxeles sean negativos.
Puesto que la Laplaciana es una derivada, la suma de los coeficientes debe ser cero. Por
tanto, la respuesta es cero siempre que el punto en cuestión y sus vecinos tienen el
mismo valor.
Capítulo III Generación de bordes
27
Las tres máscaras Laplacianas de la figura (3.4) representan diferentes aproximaciones
del operador laplaciano. A diferencia de las máscaras primera derivada, éstas son
simétricas rotacionalmente, lo que significa que son capaces de detectar bordes en todas
las direcciones espaciales. Se aplican seleccionando una máscara y realizando una
operación de convolución sobre la imagen. El signo del resultado (positivo o negativo)
de dos píxeles adyacentes proporciona información direccional y nos dice qué lado del
borde es más o menos oscuro.
⎡ 0 −1 0 ⎤
⎢− 1 4 − 1⎥
⎢
⎥
⎢⎣ 0 − 1 0 ⎥⎦
⎡ 1 −2 1 ⎤
⎢ − 2 4 − 2⎥
⎢
⎥
⎢⎣ 1 − 2 1 ⎥⎦
⎡− 1 − 1 − 1⎤
⎢− 1 8 − 1⎥
⎢
⎥
⎢⎣− 1 − 1 − 1⎥⎦
(a)
(b)
(c)
Figura 3.4 (a) Implementación digital del operador Laplaciano
Para ver las aplicaciones correspondientes a este capítulo ver Anexo II
CAPITULO IV
Capítulo
IV
Cuaterniones y álgebra geométrica
29
Cuaterniones y algebra geométrica.
4 Introducción
Los Cuaterniones son una extensión de los números reales, similar a la de los números
complejos. Mientras que los números complejos son una extensión de los reales por la
adición de la unidad imaginaria i, tal que i2 = − 1, los cuaterniones son una extensión
generada de manera análoga añadiendo las unidades imaginarias: i, j y k a los números
reales y tal que i2 = j2 = k2 = ijk = − 1. Esto se puede resumir en esta tabla de
multiplicación.
1 i j k
1 1 i j k
i i -1 k -j
j j -k -1 i
k k j -i -1
1, i, j, k, son entonces las "bases" de las componentes de un cuaternión.
4.1
Historia
Los cuaterniones fueron descubiertos por William Rowan Hamilton en 1843. Hamilton
buscaba formas de extender los números complejos (que pueden interpretarse como
puntos en un plano) a un número mayor de dimensiones. No pudo hacerlo para 3
dimensiones, pero para 4 dimensiones obtuvo los cuaterniones. Según una historia
relatada por el propio Hamilton, la solución al problema que le ocupaba le sobrevino un
día que estaba paseando con su esposa, bajo la forma de la ecuación: i² = j² = k² = ijk = 1. Inmediatamente, grabó esta expresión en el lateral del puente de Brougham, que
estaba muy cerca del lugar.
Hamilton popularizó los cuaterniones con varios libros, el último de los cuales,
Elements of Quaternions, tenía 800 páginas y fue publicado poco después de su muerte.
4.2
Detalles Algebraicos
Los cuaterniones son un ejemplo de cuerpo asimétrico (a veces llamado anillo con
división), una estructura algebraica parecida a un cuerpo pero no conmutativo en la
multiplicación, es decir: satisfacen todas las propiedades de un campo con excepción de
M2 .
La multiplicación es asociativa y todo cuaternión no nulo posee un único inverso.
Forman un álgebra asociativa 4-dimensional sobre los reales y los complejos forman un
subconjunto de ella, los cuaterniones no forman un álgebra asociativa sobre los
complejos.
Usando la función distancia definida como d(z,w) = |z - w|, los cuaterniones forman un
espacio métrico y todas las operaciones aritméticas son continuas.
Capítulo
IV
Cuaterniones y álgebra geométrica
30
El conjunto de los cuaterniones de valor absoluto 1 forman una esfera 3-dimensional S³
y un grupo (incluso grupo de Lie) con la multiplicación. Este grupo actúa, mediante
conjugación, sobre la copia de R³ constituida por los cuaterniones cuya parte real es
cero. No es difícil comprobar que la conjugación por un cuaternión unidad de parte real
cos t es una rotación de ángulo 2t con el eje de giro en la dirección de la parte
imaginaria.
Así, S³ constituye un recubrimiento doble del grupo SO(3) de matrices ortogonales 3x3
de determinante 1; es isomorfo a SU(2), el grupo de matrices 2x2 complejas unitarias y
de determinante unidad.
Sea A el conjunto de cuaterniones de la forma a + bi + cj + dk donde a, b, c y d son, o
todos enteros o todos racionales con numerador impar y denominador 2. El conjunto A
es un anillo y un retículo . Hay 24 cuaterniones unitarios en este anillo y son los vértices
de un politopo regular, llamado {3,4,3} en la notación de Schlafli.
4.3
Aplicaciones
En la teoría de números los cuaterniones pueden ser usados para llevar a cabo las
pruebas de varios teoremas como los de Lagrange.
Los cuaterniones en física representan rotaciones en el espacio, véase cuaterniones y
rotación en el espacio. Además tienen aplicaciones en el electromagnetismo y la
mecánica cuántica.
Los cuaterniones se utilizan a menudo en gráficos por computadora (y en el análisis
geométrico asociado) para representar la orientación de un objeto en un espacio
tridimensional. Las ventajas son: conforman una representación no singular (comparada
con, por ejemplo, los ángulos de Euler), más compacta y más rápida que las matrices.
4.4
Representaciones de los Cuaterniones
4.4.1 Vectoriales
Un cuaternión puede expresarse como el conjunto:
Entonces un cuaternión es un número de la forma a + bi + cj + dk, donde a, b, c, y d son
números reales unívocamente determinados por cada cuaternión.
Análogamente, un cuaternión puede expresarse como el producto interno (componente a
componente) de dos vectores, de los cuales uno es el de las componentes
, y el otro el de las "bases": [1, i, j, k]. En este caso, el elemento
a_1 que forma la componente real se anota aparte, y para el producto interno se
consideran solamente las tres bases i', j, k:
Esta representación tiene algunas ventajas que pueden ser vistas en algunas operaciones
como el producto de cuaterniones.
Capítulo
IV
Cuaterniones y álgebra geométrica
31
4.4.2 Matriciales
Además hay, al menos, dos maneras de representar cuaterniones con matrices.
Usando matrices complejas de 2x2:
Una propiedad interesante de esta representación es que todos los números complejos
son matrices que sólo tienen componentes reales.
Usando matrices reales de 4x4:
El conjugado de un cuaternión x = x1 + x2i + x3j + x4k está dado por:
.
En otras palabras, el conjugado invierte el signo de los componentes "agregados" del
cuaternión.
La medida o valor absoluto de un cuaternión x está dado por:
Se cumple que |zw| = |z| |w| para cualesquiera cuaterniones z y w.
Usando como norma el valor absoluto, los cuaterniones conforman un álgebra de
Banach real.
El inverso multiplicativo de un cuaternión x está dado por:
4.5
Aritmética Básica de Cuaterniones
a = a1 + a2i + a3j + a4kb = b1 + b2i + b3j + b4k
4.5.1 Adición
La adición se realiza análogamente a como se hace con los complejos, es decir: término
a término: a + b = (a1 + b1) + (a2 + b2)i + (a3 + b3)j + (a4 + b4)k
4.5.2 Producto
El producto se realiza componente a componente, y está dado en su forma completa por:
ab = (a1b1 − a2b2 − a3b3 − a4b4) + (a1b2 + a2b1 + a3b4 − a4b3)i + (a1b3 − a2b4 + a3b1 +
a4b2)j + (a1b4 + a2b3 − a3b2 + a4b1)k
Una forma ligeramente más reducida puede ser:
El producto entre cuaterniones es asociativo, no conmutativo.
Capítulo
IV
Cuaterniones y álgebra geométrica
32
4.5.3 Cociente
Usando la forma del inverso, es posible escribir el cociente de dos cuaterniones como:
4.6
Cuaterniones y rotación en el espacio
Se recuerda la versión geométrica del producto de dos cuaterniones, q = (a, u) y q´= (a',
u'), donde a y a´ son las partes reales, u y u´ son las partes imaginarias, también vistas
como vectores del espacio tridimensional R 3 : q.q' = (aa' - u·u', au' + a'u + u×u'). u·u´
designa el producto escalar, y u×u´ el producto vectorial. Notaremos q~ el cuaternión
conjugado de q: q~ = (a, -u).
Para permanecer en el espacio tridimensional, hace falta hacer desaparecer las partes
reales. Tomemos a = a´= 0.
Entonces q . q~ = (0, u)(0, u') = ( - u·u' , u×u´ ).
Bien es sabido que el producto vectorial está relacionado con la rotación en el espacio.
Por lo tanto, a base de productos, debe ser posible expresar cualquier rotación
tridimensional. El objetivo es obtener una fórmula parecida a la expresión compleja de
la rotación en el plano:
z´= wz, con w = e iθ cuando se gira alrededor del origen, y z´ = w(z-c) + c si se rota
alrededor del punto c.
4.6.1
Descubriendo la fórmula
Tomemos el ejemplo más sencillo: ¿Cómo expresar analíticamente la rotación alrededor
de eje de los x,(O,i) con un ángulo de 90 grados?
El vector i debe tener un papel. Miremos a la multiplicación por i por la izquierda: ij = k
(como i×j =k) e ik = -j (como i×k =-j).
Parece por lo tanto que la función f: q → iq es la respuesta a la pregunta. En el plano
(j, k) esa función rota de 90 grados. ¿Pero qué pasa en el resto del espacio? f(i) = ii = -1
y f(1) = i. Por linearidad, nos damos cuenta que hace girar el plano (1, i) de 90 grados
también, y esto ¡no lo queremos! El punto i tiene que permanecer inmóvil, y la función f
no tiene que enviar ni un punto del espacio usual iR + jR + kR en la cuarta dimensión
(aquí, en 1R).
Como sabemos que la multiplicación no es conmutativa en H, cuerpo de los
cuaterniones, miremos al producto por la derecha, por i: g : q → qi. q(j)= ji = - k; q(k) =
ki = j lo que corresponde a la rotación inversa en el plano (j, k). Pero q(1) = i e q(i) = - 1
da la misma rotación parásita que f sobre (i,j). Si tomamos la función opuesta (e
inversa) : h = -g : q → -qi = q(-i) nos damos cuenta que h tiene la misma acción sobre el
plano (j, k) que f pero la acción opuesta sobre (1, i). Entonces f y h se compensan en (1,
j), pero se cumulan en (j,k), y la función compuesta: m = foh (=hof): q → iq(-i) deja el
plano (1, i) quieto, pero gira el plano (j, k) dos veces de 90 grados, o sea de 180 grados:
m(j)=ij(-i)= -iji = - ki = -j y m(k)= - k.
Capítulo
IV
Cuaterniones y álgebra geométrica
33
Hemos obtenido por lo tanto una rotación alrededor de eje (O,i), pero con un ángulo
doble de lo deseado. Basta con dividir los ángulos de f e h por dos para obtener la
fórmula.
i= e iπ/2 = cos(π/2) + i.sin(π/2) = cos 90º + i·sin 90º. El número que corresponde al medio
ángulo es e i.π/4 = (1+i)/√2 = w, y la función que realiza la rotación pedida es
r:q→wqw~.
Este raciocinio se generaliza a cualquier eje de rotación, y no soló a los tres ejes (O,i)
(O, j) y (O, k). Si se quiere girar alrededor del eje (O,u) donde u es un vector unitario,
hay que considerar el plano (1, u) y otro plano perpendicular (ortogonal) en H, y
emplear el número cos(θ/2) + u·sin(θ/2).
4.6.2
La fórmula
Sea q = xi + yj + zk un punto (o un vector) del espacio, u un vector unitario del mismo
espacio y θ un real. La rotación alrededor del eje (0,u) de un ángulo θ envía el punto q
sobre el punto q' = a'i + b'j + c'k dado por la fórmula:
q´= h·q·h~ donde h = cos(θ/2) + u·sin(θ/2)
Para obtener la rotación alrededor de un eje (c,u), donde c es un punto cualquiera del
espacio, basta con componer la función anterior por dos translaciones:
q´ = h·(q-c)·h~ + c
Note que h es un cuaternión unitario, como en el caso de los complejos.
La fórmula resulta algo más complicada que en el plano complejo porque trabajamos en
cuatro dimensiones con los cuaterniones pero queremos permanecer en el espacio usual
de tres dimensiones. Una simple multiplicación, a la izquierda o a la derecha, daría dos
rotaciones simultáneas en dos planos perpendiculares (ortogonales) en el espacio
cuadridimensional.
4.6.3
Un ejemplo
Consideremos la rotación alrededor del eje (O, i+j+k), con un ángulo de 120º o sea 2π/3
radios. Nos proponemos calcular la imagen del vector j. Puesto que el vector i+j+k no es
de unitario, lo dividimos por su norma: u = (i+j+k)/√3.
El medio ángulo es π/3, por lo tanto:
h = cos(π/3) + u.sin(π/3) = (1+i+j+k)/2, y su conjugado es h~ = (1-i-j-k)/2.
El vector (o punto correspondiente) j será enviado en hjh~.
hjh~ =(1+i+j+k)j(1-i-j-k)/4 = (j + k - 1 - i)(1 - i - j - k)/4
y, distribuyendo los factores, hallamos:
hjh~ = ( (j+k+1-i) + (k-j+i+1) + (-1+i+j+k) + (-i-1+k-j) )/4 = 4k/4 = k.
Del mismo modo hallaríamos que hkh~ = i e hih~ = j, lo que da la expresión analítica de
la rotación:
r(xi + yj + zk ) = zi + xj + yk.
Capítulo
IV
Cuaterniones y álgebra geométrica
34
4.6.4 Cuaterniones y Ángulos de Euler
En el programa Matemática , la rotación de un objeto tridimensional se puede hacer con
RotateShape[obj, α,θ,φ ] con θ є [0, ]. La rotación dada por los ángulos de Euler α,
θ y φ puede ser descompuesta en una sucesión de tres rotaciones sucesivas. La primera
rota un ángulo α alrededor del eje Z, la segunda rota un ángulo θ alrededor del eje X y la
tercera rota un ángulo φ alrededor del eje Z nuevamente. RotateShape[ ] determina la
matriz de rotación correspondiente y la aplica a todas los puntos del objeto geométrico.
El comando RotationMatrix3D[α, θ, φ ] da la matriz de rotación correspondiente a las
tres rotaciones sucesivas determinadas por los ángulos de Euler.
El problema es: dado Φ y u, cuál es la relación entre los ángulos de Euler y Φ y u?. La
relación más sencilla se obtiene usando cuaterniones.
Los cuaterniones son objetos [a,v], donde a es un escalar y v є IR3.
La suma y la multiplicación (no conmutativa) de cuaterniones se definen así:
[a1,v] + [a2,u] = [a1 + a2, v + u]
[a1,v][a2,u] = [a1a2 - v . u, a1u + a2v + u×v]
La norma de un cuaternión se define como ||[a, v]|| = a 2 + v • v
Si 1l = [1,(0, 0, 0)] entonces [a, v]1l = 1l[a, v].
[a,−v] , i.e. [a, v][a, v]- 1 = 1l
[a, v]- 1=
2
[a, v]
Con esta álgebra se puede mostrar que un vector v puede ser rotado alrededor de un eje
aplicando la operación qvq- 1. Lo que hacemos es, abusando del lenguaje, identificar v
con [0, v]. De esta manera, si u = {u1, u2, u3} (unitario), si q = [cos(Φ/2), sen(Φ /2)u] y
si [0,v'] = q [0, v] q- 1, se tiene que v' es una rotación de v, de ángulo Φ, alrededor de u.
Con este último resultado podemos determinar una relación entre los ángulos de Euler y
una rotación de ángulo Φ, alrededor de u. Para esto, ponemos las rotaciones
correspondientes a los ángulos de Euler en lenguaje de cuaterniones e igualamos:
[cos(Φ/2),sen(Φ/2)u]=
=[cos( /2),sen( /2)k] [cos( /2), sen( /2)j] [cos(ψ/2), sen(ψ /2)k]
luego, desarrollando la multiplicación de la derecha e igualando, se obtiene:
cos(Φ/2) =
u1
=
u2
=
u3
=
cos( /2) cos (
+ ψ)
- (sen Φ)-1 sen
sen (
- ψ)
Φ)-1 sen
cos (
- ψ)
(sen
(sen Φ)-1 cos
sen (
+ ψ)
Esto nos dice que, en general, para hacer animaciones que involucran rotaciones de
objetos tridimensionales alrededor de una recta, es mejor usar una implementación
matricial (o en términos de cuaterniones).
Capítulo
4.7
IV
Cuaterniones y álgebra geométrica
35
El algebra geométrica en espacios 3d y 4d
La necesidad para un marco matemático para entender y procesar imágenes en cámaras
digitales en un mundo en 3D, se enfocó en investigaciones a finales de los años setenta
en la utilización de geometría proyectiva. Usando coordenadas homogéneas, encajamos
el espacio visual del espacio euclidiano tridimensional en un espacio proyectivo P3 o P4
y el espacio euclidiano bidimensional del plano de la imagen en el espacio proyectivo
P2 o R3. Como resultado, las inherentes transformaciones proyectivas no lineales del
espacio tridimensional al espacio bidimensional de la imagen se convierten en lineal. En
adición, los puntos y direcciones son diferenciados en lugar de ser representados por las
mismas cantidades. La elección de geometría proyectiva es de hecho un gran paso. De
cualquier manera es necesario un sistema que reconcilie la geometría proyectiva y el
algebra multilíneal. En mucha de la literatura de la visión computacional podemos
encontrar que son dos sistemas matemáticos divorciados. Cuando se requiere, es común
ver requerimientos de un sistema con respecto al otro.
4.8
Espacio tridimensional e imagen del plano bidimensional.
Para introducir los modelos de geometría básica en visión computacional, imaginemos
la imagen de un punto X que pertenece a R4 dentro de un punto x que pertenece a R3. El
centro óptico de la cámara (C) puede ser diferente al sistema coordenado del mundo
real, como se ve en la figura.
P3
2
P
X
x
C
El mapeo de P:X→x está dado por la matriz
P=
P11 P12........P14
P21 P22
P31...............P34
Que se descompone como producto de 3 matrices:
P=KPoMoc
Capítulo
IV
Cuaterniones y álgebra geométrica
36
Donde Po, K y Moc serán definidos como:
Por es una matriz de 3x4
⎛1 0 0 0⎞
⎟
⎜
⎜0 1 0 0⎟
⎜0 0 1 0⎟
⎟
⎜
⎟
⎜
⎠
⎝
que simplemente proyecta desde 4D a 3D, representando una proyección de
coordenadas homogéneas del espacio a coordenadas homogéneas del plano de la
imagen.
Moc representa una matriz de 4x4 que contiene la rotación y translación. Lleva el marco
real al marco de la cámara.
Y finalmente la matriz K, de 3x3 que asume el modelo de la cámara como la
transformación afín entre el plano de la cámara y el sistema coordinado.
4.9
Algebra geométrica del espacio euclidiano en 3D
El espacio tridimensional está dado por tres vectores básicos (σ1, σ2, σ3) lo que da
23=8 elementos
•
•
•
•
escalar 1,
vectores{ σ1, σ2, σ3}
bivectores{σ1σ2, σ1σ3, σ2, σ3} áreas orientadas
trivectores{σ1σ2σ3}volúmenes orientados, pseudoescalar.
Los bivectores pueden ser interpretados como áreas orientadas, los trivectores como
volúmenes orientados. El elemento de mayor grado es el trivector llamado
pseudoescalar, fácilmente se puede verificar que es un cuadro escalar de –1 y que
conmuta con todos los multivectores (un multivector es generalmente una combinación
lineal en cualquiera de los elementos en álgebra) en un espacio tridimensional. La
unidad pseudoescalar I es crucial cuando discutimos la dualidad. Es un espacio de
dimensión 3 podemos construir un trivector a^b^c.
El pseudoescalar I nos sirve para formar los bivectores base
Iσ1=σ2σ3 i
Iσ2=σ1σ3 j
Iσ3=σ1σ2 k
Si identificamos los i, j, k del álgebra de cuaterniones con σ2σ3, -σ1σ3 y σ1σ2 podemos
recuperar las famosas relaciones de Hamillton i2=j2=k2=ijk=-1
Capítulo
IV
Cuaterniones y álgebra geométrica
37
En álgebra geométrica un rotor, R, es un elemento de grado par del álgebra que satisface
RR=1. La relación entre cuaterniones y el rotor es como sigue, Q={q0,q1,q2,q3}
representa a un cuaternión, entonces el rotor que desarrolla la misma rotación esta
simplemente dada por
R=qo+q1(Iσ1)- q2(σ2)+ q3(σ3)
El álgebra de cuaterniones es vista por lo tanto como un subconjunto del álgebra
geométrica en un 3-espacio.
4.10
Algebra geométrica para espacios proyectivos.
Para el modelado del plano de la imagen utilizamos G3,0,0 que es la firma estándar
euclidiana. Mostraremos que si escogemos un mapa entre espacios proyectivos y el
espacio euclidiano en 3D a través de líneas proyectivas, estamos forzando a utilizar
álgebra geométrica en 4D G3,0,0 para P3.
El álgebra Lorenziana en 4D tiene sus vectores básicos γ1, γ2, γ3, γ4, donde γ4 2=+1,
γk=-1 para k=1,2,3. Esto genera los siguientes multivectores base:
•
•
•
•
•
escalar 1
4 vectores γk
6 vectores γ2γ3, γ3γ1, γ1γ2, γ4γ1, γ4γ2, γ4γ3
trivectores Iγk
pseudoescalar I
El pseudoescalar I=γ1γ2γ3γ4 con I2=(γ1γ2γ3γ4)(γ1γ2γ3γ4)= -(γ3γ4)(γ3γ4)= -1
Al tomar productos geométricos con γ4 podemos relacionar bivectores del espacio 4D
con vectores del espacio 3D.
4.10.1 Transformaciones proyectivas
Históricamente, el éxito de las coordenadas homogéneas se debe en parte a la habilidad
que tienen para representar desplazamientos como matrices sencillas de 4x4 y de
linealizar las transformaciones no lineales.
Un punto (x,y,z) que pertenece a 3D se puede proyectar con la transformación:
x′ =
α 1 x + β1 y + δ 1 z + ε 1
αx + β y + δ z + ε
y′ =
α2 x + β2 y + δ2 z + ε 2
αx + β y + δ z + ε
Capítulo
IV
Cuaterniones y álgebra geométrica
38
Esta transformación, que es representada como el radio de dos transformaciones
lineales, es en si misma una no lineal. Con la finalidad de convertir estas
transformaciones no lineales en un espacio de dimensión 3 en transformaciones lineales
en R4 definimos una función f-p que mapea vectores dentro de vectores en R4 tal que la
acción de f-p sobre los vectores básicos {γi } está dado por:
f-p(γ1)=α1γ1+α2γ2+α3γ3+α4γ4
f-p(γ2)=β1γ1+β2γ2+β3γ3+β4γ4
f-p(γ3)=δ1γ1+δ2γ2+δ3γ3+δ4γ4
f-p(γ4)=ε1γ1+ε2γ2+ε3γ3+ε4γ4
cuando usamos coordenadas homogéneas, un punto P en ε3 dado por x=xσ1+yσ2+xσ3 se
convierte en el punto X=(Xγ1+Yγ2+Zγ3+Wγ4) en R4 donde x=X/W, y=Y/W, z=Z/W
Ahora usamos f-p el mapa lineal de X sobre X’ esta dado por:
X’= Σi{(αiX+βiY+δiZ+εiW)γi}{άX+βY+δZ+έW}γ4
Las coordenadas del vector x’=x’σ1+y’σ2+z’σ3 en ε3 que corresponden a X’ están dados
por:
x’=( α1X+β1Y+δ1Z+ε1W))/( άX+βY+δZ+έW)=( α1x+β1y+δ1z+ε1w)/( άx+βy+δz+έ)
Análogamente,
y’=( α2x+β2y+δ2z+ε2w)/( άx+βy+δz+έ)
z’=( α3x+β3y+δ3z+ε3w)/( άx+βy+δz+έ)
si lo anterior representa la proyección desde el mundo real sobre el plano de la imagen
de la cámara, se debe tomar en cuenta la profundidad de la cámara.
Esto requiere de α3=f α’, β3= β ‘, …. Por lo que podemos definir como z’=f
(profundidad focal), que no depende del punto escogido.
Con esto una transformación no lineal en ε3 se convierte en una transformación lineal,
f-p, en R4.
4.10.2 La línea proyectiva
Asociemos puntos a través de la línea proyectiva
Para un vector X=X1γ1+X2γ2+X3γ3+X4γ4 en R4 la línea proyectiva se obtiene tomando
el producto geométrico de X y γ4:
Xγ4=Xγ4+X^γ4=X4(1+( X^ γ4)/( X4))≡ X4(1+x)
Capítulo
IV
Cuaterniones y álgebra geométrica
39
Si elegimos γ4 como una dirección seleccionada en R4, podemos definir un mapeo que
asocie los bivectores γiγ4 i=1, 2, 3 en R4 con los vectores σi i=1, 2, 3 en ε3.
σ1≡γ1γ4,
σ2≡γ2γ4,
σ3≡γ3γ4,
con esto podemos asociar
X^γ4/ X4 en R4 con el vector x en ε3
De manera similar, si empezamos con un vector X=Xσ1+Xσ2+Xσ3 en ε3,lo
representamos en R4 por el vector X=X1γ1+X2γ2+X3γ3+X4γ4 tal que
X= X^γ4/ X4 =(X1/X4)γ1γ4 +(X2/X4)γ2γ4 +(X3/X4)γ3γ4 =(X1/X4)σ1+(X2/X4)σ2+(X3/X4)σ3
Que implica xi=xi/x4, para i=1,2,3
La aproximación de la representación de x en un espacio dimensional mas alto puede
por lo tanto ser visto como una equivalencia de las coordinadas homogénea de X para x.
Veamos ahora la representación de una línea L en R4, una línea esta dada por el
producto externo de dos vectores
L=A^B
L=(L14γ1γ4+ L24γ2γ4+ L34γ3γ4)+( L23γ2γ3+ L31γ3γ1+ L12γ1γ2)
L=(L14γ1γ4+ L24γ2γ4+ L34γ3γ4)+I( L23γ1γ4+ L31γ1γ4+ L12γ3γ4)
L=n-Im
L14, L24, L34 Son los coeficientes de la parte espacial del bivector que representan la
dirección de la línea (n).
L23, L31, L12 Son los coeficientes de la parte no espacial del bivector que representan
el momento de la línea (m).
Ahora podemos relacionar esta representación de la línea con la representación en ε3 por
medio de la línea proyectiva. Tomamos una línea (L), uniendo A y B.
L=A^B=<AB>2 =<Aγ4γ4B>2
Aquí, la notación <M>k, nos indica que tomemos la parte del grado k del multivector M.
Usando la expansión anterior de Xγ4 en la línea proyectiva para vectores, podemos
escribir.
L= (Aγ4)(Bγ4)<(1+a)(1-b)>2
Donde
a=A^γ4/Aγ4
b=B^γ4/Bγ4
que son las representaciones de A y B en ε3
escribiendo A4= A·γ4 y B4= B·γ4 tenemos que L=A4B4<1+(a-b)-ab2>= A4B4{(a-b)+a^b}
normalizamos las partes espaciales y no espaciales por encima del bivector
Capítulo
IV
Cuaterniones y álgebra geométrica
40
L’=L/(A4B4|a-b|)=(a-b)/|a-b|+(a^b) |a-b|
=(nxσ1+nσ2+nzσ3)+(mxσ2σ3+myσ3σ1+mzσ1σ2)
=( nxσ1+nσ2+nzσ3)+I(mxσ1+myσ2+mzσ3)
=n’+I3m’
I3=σ1σ2σ3≡I4
Nota:
En ε3 la línea tiene 2 componentes
•
•
Un vector representando la dirección de la línea n
Un vector dual (bivector) que representa el momento m de la línea
Esto nos da la posición en el espacio 3D especificando el plano en el que yace y la
distancia perpendicular de la línea del origen.
CAPITULO V
Capítulo
V Aplicaciones de álgebra geométrica
42
5 Introducción.
En este capítulo se estudiara la teoría correspondiente al álgebra geométrica así como
las diversas aplicaciones que se pueden generar con la misma; tales como la
intersección de una línea y un plano, intersección de dos planos e intersección de dos
líneas. Las operaciones que se usaran para tales aplicaciones, serán el bracket, la
función meet y la función join.
Aplicaciones de algebra geométrica.
5.1 El bracket (soporte)
En un espacio de n dimensiones cualquier pseudoescalar se expandirá a un
hipervolumen de dimensión n. todos los pseudoescalares (P) son múltiplos de un
pseudoescalar unitario (I).
I
P=αI
P pseudoescalar
α escalar
pseudoescalar unitario
Calculamos a este escalar multiplicando el pseudoescalar P, con el inverso de I
PI-1=αII-1=α≡[P]
Así, el bracket del pseudoescalar P, [P], es su magnitud y llegamos a {el multiplicando
por la derecha I-1.
El bracket de n vectores {xi} es
[X1X2X3…Xn]=[ X1^X2^X3^…^Xn]=( X1^X2^X3^…^Xn)I-1
También puede mostrarse que es equivalente a la definición del determinante de la
matriz cuyos vectores columna son los vectores xi. Para entender como podemos
expresar un bracket en el espacio proyectivo en términos de vectores en el espacio
euclidiano podemos expandir un pseudoescalar P usando la línea proyectiva para
vectores:
P=X1^X2^X3^X4 =< X1^X2^X3^X4 >=W1W2W3W4<(1+X1)( 1-X2)( 1+X3)( 1-X4)>4
Donde Wi=Xiγ4
Capítulo
V Aplicaciones de álgebra geométrica
43
Una parte pseudoescalar es producida tomando el producto de tres vectores espaciales
(no ha términos [espacio bivectorial]x[espacio vectorial]), es decir:
P=W1W2W3W4<-X1X2X3- X1X2X4+ X1X2X4+ X2X3X4)>4
P=W1W2W3W4<(X2-X1)( X3-X1)( X4-X1)>4
P=W1W2W3W4{(X2-X1) ^ ( X3-X1) ^ ( X4-X1)}4
Si Wi=1 (cualquier W=1), podemos establecer una relación entre los brackets de 4
puntos en R4 y ε3 como sigue
[X1X2X3X4]=(X1^X2^X3^X4)I4-1
={(X2-X1) ^ ( X3-X1) ^ ( X4-X1)} I3-1
5.2 El principio de dualidad y las operaciones de encuentro y unión
Para introducir el concepto de dualidad debemos introducir el dual A* de un r-vector A
como:
A*=AI-1
Esta notación A* relaciona las ideas de dualidad a la notación de Hodge dual en
geometría diferencial. Nótese que en general I-1 no necesariamente conmuta con A.
Usando las ideas de dualidad somos capaces de relacionar el producto interno (producto
punto) a operadores de incidencia y lo veremos como sigue:
En un espacio n-dimensional supongamos que tenemos un r-vector A y un s-vector B,
donde B tiene un dual B*=BI-1≡B·I-1
Aquí, desde BI-1=B·I-1+B^I-1 podemos reemplazar el producto geométrico por el
producto interno como el producto externo que da cero (No es un vector
(n+1)dimensional)
Ahora usando la identidad
Ar·Bs·Ct=(Ar·Bs) ·Ct para r+s≤t
A·(BI-1)=A·(B·I-1)= (A^B)·I-1=(A^B)I-1
Esta expresión puede ser reescrita usando la definición de el dual como sigue:
A·B*=(A^B)*
Esta ecuación muestra la relación entre el producto interno y el externo en términos de
operador de dualidad. Ahora si r+s=n, entonces A^B es de grado n y es por lo tanto un
pseudoescalar, usando la ecuación PI-1= α II-1=α≡[P] nos queda que:
A·B*=(A^B)*=(A^B)I-1=([A^B])I-1
=[ A^B]
Con esto observamos que el bracket relaciona los productos interno y externo con los
cuantificadores no numéricos.
Capítulo
V Aplicaciones de álgebra geométrica
44
Ahora cuando trabajamos con líneas y planos, es claro que será necesario tener
operaciones para calcular las intersecciones y uniones de dichos objetos geométricos.
Necesitamos una forma de desarrollar las operaciones de teoría de conjuntos de la
intersección, ∩ y unión, U.
Si en algebra geométrica de n-dimensiones, el r-vector A y el s-vector B no tienen
subespacios en común, podemos definir la unión de ambos vectores como sigue:
J=A^B
La unión es simplemente el producto externo (un vector r+s) de los 2 vectores.
De cualquier manera, si A y B no tienen subespacios en común, la unión no será dada
por la sección (de unión) pero por el subespacio en el que se expanden.
La operación de unión J (Join) puede ser interpretada como el mínimo común divisor y
es definido hasta un factor escalar. La unión da un pseudoescalar si (r+s)≥n. Usaremos
^ para la unión solo cuando las “navajas” A y B tengan un subespacio en común, de
otra manera el producto exterior ordinario ^ será utilizado.
(AvB)*=A*^B* El dual de intersección es igual a la unión de los duales.
El dual de A y B será tomado con respecto a la unión de A y B, debemos tener cuidado
al especificar que espacio usamos para el dual en la ecuación anterior.
AvB=((AvB)*)*=(A*^B*)I(I-1I)I= (A*·B)
Una función lineal f que mapea vectores a vectores en el mismo espacio, la extensión de
f para actuar linealmente sobre multivectores es posible a través de los llamados
exomorfismos, f_, definiendo la acción de f sobre la r-“navajas” por:
f_ (a1^a2^…^ar)=f_(a1) ^f_(a2) ^f_(a3) ^….^f_(ar)
f_ es llamado en exomorfismo, porque f_ preserva el grado de cualquier r-vector sobre
el que actúa. La acción de f_ sobre multivectores es definida a través de la linealidad.
f_ debe por los tanto satisfacer las condiciones siguientes:
f_ (a1^a2)=f_(a1) ^f_(a2)
f_ (Ar)=<f_(Ar)>r
f_(α1a1+α2a2)= α1f_(a1)+ α2f_(a2)
el exomorfismo del producto de dos funciones lineales es el producto de exomorfismos,
es decir, f(a)=f2(f1(a)) y lo escribimos f=f2f1.
El empalme f¯ de una función lineal f_ que actúa sobre los vectores a y b puede ser
definido por la propiedad
f_(a)·b=a·f¯ (b)
Capítulo
V Aplicaciones de álgebra geométrica
45
si f_=f¯, la función se sobre-empalma a sí misma y puede ser representada por la matriz
simétrica F, con F=FT
desde que el automorfismo preserva el grado, el pseudoescalar unitario debe ser
mapeado sobre algún múltiplo de si mismo, este múltiplo es un determinante de f_:
f_(I)=det(f_)I
5.3 Algebra en espacio proyectivo
Consideremos tres puntos no colineales, P1, P2, P3, representado por vectores x1, x2, x3,
en ε3 y por vectores X1, X2, X3 en R4. la línea L12 que une los puntos P1 y P2 puede ser
expresada en R4 por el bisector L12=X1^X2.
Cualquier punto P, representado en R4 por X, sobre la línea a través de P1 y P2
satisfacirá
X^L12=X^X1^X2
Esto es por lo tanto la ecuación de la línea en R4. en general dicha ecuación nos dice
que X pertenece al subespacio expandido por X1 y X2, es decir que
X=α1X1+α2X2 con α2 y α2 cualesquiera
En computación lo podemos usar como una restricción geométrica para probar cuando
un punto X yace sobre L12.
El plano Φ123 que pasa por los puntos P1, P2, P3 es expresado por el siguiente trivector
en R4.
Φ123= X^1X2^X3
En el espacio tridimensional hay generalmente 3 tipos de intersecciones
• Intersección de línea y plano
• Intersección de plano y plano
• Intersección de línea y línea
Para calcular estas intersecciones utilizaremos la siguiente fórmula general, dando el
producto de una r-“navaja”.
Ar=a1^a2^…^ar, y una s-“navaja”,
Bs=b1^b2^…^bs
con s≤r
Bs·(a1^a2^…^ar)=∑j є(j1j2…jr)Bs· (aj1^aj2^…^ajs) ajs +1^…^ajr
Donde sumamos sobre todas las combinaciones j=(j1, j2, …, jr) una permutación par de
(1, 2, 3,…, r) y -1 si es una permutación impar.
Capítulo
V Aplicaciones de álgebra geométrica
46
5.4 Intersección de una línea y un plano
En el espacio de R4 consideremos la línea A=X1^X2 intersectando el plano
Φ=Y1^Y2^Y3. podemos calcular el punto de intersección usando la operación de
intersección como sigue:
AvΦ=( X1^X2)v(Y1^Y2^Y3)=AΦ=A*·Φ…………….(1)
Esto lo hacemos utilizando la ecuación vista anteriormente de AvB=(A*·B) y el hecho
de que la unión es el espacio completo.
Notemos que el pseudoescalar I4, conmuta con el bisector pero no conmuta con vectores
y trivectores y tiene inverso I4-1=-I4. Esto por lo tanto nos lleva a
A*·Φ=(AI-1) ·Φ=-(AI)·Φ
Ahora usando la ecuación (1) podemos extender la intersección como:
AvΦ=-(AI)·(Y1^Y2^Y3)=-{(AI)·(Y2^Y3)}Y1+{(AI)·(Y3^Y1)}Y2+{(AI)·(Y1^Y2)}Y3
Nada como (AI)·(Yi^Yj) es un escalar, podemos evaluar lo anterior tomando partes
escalares. Por ejemplo (AI)·(Y2^Y3)=< (X1^X2)(Y2^Y3)>= I(X1^X2^Y2^Y3). De la
definición dada del bracket anteriormente, podemos ver que si P= X1^X2^Y2^Y3,
entonces [P]=(X1^X2^Y2^Y3)I4-1.
Y por lo tanto escribimos [A1A2A3A4] como abreviatura para la magnitud del
pseudoescalar formado por 4 vectores, con esto podemos ver que el encuentro se reduce
a:
AvΦ=[X1X2Y2Y3]Y1+[X1X2Y3Y1]Y2+[X1X2Y1Y2]Y3
dando el punto de intersección (vector en R4).
5.5 Intersección de 2 planos
La línea de intersección de dos planos, Φ=X1X2X3 y Φ=Y1Y2Y3
Puede ser calculado a través de Φ1 y Φ2 y de su intersección.
Φ1vΦ2=(X1X2X3)v(Y1Y2Y3)
Esto se puede expandir como.
Φ1vΦ2=Φ*1·(Y1^Y2^Y3)
=-{( Φ1I)·Y1}(Y2^Y3)+{( Φ1I)·Y2}(Y3^Y1)+{(Φ1I)·Y3}(Y1^Y2)
De nuevo, la unión es el espacio completo y entonces el dual es formado fácilmente.
Capítulo
V Aplicaciones de álgebra geométrica
47
Podemos mostrar que.
(Φ1I)·Y1≡-[X1X2X3Y1](Y2^Y3)+[X1X2X3Y3](Y3^Y1)+[X1X2X3Y3][(Y1^Y2).
Produciendo una línea de intersección o bisector en R4
5.6 Intersección de dos líneas
Dos líneas se intersectan solo si son coplanares. Dignifica que tienen representación en
R4, A=X1^X2, y B= Y1^Y2 satisfacen:
A^B=0
Este hecho sugiere que el cálculo de la intersección debe ser llevada a un espacio
euclidiano en 2D que tiene una asociación con una contraparte proyectiva
tridimensional, R3.
En este plano el punto de intersección está dado por:
AvB=A*·B=-(AI3)·(Y1^Y2) ={((AI3)·Y1)Y2-((AI3)·Y2)Y1}.
Donde I3 es el pseudoescalar para R3. una vez mas evaluamos (AI3)·Yi) tomando la
parte escalar
(AI3)·Yi)=<X1X2I3Yi>=I3X1X2Yi=[X1X2Yi].
La intersección puede por lo tanto ser escrita como:
AvB=[X1X2Y1]Y2-[X1X2Y2]Y1.
Donde el bracket [A1A2A3] en R3 es entendido como (A1^A2^A3)I3-1
CAPITULO VI
Capítulo VI
Aplicaciones de geometría epipolar
49
6 Introducción
El objetivo de este capitulo es la obtención de la matriz fundamental por medio de la
transformada SVD ya que con esta podemos obtener las líneas epipolares sobre el plano
de la imagen, las cuales son de gran ayuda junto con el epipolo y el foco de la cámara
para obtener un punto en común sobre dos imágenes. Para llegar a esto es necesario el
análisis del uso del autovalor y autovector así como las matrices pseudoinversa y
antisimétrica.
Aplicaciones de geometría epipolar.
6.1. Geometría epipolar.
El hecho de disponer de dos imágenes del mismo entorno nos permite descubrir nuevas
informaciones sobre el entorno.
Supongamos que tenemos un punto del espacio, que se proyecta en el punto p1 de la
primera imagen, y el punto p2 de la segunda imagen.
M
e1
e2
m1
11
l2
m2
Tenemos el sistema de ecuaciones matriciales:
•
•
•
•
•
•
•
λ1m1=P1M.
λ2m2=P2M.
P1 es la matriz de proyección de la primera imagen.
P2 es la matriz de proyección de la segunda imagen.
M son las coordenadas homogéneas del punto en el espacio.
λ1 es el factor de escalado para la primera imagen.
λ2 es el factor de escalado para la segunda imagen.
m1 son las coordenadas homogéneas en el plano de proyección de la primera
imagen de la primera proyección del punto.
m2 son las coordenadas homogéneas en el plano de proyección de la segunda
imagen de la segunda proyección del punto.
Capítulo VI
Aplicaciones de geometría epipolar
50
Definimos visión estéreo como aquella en la que empleamos más de una imagen para
obtener una idea de tridimensionalidad. Según el número de imágenes que empleemos,
hablaremos de visión bifocal -dos imágenes-, trifocal -tres imágenes-, quadrifocal cuatro imágenes- o N-focal -N imágenes-.
Para nuestro caso, estudiaremos los conceptos de un sistema bifocal; aunque lo
estudiado es extrapolable a cualquier sistema N-focal.
El primer concepto que necesitaremos es el de geometría epipolar. Denominamos
geometría epipolar como a la geometría generada por dos vistas; y se basa en dos
conceptos fundamentales, que son la línea epipolar y el epipolo.
Dado un sistema bifocal, definimos como epipolo de una de las dos imágenes el sistema
a la proyección del centro óptico de la otra imagen. Un sistema bifocal tiene
exactamente dos epipolos, uno por cada imagen. Los dos epipolos pueden tener las
mismas coordenadas, o coordenadas distintas.
Definimos como línea epipolar li para uno de los dos planos de proyección a la línea
que pasa por el epipolo ei contenido en el plano de proyección y la proyección mi.
Observamos que la línea epipolar eimi es también la proyección de la línea que pasa
por el centro óptico Єi y la proyección mi sobre el plano de proyección. Tenemos
exactamente dos líneas epipolares, una por cada imagen. Las dos líneas epipolares
pueden tener las mismas coordenadas, o coordenadas distintas.
Definimos como plano epipolar al plano definido por los centros ópticos de las dos
imágenes, y el punto M del espacio tridimensional. Tanto las dos proyecciones m1 y m2
del punto como sus epipolos e1 y e2 están contenidos en el plano epipolar. Si M está
fuera de los dos planos de proyección y los planos de proyección no son paralelos,
existe un único plano epipolar.
Para deducir la formulación de la matriz fundamental
tomaremos las ecuaciones ??, que son:
λ1m1=P1M.
λ2m2=P2M.
El primer paso que tomaremos será buscar la formulación matemática de la línea
epipolar para la segunda proyección P2, que será l2 ; nos interesa que sea función de
m1, P1 y P2 .Podríamos usar como punto M si lo conociéramos, pero partimos de M
que es desconocido.
Para encontrar el primer punto usaremos un punto arbitrario Ma, cuya formulación es:
M a = P1+ m1 .
Capítulo VI
Aplicaciones de geometría epipolar
51
Es decir, nuestro punto será el producto de la pseudoinversa de la primera matriz de
proyección por la primera proyección del punto. Siendo P1 de 4x3 elementos, P1+ será
forzosamente de 3x4 elementos según la definición de pseudoinversa por la derecha
estudiada en la primera sección de estas transparencias.
Este punto cuya ecuación hemos definido tiene una propiedad importante. Si lo
aplicamos a la primeras ecuaciones ??, tendremos:
λ1m1(Ma)=P1Ma.
Sustituyendo el valor de Ma, obtenemos:
λ1m1(Ma)=P1P1+m1.
Aplicando la definición de pseudoinversa, tenemos que P1P1+=I, por lo que tenemos
que:
λ1m1(Ma)=Im1.
Esto quiere decir que la proyección ma de este punto Ma es igual a m1, por lo que el
punto está en la línea entre el centro óptico C1 y la proyección m1 en P1 del punto M. Ya
tenemos uno de los dos puntos que estamos buscando: Ma por lo tanto hacemos:
m2(Ma)=P2Ma.
Aplicando la definición de Ma de ??:
m2(Ma)=P2 P1+m1.
Para el segundo punto, vamos a aplicar a la segunda ecuación ??, el centro óptico de la
primera imagen, con objeto de obtener el segundo epipolo. Tendremos:
e2=m2(C1)=P2C1.
Conocidos estos dos puntos, el cálculo de la línea epipolar es trivial:
l2=e2xm2(Ma).
Sustituyendo el cálculo de de ?? y de ma(Ma) de ??, tenemos:
l2=P2C2x P2P2+m1.
Podemos aún simplificar más la formulación de la línea epipolar l2de la segunda
proyección P2, sustituyendo la matriz resultado del producto de P2C2 por su
antisimétrica; así tenemos que la nueva formulación de la línea epipolar l2es:
l2=[P2C2]x P2P2+m1.
Capítulo VI
Aplicaciones de geometría epipolar
52
Definamos la matriz £ como:
£=[P2C1]xP2P1+.
La línea epipolar l2 pasa a ser:
l2=£m1.
Y la llamaremos matriz fundamental. La matriz fundamental depende exclusivamente
de la geometría bifocal, y es independiente de los puntos del sistema y de sus
proyecciones, es decir, no depende de M, ni de m1, ni de m2.
La forma de usar esta matriz es para relacionar las dos proyecciones m1 y m2 de un
punto en el espacio. Para deducir la expresión que relaciona las dos proyecciones,
analizaremos la línea epipolar l2 de nuevo. Como m2 pertenece a la línea epipolar l2 ,
tendremos que:
m2T t 2 = 0
Aplicando la nueva definición de línea epipolar de ??, tenemos que:
m2T £ m1 = 0
Por lo que podremos usar la matriz fundamental para relacionar las dos proyecciones de
un punto en el espacio.
6.2 Autovalor y autovector de una aplicación lineal.
Sea V un espacio vectorial de dimensión finita sobre un cuerpo K (en general suele ser
R, el cuerpo de los números reales) y sea f;VÆV una aplicación lineal.
Diremos que el escalar λ∈ K (o a R) es un Autovalor o Valor Propio de f si existe un
cierto vector v∈ V (siendo v un vector no nulo de V) tal que f(v) = λ v.
Al vector v se le denomina Autovector o Vector Propio de f asociado al autovalor λ .
F1(u): [u2, u1].
¿Cuáles son sus autovalores y autovectores?
Consideremos un vector genérico de R2.
v: [v1, v2].
¿Qué deberá verificar el valor a, y el vector v para que a sea el autovalor y v el
autovector de esta aplicación lineal?
Por definición tendrá que cumplirse que.
F(v)=a·v.
expresión que una vez simplificada nos da.
[v2=a·v1,v1=a·v2]
Capítulo VI
Aplicaciones de geometría epipolar
53
En estas circunstancias si consideramos por ejemplo a=1, tendremos.
a=1
[v2=v1, v1=v2]
Esto quiere decir que un autovalor sería a=1 y los autovectores serían de la forma (x,x)
Y si a=-1, tendremos que a=-1.
[v2=-v1, v1=-v2]
En cuyo caso un autovalor sería a=-1 y los autovectores serían de la forma (x,-x).
6.2.1 Autovalor de una matriz.
Sea A una matriz de orden n, diremos que λ∈ R es un Autovalor de una matriz A si
existe cierto vector x ∈ R n tal que A x =λ x al vector x le llamaremos Autovector
asociado al autovalor λ.
Según esta definición, y partiendo de la proposición anterior, es fácil observar que los
autovalores de una aplicación lineal, coinciden con los autovalores de su matriz
asociada. Una cosa diferente, sucede con los autocevtores. Como se observa en la
proposición si u es un autovector de la aplicación lineal f, entonces el vector x
(coordenadas del vector u la base B) será autovector de la matriz asociada A respecto
de la base B.
Según esta observación anterior es evidente que si A es la matriz asociada a una
aplicación lineal f respecto de las bases canónicas podemos afirmas que los autovalores
y los autovectores de la matriz y la aplicación lineal coinciden. Por consiguiente, si
deseamos obtener los autovalores y autovectores de una aplicación lineal, será
suficiente construir la matriz asociada de f respecto de las bases canónicas y obtener
autovalores y autovectores de dicha matriz. Es decir:
Los autovalores y autovectores de una aplicación lineal y su matriz asociada respecto
de las bases canónicas coinciden.
6.3 La matriz pseudoinversa.
Definimos como pseudoinversa por la derecha de una matriz A, que denotamos como
A+, a una matriz que multiplicada por la derecha por A da la matriz diagonal con todos
los elementos diagonales iguales a 1, -matriz I-; es decir:
I=AA+
Capítulo VI
Aplicaciones de geometría epipolar
54
Calculamos la pseudoinversa de A con la ecuación:
A+=AT[ATA]-1
como la matriz [ATA] es cuadrada, suponiendo que sea una matriz regular, es una
matriz que puede ser invertida, y su inversa es única; por lo que el cálculo de esta
expresión no debe tener ningún problema adicional.
6.4 La matriz antisimétrica.
Definimos matriz antisimétrica por la izquierda [A]x de una matriz A a aquella matriz
tal que:
AxB=[A]xB
En las demostraciones que necesitaremos para llegar a una formulación simple de la
matriz epipolar, necesitaremos conocer la matriz antisimétrica por la izquierda de una
matriz de 3x1 posiciones.
Si tenemos la matriz:
Su antisimétrica [A]x será:
⎛ a0 ⎞
⎜ ⎟
A= ⎜ a1 ⎟
⎜ ⎟
⎜ ⎟
⎝ a2 ⎠
⎛ 0
⎜
[A]x= ⎜ a2
⎜
⎝ − a1
−a
0
a
0
2
a ⎞⎟
− a ⎟⎟
1
0
0 ⎠
6.5 La transformada SVD.
La transformada SVD -Singular Value Decompositiones:
•
•
Una herramienta común para resolver sistemas de ecuaciones.
Una herramienta para diagonalizar matrices singulares o mal condicionadas.
Definición.
Cualquier matriz, sea singular o no, puede ser descompuesta en un producto de tres
matrices, de la forma:
A=UDVT
donde U y V son matrices ortogonales, por lo que sus inversas son iguales a sus
transpuestas; y D es una matriz diagonal.
Capítulo VI
Aplicaciones de geometría epipolar
55
Aplicación estrella.
La aplicación más común de la SVD es el cálculo rápido de la inversa de una matriz
para resolver un sistema de ecuaciones. La inversa de la matriz , conocida su
descomposición SVD, es:
A-1=VD-1UT
Nuestro interés en la SVD.
SVD es interesante para nosotros porque:
• Define un espacio ortogonal en U cuyo número de vectores directores coincide
con el rango de la matriz A, y este espacio define la parte no-singular de la
matriz.
• Define un espacio ortogonal en V cuyo número de vectores directores coincide
con la dimensión de la matriz A menos su rango y este espacio define la parte
singular de la matriz.
Matriz mal condicionada.
Sea A=UDVT una descomposición mal condicionada SVD, σ1 el mayor elemento
diagonal de D. llamamos grado de singularidad al cociente σ1/σn; y si la inversa del
grado de singularidad es el orden de magnitud que la precisión de la máquina,
denominamos a la matriz mal condicionada, y la podemos considerar singular.
Pseudoinversa de una matriz.
Sea A=UDVT una descomposición SVD, y A una matriz cuadrada singular. La
pseudoinversa de A será:
A+=VD0-1UT
Donde D0 es una matriz en la que sustituimos los elementes de la diagonal que valgan 0
o ∞, lo que es lo mismo que decir que los elementos de D0-1 que valgan ∞ los
sustituiremos por 0.
Propiedades de la SVD.
•
•
•
Los autovalores no nulos de ATA y de AAT son los cuadrados de los valores
singulares no nulos de A.
Sea A=UDVT una descomposición SVD, las columnas de U son los autovectores
de AAT y las columnas de V son los autovectores de ATA.
Sea A=UDVT una descomposición SVD, todo elemento de la diagonal σk
cumple que:
Auk=σkuk
y que:
ATvk= uk
Siendo:
•
•
vk la columna de U correspondiente a σk
uk la columna de V correspondiente a σk
Capítulo VI
Aplicaciones de geometría epipolar
56
6.6 La matriz fundamental.
F’ es la representación algebraica de le geometría epipolar. Es una proyección que lleva
puntos (de una imagen) a líneas (epipolar, en otra imagen).
Las características de la matriz fundamental son:
• Rango (F)=2
• Incluye información sobre parámetros intrínsecos y extrínsecos.
• Permite la reconstrucción completa de la geometría epipolar.
• Es el sistema de coordenadas de pixeles sin ningún conocimientos de
parámetros.
p F p 1 = 0 ⇒ (u r
T
r
vr
⎛ F11
⎜
1) * ⎜ F21
⎜F
⎝ 31
F12
F22
F32
F13 ⎞⎛ u1 ⎞
⎟⎜ ⎟
F23 ⎟⎜ v 1 ⎟ = 0
F33 ⎟⎠⎜⎝ 1 ⎟⎠
6.7 Solución lineal (Algoritmo de los ocho puntos).
En este método, la solución para f es el vector singular correspondiente al valor singular
más pequeño de A, esto es, la ultima columna de V en la descomposición en valores
singulares (SVD) de A = UDVt. el vector f encontrado de esta manera minimiza ||Af||
sujeto a ||f||=1.
Una propiedad muy importante de F es que es singular, de rango 2. Muchas de las
aplicaciones de F dependen de este hecho. Por ejemplo, el calculo de las líneas
epipolares. Generalmente este método no genera una matriz F de rango 2. Sin embargo
esta propiedad se puede forzar. La forma más conveniente de hacerlo es reemplazar F
con la F' que minimice la norma de Frobenius ||F - F'|| sujeto a que det F' = 0. La manera
de hacerlo es, otra vez, con SVD.
Sea F = UDVt, con D = diag(r, s, t) y r >= s >= t. Entonces F' = U diag(r, s, 0) Vt
minimiza la norma de Frobenius definida arriba.
Existe un algoritmo que utiliza solo 7 puntos pero solo puede utilizarse cuando la matriz
A tiene rango siete y generalmente se obtienen dos o tres soluciones.
6.7.1 Algoritmo de los ocho puntos normalizado.
El algoritmo anterior es el mas simple, y si se realiza con cuidado puede generar una
solución extremadamente buena. La clave para lograrlo consiste en normalizar las
coordenadas del conjunto de pares de puntos correspondientes. Es posible que los
puntos que se elijan estén muy alejados entre si, dentro del marco de referencia de la
imagen. Lo que se sugiere Hartley, es una translación y un escalamiento de cada imagen
de manera que el centroide de los puntos quede en el origen del marco de referencia de
cada cámara.
Capítulo VI
Aplicaciones de geometría epipolar
57
Algoritmo de 8 puntos normalizado:
1. Normalización: Transformar las coordenadas de la imagen de la siguiente
manera: û1i = T1u1i y de la misma manera para v con T2; donde T1 y T2 son
transformaciones de normalización que consiste en una translación y
escalamiento. A partir de ahora ui y vi son las coordenadas de los puntos
normalizados.
2. Encontrar la matriz Fundamental F que corresponde a los puntos
correspondientes p1 ↔ p2 de la siguiente manera:
a. Solución lineal: Determinar F del vector singular correspondiente al valor
singular más pequeño de la matriz A.
b. Cumplimiento de la restricción forzoso. Remplazar F por la matriz
fundamental cuyo determinante sea cero; usando SVD.
3. Regresar las coordenadas de los puntos a su posición original.
ANEXOS
Anexo I
Anexo I.
Presentación de las aplicaciones del proyecto.
A continuación se mostrarán las distintas aplicaciones generadas a lo largo del proyecto
de investigación, las cuales se desarrollaron en el lenguaje de programación Matlab 7.0.
Para ejecutar la aplicación se debe abrir el archivo llamado ‘compara_imagenes.m’,
posteriormente en la ventana de Command Window se escribe la siguiente instrucción.
compara_imagenes(0,’100_0907.jpg’,’100_0908.jpg’)
En donde ’100_0907.jpg’,’100_0908.jpg’, son los nombres de las imágenes con las cuales
se trabajara.
Una vez ejecutado el programa aparecerá la siguiente pantalla de menú, con la cual se
podrá acceder a las diferentes aplicaciones del programa.
Anexo I
Al seleccionar la opción de ‘Bienvenida’ en la barra de menú.
Aparecerá el siguiente mensaje.
Anexo I
Para ejecutar la aplicación de generación de bordes deseada, basta con dar click en la
opción. Esta aplicación se explica a detalle en el Anexo II.
Para ejecutar la opción de relación entre la coordenada de un píxel y la coordenada en pantalla,
se puede elegir la opción de ‘Imagen sin borde’, o cualquiera de las opciones para generación de
borde. Esta aplicación se explica a detalle en el Anexo III.
Para ejecutar las aplicaciones de Geometría epipolar se selecciona la opción de ‘Geometría
epipolar’ en el menú principal con lo cual aparecerán las siguientes opciones.
Al seleccionar la opción de ‘Como usarme’ se mostrara la siguiente pantalla la cal
indica los pasos a seguir para ejecutar la aplicación.
Esta aplicación se explica a detalle en el Anexo IV.
Anexo II
Anexo II.
Generación de bordes.
A continuación se muestran las aplicaciones correspondientes al Capitulo III.
Como se menciono anteriormente basta con seleccionar la opción del borde deseado
dentro del menú principal con lo cual aparecerán las siguientes pantallas.
Comenzaremos con los operadores Laplaciano de Gauss y el Método de Canny.
Selección de la opción de Laplaciano de Gauss.
Selección de la opción de Método Canny.
Anexo II
A continuación se muestran el Método Zero-Cross y el Método de Roberts.
Selección de la opción de Método Zero-Cross.
Selección de la opción de Método Roberts.
Anexo II
A continuación se muestra las aplicaciones de el Método de Prewitt y el Método de
Sobel.
Selección de la opción de Método Prewitt.
Selección de la opción de Método Sobel..
Anexo III
Anexo III.
Relación entre la coordenada de un píxel y la coordenada en pantalla.
Esta aplicación puede ejecutarse con imágenes a las cuales se les puede aplicar algún
tipo de borde o ya sea con imágenes libres de bordes.
La finalidad de esta aplicación es, dado que se selecciona un punto o varios puntos
sobre la imagen, encontrar la relación de la coordenada en píxeles y las coordenadas en
pantalla o números reales del punto o puntos seleccionados.
A continuación se muestra la ejecución de la aplicación para una imagen libre de
bordes.
Como primer se selecciona la opción de ‘Imagen sin borde’ del menú principal como se
muestra a continuación.
Una vez seleccionada la opción de imagen sin borde aparecerá la pantalla de
‘Comparación de imágenes’, así como pantallas de mensajes que le ayudarán a trabajar
con la aplicación de manera amigable, esto se muestra a continuación.
Anexo III
Este es un mensaje de inicio de la aplicación una vez que se da click en el mensaje de
comienzo de aplicación aparecerá la siguiente pantalla.
Posterior a esto aparece un mensaje para comenzar a trabajar con la imagen izquierda.
Una vez seleccionado el punto o los puntos deseados en la imagen izquierda y presionar
la tecla Enter, aparecerá el siguiente mensaje para trabajar con la imagen derecha.
Una vez seleccionado el punto o los puntos deseados en la imagen derecha y presionar
la tecla Enter, aparecerá el siguiente mensaje para el análisis de los resultados.
Anexo III
Antes de comenzar a analizar los resultados observemos como fueron seleccionados los
puntos en la imagen.
Podemos observar los puntos seleccionados marcados por asteriscos de color rojo, en
este caso en particular solo se selecciono un punto por imagen, en particular este punto
se selecciono en una región que nosotros consideramos como el centro de la imagen, es
decir que el valor de este punto visto en coordenadas en pantalla debe ser muy
aproximado a cero, esto se presenta a continuación.
En el Command Window del lenguaje de programación Matlab 7.0, se pueden observar
los resultados de la ejecución de esta aplicación.
En la imagen que se presenta a continuación se puede observar el resultado en
coordenadas en píxel de los puntos seleccionados por cada imagen.
Una vez con los puntos seleccionados se procede a generar la relación entre la
coordenada de un píxel y la coordenada en pantalla, los resultados se muestran a
continuación.
Anexo III
Como podemos observar los resultados son muy aproximados al valor de cero como era
de suponerse.
Por otra parte podemos seleccionar puntos sobre cualquier parte de las imágenes y
mediante el mismo método obtener las coordenadas en pantalla.
La selección de los puntos para esta aplicación, como ya se había comentado puede ser
hecha mediante la extracción de algún borde de los posibles a elegir.
Anexo IV
Anexo IV.
Aplicaciones de geometría epipolar.
Utilizando el algoritmo de los ocho puntos comenzaremos obteniendo la Matriz
Fundamental mediante la Transformada SVD.
Como primer paso para la obtención de la Matriz Fundamental seleccionaremos un
mínimo de ocho puntos por imagen en nuestro caso se seleccionaron veinte puntos por
imagen los cuales fueron guardados en una tabla para su posterior utilización.
Para la selección de los puntos se elige del menú principal en la parte correspondiente a
‘Geometría epipolar’, se selecciona la opción de ‘Puntos sobre la imagen’ como aparece
en la siguiente pantalla.
Anexo IV
La selección de los puntos se muestra a continuación.
Una vez seleccionados los puntos somos capaces de generar la Matriz Fundamental con
la cual obtendremos las líneas epipolares de las dos imágenes.
En el menú principal dentro de las aplicaciones de ‘Geometría epipolar’ se selecciona la
opción de ‘Líneas Epipolares’ como se muestra en la siguiente pantalla.
Anexo IV
Una vez seleccionada esta opción se muestra la generación de las líneas epipolares .
En la imagen anterior se puede observar los resultados de la obtención de líneas
mediante el uso de la matriz fundamental.
Bibliografía
Bibliografía
•
•
•
•
•
•
•
Adams A; Rogers, D. ``Mathematical Elements for Computer Graphics".
McGraw-Hill, NY, 1990.
Altmann, S. ``Rotations, Quaternions and Double Groups". Clarendon Press,
Oxford. 1986.
Noble, B; Daniel, J.``Algebra Lineal Aplicada".Prentice-Hall. 1989.
Vince, J ``3-D Computer Animation". Addison-Wesley, 1992.
Wolfram, S. ``The Mathematica Book". 4a ed. Wolfram Media/Cambridge
University Press, 1999
Gonzalo Pajares, Martinsanz; de la Cruz garcía, Jesús M.. “Visión por
computador”, Ed Alfaomega, México, 2002.
Castelnuovo, Guido. “Lecciones de Geometría Analítica”, Ed. Palomino.
Argentina, 1959.
Referencias de Internet
•
•
•
•
•
•
http://www.matem.unam.mx/~rgomez/geometria/Capitulo6.pdf
http://www1.cs.columbia.edu/~jebara/htmlpapers/SFM/node8.html
http://wwwsop.inria.fr/robotvis/personnel/sbougnou/Meta3DViewer/EpipolarGeo.html
http://www1.cs.columbia.edu/~jebara/htmlpapers/SFM/sfm.html
http://www.cs.unc.edu/~marc/tutorial/node8.html
http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MOHR_TRIGGS
/node47.html
•
Artículos
•
•
•
Puente Montejano, Cesar Augusto. “reconstrucción de objetos presentes en una
escena utilizando el esquema de la siguiente mejor imagen”, ensenada baja
california, méxico. abril 2005
Santo Orcero, David. “La matriz fundamental y la matriz esencial. Conceptos y
aplicaciones”, mayo de 2002.
Figueroa, Pablo. “reconstrucción 3d geometría de dos vistas”, 2005
Descargar