Вы находитесь на странице: 1из 122

Determinacin de la posicin de objetos en

imgenes usando la Transformada de


Fourier-Mellin Analtica

Autor:
Mauricio Villegas Santamara
Directores:
Juan Ramn Torregrosa Snchez
Jaime Riera Guasp

UNIVERSIDAD POLITCNICA DE VALENCIA

ESCUELA TCNICA SUPERIOR DE INGENIEROS


DE TELECOMUNICACIN

Proyecto Fin de Carrera


Valencia, 13 de Octubre de 2004

A mi pap,

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Agradecimientos
Primero que todo agradezco ms que nadie a mis padres, que me han dado todo
en esta vida y me han hecho la persona que soy ahora. Y en general a mi familia,
que siempre me ha apoyado para conseguir mis metas. Sin ellos no habra podido
venir a Espaa, hacer mi proyecto de fin de carrera y finalmente graduarme como
ingeniero.
A mis amigos les agradezco por la buena amistad, por los buenos momentos, por
entenderme, y por haberme enseado tanto. Sin duda las cosas ms importantes
de la vida no se aprenden en un saln de clase.
Tambin agradezco a todas las personas que en el pasado han sido mis profesores
y de una forma u otra han contribuido en mi formacin y por lo tanto sus
lecciones se vern reflejadas en todos los trabajos que hago. Gracias a la
Universidad Santo Toms y a la Universidad Politcnica de Valencia, las
instituciones que han hecho esto posible.
Por ltimo quiero agradecer especialmente a los profesores D. Juan Ramn
Torregrosa Snchez y D. Jaime Riera Guasp por darme la oportunidad de trabajar
con ellos en este proyecto. Espero que mi trabajo y mi esfuerzo hayan cumplido
las expectativas que tenan, y que mi contribucin les sea de gran utilidad.

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

ndice

ACRNIMOS

INTRODUCCIN

OBJETIVOS

CAPTULO 1.
1.1.
1.1.1.
1.1.2.
1.1.3.
1.2.
1.2.1.
1.3.
1.3.1.
1.4.

FUNDAMENTOS MATEMTICOS

LA TRANSFORMADA DE FOURIER-MELLIN (FMT)


INTERPRETACIN DE LA FMT
LA FMT Y EL RECONOCIMIENTO DE FORMAS
PROBLEMAS DE LOS DESCRIPTORES BASADOS EN EL MDULO DE LA FMT
LA TRANSFORMADA DE FOURIER-MELLIN ANALTICA (AFMT)
PROPIEDADES DE LA AFMT
DESCRIPTORES AFMT INVARIANTES A CAMBIOS DE ESCALA Y ROTACIN
PROPIEDADES DE LOS DESCRIPTORES INVARIANTES AFMT
DISTANCIA ENTRE FORMAS

CAPTULO 2. IMPLEMENTACIN DE LA AFMT Y LOS DESCRIPTORES


INVARIANTES EN MATLAB

4
5
5
6
7
8
8
10
11
12

13

2.1.
2.1.1.
2.1.2.
2.2.
2.2.1.
2.2.2.
2.3.
2.4.
2.4.1.
2.5.

CLCULO DE LA TRANSFORMADA DE FOURIER-MELLIN ANALTICA


14
EL ALGORITMO RPIDO PARA EL CLCULO DE LA AFMT
14
CONSECUENCIAS DE LA APROXIMACIN DISCRETA DE LA AFMT
16
PROGRAMA PARA CONVERTIR UNA IMAGEN A COORDENADAS LOG-POLARES
18
EJEMPLO 1
19
EJEMPLO 2
22
PROGRAMA PARA APROXIMAR LA AFMT USANDO EL ALGORITMO RPIDO
26
PROGRAMA PARA CALCULAR LOS DESCRIPTORES AFMT
27
EJEMPLO 3
27
PROGRAMA PARA CALCULAR LA DISTANCIA EUCLIDEA ENTRE DESCRIPTORES AFMT
32
2.5.1. EJEMPLO 4
32

CAPTULO 3.
AFMT

DETERMINACIN DE LA POSICIN DE OBJETOS USANDO LA


35

3.1. ALGORITMO SIMPLE PARA LA DETERMINACIN DE LA POSICIN DE OBJETOS


3.1.1. EJEMPLO 5
3.2. DESCRIPTORES AFMT PARA UN DISCO DE VALOR CONSTANTE
3.2.1. EJEMPLO 6

ii

36
36
41
44

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.3. NUEVA DEFINICIN DE LA DISTANCIA DE SIMILITUD


46
3.3.1. EJEMPLO 7
46
3.4. ALGORITMO PARA LA DETECCIN DEL MOVIMIENTO DE UN OBJETO EN UN VDEO 49
3.4.1. CARACTERSTICAS DE LOS VDEOS
49
3.4.2. ALGORITMO PARA OBJETOS QUE SE MUEVEN LENTAMENTE
50
3.4.3. ALGORITMO PARA OBJETOS QUE SE MUEVEN RPIDAMENTE
50
3.4.4. DETERMINACIN DE LA POSICIN INICIAL DEL OBJETO
53
3.4.5. ALGORITMO OPTIMIZADO PARA LA DETERMINACIN DE LAS POSICIONES DE UN OBJETO
EN VDEOS
55
3.4.6. UN NUEVO PROBLEMA CON EL FONDO
56
CAPTULO 4.

APLICACIN

58

4.1. POSIBLES CAMPOS DE APLICACIN


59
4.1.1. MEDIR LOS PARMETROS DE MOVIMIENTO PARA OBJETOS EN LABORATORIOS DE FSICA
MECNICA
59
4.1.2. MEDICIN PRECISA DE LA POSICIN DE LA LUNA
59
4.1.3. SISTEMA AUTOMTICO PARA EL SEGUIMIENTO DE CUERPOS CELESTES
61
4.1.4. SEGUIMIENTO DEL MOVIMIENTO DE COCHES EN UNA CALLE
61
4.1.5. AYUDA PARA EL CONDUCTOR DE UN VEHCULO
62
4.2. ENTORNO GRFICO PARA DETERMINAR LA POSICIN DE UN OBJETO EN UN VDEO 63
4.3. RESULTADOS USANDO EL PROGRAMA OBMODE
70
4.3.1. RESULTADOS ESPECIFICANDO LA POSICIN INICIAL PARA EL PRIMER COCHE
71
4.3.2. RESULTADOS ESPECIFICANDO LA POSICIN INICIAL PARA EL SEGUNDO COCHE
72
4.3.3. RESULTADOS SIN ESPECIFICAR LA POSICIN INICIAL
73
4.3.4. RESULTADOS USANDO EL ALGORITMO DE RADIO VARIABLE
74
4.3.5. RESULTADOS USANDO EL MISMO VDEO PERO DIGITALIZADO SIN COMPRESIN Y
COMPENSANDO EL ENTRELAZADO
77
CAPTULO 5.

CONCLUSIONES

79

BIBLIOGRAFA

81

ANEXO A.

83

DEMOSTRACIONES MATEMTICAS

A.1. DEDUCCIN DEL TEOREMA DE TRASLACIN EN COORDENADAS LOG-POLARES PARA


LA AFMT
83
A.2. DEMOSTRACIN DE LA SIMETRA HERMITIANA DE LA AFMT
84
A.3. DEMOSTRACIN DE LA INVARIANZA A LAS SIMILITUDES PLANAS DE LOS
DESCRIPTORES AFMT
85
A.4. DEMOSTRACIN DE LA NO INVARIANZA A LAS TRASLACIONES DE LOS DESCRIPTORES
AFMT
86
ANEXO B.
B.1.
B.2.
B.3.
B.4.
B.5.

PROGRAMAS EN MATLAB

87

IM2LOGPOL.M
F_AFMT.M
AFMT_DESCRIPTORS.M
IMDISTANCE.M
OBMODE.M (SOLO LA PARTE EN QUE SE DETERMINAN LAS POSICIONES)

iii

87
89
91
93
94

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

ANEXO C.
C.1.
C.2.
C.3.
C.4.
C.5.
C.6.
C.7.
C.8.
C.9.
C.10.

RESULTADOS USANDO EL PROGRAMA OBMODE

BOLA EN CADA LIBRE, PRUEBA 1


BOLA EN CADA LIBRE, PRUEBA 2
BOLA EN CADA LIBRE, PRUEBA 3
BOLA EN CADA LIBRE, PRUEBA 4
VIDEO DE TRFICO, PRUEBA 1
VIDEO DE TRFICO, PRUEBA 2
VIDEO DE TRFICO, PRUEBA 3
VIDEO DE TRFICO, PRUEBA 4
VIDEO DE TRFICO, PRUEBA 5
VIDEO DE TRFICO, PRUEBA 6

96
96
98
100
102
104
106
108
110
112
114

iv

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Acrnimos
AFMT

Analytical Fourier-Mellin Transform


(Transformada de Fourier-Mellin Analtica)

CHF

Circular Harmonic Functions


(Funciones Armnicas Circulares)

FFT

Fast Fourier Transform


(Transformada Rpida de Fourier)

FMT

Fourier-Mellin Transform
(Transformada de Fourier-Mellin)

FT

Fourier Transform
(Transformada de Fourier)

IAFMT

Inverse Analytical Fourier-Mellin Transform


(Inversa de la Transformada de Fourier-Mellin Analtica)

MT

Mellin Transform
(Transformada de Mellin)

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Introduccin

A medida que pasa el tiempo y que la poblacin mundial aumenta, cada vez se
requieren nuevos aparatos que nos ayuden en nuestras. Hasta el momento la
tecnologa ha permitido que se construyan mquinas que hacen cosas imposibles
para una persona, pero se necesita que sean cada vez ms inteligentes para que
sean capaces de hacer tareas ms especficas con poca o ninguna intervencin
humana. De esta necesidad surgen temas como la informtica, la inteligencia
artificial y la robtica, que son los campos de la ciencia llamados a solventar esas
deficiencias.
Una diferencia muy grande entre los seres humanos y las maquinas que creamos,
es que nosotros somos capaces de interpretar y analizar rpidamente todas las
imgenes que reciben nuestros ojos. Para cualquier persona es muy fcil
identificar la especie de un animal con solo mirarlo un momento y no importa
que tan diferente fuera de los que haba visto antes. Lo importante es que el
animal tenga las caractersticas que tienen todos los de su especie. Por otro lado,
programar un ordenador para que identifique la especie de un animal es una tarea
tremendamente complicada y los resultados se asemejan a la capacidad humana.
Aunque en el momento es imposible lograr que un ordenador analice una imagen
de la forma que lo hace una persona, si se han desarrollado muchas tcnicas cuyo
objetivo es extraer de ellas cierta informacin muy especfica. Esto se hace
usando el procesamiento digital de imgenes y lleva el nombre de anlisis de
imgenes digitales. La informacin que se extrae de las imgenes puede ser de
cualquier tipo dependiendo de los requerimientos que se tienen pero cabe
mencionar entre estos el reconocimiento de formas que pretende identificar un
objeto o patrn particular.
En la actualidad existe mucho inters en la Transformada de Fourier-Mellin
Analtica como herramienta para el reconocimiento de formas. Esta transformada
permite extraer fcilmente unos descriptores que identifican un objeto
independientemente del tamao o la orientacin que tengan. Esa caracterstica
permite bastante flexibilidad en las imgenes que se toman de los objetos. Un
ejemplo de una aplicacin de esta transformada es en la identificacin o
autenticacin de personas mediante huellas dactilares.
Aunque la Transformada de Fourier-Mellin Analtica ya se usa en diferentes
aplicaciones, sus caractersticas tan particulares pueden servir para otros

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

propsitos y no necesariamente en el reconocimiento de formas. Por esta razn


este proyecto se enfoca en las posibles aplicaciones que se le pueden dar a esa
herramienta matemtica.

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Objetivos

En general el objetivo de este proyecto es analizar las diferentes aplicaciones que


se le pueden dar a la Transformada de Fourier-Mellin Analtica y los descriptores
invariantes a las similitudes planas. De forma ms especfica para este proyecto
se plantean los siguientes objetivos:

Presentar de forma clara la Transformada de Fourier-Mellin Analtica, los


descriptores invariantes a las similitudes planas y la distancia de similitud
entre formas.
Implementar la teora presentada en lenguaje de programacin.
Comprobar que la teora corresponde con los resultados que se obtienen en
el ordenador.
Desarrollar un algoritmo para determinar la posicin de objetos en
imgenes y en vdeos.
Aplicar el algoritmo desarrollado en vdeos de una situacin real.

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Captulo 1.

Fundamentos matemticos

En este captulo se presentar toda la teora matemtica necesaria para el


desarrollo del presente proyecto. Ms especficamente, se tratarn los temas de la
Transformada de Fourier-Mellin (FMT), la Transformada de Fourier-Mellin
Analtica (AFMT) y el uso de estas para comparar imgenes que representan
objetos similares. Esa es la base terica que nos permite determinar la posicin
de objetos con la especial caracterstica de ser bastante flexible comparado con
otros mtodos mas tradicionales.
Antes de introducirnos en el mundo de las frmulas y los nmeros, valdra la
pena mencionar a las primeras personas que trabajaron en el tema. La
Transformada de Fourier-Mellin debe su nombre a dos grandes matemticos.
Ninguno de estos personajes la invent, pero sus trabajos ms importantes estn
muy relacionados y gracias a estos, surge esa transformada tan particular.
La primera de las personas que mencionbamos es Jean Baptiste Joseph Fourier
que naci en Auxerre, Francia en 1768 y muri en Paris en 1830. Su mayor logro
fue el Anlisis de Fourier (nombre con el que se conoce actualmente), el cual se
define como una teora matemtica en la que una funcin peridica se
descompone en unas funciones peridicas elementales (sinusoides) [1]. El
segundo matemtico llamado Robert Hjalmar Mellin naci en Liminka, Finlandia
en 1854 y muri en 1933. Su trabajo se concentr en la teora de funciones y
estudi una transformada que ahora tambin lleva su nombre, la Transformada de
Mellin (MT) [2].

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

1.1. La Transformada de Fourier-Mellin (FMT)


Consideremos una funcin de dos variables en coordenadas polares, r es la
variable radial que est definida para todos los nmeros reales positivos
incluyendo el cero, y es la variable angular medida en radianes y definida para
todos los nmeros reales entre 0 y 2. En notacin matemtica esto se escribe
f (r , ) , (r , ) R+* S 1 .

La forma natural de la Transformada de Fourier-Mellin est definida para


funciones de este tipo por la siguiente ecuacin [5]

M f (k , v ) =

1
2

f (r , )r

jv

e jk d

0 0

dr
r

(k , v ) Z R

El resultado de la Transformada de Fourier-Mellin es una nueva funcin de dos


variables k y v. La variable k est definida para todos los nmeros enteros
positivos y negativos incluyendo el cero, y la variable v est definida para todos
los nmeros reales.

1.1.1. Interpretacin de la FMT


Para poder entender mejor lo que hace la Transformada de Fourier-Mellin,
podemos relacionarla con el Anlisis de Fourier y la Transformada de Mellin.
Segn el Anlisis de Fourier cualquier funcin peridica se puede representar
como una suma de funciones peridicas de la forma
x a e jkx ,

que son armnicos de e jx. Esta representacin de una funcin se conoce como la
Serie de Fourier Compleja, y para una funcin peridica con respecto a la
variable y con periodo 2, esta serie es [3]
f ( ) = ck e jk .
kZ

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

La sucesin ck se conoce como los Coeficientes de Fourier, y si se toma como


una variable de tiempo, estos representan la distribucin de la funcin en el
dominio de la frecuencia. La frmula para los Coeficientes de Fourier es la
siguente
ck =

1
2

f ( )e jk d .

Si tenemos una funcin f(r,) de dos variables en coordenadas polares como la de


la FMT, y analizamos la variable pero extendindola para todos los nmeros
reales, podemos decir que f es una funcin peridica con periodo 2. Estas
funciones se conocen como Funciones Armnicas Circulares (CHF). Como las
CHFs son peridicas, se pueden representar mediante una Serie de Fourier.
f (r , ) = f k (r )e jk ,

f k (r ) =

kZ

1
2

f (r , )e jk d .

Por otra parte, la Transformada de Mellin se define de la siguiente forma [5]

M f (v ) = f (r )r jv
0

dr
.
r

Si remplazamos f(r) en la Transformada de Mellin, por los Coeficientes de


Fourier fk(r), obtenemos la Transformada de Fourier-Mellin. De esta deduccin
de la FMT podemos decir varias cosas. Primero, podemos ver que k est
directamente relacionada con la variable angular y se le puede dar una
interpretacin muy similar a la de los Coeficientes de Fourier. Tambin queda
claro que v est relacionado con la variable radial y debe tener las mismas
caractersticas que la Transformada de Mellin. Por ltimo, para k = 0 la
transformada representa el nivel DC de la funcin con respecto a circunferencias
de radio fijo.

1.1.2. La FMT y el reconocimiento de formas


Hay una caracterstica principal de la FMT que la hace muy atractiva para
reconocimiento de formas. Una rotacin con respecto al origen o un cambio de
escala, en el dominio original de la funcin se traducen en solo un cambio de fase
en el dominio de Fourier-Mellin. Estos cambios en una funcin se conocen como
similitudes planas, y en trminos matemticos, dos funciones f y g tienen este
tipo de similitud si
g (r , ) = f (r , + ) ,

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

donde y son constantes que representan cambios de escala y orientacin


respectivamente.
Si se cumple esta condicin, sus Transformadas de Fourier-Mellin se relacionan
por
M g (k , v ) = jv e jk M f (k , v ) .

Por analoga con la transformada de Fourier, esta propiedad se puede llamar el


teorema de traslacin en coordenadas log-polares de la FMT. Si sacamos el valor
absoluto a ambos lados de esta expresin obtenemos
M g (k , v ) = M f (k , v ) .

Como el resultado es el mismo para ambas transformadas, se puede decir que


estos son unos descriptores de la funcin invariantes a los cambios de escala y
rotacin. En otras palabras, esto significa que se puede representar un objeto
independientemente de su tamao u orientacin. Estos descriptores pueden servir
para hacer comparaciones entre diferentes imgenes u objetos y sirven para
determinar si son equivalentes en el sentido de la similitud plana [4].

1.1.3. Problemas de los descriptores basados en el mdulo de la FMT


La FMT y los descriptores invariantes mencionados anteriormente no cumplen
bien todos los criterios necesarios para ser usados en una aplicacin de
reconocimiento de formas [7]. Cuando sacamos el valor absoluto de la FMT se
pierde mucha informacin y existe la posibilidad de que dos objetos diferentes
tengan los mismos descriptores. Adems con un ejercicio muy sencillo [6] se
puede demostrar que la mayor parte de la informacin se encuentra en la fase, lo
que significa que usar solo el mdulo no es muy eficiente. El ejercicio se trata de
reconstruir una imagen a partir de una FMT formada por el modulo y la fase de
funciones diferentes. El resultado es que la imagen se parece mas a la funcin de
la cual se extrajo la fase.
Otro problema que tiene la FMT es el trmino r -1. Cuando r tiende a cero, ese
trmino tiende a infinito, lo que implica que la funcin debe tender a cero en el
origen para que la FMT converja. En la aplicacin de reconocimiento de formas,
el origen es un punto sobre la imagen del objeto que se esta representando. Esto
nos asegura que normalmente el origen es diferente de cero, por lo tanto al sacar
la FMT de imgenes es muy posible que el resultado diverja.
1

Omitimos la deduccin de esta frmula porque el objetivo de este proyecto es usar la Transformada de
Fourier-Mellin Analtica.

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

1.2. La Transformada de Fourier-Mellin Analtica (AFMT)


Para solucionar el problema de convergencia de la FMT mencionado en la
seccin anterior, se puede modificar un poco esta transformada. La modificacin
consiste en sumar una constante a la potencia de r de tal forma que esta nunca
sea -1. Con la modificacin se obtiene lo que se conoce como la Transformada de
Fourier-Mellin Analtica (AFMT) que es la siguiente [5]

1
M f (k , v ) =
2

f (r, )r

jv jk

0 0

dr
r

(k , v ) Z R

Para que la integral converja, la constante debe ser un valor real positivo
diferente de cero. En la mayora de los textos sobre el tema, esta constante se
asume igual a 0,5. Al igual que todas las transformadas, existe una frmula para
invertir la AFMT, que es la siguiente.

f (r , ) =

M (k , v )e
kZ

jk

r + jv dv

(r , ) R+* S 1

1.2.1. Propiedades de la AFMT


Para la AFMT tambin existe un teorema de traslacin en coordenadas logpolares, cuya demostracin se encuentra en el anexo A. Para dos funciones con
similitud plana de tal forma que g(r,)=f(r,+), el teorema de traslacin para la
AFMT es
M g (k , v ) = + jv e jk M f (k , v )

Podemos observar que la relacin entre las AFMTs ya no es solo un cambio de


fase, por lo que el valor absoluto ya no genera unos descriptores invariantes.
Queda una multiplicacin por - y por lo tanto los descriptores dependen del
tamao del objeto, pero sigue siendo invariante a la rotacin. La invarianza a la
rotacin puede seguir siendo til para ciertas aplicaciones y ya no se tiene el

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

problema de convergencia de la transformada. Sin embargo todava existe la


posibilidad de que dos objetos diferentes tengan los mismos descriptores.
Otra propiedad es que la AFMT tiene simetra hermitiana. Su representacin
matemtica es la siguiente [6]

M f (k , v ) = M f ( k ,v ) ,

donde la lnea superior denota el complejo conjugado. Debido a esta simetra, en


un ordenador solo se requiere calcular la mitad de la AFMT y la otra mitad se
puede obtener gracias a la simetra aplicando la frmula anterior.

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

1.3. Descriptores AFMT invariantes a cambios de escala y


rotacin
Es posible obtener unos descriptores invariantes a los cambios de escala y
rotacin eliminando los problemas que se han mencionado. Lo que se hace es
normalizar la transformada con respecto al trmino -+jv e jk aplicndole el
teorema de traslacin con una escala y orientacin de referencia de la siguiente
forma

( )

I f (k , v ) = f

+ jv

jk f

)
M f (k , v ) .

La escala y orientacin de referencia designadas por las constantes y


respectivamente deben depender de la AFMT para que sta sea normalizada y se
obtenga la invarianza. Existen muchas soluciones para las constantes que generan
descriptores invariantes. En este proyecto se usara la siguiente solucin [5]
1

f = M f (0,0 )

f = arg M f (1,0 )

Reemplazando la solucin y simplificando un poco obtenemos la frmula para


los descriptores invariantes a las similitudes planas basados en la AFMT, que es
la siguiente

1+ j

I f (k , v ) = M f (0,0 )

}
M f (k , v )

jk arg M f (1, 0 )

(k , v ) Z R

Estos ya son unos descriptores invariantes a los cambios de escala y rotacin, que
adems son nicos para cada grupo de funciones con similitud plana. Para
entender que ocurre al aplicar esta frmula a una transformada AFMT podemos
mencionar un experimento [5], que consiste en aplicar la AFMT inversa a los
descriptores. El resultado es la misma funcin, pero con una escala y rotacin
diferentes que se podra decir que son los naturales de la funcin.

10

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

1.3.1. Propiedades de los descriptores invariantes AFMT


La propiedad ms importante de todas es la que define la invarianza a las
similitudes planas. La demostracin se encuentra en el anexo A y dice que para
todas las funciones tal que g(r,) = f(r,+) se cumple que
I g (k , v ) = I f (k , v )

Otra propiedad que caracteriza los descriptores AFMT es que para k = 0, v = 0,


el valor siempre es igual a uno independientemente de la funcin a la cual se le
esta haciendo la transformacin.
I f (0,0 ) = I g (0,0 ) = 1

Por ltimo, hay una propiedad que es totalmente necesaria para que los
descriptores AFMT puedan ser usados para determinar la posicin de un objeto.
El requerimiento es que los descriptores no pueden ser invariantes a la traslacin,
ya que eso significara que no contienen informacin de la posicin. La traslacin
en coordenadas cartesianas se define como h(x,y) = f(x-xo,y-yo), por lo tanto para
xo 0, yo 0 se requiere que
I h (k , v ) I f (k , v )

Esta propiedad se cumple, como se puede ver en el anexo A. De aqu sale un


mtodo para extraer la posicin de objetos. La funcin h representa a un objeto y
se quiere encontrar su posicin en la funcin f que representa la imagen. Se
calculan los descriptores AFMT de la funcin f para diferentes valores de xo, yo y
la posicin del objeto ser aquella para la cual sus descriptores son iguales a los
de la funcin h.

11

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

1.4. Distancia entre formas


Ya teniendo unos descriptores invariantes a las similitudes planas, es necesario
definir una distancia de similitud entre formas que nos sirva para determinar si
dos imgenes representan el mismo objeto o no. Para funciones que tienen
similitud plana, esta distancia debe ser exactamente cero. Y mientras menos se
asemejen las funciones, el valor debe aumentar.
La forma ms simple de definir esta distancia es con la distancia euclidea entre
los descriptores AFMT. La ecuacin se muestra a continuacin.

d I f , I g = I f (k , v ) I g (k , v ) dv

kZ

1
2

La distancia entre formas se puede definir de muchas otras maneras, por ejemplo
teniendo ms en cuenta ciertos valores de k o v. Haciendo esto es posible lograr
que la comparacin de los objetos sea ms discriminatoria. Pero para beneficiarse
de estas ventajas se debe saber por adelantado ciertas caractersticas del objeto
que se va a detectar, por lo tanto esas distancias se deben definir para una
aplicacin especfica y no en general.

12

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Captulo 2. Implementacin de la AFMT y los


descriptores invariantes en Matlab
En este captulo, se pretende implementar toda la teora sobre la Transformada de
Fourier-Mellin Analtica y los descriptores invariantes a las similitudes planas. El
objetivo es poder experimentar y visualizar los resultados, por el momento no se
pretende desarrollar un software para ser comercializado. Para esta
implementacin, a nivel de software lo que se requiere es una herramienta que
facilite los clculos matemticos complejos y adems la posibilidad de realizar
varias pruebas rpidamente sin necesidad de hacer muchos cambios. Tambin es
muy importante que el software sea capaz de manejar imgenes para no tener que
preocuparse sobre temas como diferentes formatos de archivos, visualizacin de
las imgenes, conversin entre datos de imagen y numricos, etc.
Estas son las principales razones para elegir a Matlab, que es una herramienta
especializada para el desarrollo de aplicaciones de ingeniera y matemtica con
una larga experiencia en el mercado. La programacin en Matlab es bastante
simple e incluye un amplio abanico de funciones matemticas. Adicionalmente
incluye un paquete llamado Image Processing Toolbox que permite leer,
escribir y visualizar muchos formatos de archivos de imagen. Asimismo contiene
muchas funciones de procesamiento digital de imagen que pueden ser muy tiles,
ya que al trabajar con imgenes se puede requerir mucho ms que la AFMT y los
descriptores invariantes que se van a implementar.
Pero Matlab tiene unas cuantas desventajas, comenzando por la velocidad de
procesamiento. Puede ser muy fcil programar funciones matemticas complejas
pero no es posible optimizar los tiempos de clculo. Si se usa otro lenguaje de
programacin como C++ se puede lograr tiempos de ejecucin mucho menores
que con Matlab. Pensando en la posibilidad de desarrollar en el futuro un
software comercial, si se tendr que cambiar la herramienta. Es hasta posible que
se requiera usar circuitos integrados especializados en procesamiento digital de
imagen para lograr los tiempos de ejecucin necesarios para alguna aplicacin
real.

13

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

2.1. Clculo de la Transformada de Fourier-Mellin Analtica


Toda la teora sobre la AFMT y los descriptores invariantes que se present en el
primer captulo se aplica a funciones continuas y de extensin infinita. Pero esta
teora se debe aplicar a imgenes digitalizadas que implican el uso de nicamente
matemtica discreta. Esto ocurre en cualquier problema real cuando se trabaja
con ordenadores. Por ejemplo en telecomunicaciones el anlisis de seales
normalmente se hace usando el Anlisis de Fourier. Para ese caso se usa la
Transformada de Fourier Discreta, que tiene las mismas propiedades que su
equivalente continuo. Y adems existe un algoritmo que permite calcular las FTs
de forma muy ptima, que se llama la Transformada Rpida de Fourier o FFT
por sus siglas en ingls. Desafortunadamente para el caso de Fourier-Mellin no
existe un equivalente discreto, y es necesario usar mtodos numricos para
aproximar las integrales.
Se han propuesto tres algoritmos para aproximar la AFMT que son: el algoritmo
directo, el algoritmo rpido y el algoritmo cartesiano. Basndonos en los
resultados obtenidos por Stphane Derrode [5] podemos decir que el mejor
algoritmo por muchas razones es el rpido, y por lo tanto ste es el que se va a
utilizar.

2.1.1. El algoritmo rpido para el clculo de la AFMT


El algoritmo rpido se basa en cambiar las variables de integracin de la AFMT
de tal forma que sea igual a una Transformada de Fourier en dos dimensiones. De
esa forma es posible usar la FFT y como consecuencia el clculo es mucho ms
veloz que con los otros algoritmos. Comenzamos con la frmula de la AFMT.
1
M f (k , v ) =
2

f (r, )r

jv jk

0 0

dr
,
r

y cambiamos las variables de integracin por las siguientes


r = e 2t dr = 2e 2t dt ,

= 2s d = 2ds .

Los lmites de las integrales cambian a los siguientes


lim =
r 0

lim =

lim = 0
0

lim = 1

14

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Remplazando obtenemos
M f (k , v ) =

1
2
1
2

f (r , )r

0 0

dr
r

jv

)( )

f e 2t ,2s e 2t

e jk (2s ) 2ds

0
1

= 2

jv jk

f (e

2t

2e 2t dt
e 2t

,2s e 2t e j 2 (ks +tv ) dsdt .

As pues
1

M f (k , v ) = 2

[e

2t

)]

f e 2t ,2s e j 2 (vt +ks )dtds .

Por lo tanto la AFMT representada de esta forma es 2 multiplicado por la FT en


dos dimensiones de la funcin modificada que se encuentra entre los corchetes.
Ahora, si pasamos esta transformada a forma discreta muestreando la variable v
para los nmeros enteros.
M 1 N 1

M f (k , v ) = 2 e 2 (nt ) f e 2 (nt ) ,2 (ms ) e j 2 [k (ms )+v (nt )]ts

)]

m=0 n=0

2n N1
= 2 e f e 2nt ,2ms
m =0 n =0

M 1 N 1

j 2 km M1 +vn N1 1 1
e .
M N

Por tanto

2
M f (k , v ) =
MN

n
2
N
f e 2nt ,2ms
e

m = 0 n =0

M 1 N 1

vn
+
j 2 km
M N
,
e

es decir
n
2

M f (k , v ) =
FFT2 D e N f e n , m
MN

Esta frmula define el algoritmo rpido para la aproximacin de la AFMT. Para


implementarlo, el primer paso es muestrear la funcin continua f para una regin
circular limitada a intervalos regulares segn las coordenadas log-polares. Las
coordenadas log-polares se pueden observar en la Figura 1, las muestras se toman
15

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

en las intersecciones de las circunferencias con los radiales. Tras discretizar la


funcin f, cada muestra se multiplica por el trmino de la izquierda. Finalmente
se aplica la Transformada de Fourier en dos dimensiones usando el algoritmo
FFT.

Figura 1. Malla de muestreo en coordenadas log-polares.

Para implementar esta transformada en Matlab se tomo la decisin de hacer dos


funciones separadas. La primera toma una imagen digital en coordenadas
cartesianas y la convierte a coordenadas log-polares haciendo interpolacin. La
segunda funcin calcula la AFMT mediante el algoritmo rpido usando la
funcin anterior.

2.1.2. Consecuencias de la aproximacin discreta de la AFMT


Esta transformada se define para funciones continuas y de extensin infinita.
Como nicamente se puede tener una cantidad finita de muestras de la funcin,
solo se considera una regin circular limitada centrada en el origen, y se toman
las muestras a intervalos regulares segn las coordenadas log-polares. Por fuera
de esta regin se asume que todos los valores son cero. Da como resultado que la
aproximacin de la AFMT necesariamente debe recortar la funcin. Lo que
significa que para que la aproximacin de la transformada sea buena, en el borde

16

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

de la regin que se muestrea, los valores deben ser cercanos a cero. Si no ocurre
esto tendremos discontinuidades al recortar la funcin, y la AFMT no
corresponder bien a la funcin original.
Otra consecuencia inevitable de usar un ordenador para calcular la AFMT es que
solo es una aproximacin y por lo tanto el resultado nunca ser exacto. Al definir
una distancia de similitud entre objetos se debe saber que para funciones con
similitud plana ya no se obtendr el valor de cero. Las distancias sern cercanas a
cero y no se puede saber con antelacin cuales son los valores que corresponden
al mismo objeto.

17

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

2.2. Programa para convertir una imagen a coordenadas logpolares


El cdigo de este programa se encuentra en el anexo B, y el archivo se llama
im2logpol.m. Este programa es una funcin que toma como entrada una imagen
(que ya debe estar en el workspace de Matlab) y varios argumentos de entrada
opcionales. La imagen representa la funcin a la cual se va a calcular la AFMT,
por lo tanto debe ser de dos dimensiones. Normalmente las imgenes son en
colores que es una funcin en tres dimensiones, por lo tanto antes de hacer la
conversin a log-polar esta debe estar en formato de escala de grises.
Como el objetivo es usar esta funcin para encontrar la posicin de un objeto en
cada fotograma de un vdeo, es indispensable poder modificar la posicin y el
tamao del rea al cual se va a calcular la AFMT. Debido a esto, uno de los
argumentos de entrada opcionales permite definir la regin de la imagen de
entrada que se desea convertir. Esta rea es circular y se define especificando el
centro y el radio de este disco en coordenadas de imagen2. Estos valores pueden
ser no enteros lo que permitira detectar la posicin de objetos con precisiones
mayores que la separacin entre pxeles.
Otro de los argumentos de entrada, es el tamao de la imagen log-polar de salida.
Este parmetro define en gran medida el tiempo de ejecucin de la funcin ya
que mientras ms interpolaciones se hagan, mas va a tardar el proceso. Claro est
que mientras menos datos se calculen, la imagen resultante se asemejar menos a
la original.
Por ltimo, para esta funcin se puede definir el mtodo de interpolacin que se
usar para obtener las muestras. Hay cuatro mtodos posibles que son nearest,
linear, cubic y spline. El primero nearest hace referencia a la frase inglesa
nearest neighbor interpolation que significa interpolacin del vecino ms
cercano. Como se puede entender, en este tipo de interpolacin el valor de la
muestra se toma igual al del punto ms cercano. El segundo mtodo es linear
referente a la interpolacin bilineal, en la que la muestra se calcula usando una
funcin lineal de dos variables que satisfacen la funcin en los cuatro puntos ms
cercanos. El tercero cubic de interpolacin bicbica similar a la anterior pero se
usa una funcin cbica y considera los 16 puntos mas cercanos. El ltimo
mtodo de interpolacin spline no es muy usado en imgenes, pero Matlab
tambin lo soporta.

En las coordenadas de imagen la posicin de cada pxel se define mediante dos enteros, donde el primer
pxel es (1,1) y es el que se encuentra en la esquina superior izquierda. La primera coordenada define la
posicin vertical y la segunda la posicin horizontal.

18

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

La diferencia entre los diferentes mtodos de interpolacin es que mientras ms


puntos se tomen en cuenta para calcular el valor de la muestra, ms se
aproximar a la funcin continua que representa. Sin embargo, mientras ms
sofisticado es el mtodo de interpolacin, ms tardar en calcularse.

2.2.1. Ejemplo 1
Como primer ejemplo convertiremos a coordenadas log-polares la imagen de una
mariposa usando los cuatro mtodos de interpolacin disponibles. La imagen a
utilizar es la siguiente.

Figura 2. Imagen de una mariposa usada en el ejemplo 1.

Lo primero que se debe decidir es el rea de la imagen que se va a convertir a


coordenadas log-polares. Como centro de la imagen, podemos tomar la cabeza de
la mariposa que se encuentra en las coordenadas x = 127, y = 120. Como nos
interesa que el rea contenga toda la mariposa pero no ms que esta,
seleccionamos un radio de 100. Esta rea la podemos observar en la Figura 3.

Figura 3. rea de la imagen que se va a convertir a


coordenadas log-polares en el ejemplo 1.

19

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Habiendo seleccionado el rea de inters de la imagen, podemos hacer la


conversin para cada uno de los mtodos de interpolacin. Los comandos en
Matlab para: primero leer la imagen, segundo hacer las conversiones y tercero
visualizar los resultados, son los siguientes.
>> ejemplo1 = im2double(rgb2gray(imread('ejemplo1.bmp')));
>>
>>
>>
>>

nearest = im2logpol(ejemplo1,'Area',[127 120 100],'Method','nearest');


linear = im2logpol(ejemplo1,'Area',[127 120 100],'Method','linear');
cubic = im2logpol(ejemplo1,'Area',[127 120 100],'Method','cubic');
spline = im2logpol(ejemplo1,'Area',[127 120 100],'Method','spline');

>>
>>
>>
>>

subplot(1,4,1),
subplot(1,4,2),
subplot(1,4,3),
subplot(1,4,4),

imshow(nearest)
imshow(linear)
imshow(cubic)
imshow(spline)

En los resultados en la Figura 4 se puede observar la diferencia que se tiene al


usar cada uno de los tipos de interpolacin. El caso en que ms claro se ve es
comparando nearest con cualquier otro mtodo. En la parte superior de la imagen
se pueden ver unas figuras que forman unos arcos. Esto se debe a que en
coordenadas log-polares se tienen muchas mas muestras cerca del origen. Como
el algoritmo de nearest toma como valor del pxel, el del punto ms cercano, se
obtienen muchas muestras contiguas con el mismo valor cuando se esta cerca del
origen. Esto sumado con la naturaleza log-polar es lo que genera esos arcos tan
caractersticos.

20

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

(c)

(d)

Figura 4. Resultado de la conversin de la imagen de la mariposa del


ejemplo 1 a coordenadas log-polares usando diferentes tipos de
interpolacin. (a) nearest. (b) linear. (c) cubic. (d) spline.

Para los otros tres mtodos no es muy fcil ver la diferencia ya que en todos se
observa una imagen suave. Pero en trminos reales, mientras se interpole
teniendo en cuenta ms puntos, mas se debera aproximar el resultado al objeto
original. Sin embargo, esta diferencia se refleja en el tiempo de clculo, como ya
se mencion. En promedio, los tiempos de ejecucin3 de im2logpol.m para este
ejemplo se observan en la siguiente tabla.

Tiempos de ejecucin medidos en un ordenador Toshiba Satellite Pro M30 con procesador Intel
Centrino 1.5 GHz, sistema operativo Windows XP Profesional y Matlab versin 6.5. El programa con el
que se calcularon estos tiempos es ejemplo1_ medicion_de_tiempos_de_ejecucion.m.

21

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Mtodo de interpolacin

Tiempo de ejecucin
[segundos]
0,0483
0,0641
0,1375
0,9436

Nearest
Linear
Cubic
Spline

Tabla 1. Tiempos de ejecucin promedio para las conversiones


de la imagen de una mariposa a coordenadas log-polares para el
ejemplo 1.

Como nos podemos dar cuenta, los tiempos de ejecucin son muy diferentes para
cada uno de los tipos de interpolacin. Spline es muchsimo mas lento que los
otros, por eso es que no se usa en imgenes. Cubic es la ms usada en
aplicaciones de imagen, como por ejemplo para cambiar el tamao (en cantidad
de pxeles) de una imagen. Pero para este proyecto, es muy importante que los
tiempos de clculo sean muy pequeos, por eso lo mejor es usar nearest o linear.

2.2.2. Ejemplo 2
Como segundo ejemplo se tomar la imagen de un caballito de mar y se
convertir variando el tamao de la imagen log-polar de salida. La imagen del
caballito de mar se observa en la siguiente figura.

Figura 5. Imagen de un caballito de mar usada


en el ejemplo 2.

22

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Siguiendo el mismo procedimiento del ejemplo anterior, para este caso el rea de
la imagen a convertir es un disco con el centro en las coordenadas x = 126, y =
138 y radio igual a 118. Nuevamente esta regin se observa delimitada en la
figura.

Figura 6. rea de la imagen que se va a


convertir a coordenadas log-polares en el
ejemplo 2.

Los tamaos de la imagen de salida que se calcularn son de 200x200, 100x100 y


50x50. El cdigo en Matlab para hacer esto es el siguiente. Como no se
especifica el mtodo de interpolacin, por defecto el programa usa linear.
>> ejemplo2 = im2double(rgb2gray(imread('ejemplo2.bmp')));
>> size1 = im2logpol(ejemplo2,'Area',[126 138 118],'Size',200);
>> size2 = im2logpol(ejemplo2,'Area',[126 138 118],'Size',100);
>> size3 = im2logpol(ejemplo2,'Area',[126 138 118],'Size',50);
>> subplot(1,3,1), imshow(size1)
>> subplot(1,3,2), imshow(size2)
>> subplot(1,3,3), imshow(size3)

23

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

(c)

Figura 7. Resultado de la conversin de la imagen del caballito de mar


del ejemplo 2 a coordenadas log-polares con diferentes tamaos de
salida. (a) 200x200. (b) 100x100. (c) 50x50.

En la figura de arriba se puede observar los resultados, que parecen la misma


imagen pero con tres zooms diferentes. De esa forma no se puede observar bien
la diferencia, pero en la Figura 8 las tres imgenes resultantes se muestran con el
mismo tamao de referencia. Sin duda, mientras menor es el tamao (en pxeles)
de la imagen, menor es el detalle de la imagen que representa el objeto.

(a)

(b)

(c)

Figura 8. Resultado de la conversin de la imagen del caballito de mar del ejemplo 2 a


coordenadas log-polares con diferentes tamaos de salida vistos con el mismo tamao de
referencia. (a) 200x200. (b) 100x100. (c) 50x50.

Para este ejemplo tambin hay grandes diferencias en los tiempos de ejecucin,
los cuales se encuentran en tabla4. Como es de esperarse, mientras mas pequea
es la imagen que toca calcular, menor es el tiempo de ejecucin.
4

Tiempos de ejecucin medidos en un ordenador Toshiba Satellite Pro M30 con procesador Intel
Centrino 1.5 GHz, sistema operativo Windows XP Profesional y Matlab versin 6.5. El programa con el
que se calcularon estos tiempos es ejemplo2_ medicion_de_tiempos_de_ejecucion.m.

24

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Tamao de la imagen
[pxeles]
200x200
100x100
50x50

Tiempo de ejecucin
[segundos]
0,0628
0,0243
0,0159

Tabla 2. Tiempos de ejecucin promedio para las


conversiones de una imagen de un caballito de mar a
coordenadas log-polares para el ejemplo 2.

25

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

2.3. Programa para aproximar la AFMT usando el algoritmo


rpido
Este programa tambin se encuentra en el anexo B con el nombre de F_Afmt.m.
Como argumentos de entrada acepta los mismos que el programa im2logpol.m,
pero adems se pueden definir los parmetros de la transformada K y V que son
los valores mximos y mnimos que se calculan para esta. Esto significa que la
transformada se calcula para los nmeros enteros desde K hasta +K y desde -V
hasta +V.
La salida de esta funcin son la AFMT y la imagen en coordenadas log-polares
que se us para calcular la transformada. Para este programa no mostraremos un
ejemplo. En la siguiente seccin si habr un ejemplo que incluye el clculo de
una AFMT y los descriptores invariantes. De esta forma tambin se podr
observar las diferencias que hay entre los dos resultados y la relacin entre
ambos.

26

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

2.4. Programa para calcular los descriptores AFMT


Este programa es prcticamente igual al programa anterior. Se llama
Afmt_descriptors.m e igualmente se encuentra en el anexo B. Acepta los mismos
argumentos de entrada que im2logpol.m adems de K y V. La diferencia est en
que como resultado adems de la AFMT y la imagen en coordenadas log-polares,
se obtienen los descriptores invariantes a las similitudes planas.

2.4.1. Ejemplo 3
Para este ejemplo usaremos la imagen de un pez y calcularemos la AFMT y los
descriptores invariantes usando el programa Afmt_descriptors.m. Despus
graficaremos los resultados para poder analizarlos y compararlos.

Figura 9. Imagen de un pez usada en el


ejemplo 3.

En este caso, el rea esta delimitado por una circunferencia de radio 115 y
centrado en las coordenadas x = 130, y = 123. La transformada se calcular para
K = 10 y V = 10. El cdigo en Matlab se encuentra a continuacin.
>> ejemplo3 = im2double(rgb2gray(imread('ejemplo3.bmp')));
>> [Iejemplo3,Mejemplo3,ejemplo3_logpolar] = Afmt_descriptors(ejemplo3, ...
>> [10 10],'Area',[130 123 115],'Size',256);
>> figure, imshow(ejemplo3_logpolar)
>>
>>
>>
>>

absMejemplo3
argMejemplo3
absIejemplo3
argIejemplo3

=
=
=
=

abs(Mejemplo3);
angle(Mejemplo3);
abs(Iejemplo3);
angle(Iejemplo3);

27

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
>> [K,V] = meshgrid([-10:10]);
>> figure, plot3(K,V,absMejemplo3'), grid on, xlabel('k'), ylabel('v')
>> figure, plot3(K,V,absIejemplo3'), grid on, xlabel('k'), ylabel('v')
>> figure, imshow(argMejemplo3,[]), colormap(jet)
>> figure, imshow(argIejemplo3,[]), colormap(jet)

Primero se lee la imagen para que quede como una variable en el workspace de
Matlab en escala de grises, y posteriormente se calculan los descriptores
invariantes AFMT. Lo siguiente es desplegar los resultados. En la Figura 10(b)
se observa la imagen en coordenadas log-polares.

(a)

(b)

Figura 10. (a) Regin de la imagen de un pez para la cual se va a calcular la AFMT y los
descriptores invariantes en el ejemplo 3. (b) Imagen del pez en coordenadas log-polares.

28

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Figura 11. Grfica del mdulo de la AFMT calculado para la imagen de un pez en el
ejemplo 3.

Despus se grafican el valor absoluto de la Transformada de Fourier-Mellin


Analtica y los descriptores AFMT, que se encuentran en la Figura 11 y la Figura
12. Comparando estos dos resultados, nos podemos dar cuenta de que las graficas
son idnticas si no tenemos en cuenta la escala vertical. El mdulo de los
descriptores es igual al mdulo de la transformada AFMT pero normalizado con
respecto al valor en k = 0 y v = 0, y como era de esperarse en ese punto los
descriptores invariantes tienen un valor de uno.

29

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Figura 12. Grfica del mdulo de los descriptores AFMT calculados para la imagen de
un pez en el ejemplo 3.

Para la fase es preferible obtener su representacin grfica como una imagen


porque vara mucho y no se puede ver bien como curvas. En la Figura 13 se
puede observar que a diferencia del modulo, la fase de los descriptores si es
bastante diferente de la transformada AFMT. Es fcil entender esta diferencia
analizando la formula para los descriptores, ya que para estos la fase depende de
k, v y las constantes de normalizacin y .

30

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

Figura 13. Grficas de la fase calculada para la imagen de un pez en


el ejemplo 3 de (a) la AFMT y (b) los descriptores AFMT
respectivamente.

31

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

2.5. Programa para calcular la distancia euclidea entre


descriptores AFMT
En el primer captulo se defini la frmula para la distancia entre formas, pero
para poder calcularla, primero se debe expresar en variables discretas. En el
clculo de los descriptores AFMT se tom la variable v para los nmeros enteros
entre V y V, entonces en la frmula de la distancia entre formas solo es
necesario cambiar la integral por sumas, y se obtiene

d I f , Ig

2 2
V K
= I f (k , v ) Ig (k , v )
v = V k = K

Como se puede ver en el cdigo de este programa (vea el anexo B imdistance.m),


realmente el clculo de la distancia euclidea entre descriptores AFMT se realiza
con solo dos comandos. La razn para crear esta funcin es poder cambiar la
definicin de la distancia entre formas sin tener que modificar nada en otros
programas que usen esta funcin. Los argumentos de entrada son los descriptores
AFMT de las dos imgenes para las cuales se va a calcular la distancia.

2.5.1. Ejemplo 4
Como ejemplos conviene calcular la distancia primero para imgenes que
representan objetos diferentes. Despus se calcula para imgenes que representan
el mismo objeto pero con un tamao e inclinacin diferentes. Usaremos la
imagen del pez del ejemplo anterior, el mismo pez pero rotado 50 y un tamao
del 64%, y la imagen del caballito de mar. Las tres imgenes se pueden observar
en la figura.

32

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

(c)

Figura 14. Imgenes usadas en el ejemplo 4. (a) La misma imagen del ejemplo 3. (b) La
imagen del ejemplo 3 pero rotada 50 y con un tamao de 64% del original. (c) La misma
imagen del ejemplo 2.

Los comandos para calcular las distancias de similitud en Matlab son los
siguientes
>> ejemplo2 = im2double(rgb2gray(imread('ejemplo2.bmp')));
>> ejemplo3 = im2double(rgb2gray(imread('ejemplo3.bmp')));
>> ejemplo4 = im2double(rgb2gray(imread('ejemplo4.bmp')));
>> Iejemplo2 = Afmt_descriptors(ejemplo2,[10 10],'Area',[126 138 118],'Size',256);
>> Iejemplo3 = Afmt_descriptors(ejemplo3,[10 10],'Area',[130 123 115],'Size',256);
>> Iejemplo4 = Afmt_descriptors(ejemplo4,[10 10],'Area',[132.5 133 73.6],'Size',256);
>> d32 = imdistance(Iejemplo3,Iejemplo2)
>> d34 = imdistance(Iejemplo3,Iejemplo4)
>> d24 = imdistance(Iejemplo2,Iejemplo4)

Los resultados de la ejecucin del cdigo anterior son los siguientes


d32 =
0.9445
d34 =
0.0760
d24 =
0.9311

Analizando los resultados se ve muy claramente que cuando se calcula la


distancia entre dos imgenes que representan el mismo objeto
independientemente de que el tamao y la orientacin sean diferentes, se obtiene
un valor bajo. Podemos decir que es un valor bajo porque es mucho menor
comparado con las otras distancias calculadas. Para este ejemplo la diferencia
33

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

entre la distancia del mismo objeto y objetos diferentes es del orden de doce
veces menor. Con este tipo de resultados se puede concluir que la distancia
euclidea basada en los descriptores AFMT es muy robusta en trminos de
reconocimiento de formas.
Para este ejemplo conviene medir los tiempos de ejecucin ya que nos dan una
referencia para poder predecir cuanto tardan los programas que calculan
distancias entre formas. Estos tiempos se encuentran en la siguiente tabla5.

Comando

Tiempo de ejecucin
[segundos]
0,1380
0,1389
0,1386
1 x 10-4
1 x 10-4
1 x 10-4

Iejemplo2
Iejemplo3
Iejemplo4
d32
d34
d24

Tabla 3. Tiempos de ejecucin promedio para el clculo de


los descriptores AFMT y distancias para el ejemplo 4.

El tiempo de clculo para las distancias de similitud es muy pequeo y se puede


ignorar. La demora se encuentra en el clculo de los descriptores AFMT, que en
su mayora se debe a la conversin de coordenadas cartesianas a log-polares y el
clculo de la FFT.

Tiempos de ejecucin medidos en un ordenador Toshiba Satellite Pro M30 con procesador Intel
Centrino 1.5 GHz, sistema operativo Windows XP Profesional y Matlab versin 6.5. El programa con el
que se calcularon estos tiempos es ejemplo4_ medicion_de_tiempos_de_ejecucion.m.

34

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Captulo 3.

Determinacin de la posicin de objetos


usando la AFMT

Uno de los objetivos de este proyecto es disear un algoritmo que permita


determinar la posicin de un objeto en una imagen y en un vdeo. Ese es el tema
del presente captulo.
Primero se presentar un algoritmo muy simple que ser analizado
detenidamente. Es muy importante tener en cuenta el tiempo de clculo porque
sabemos que es el problema que tiene la AFMT en general (adems de haberlo
implementado en Matlab). Pero mas importante aun es estudiar la fiabilidad de
los resultados que se obtienen y si es o no probable que se produzcan fcilmente
errores.
Usando el anlisis mencionado en el prrafo anterior, el captulo terminar con el
desarrollo de un algoritmo ms complejo especial para determinar la posicin de
objetos en vdeos.
Finalmente cabe mencionar en la introduccin de este captulo, que una vez
localizada la posicin de un objeto, se puede extraer ms informacin sobre su
estado. Como ya se sabe la posicin del objeto, se podra requerir saber cual es el
tamao y la orientacin del objeto. Esto no se puede hacer usando los
descriptores AFMT, ya que esa informacin fue eliminada. Pero usando la
AFMT si se puede determinar esos parmetros. En la actualidad ya hay
publicaciones donde se presenta este mtodo [8], el cual no trataremos en el
presente proyecto.

35

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.1. Algoritmo simple para la determinacin de la posicin de


objetos
Tericamente es muy fcil determinar una posicin dentro de una imagen ya
teniendo los descriptores AFMT invariantes a las similitudes planas del objeto en
cuestin. Para cada pxel de la imagen se calculan unos descriptores AFMT
tomando la posicin del pxel como el centro de la zona a la cual se le va a
calcular la transformada. Como radio de esta rea, se deja una cantidad fija que
para el caso representa el mximo tamao que puede tener el objeto que se va a
detectar. Teniendo los descriptores AFMT del pxel, se obtiene la distancia
euclidea entre estas con respecto a los descriptores del objeto. Calculando esto
para todos los pxeles, como resultado se tiene una funcin de la similitud con el
objeto para cada posible posicin dentro de la imagen. Por lo tanto la posicin
del objeto es el punto donde la distancia sea menor, o mejor dicho, el mnimo de
esta funcin.

3.1.1. Ejemplo 5

Figura 15. Imagen del objeto para el


cual se va a detectar su posicin en el
ejemplo 5.

En este ejemplo tomaremos la imagen de un coche [9] de juguete para el objeto y


detectaremos su posicin en un fotograma que tiene el mismo coche pero con una

36

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

orientacin y tamao diferentes. El objeto se define para un disco de radio 80


centrado en las coordenadas x = 128, y = 118.

Figura 16. Fotograma usado en el


ejemplo 5 para detectar la posicin de
un coche de juguete.

Siguiendo como referencia el algoritmo simple de esta seccin para detectar la


posicin de un objeto, el cdigo en Matlab es el siguiente.
>> objeto = im2double(rgb2gray(imread('ejemplo5_objeto.bmp')));
>> fotograma = im2double(rgb2gray(imread('ejemplo5_fotograma.bmp')));
>> tic
>> Iobjeto = Afmt_descriptors(objeto,[10 10],'Area',[128 118 80],'Size',32);
>> [Y,X] = size(fotograma);
>> for x = 1:X
>>
for y = 1:Y
>>
Ifotograma = Afmt_descriptors(fotograma,[10 10],'Area',[x y 40],'Size',32);
>>
d(y,x) = imdistance(Iobjeto,Ifotograma);
>>
end
>> end
>> dmin = min(min(d))
>> [y,x] = find(d==dmin)
>> tiempo_de_ejecucion = toc
>> figure, imshow(d,[]), colormap(jet), colorbar, pixval

Despus de un largo periodo de espera el resultado fue


dmin =
0.8773

37

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

x =
68
y =
193
tiempo_de_ejecucion =
1.0411e+003

Es importante aclarar que lo que se detecta es la posicin del centro de la regin


circular que define al objeto. Teniendo esto en cuenta y comparando el fotograma
(vea la Figura 16) con los resultados podemos decir que esta es la posicin exacta
en la que se encuentra el centro del coche de juguete. Este ejemplo nos confirma
que toda la teora presentada anteriormente funciona al aplicarlo a imgenes
discretas. Y lo ms importante es que se logra la invarianza a los cambios de
tamao y orientacin.
Adems de estos resultados que aparecen en la consola, el ltimo comando
despliega la grfica de la distancia de similitud en funcin de la posicin, la cual
se encuentra en la Figura 17. La funcin de similitud se representa como una
imagen donde el color indica el valor para cada posicin del fotograma. Este tipo
de grfica permite hacer una comparacin directa con el fotograma. Adems la
barra de la derecha permite identificar la correspondencia entre cada color y el
valor que representa.

Figura 17. Grfica de la distancia de similitud en funcin


de la posicin para la deteccin de la posicin de un coche
de juguete en el ejemplo 5.

38

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Hay muchas cosas que se deben analizar de la funcin de distancia de similitud.


El valor mnimo es de 0,8773 que se encuentra en el centro del objeto que
corresponde a un azul oscuro. Este punto esta rodeado por distancias que van
aumentando cada vez ms hasta el borde del objeto donde se llega a valores de
alrededor de 2.
Los resultados que se han analizado hasta el momento corresponden
precisamente a los que se esperaban. Pero es importante que se comprenda bien
el comportamiento de la funcin de similitud para las regiones por fuera del
objeto. Para entender esto se debe tener en cuenta las consecuencias de la
aproximacin discreta de la AFMT, vea la pgina 16. Como slo se puede tener
una cantidad finita de muestras de la funcin, esta debe ser recortada y es posible
que en los bordes haya discontinuidades. Cuando se est calculando la distancia
para un punto cercano al objeto, la transformada solo incluye una parte del coche
y en los bordes hay discontinuidades. Debido a esto, los descriptores representan
un objeto totalmente diferente y se explica el por qu cerca del borde del coche
es donde se obtienen las mayores distancias para la funcin de similitud.
Pero los valores altos de la funcin de similitud no es importante no son
importantes porque no presentan problema para la deteccin de la posicin del
objeto. Lo que si puede presentar problemas es en las regiones del fondo, donde
las distancias de similitud estn entre 1,6 y 1,7. Estos valores ni siquiera son el
doble que el valor mnimo de la funcin, por lo tanto se puede pensar que en
ciertos casos el mnimo quede en el fondo donde no hay nada, que implica un
error en la determinacin de la posicin. Estas distancias relativamente pequeas
se deben a que el fondo en realidad no es completamente negro. En imgenes
reales las superficies negras terminan siendo valores muy pequeos pero
normalmente diferentes de cero. Debido a la aproximacin de la AFMT, los
descriptores del fondo son para un objeto que es un disco gris oscuro que cubre
toda la regin recortada. Si tambin consideramos el hecho de que en la imagen
de referencia, alrededor del objeto tambin hay un fondo que no es
completamente negro, nos damos cuenta que el objeto se encuentra sobre un
disco muy similar al que se genera en el fondo del fotograma. Esto puede
explicar el por qu de las distancias de similitud tan pequeas.
Lo ltimo que se debe mencionar sobre este ejemplo es que el tiempo de clculo
fue de 17 minutos y 21,15 segundos, que evidentemente es demasiado lento. En
promedio es un tiempo de 0,01589 por pxel. Con este mismo algoritmo, si se
tratara de detectar un objeto en un vdeo, es necesario calcular la transformada
para cada pxel de cada fotograma. Un vdeo normalmente genera 25 fotogramas
por segundo con un tamao de 570x714, lo que significara calcular 10.174.500
distancias de similitud cada segundo. Si usamos como referencia el tiempo de
clculo por pxel de este ejemplo, para el procesamiento de un segundo de vdeo,
Matlab tardara unas 44 horas, 53 minutos y 59,11 segundos.

39

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

En conclusin, con el algoritmo simple se realizan demasiados clculos que


tardan un tiempo exagerado. Para poder pensar en usar este algoritmo se tendra
que calcular cada distancia en 0,1 segundos, que solo sera posible en sper
ordenadores. Como el tiempo de calculo por pxel no se puede reducir mucho
con respecto al de este ejemplo, la solucin est en un algoritmo que realice
muchos menos clculos.

40

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.2. Descriptores AFMT para un disco de valor constante


Para entender mejor el problema que causa calcular una distancia de similitud
entre un objeto y un fondo que no es completamente negro, podemos analizar
detenidamente los descriptores AFMT para este caso. El fondo se puede tomar
como un disco muy oscuro sobre un fondo completamente negro, que es una
figura geomtrica muy simple. Para este objeto existe la transformada AFMT de
forma analtica, que desarrollaremos a continuacin. Comenzamos por definir la
siguiente funcin:
L
f (r , ) =
0

para r = [0 ,R ], = [0 ,2 ]
otros casos

La AFMT se debe separar para los casos de k igual a cero y diferente de cero.
Para k 0
M f (k , v ) =
=

1
2

1
2

f (r , )r

jv jk

0 0
R 2

Lr

jv jk

0 0

dr
r

dr
r
2

r jv 1 jk
e


0
jv 0 jk
jv
j 2k
jL R
e

1
=
2k jv
L
=
2

=0

Para k = 0
1
M f (0, v ) =
2
=

1
2

f (r , )r

jv jk

0 0

R 2

Lr

jv

0 0

dr
r

dr
r

L r jv
2
=
[ ]0

2 jv 0

41

e j 2k = 1 para todo k

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

R jv
(2 )

jv
R jv
=L
jv
=

L
2

Por lo tanto para un disco centrado en el origen de radio R e intensidad L, la


AFMT es

R jv
L
M f (k , v ) = jv
0

para k = 0
otros casos

Teniendo la AFMT tambin podemos obtener una expresin para sus


descriptores.
M f (0,0) = L

M f (1,0 ) = 0

=>

v
L
1+ j

(
)
M
0
,
0
f
=

=>

[e

jk arg M f (1, 0 )

]= 1

1+ j

R + jv

arg{0} puede ser cualquier ngulo

Para k 0
I f (k , v ) = 0

Para k = 0
I f (0, v )

= M f (0,0 )

1+ j

}
M f (k , v )

jk arg M f (1, 0 )

v
1+ j

L
R jv

+ jv

[1]L
=
R

jv

L
=

jv

Y los descriptores AFMT invariantes a las similitudes planas para un disco


centrado en el origen de radio R e intensidad L son

42

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
v
j

L
1

I f (k , v ) = 1 j v

para k = 0
otros casos

El valor de la intensidad L se puede tomar arbitrariamente y si es igual que la


formula se simplifica un poco y es muy fcil representarla.
1

v
I f (k , v ) = 1 j

para k = 0
otros casos

Figura 18. Grfica del mdulo de los descriptores AFMT de un disco centrado en el
origen.

43

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.2.1. Ejemplo 6
Para estar seguros que ste es un buen modelo para los descriptores AFMT de un
fondo casi negro, lo podemos comparar con una imagen real. En la Figura 19
estn los descriptores AFMT calculados a partir del mismo fondo negro que se
encuentra en el fotograma del ejemplo 5. El cdigo para generar las grficas de la
Figura 18 y la Figura 19 es el siguiente.
>>
>>
>>
>>
>>
>>
>>

Idisco = zeros(21,21);
for v = [-10:10]
Idisco(11,v+11) = 1/(1-i*(v/0.5));
end
absIdisco = abs(Idisco);
[K,V] = meshgrid([-10:10]);
figure, plot3(K,V,absIdisco'), grid on, xlabel('k'), ylabel('v')

>>
>>
>>
>>
>>

fotograma = im2double(rgb2gray(imread('ejemplo5_fotograma.bmp')));
Ifondo = Afmt_descriptors(fotograma,[10 10],'Area',[128 128 50],'Size',256);
absIfondo = abs(Ifondo);
[K,V] = meshgrid([-10:10]);
figure, plot3(K,V,absIfondo'), grid on, xlabel('k'), ylabel('v')

>> imdistance(Idisco,Ifondo)

Figura 19. Grfica del mdulo de los descriptores AFMT de un fondo casi negro.

44

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Comparando las grficas, son tan parecidas que se podra pensar que son la
misma pero en realidad se obtuvieron de fuentes muy diferentes. Pero s se
alcanza a ver que en la grfica de los descriptores del fondo negro las curvas para
k diferente de cero no son perfectamente rectas como si ocurre en la otra. Como
en este proyecto se defini una distancia de similitud entre formas, tambin se
puede aplicar para estos descriptores, y es de slo 0,0033. Es coincidencia que
esta distancia de similitud sea tan pequea porque depende del valor de la
intensidad del disco L que por conveniencia lo tomamos igual a . Sin embargo
este pequeo experimento demuestra que la hiptesis sobre el problema del
fondo es correcta.
Por ltimo debemos mencionar que para k = 0 los descriptores de este ejemplo
tambin son bastante similares a los del ejemplo 3. Esto puede ser consecuencia
del fondo que rodea todos los objetos en una imagen como se mencionaba
anteriormente. Pero tambin es un comportamiento innato de los descriptores
AFMT comenzando por el hecho de que para k = 0, v = 0 siempre se tiene un
valor constante de uno.

45

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.3. Nueva definicin de la distancia de similitud


Usando como referencia el anlisis de la seccin anterior, se puede redefinir la
funcin para calcular la distancia de similitud entre formas. La idea es modificar
los descriptores AFMT para lograr que las distancias de similitud entre un objeto
y un fondo casi negro indique mejor la diferencia. Una posibilidad podra ser que
de alguna forma se restaran los descriptores que describen el fondo. Ya tenemos
una expresin matemtica que modela bastante bien los descriptores AFMT de
un fondo casi negro, y usando sta se puede restar de los descriptores de cada
objeto. Pero hay dos problemas, primero est que es necesario saber el nivel de
gris L del fondo, informacin que evidentemente no se tiene. El segundo
problema que es mas importante es que para los descriptores AFMT no se
cumple el teorema de superposicin, lo que significa que
I f (k , v ) I g (k , v ) I { f (r , ) g (r , )}

Como no se tiene esta propiedad, contrarrestar el efecto del fondo puede ser una
operacin matemtica bastante compleja y esto se traduce en un gran incremento
en el tiempo de clculo. Una solucin mucho mas simple es ignorar los valores
para k = 0, ya que como se comprob estos son los que definen el fondo.

3.3.1. Ejemplo 7
Para entender esa nueva definicin para la distancia de similitud entre formas
podemos calcular nuevamente la distancia de similitud para el ejemplo del coche
de juguete.
>> objeto = im2double(rgb2gray(imread('ejemplo5_objeto.bmp')));
>> fotograma = im2double(rgb2gray(imread('ejemplo5_fotograma.bmp')));
>> Iobjeto = Afmt_descriptors(objeto,[10 10],'Area',[128 118 80],'Size',32);
>> Iobjeto(21,:) = zeros(1,21);
>> dzero = imdistance(Iobjeto,zeros(21,21))
>> [Y,X] = size(fotograma);
>> for x = 1:X
>>
for y = 1:Y
>>
Ifotograma = Afmt_descriptors(fotograma,[10 10],'Area',[x y 40],'Size',32);
>>
Ifotograma(K+1,:) = zeros(1,21);
>>
d(y,x) = imdistance(Iobjeto,Ifotograma);
>>
end
>> end
>> dmin = min(min(d))
>> [y,x] = find(d==dmin)
>> figure, imshow(d,[]), colormap(jet), colorbar, pixval

46

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Los resultados del cdigo anterior son


dzero =
1.0013
dmin =
0.7552
x =
193
y =
68

La grfica de la funcin de distancia de similitud se encuentra en la Figura 20.

Figura 20. Grfica de la nueva distancia de similitud en


funcin de la posicin para la deteccin de la posicin de
un coche de juguete.

Aparentemente la funcin es igual a la que se calcul anteriormente. Para


entender la diferencia hay que tomar en cuenta un nuevo concepto. Si
comparamos la distancia de similitud mnima para el ejemplo del pez y el del
coche de juguete vemos que son de 0,0760 y 0,8773 respectivamente. Son
valores bastante diferentes y no se sabe que tan pequeo debe ser el valor para
que indique que se trata del mismo objeto. Para saber que es una distancia
pequea, se calcula la distancia de similitud del objeto con respecto a una matriz
47

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

de ceros, la cual llamaremos distancia cero. El resultado de esta distancia nos


sirve como referencia para saber si dos objetos se pueden considerar como el
mismo.
Volviendo a la comparacin entre las dos definiciones de distancia de similitud,
para la primera se tiene una distancia de cero de 2,3035 y para la segunda es de
1,0013. Entonces como se puede observar en la Figura 17, el fondo se compone
de valores alrededor de 1,6 y 1,7 que son considerablemente menores a la
distancia cero. Para el segundo caso los valores del fondo son muy cercanos a la
distancia cero y si por ejemplo ignoramos todas las distancias que sean mayores
al 90% de la distancia cero, solamente nos quedan los puntos cercanos al centro
del objeto.
Esta nueva definicin tiene unas mejores caractersticas que pueden ser tiles,
pero hay que tener en cuenta que en una aplicacin real lo mas probable es que el
fondo no sea negro y tampoco continuo. Ignorar los descriptores para k = 0 se
puede dejar como opcional, y sin embargo el concepto de la distancia cero si se
puede aplicar en ambos casos.

48

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.4. Algoritmo para la deteccin del movimiento de un objeto


en un vdeo
En las secciones anteriores se aplic el algoritmo simple para la deteccin de la
posicin de un objeto en una imagen para un coche de juguete. Aunque ese
algoritmo funciona perfectamente requiere mucho tiempo para ejecutarse, y se
lleg a la conclusin de que la solucin est en realizar menos clculos. Este es el
factor mas importante que se tendr en cuenta para el presente algoritmo.
Para reducir la cantidad de clculos que se realizan, definimos una mscara. Hay
una mscara para cada fotograma y es una matriz de un tamao igual al de los
fotogramas, que se compone solamente de unos y ceros. Un cero significa que en
esa posicin es muy poco probable que se encuentre el objeto y por lo tanto no es
necesario calcular la distancia de similitud. Un uno significa que si se debe hacer
el clculo. Pero lo ms importante es como saber si es o no probable que el
objeto se encuentre en cada posicin.

3.4.1. Caractersticas de los vdeos


El objetivo del proyecto es determinar la posicin y el movimiento de un objeto
en una secuencia de fotogramas, o mejor dicho un vdeo. En el desarrollo de un
algoritmo para este propsito se puede obtener ventaja de ciertas caractersticas
que tienen todos los vdeos. Y no solamente podemos obtener ventaja de las
caractersticas de los vdeos en general ya que se trata de un vdeo al cual se le va
a detectar la posicin de objetos. Por lo tanto podemos asumir lo siguiente:
1. El vdeo se compone de una sola escena y la cmara no se mueve, o se sabe
cual es su movimiento. En otras palabras no hay cambios de cmara, como si
ocurre en el cine y la televisin.
2. Cada fotograma es muy parecido al anterior. Siempre se componen de un
fondo que no cambia considerablemente y de los objetos que se mueven.

49

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

3.4.2. Algoritmo para objetos que se mueven lentamente


Teniendo en cuenta el primer punto de la seccin anterior, si el objeto en el vdeo
se mueve lentamente, se puede asegurar que la posicin del objeto en un
fotograma es muy cercana a la posicin que tena en el fotograma anterior. Por lo
tanto para detectar la posicin del objeto solo es necesario calcular la funcin de
distancia de similitud en una regin pequea limitada centrada en la posicin del
objeto en el fotograma anterior. El tamao de esa regin determina la velocidad
mxima a la cual se puede mover el objeto y que este algoritmo si funcione.
Se puede decir que esta es una tcnica para la prediccin de la posicin del
objeto. Esta prediccin puede hacerse de forma mas precisa, por ejemplo
calculando la velocidad del objeto y la direccin en que se mueve. Con estos
datos se predice aproximadamente la posicin y se calcula la distancia de
similitud en una regin centrada en ese punto. Este mtodo funcionara incluso
para objetos que se mueven ms rpidamente. Esta alternativa puede ser buena
para alguna aplicacin, pero no la usaremos en este proyecto.
Por ltimo se debe mencionar que este algoritmo sirve para todos los fotogramas
excepto el primero porque antes de ste no se puede saber cual era la posicin del
objeto. Para saber la posicin inicial del objeto haciendo pocos clculos, es
necesario usar otras tcnicas que se mencionarn mas adelante.

3.4.3. Algoritmo para objetos que se mueven rpidamente


La segunda caracterstica de los vdeos que se asumi en la seccin 3.4.1. sirve
para el caso en que los objetos se mueven rpidamente. Lo primero que se hace
es del fotograma actual restar el anterior. Como cada fotograma necesariamente
debe ser muy parecido al anterior, la resta genera valores pequeos para las zonas
en que no hubo un gran cambio (el fondo). Por el contrario en las zonas donde la
imagen si cambia bastante incluyendo un objeto que se mueve, la resta genera
valores grandes. Usando esta informacin, la distancia de similitud solo se
calcula para las zonas donde si hay cambios.
Esta tcnica detecta donde estaba el objeto y a donde se movi. Pero no se
requiere calcular la similitud en las zonas donde se encontraba el objeto, porque
sabemos que ste se mueve rpidamente y ya no est ah. Para descartar estas
zonas se puede usar la mscara anterior, quitando las reas comunes.
Usando comandos de Matlab, este algoritmo sera de la siguiente forma.
>> diferencia = abs( fotograma{n-1} - fotograma{n} );

50

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
>>
>>
>>
>>

maximo_diferencia = max( max( diferencia ) );


temporal1 = diferencia > maximo_diferencia/2;
temporal2 = temporal1 & mascara{n-1};
mascara{n} = temporal1 - temporal2;

Una vez definidos los dos algoritmos que dependen de la velocidad del objeto, se
puede explicar bien cual es la diferencia entre un objeto que se mueve lentamente
de otro que se mueve rpido. Para el algoritmo de movimiento lento, el objeto se
puede mover hasta la velocidad mxima que se puede cambiar arbitrariamente.
Pero mientras mayor sea la velocidad mxima, ms tiempo durar la
determinacin de la posicin del objeto. Por lo tanto mientras menor sea el
movimiento, mejor, y no hay un umbral que separa los dos tipos de movimiento.
Con el algoritmo de movimiento rpido se tiene un requisito, y es que la imagen
debe cambiar significativamente. Para estar seguros de que el cambio sea
suficiente, el objeto se debe mover para quedar totalmente por fuera de su
posicin anterior. Con esto ya se puede definir cual es el umbral, si un objeto se
mueve mas que su propio radio se dice que es un movimiento rpido de lo
contrario es uno lento.
3.4.3.1. Ejemplo 8
Un ejemplo de una mascara generada usando este algoritmo se encuentra en la
Figura 21. Son tres fotogramas de un vdeo de una bola en cada libre, y se
genera la mscara para el tercer fotograma. Claramente se observa que en la
mscara, la zona blanca es donde se encuentra la bola en el tercer fotograma.

51

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

(c)

(d)

(e)

(f)

Figura 21. Ejemplo de la creacin de una mscara con el algoritmo de movimiento rpido.
(a) Fotograma 1. (b) Fotograma 2. (c) Fotograma 3. (d) Diferencia entre los fotogramas 2 y
3, diferencia. (e) Valores grandes de la diferencia, temporal1. (f) Mascara para el
fotograma 3, mascara{3}.

El cdigo en Matlab para generar la Figura 21 es


>> fotograma{1} = im2double(rgb2gray(imread('ejemplo8_fotograma1.bmp')));
>> fotograma{2} = im2double(rgb2gray(imread('ejemplo8_fotograma2.bmp')));
>> fotograma{3} = im2double(rgb2gray(imread('ejemplo8_fotograma3.bmp')));
>> n = 1;
>> mascara{1} = fotograma{1} ~= fotograma{1};
>>
>>
>>
>>
>>
>>

n = 2;
diferencia = abs( fotograma{n-1} - fotograma{n} );
maximo_diferencia = max( max( diferencia ) );
temporal1 = diferencia > maximo_diferencia/2;
temporal2 = temporal1 & mascara{n-1};
mascara{n} = temporal1 - temporal2;

>>
>>
>>
>>
>>
>>

n = 3;
diferencia = abs( fotograma{n-1} - fotograma{n} );
maximo_diferencia = max( max( diferencia ) );
temporal1 = diferencia > maximo_diferencia/2;
temporal2 = temporal1 & mascara{n-1};
mascara{n} = temporal1 - temporal2;

Para este algoritmo sucede lo mismo que para el anterior, no funciona para el
primer fotograma. En ambos casos es necesario tratar independiente la posicin
52

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

inicial del objeto, y ese es el tema que se trata en la siguiente seccin. Por esta
razn, en el ejemplo la mscara para el primer fotograma se tomo como todo
ceros.

3.4.4. Determinacin de la posicin inicial del objeto


Pueden haber ciertas aplicaciones en que se sabe la posicin inicial del objeto, en
tal caso o la posicin es fija o solo es necesario que una persona la suministre
manualmente. Con esa posicin, que en realidad solo es aproximada, se
determina la posicin inicial real usando el algoritmo para movimiento lento.
Esto reducira mucho el tiempo de ejecucin, pero si no se sabe donde se
encuentra el objeto en el primer fotograma, hay que determinarlo.
Si asumimos que el objeto se mueve durante el vdeo, es posible detectar el
movimiento usando la misma tcnica que en el algoritmo para el movimiento
rpido. En este caso hay que restar algn otro fotograma del primero,
preferiblemente uno de los primeros para que no afecten cambios ms lentos,
como por ejemplo la iluminacin.
Si el movimiento del objeto entre el primer fotograma y el otro, no es suficiente
para cumplir la condicin de movimiento rpido, el mtodo anterior no funciona.
Una forma para solucionar este problema es usar procesamiento de imgenes
binarias. La mscara que definimos se puede considerar como una imagen
binaria porque se compone de unos y ceros solamente. El dgito 1 representa un
pxel de color blanco y forma parte de un objeto, el dgito 0 representa un pxel
negro, que es el fondo.
Para las imgenes binarias existen unas operaciones llamadas erosin y
dilatacin [10]. La dilatacin cambia los pxeles del fondo que quedan pegados al
borde de los objetos, y el efecto es que los objetos aumentan de tamao. La
erosin hace lo contrario, removiendo pxeles del borde de los objetos, y por lo
tanto encogindolos. La dilatacin de una mscara agrandara las zonas donde es
probable que est el objeto, pero evidentemente aumenta el tiempo de clculo
para la determinacin de la posicin.
A partir de la erosin y la dilatacin, se pueden hacer otras dos operaciones
llamadas abrir o cerrar la imagen. Abrir una imagen es el proceso consistente en
una erosin y despus una dilatacin. El resultado es que se eliminan objetos
pequeos y delgados, separa objetos poco unidos y suaviza los bordes de objetos
grandes. Cerrar una imagen es una dilatacin y despus una erosin. Sus efectos
son rellenar pequeos huecos en los objetos, unir objetos cercanos y tambin
suavizar el borde de los objetos grandes.

53

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Cuando el movimiento de un objeto es lento entre dos fotogramas, la diferencia


genera una mscara solo para los bordes perpendiculares a la direccin del
movimiento. Si se cierra esa imagen se podrn unir los bordes y rellenar toda la
zona que encierran. Finalmente podemos abrir la imagen para eliminar los
objetos pequeos y suavizar los bordes del verdadero objeto en cuestin, que
debe ser el ms grande. Para demostrar esto se plantea el siguiente ejemplo con la
misma bola en cada libre.

(a)

(b)

(c)

(d)

Figura 22. Ejemplo de la creacin de la mscara para el primer


fotograma. (a) Fotograma 1. (b) Fotograma 2. (c) Mscara creada
usando solo la diferencia de las imgenes. (d) Mscara creada con
la diferencia, cerrando la imagen y despus abrindola.

3.4.4.1. Ejemplo 9
Como se puede observar en la Figura 22, la mascara generada se compone de
solo una regin y une todas las partes que se movieron del objeto. La forma no es
circular, igual que la bola, porque en los fotogramas una parte del objeto estaba
oculto. Sin embargo la regin si incluye la posicin central del objeto, y sta
puede ser determinada satisfactoriamente.
54

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

El cdigo en Matlab para este ejemplo es el siguiente.


>> fotograma{1} = im2double(rgb2gray(imread('ejemplo9_fotograma1.bmp')));
>> fotograma{2} = im2double(rgb2gray(imread('ejemplo9_fotograma2.bmp')));
>> diferencia = abs( fotograma{2} - fotograma{1} );
>> maximo_diferencia = max( max( diferencia ) );
>> temporal1 = diferencia > maximo_diferencia/4;
>>
>>
>>
>>

se = strel('disk',15);
temporal2 = imclose(temporal1,se);
se = strel('square',5);
mask{1} = imopen(temporal2,se);

3.4.5. Algoritmo optimizado para la determinacin de las posiciones de un


objeto en vdeos
Los anteriores algoritmos eran para crear las mscaras para cada uno de los
fotogramas, y slo son una parte del algoritmo optimizado para la determinacin
de la posicin de objetos en vdeos. Hay que tener en cuenta que los dos
algoritmos para movimientos rpido y lento no son excluyentes. Se puede
generar una mscara con ambos algoritmos y se suman con una operacin lgica
and. Esto nos permitira determinar la posicin de un objeto que se mueve
lentamente y tambin rpidamente durante el transcurso del vdeo. En la Figura
23 se encuentra el diagrama de flujo que representa el algoritmo completo que
determina la posicin de un objeto para todos los fotogramas de un vdeo
incluyendo la posicin inicial.

55

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Inicio

No

Si

Se suministr
posicin inicial?

Generar mscara para el primer


fotograma usando diferencia, cerrar
y abrir imagen.

Generar mscara para el primer


fotograma usando algoritmo para
movimiento lento.

Calcular la funcin de distancia de


similitud con respecto al objeto y
determinar posicin inicial real.

No

Es este el ltimo
fotograma?

Si

Fin

Continuar con el siguiente


fotograma.

Generar mscara usando el algoritmo


para movimiento lento, si el objeto
tiene este tipo de movimiento.

Generar mscara usando el algoritmo


para movimiento rpido, si el objeto
tiene este tipo de movimiento.

Sumar mscaras.

Calcular la funcin de distancia de


similitud con respecto al objeto y
determinar posicin.

Figura 23. Algoritmo optimizado para la determinacin de la posicin de objetos en vdeos.

3.4.6. Un nuevo problema con el fondo


Anteriormente habamos asumido que los objetos en una imagen se encontraban
en un fondo oscuro uniforme sin ningn tipo de formas. Pero un fondo con estas
caractersticas solo se consigue en condiciones de laboratorio lo cual es una
limitante para las posibles aplicaciones. Normalmente en los vdeos los objetos
se mueven sobre un fondo bastante complejo. Nuestro algoritmo para la
deteccin de la posicin de objetos, toma una regin circular que debe ser ms
grande que el objeto. Debido a esto y a que el objeto no es necesariamente
circular, la regin siempre incluir una parte del fondo que para cada fotograma
ser diferente. Esto hace que las distancias de similitud aumenten y se puede dar
el caso en que se cometa un error en la determinacin de la posicin.

56

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Si la cmara de vdeo no se mueve, sera posible generar una imagen que slo
incluya el fondo. Esto se puede lograr por ejemplo haciendo un promedio de las
imgenes para una gran cantidad de fotogramas, pero tambin se puede tomar
una foto cuando no hay ningn objeto. Con esa imagen se puede eliminar el
fondo para cada fotograma usando la misma tcnica de restar imgenes (el fondo
y el fotograma) y en esta ocasin generar una mascara para los objetos que hay
sobre el fondo. Con esto, eliminar el fondo slo es cuestin de multiplicar el
fotograma por la mscara. Esta solucin para el problema del fondo funciona
bien en pocas situaciones. No funcionara por ejemplo si la cmara se encuentra
al aire libre, el fondo cambiar mucho dependiendo de la hora del da y del clima
que se tenga. La iluminacin cambia dependiendo de la posicin del sol, si hay
muchas o pocas nubes, o si esta lloviendo o nevando.
Otra solucin para el problema del fondo es reducir al mximo el rea del fondo
que se incluye en la regin circular que contiene al objeto. Esto se lograra si el
radio de esa regin es igual al radio del crculo ms pequeo que contiene al
objeto. Esto se puede incluir en el algoritmo de la seccin anterior. Despus de la
determinacin de la posicin de objeto, se calcula la distancia de similitud para
una regin centrada en ese punto pero con diferentes radios. Para el siguiente
fotograma se detecta la posicin del objeto usando el radio que gener la mnima
distancia de similitud.

57

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Captulo 4.

Aplicacin

El ltimo objetivo especfico del proyecto es usar toda la teora de los


descriptores AFMT y la determinacin de la posicin de objetos en vdeos para
alguna aplicacin real. Ese es el propsito del presente captulo. Comenzaremos
mencionando unas de las posibles aplicaciones que se pueden tener.
Posteriormente se presenta un programa que se desarrollo en Matlab que hace
uso de las funciones ya mencionadas. Mediante un entorno permite definir un
objeto de forma grfica y determinar su posicin y el movimiento de ste en un
vdeo. El captulo termina con los resultados obtenidos usando el programa en un
vdeo que representa una de las aplicaciones que se propusieron.

58

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

4.1. Posibles campos de aplicacin

4.1.1. Medir los parmetros de movimiento para objetos en laboratorios de


fsica mecnica
Una aplicacin muy simple pero didctica, sera medir los parmetros de
movimiento de objetos en experimentos para el aprendizaje de la fsica mecnica
en los colegios y posiblemente tambin en las universidades. Como los
resultados no se requieren en tiempo real, el largo tiempo de ejecucin no es un
problema. Especficamente el sistema medira la posicin de un objeto en el
plano paralelo a la imagen de la cmara de vdeo. Una caracterstica es que las
mediciones son bastante precisas. Todos los movimientos perpendiculares se
eliminan gracias a la invarianza a los cambios de tamao. Teniendo esto en
cuenta, unos pocos de los experimentos que se pueden realizar son los siguientes:
1. El movimiento de un objeto en cada libre, y determinar la aceleracin de
la gravedad.
2. Medicin de la velocidad final de un objeto en cada libre para comprobar
la ley de la conservacin de la energa.
3. Movimiento parablico de un proyectil.
4. Movimiento armnico simple proyectado por un objeto en movimiento
circular.
Este sistema requiere muy pocos recursos que son un ordenador, una cmara de
vdeo y el software. Los ordenadores son una herramienta que ya es
indispensable en todas las instituciones educativas por lo tanto esa inversin
normalmente no es necesaria. Las cmaras de vdeo por ser un producto tan
comercial, se consiguen en precios muy econmicos. En conclusin, el precio de
este sistema sera mucho menor comparado con alguno ms especializado que
logre una precisin equivalente.

4.1.2. Medicin precisa de la posicin de la luna


En esta aplicacin se tratara de hacer una medicin de la posicin de la luna
relativamente en tiempo real. Gracias al hecho de que la luna tiene un
movimiento bastante lento, el largo tiempo de clculo de la AFMT no es un
problema y se puede usar un ordenador convencional. Sin embargo cada

59

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

medicin tendra que ser cada cierto periodo de tiempo, por ejemplo cada
minuto.
Para que las mediciones sean en coordenadas celestes y sean bien precisas
primero se debe saber exactamente hacia que punto apunta la cmara de vdeo.
Para saber esto convendra montar la cmara en un trpode del tipo que se usan
en los telescopios. Tambin es necesario saber que tamao tiene la imagen del
cielo, o mejor dicho cual es el rea que cubre. Esta informacin no es fcil de
determinar ya que depende del sistema ptico de la cmara que genera la imagen
y no podemos asumir que se sabe como es. Una alternativa es medirlo
experimentalmente que se podra hacer tomando como referencia las estrellas.
El algoritmo para determinar la posicin de la luna se debe modificar un poco
comparado con el que ya se propuso para objetos que se mueven lentamente.
Este sistema no sera muy preciso si la posicin slo puede ser en cada pxel.
Como se mencionaba en captulos anteriores, los descriptores AFMT se pueden
calcular para una regin que no necesariamente tiene que estar centrada en un
pxel. Por lo tanto la precisin simplemente depende de cada cuanto se calculan
los descriptores, claro que mientras mas puntos se procesen, mas tardar el
clculo. Un algoritmo eficiente para esta aplicacin sera primero determinar la
posicin del mnimo de la funcin de similitud usando el algoritmo de
movimiento lento. Despus se toma el mnimo de la funcin y los ocho puntos
ms cercanos y se calculan las distancias de similitud para los puntos
intermedios. Se busca el mnimo y se repite el proceso anterior. Mientras mas se
repita ese ciclo mayor es la precisin. En la siguiente figura se observa una
explicacin grfica para este algoritmo.

Puntos que se deben procesar


Puntos que se procesaron previamente
Valor mnimo encontrado

Figura 24. Algoritmo para determinar la posicin de un objeto con precisiones


mayores a la distancia entre pxeles.

60

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

4.1.3. Sistema automtico para el seguimiento de cuerpos celestes


En astronoma los telescopios motorizados controlados por ordenador son
capaces de hacer un seguimiento automtico de los objetos celestes. Se podra
disear un sistema de estos basado en los descriptores AFMT. Se caracterizara
por poder definir cual es el centro del objeto celeste al que se quiere hacer
seguimiento, y este quedara siempre en el centro de la imagen. Cuando se
detecta que el objeto se ha movido ms de medio pxel, se usaran los motores
del telescopio para centrar nuevamente la imagen.

4.1.4. Seguimiento del movimiento de coches en una calle


En todas las grandes ciudades del mundo hay instaladas cmaras de vdeo en las
calles que permiten hacer diferentes controles sobre los coches que circulan. Sin
embargo la mayora de los usos que se le dan requieren de personas que estn
observando continuamente la seal de vdeo. Esto limita mucho el uso que se le
puede dar a la gran cantidad de informacin que pueden contener estas imgenes.
Usando los algoritmos presentados en este proyecto se puede tomar a un coche
como el objeto al cual se le va a determinar la posicin y el movimiento.
Entonces tenemos un sistema que nos dice cual fue el movimiento del coche para
una cmara de vdeo determinada. Es posible que no se vea muy claramente para
que sirva saber cual es el movimiento de un automvil en una calle, porque en
realidad es bastante predecible.
Pero si se puede tomar en cuenta una caracterstica de los descriptores AFMT y
es que es muy robusta a la hora de diferenciar objetos muy parecidos. Por esta
razn es que estos descriptores se usan por ejemplo en la identificacin de
personas usando fotografas de la cara. No obstante este ejemplo es
sustancialmente diferente a las imgenes de una calle. La diferencia reside en que
en una fotografa de una persona se puede asumir que solamente hay un objeto,
que es la cara. Por otro lado en un vdeo de una calle se tienen muchos objetos
que adems se mueven, incluyendo coches, personas, bicicletas, mascotas, etc.
Usando los algoritmos para determinar la posicin de un coche sin asumir que
este se encuentre en el vdeo, se pueden tener dos resultados muy diferentes. Si el
vehculo si se encuentra en un fotograma determinado, sus posiciones trazarn un
movimiento suave, y las distancias de similitud mnimas sern relativamente
pequeas. Si por el contrario el coche no est presente, las posiciones sern
bastante irregulares y adems las distancias de similitud sern considerablemente
mayores comparado con el caso anterior. Estos resultados nos permiten detectar
la presencia de un coche particular, por ejemplo uno robado.

61

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Existen varios algoritmos que pretenden hacer deteccin y rastreo de vehculos


[11], [12], [13]. Pero ninguno se basa en los descriptores AFMT, que por sus
caractersticas tan particulares, puede tener varias ventajas.

4.1.5. Ayuda para el conductor de un vehculo


Esta aplicacin usa la misma idea que la anterior en que los algoritmos para
determinar la posiciones tambin se pueden usar para detectar si el objeto esta o
no presente. Se coloca una cmara de vdeo en un vehculo filmando hacia la
direccin en que se conduce. De las imgenes se pueden detectar todas las
seales de trnsito, informacin que puede ser til para recordrselo al conductor
en caso de estar distrado.

62

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

4.2. Entorno grfico para determinar la posicin de un objeto


en un vdeo
El programa que se desarroll se llama ObMoDe.m, una palabra formada por las
primeras dos letras de las palabras Determinacin, Movimiento y Objeto.
El cdigo completo no se incluye como anexo porque es demasiado lago y un
poco complejo para comprender. Solo se incluye la parte en que se determina la
posicin del objeto usando el algoritmo optimizado.
Para ejecutar el programa, en la consola de Matlab se navega hasta el directorio
en que se encuentra y se escribe la palabra ObMoDe. Por ejemplo
>> cd d:\matlab\
>> ObMoDe

Una vez se ejecuta el programa aparece una ventana vaca con tres mens
Archivo, Proyecto y Ayuda, como se observa en la siguiente figura.

Figura 25. Ventana del programa ObMoDe despus de ejecutarse.

63

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

El men Proyecto inicialmente est deshabilitado, porque primero es necesario


crear un proyecto. Para hacer eso, en el men Archivo se selecciona la opcin
Nuevo... y se elige el directorio y el nombre del archivo donde se quieren guardar
los resultados. Esto habilita el men Proyecto.
El primer paso es definir cual es el vdeo que se va a usar, esto se hace
seleccionando Abrir video del men Proyecto. Para explicar el funcionamiento
del programa se usara el video completo de la bola en cada libre que se ha usado
en captulos anteriores. Matlab solo puede leer archivos de vdeo con el formato
AVI (Audio Video Interleaved) sin compresin. Una vez seleccionado el vdeo
aparece en la ventana la imagen del primer fotograma y en la parte inferior
derecha hay unos controles que permiten navegar por cada uno de los
fotogramas. Tambin hay un botn para ver el video completo Play. Estos
controles se observan el la Figura 26.

Figura 26. Programa ObMoDe en modo de visualizacin del vdeo.

Posteriormente se debe definir cual es el objeto para el cual se va a encontrar sus


posiciones en los fotogramas. Para hacer esto se tienen dos opciones, la primera
es extraer el objeto de uno de los fotogramas. Primero se navega hasta el
fotograma que se desea usando los controles de la Figura 26, y se selecciona la
opcin Definir objeto > Del fotograma en el men Proyecto. La otra forma de
definir el objeto es seleccionando un archivo independiente, que se hace
seleccionando la opcin Definir objeto > De un archivo que aparece en el men

64

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Proyecto. Aparece una ventana para abrir el archivo, que para imgenes si se
pueden usar muchos formatos entre los que estn BMP, JPG, JPEG, GIF que son
los ms usados en Windows y en Internet.
Una vez definida la imagen de donde se va a definir el objeto, sta aparece en la
ventana y el cursor cambia a una cruz que sirve para seleccionar el centro del
objeto. El centro y el radio de la regin que define el objeto se puede modificar
con el teclado. Sobre la imagen en color verde claro, se observa un crculo y el
centro como se definieron, sta es una gran ayuda para definir el objeto. Ya
definido el objeto, otras opciones que se pueden configurar son los parmetros K
y V de la AFMT, el tamao del objeto en coordenadas log-polares y el mtodo de
interpolacin que se usar. En la figura se observa un objeto definido del quinto
fotograma del vdeo que estamos usando de ejemplo.

Figura 27. Programa ObMoDe en modo de definir objeto.

Para terminar la definicin del objeto se pulsa sobre el botn Listo, y quedan
disponibles tres opciones. La primera, es ver la imagen con o sin el crculo que
define el objeto. Segundo se puede observar el objeto convertido a coordenadas
log-polares. Y por ltimo se puede observar la grfica del modulo de los
descriptores AFMT que se encuentra en la Figura 28 para el presente ejemplo.

65

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Figura 28. Visualizacin del mdulo de los descriptores AFMT del un objeto definido
en el programa ObMoDe.

El paso siguiente es poner al programa a determinar la posicin del objeto en el


vdeo. Se selecciona la opcin Determinar movimiento en el men Proyecto y la
ventana cambia a una parecida a la de la Figura 29. En esa instancia se pueden
configurar muchas cosas. Comencemos con que tambin aqu se pueden decidir
cual ser el tamao de la imagen log-polar y la interpolacin que se usar. Estas
dos opciones son las que definen en gran medida el tiempo que se demora
procesando cada pxel. Los parmetros K y V de la AFMT tambin se pueden
cambiar afectando al vdeo y al objeto.
Las otras opciones que se pueden cambiar son las que definen el algoritmo que se
usa para generar las mscaras de cada fotograma. Estas determinan cuantos
pxeles se deben procesar, y por lo tanto tambin afectan mucho el tiempo de
ejecucin. Las opciones son las mismas que se mencionaron en el final del
captulo 3 donde se define el algoritmo optimizado para determinar la posicin
del objeto.
En orden descendente, la primera opcin es si se especifica o no la posicin
inicial del objeto. Slo afecta la mscara del primer fotograma. Si se selecciona,
el cursor cambia a una cruz y permite seleccionar la posicin inicial usando el
ratn. En el pxel que uno selecciona aparece una pequea cruz de color verde
que sirve como ayuda. La posicin inicial tambin se puede cambiar usando el
teclado. Si no se selecciona posicin inicial, el tiempo de clculo es muchsimo
mayor, este es el factor que ms influye.
66

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

La segunda y tercera opciones son si el objeto se mueve de forma rpida o lenta.


En el modo de visualizacin de vdeo, se puede analizarlo para saber que tipo de
movimiento se tiene. Es necesario seleccionar alguno de los dos tipos, o
seleccionar ambos. Adicionalmente si se selecciona el movimiento lento, se
puede modificar la velocidad mxima. Esa velocidad es la mxima para el
movimiento lento y debe tener un valor pequeo normalmente menor que diez,
porque de lo contrario el tiempo de clculo aumenta exageradamente.
La ltima opcin es si se usa o no un radio variable, como se explicaba en el
captulo anterior esto significa que el radio mximo para un fotograma es el radio
que tenia el objeto en el fotograma anterior. El espacio que define el radio
mximo del objeto es necesario adecuarlo al vdeo. Si no se usa radio variable,
ese es el radio que se usa para todos los fotogramas. Si la opcin de radio
variable esta habilitada, ese radio define el mximo para todos los fotogramas y
es el que se usa para el comienzo.

Figura 29. Programa ObMoDe en modo de determinar movimiento.

Para que el programa comience a procesar el vdeo determinando las posiciones


del objeto, se pulsa en el botn Comenzar. La ejecucin siempre dura varios
minutos, por lo tanto hay que tener paciencia. Al terminar, el programa pasa al
modo de ver resultados y se abre la aplicacin de Windows notepad con los
resultados en un archivo de texto. En el programa se tienen varias opciones para

67

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

visualizar los resultados. La primera opcin muestra la funcin de distancia de


similitud para cada uno de los fotogramas. Se cambia de fotograma con los
mismos controles que se tenan en la visualizacin del vdeo. Hay que tener en
cuenta que esta funcin no se calcula para todos los pxeles del fotograma. El
fondo azul uniforme es la zona en que no se calculo la funcin.
La segunda opcin para la visualizacin de los resultados es la posicin del
objeto demarcada sobre el mismo fotograma con una cruz verde pequea.
Adicionalmente se tiene la opcin de mostrar la traza del movimiento, que si esta
seleccionada, en todas las posiciones donde estuvo el objeto desde el comienzo
del vdeo se marcan con un punto verde. Nuevamente aqu se tienen los controles
para cambiar de fotograma. En la Figura 30 se observa el modo de visualizacin
de resultados para la posicin del objeto del ejemplo en el fotograma 9 y con la
traza del movimiento.
Dejando de lado un momento la explicacin de cmo usar el programa, las
posiciones que se encontraron para el ejemplo de la bola, son perfectas excepto
en el primer y ltimo fotograma. Pero en esos dos fotogramas la bola no apareca
completa, lo que justifica el error, que de todas formas son cercanos a la posicin
real. En cuanto a los tiempos de clculo fueron 4 minutos 17,84 segundos
especificando la posicin inicial y 4 minutos 40,47 segundos sin especificarla.

Figura 30. Modo de visualizacin de resultados en el programa ObMoDe.

68

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

El siguiente tipo de visualizacin de resultados es una grfica de tipo stem para el


movimiento del objeto horizontal y vertical. El movimiento horizontal aparece
como puntos de color azul, y el movimiento vertical demarcado con asteriscos de
color verde.
La ltima opcin de visualizacin de resultados solamente abre el archivo de
resultados en notepad. Ese archivo contiene mucha mas informacin que las
posiciones del objeto en cada fotograma. Tiene el nombre del proyecto, el
archivo del vdeo y el objeto, y toda la configuracin que se us para hacer los
clculos. Tambin se tiene el tiempo que tard el programa para determinar las
posiciones. Por ltimo se tiene la distancia cero del objeto y si la posicin es o no
confiable para cada uno de los fotogramas.

69

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

4.3. Resultados usando el programa ObMoDe


Para probar el programa ObMoDe adems de usar una pequea bola en cada
libre que representa la primera aplicacin propuesta, tambin se us el vdeo de
una calle donde se observan muchos vehculos en movimiento. Ese ejemplo es de
una grabacin extrada de la cmara fija existente de la seccin de trfico del
ayuntamiento de Valencia, Espaa. Nos sirve para comprobar que la aplicacin
de seguimiento del movimiento de coches en una calle si se puede realizar. Se
usaron solamente 28 fotogramas. En la Figura 31 se observa el primer fotograma
de esa secuencia.

Figura 31. Primer fotograma del vdeo de una calle usado como ejemplo.

Primero debemos comenzar analizando cual es el tipo de movimiento que tienen


los objetos de este vdeo. Los coches pueden alcanzar velocidades bastante altas,
sin embargo en este caso, una zona urbana donde adems hay un semforo cerca,

70

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

no es posible andar muy rpido. Adems los fotogramas son slo cada 0,04
segundos, por lo tanto se puede concluir que el movimiento es solamente de tipo
lento. Como velocidad mxima del objeto vamos a asumir 5 pxeles. Una
caracterstica de estos videos es que la velocidad de los objetos es mayor cuando
estn ms cerca de la cmara lo que complica un poco la decisin de la velocidad
mxima.
Otros parmetros que se configuran son: K y V que se tomaron iguales a 10; el
tamao del objeto en coordenadas log-polares que se tom como 32; y el mtodo
de interpolacin que se uso principalmente fue nearest.
Con respecto a las otras opciones restantes que se pueden configurar, se hicieron
pruebas para cada caso: especificando la posicin inicial; sin especificar la
posicin inicial; con radio variable. Todos los resultados que se obtuvieron, se
encuentran en el Anexo C.

4.3.1. Resultados especificando la posicin inicial para el primer coche


En la Figura 32 se observa primero el coche seleccionado del primer fotograma;
y segundo, su posicin en el ltimo fotograma y la traza de las posiciones en
fotogramas anteriores. Podemos ver que el movimiento del coche si se detecta
correctamente, pero no todos los puntos se encuentran en la lnea recta que debe
describir su desplazamiento. Esto incluso se puede ver en la ltima posicin, que
comparado con el objeto de referencia, el centro del coche se detecta un poco
hacia la izquierda.

71

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

Figura 32. Primera prueba con el vdeo de la calle. (a) Coche seleccionado que define
el objeto en el primer fotograma. (b) Posicin del coche en el ltimo fotograma con la
traza de su movimiento.

Analizando los dos mtodos de interpolacin nearest y linear, y teniendo en


cuenta que el objeto cambia de tamao, se puede decir que es ms indicado usar
el segundo mtodo. La razn para llegar a esa conclusin es que los arcos que se
forman usando interpolacin nearest dependen de la separacin entre pxeles. Por
lo tanto cuando se cambia el tamao del objeto, los arcos tambin cambian
representando un objeto un poco diferente. Se realiz otra prueba para el mismo
coche pero usando interpolacin bilineal esperando que no ocurrieran los mismos
errores. Pero los resultados fueron muy parecidos.

4.3.2. Resultados especificando la posicin inicial para el segundo coche


Otra posibilidad es que los errores se deben al hecho de que el vdeo se digitaliz
usando compresin, y la calidad de la imagen se pierde mucho. Observando
detenidamente ese coche, en cada uno de los fotogramas si se puede ver que
cambia continuamente. La siguiente prueba se realiz con otro vehculo que
aparentemente no cambia tanto y los resultados si son los esperados (Figura 33).

72

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

Figura 33. Segunda prueba con el vdeo de la calle. (a) Coche seleccionado que define
el objeto en el primer fotograma. (b) Posicin del coche en el ltimo fotograma con la
traza de su movimiento.

Las dos pruebas presentadas aqu tardaron 6 minutos 30,67 segundos y 6 minutos
29,25 segundos respectivamente. En promedio esto es 14,369 segundos que no es
tanto considerando que el ordenador en que se hicieron las pruebas no es el ms
indicado. La prueba que se realiz con interpolacin bilineal tard 0,78 segundos
adicionales que comparado con los varios minutos que tarda todo el proceso la
diferencia no es muy significativa.

4.3.3. Resultados sin especificar la posicin inicial


La tercera prueba que presentaremos se realiz para el mismo primer coche, pero
sin especificar la posicin inicial. Las posiciones encontradas son idnticas a las
de la Figura 32, la diferencia est en el tiempo de ejecucin que fue 26 minutos
30,95 segundos que es muchsimo mas lento. Esta diferencia tan grande se debe a
que para el primer fotograma se calcula la distancia de similitud para todas las
zonas en que hay movimiento (vea la Figura 34), en este caso todos los coches.
En la figura se observa que la mscara cubra un rea muy extensa comparado
son los 37 pxeles que toca procesar en el caso que si se especifica la posicin
inicial.

73

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Figura 34. Tercera prueba con el vdeo de la calle, funcin de distancia de similitud
para el primer fotograma cuando no se especifica la posicin inicial.

4.3.4. Resultados usando el algoritmo de radio variable


La cuarta prueba que se presentar tambin es para el mismo primer coche
especificando la posicin inicial y usando la opcin de radio variable. Los
resultados estn en la siguiente figura y aunque las posiciones encontradas si
cambian un poco no es muy fcil notar la diferencia. Lo que si se puede decir es
que todava se tiene el problema de unas posiciones un poco errneas.

74

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

(a)

(b)

Figura 35. Cuarta prueba con el vdeo de la calle. (a) Coche seleccionado que define el
objeto en el primer fotograma. (b) Posicin del coche en el ltimo fotograma con la
traza de su movimiento.

Para poder analizar si el uso del radio variable produce unos resultados mejores
como es de esperarse segn la teora, debemos comparar las distancias de
similitud mnimas para cada fotograma. Como el objeto es el mismo para la
primera y cuarta prueba, sus distancias de similitud se pueden comparar
directamente. Mientras ms pequeas sean las distancias de similitud, mejor es el
algoritmo. En la Tabla 4 estn esos valores que estn graficados en la Figura 36.

Fotograma
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Distancia de similitud mnima


Radio fijo
Radio variable
1,53003e-031
1,53003e-031
0,0029641
0,0029641
0,0087091
0,0087091
0,0080768
0,0080768
0,0205116
0,0205116
0,0216639
0,0216639
0,0215698
0,0215698
0,0205504
0,0205504
0,0223157
0,0192589
0,0265931
0,0364965
0,0408930
0,0172947
0,0605591
0,0439194
0,0463159
0,0234795
0,0496616
0,0322467
0,0601548
0,0632376
0,0569771
0,0569771
0,0610200
0,0610200
75

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

18
19
20
21
22
23
24
25
26
27
28

0,0738973
0,0785066
0,0800082
0,0780053
0,0622099
0,0772506
0,0928553
0,1020470
0,0886841
0,1018540
0,0985513

0,0588717
0,0498945
0,0545915
0,0540716
0,0424731
0,0455587
0,0565428
0,0518470
0,0416545
0,0382121
0,0673734

Tabla 4. Distancia de similitud mnima para cada fotograma.

Distancia de similitud mnima


1.20E-01

8.00E-02
6.00E-02
4.00E-02

Radio variable

28

25

Fotograma

22

19

16

13

10

0.00E+00

2.00E-02
1

Distancia de
similitud

1.00E-01

Radio fijo

Figura 36. Grfica de la distancia de similitud mnima para cada fotograma (Tabla 4).

Como se puede observar en la grfica, para el primer fotograma la distancia de


similitud es prcticamente cero debido a que aqu se defini el objeto. Desde los
fotogramas dos al ocho el valor permanece igual para ambos casos ya que el
coche no ha cambiado mucho de tamao y por lo tanto el radio no ha variado.
Del nueve en adelante los resultados si son diferentes. Para las dos pruebas se
puede observar que mientras mas pequeo es el coche, la distancia de similitud
tiende a aumentar. Pero para el caso en que se usa el algoritmo en que vara el

76

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

radio, el aumento es considerablemente menor en casi todos los fotogramas,


excepto en el diez y en el quince.
Con estos resultados ya se puede concluir que aadir al algoritmo la variacin del
radio si mejora el desempeo del mtodo para determinar la posicin del objeto.
Esto se traduce en que se podra seguir al vehculo hasta tamaos mas pequeos,
o que si se est buscando la presencia o no del coche, la respuesta sera ms
confiable.

4.3.5. Resultados usando el mismo vdeo pero digitalizado sin compresin y


compensando el entrelazado
Como se mencionaba anteriormente, la calidad del vdeo de los coches no era
muy buena, y por esta razn los resultados determinando la posicin de los
coches, no eran los mejores. La hiptesis era que la baja calidad de la imagen,
que se deba a la compresin que usaba el formato del vdeo al ser digitalizado
(MPEG). Por esta razn se tom la decisin de digitalizar nuevamente el vdeo,
pero usando algn formato sin compresin. Al hacer esto nos dimos cuenta que
el problema principal no era la compresin. El mayor problema era el entrelazado
del formato original, que era VHS.
El video se digitaliz nuevamente sin usar compresin, y adems se us el
programa Adobe Premiere para eliminar el efecto del entrelazado. En la Figura
37 primero se observa la como se ve la imagen cuando est entrelazada y
comprimida en MPEG, y despus como queda sin compresin y desentrelazada.

(a)

(b)

Figura 37. (a) Imagen digitalizada en formato MPEG del formato anlogo VHS con
entrelazado. (b) La misma imagen (a) digitalizada sin compresin y procesada para
compensar el entrelazado.

77

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

La ltima prueba que mencionaremos, es igual que la primera pero usando el


video digitalizado nuevamente. La calidad del vdeo no es tan buena como se
esperaba, pero los resultados si son mucho mejores. Como se puede ver en la
Figura 38 el movimiento del coche si se asemeja a una lnea recta, aunque
todava hay dos posiciones un poco errneas. Esos resultados nos confirman que
mientras mejor sea la calidad de la imagen, ms confiables sern los resultados.

Figura 38. Movimiento del primer coche


usando el vdeo sin compresin y
compensando el entrelazado.

78

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Captulo 5.

Conclusiones

La Transformada de Fourier-Mellin Analtica es una herramienta matemtica


muy poderosa que se puede usar en muchas aplicaciones. En la actualidad se ha
usado principalmente para el reconocimiento de formas en imgenes pero en el
futuro se podra usar en la determinacin de la posicin de objetos, como se
plantea en este proyecto. Pero incluso se podra aplicar en otros tipos de
informacin que no sean necesariamente imgenes, por ejemplo para el
reconocimiento de patrones en datos, o usando imgenes generadas con otras
bandas de radiacin electromagntica diferentes a la luz visible.
El gran problema de la AFMT es que requiere una gran capacidad de
procesamiento, que resulta en que la mayora de las aplicaciones no sean viables
porque los precios del procesador seran demasiado altos. Sin embargo con el
constante incremento en las velocidades de procesamiento de los circuitos
integrados y la reduccin de los precios gracias a la economa en escala, ser
posible que en un futuro muy prximo sean realizables hasta las aplicaciones ms
exigentes. De todas formas en la actualidad si se pueden disear sistemas basados
en la AFMT que sean viables. No se podran usar ordenadores convencionales,
sino sera necesario usar circuitos integrados especializados en el procesamiento
digital de imagen. Estos tipos de integrados ya existen en la industria de las
cmaras fotogrficas digitales y podran servir para estos propsitos.
Como conclusiones ms puntuales sobre la determinacin de la posicin de
objetos en imgenes usando la AFMT, tenemos varias. Los algoritmos
desarrollados funcionan muy bien y hay muchas otras variables por explorar para
mejorarlos. Siempre y cuando el objeto no este obstaculizado por otro, la
posicin que se encuentra es exactamente el centro del objeto. Y de todas formas
si el objeto no esta completo en la imagen, la posicin determinada normalmente
queda sobre este.
Pero lo mas importante es que hay invarianza a los cambios de tamao y
orientacin que es la gran ventaja que tiene la AFMT. No encontramos ninguna
restriccin para el ngulo en que se encontrara el objeto. Sin embargo debido a
que las imgenes son digitales con una cantidad de muestras finita, si hay un
lmite para el tamao que puede tener el objeto. Mientras mas pequeo es, se
pierden mas los detalles. Para lograr determinar la posicin de un objeto hasta los
menores tamaos, llegamos a la conclusin que lo mejor es usar interpolacin
bilineal y usar el algoritmo de radio variable. Ese algoritmo requiere determinar
el tamao aproximado del objeto sin importar la invarianza a los cambios de
escala, con lo que se pierde un poco la ventaja que se tena con respecto al
tamao.

79

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Otra conclusin es que para usar la AFMT es muy importante que la calidad de la
imagen sea buena. Se tiene bastante flexibilidad, pero mientras peor sea la
resolucin o si se tiene mucho ruido o distorsiones, menos fiables sern los
resultados. Particularmente en el caso de los vdeos, los formatos digitales mas
usados, emplean mtodos de compresin en los que se pierde mucha informacin
y por lo tanto calidad de la imagen. La compresin elimina todos los detalles que
el ojo humano no percibe. Esto nos lleva a concluir que para aplicar las tcnicas
basadas en la AFMT en vdeos, no se pueden usar compresiones en que haya
perdida de informacin, y mientras mayor sea la calidad de la imagen, mejores
resultados se tendrn.
Adems de los resultados que se obtuvieron, los programas desarrollados en
Matlab son una gran herramienta para poder experimentar y desarrollar
algoritmos especiales para cada aplicacin. Esta puede ser la base para trabajos
futuros, y la posible implementacin de algunas de las aplicaciones que se
propusieron.

80

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Bibliografa

[1] http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Fourier.html
[2] http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Mellin.html
[3] CARLSON, A. Bruce. Communication Systems. McGraw-Hill, Third Edition
1986.
[4] MLLER, Roberto; SNCHEZ, Hugo; SNCHEZ, Edmundo. Image
Recognition Using the Fourier-Mellin Transform. GSPx 2003 Papers.
[5] DERRODE, Stphane. Reprsentation de formes planes niveaux de gris par
diffrentes approximations de Fourier-Mellin analytique en vue d'indexation de
bases d'images. Thse ou HDR soutenue le 15/12/1999 Enst-Bretagne.
[6] DERRODE, Stphane; GHORBEL, Faouzi. Robust and efficient FourierMellin transform approximations for gray-level image reconstruction and
complete invariant description. Computer Vision and Image Understanding,
2001, Volume 83, No. 1, p. 57-78.
[7] GHORBEL, Faouzi. A complete invariant description for gray-level images
by the harmonic analysis approach. Pattern Recognition Letters, October 1994,
Volume 15 Issue 10.
[8] DERRODE, Stphane; GHORBEL, Faouzi. Shape analysis and symmetry
detection in gray-level objects using the analytical Fourier-Mellin
representation. Signal Processing, January 2004, Volume 84, Issue 1, p. 25-39.
[9] Columbia Object Image Library (COIL-20).
[10] CASTLEMAN, Kenneth R. Digital Image Processing. Prentice-Hall, 1996.
[11] WANG, Yiwei; VAN DYCK, Robert E.; DOHERTY, John F. Tracking
Moving Objects In Video Sequences. Proc. CISS , Princeton, NJ, Mar. 2000.

81

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

[12] MEIER, Esther B.; ADE, Frank. Tracking Cars in Range Images Using the
Condensation Algorithm. IEEE/IEEJ/JSAI International Conference on
Intelligent Transportation Systems ITSC'99. Tokyo, Japan, 5th-8th October 1999,
p. 129-134.
[13] STEFANO, Luigi; VIARANI, Enrico. Vehicle Detection and Tracking
Using the Block Matching Algorithm. Recent Advances in Signal Processing and
Communications. N. Mastorakis Editor, World Scientific and Engineering
Society Press, 1999.

82

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Anexo A.

Demostraciones matemticas

A.1. Deduccin del teorema de traslacin en coordenadas logpolares para la AFMT


Se tienen dos funciones f y g con similitud plana de tal forma que
g (r , ) = f (r , + )

Para deducir este teorema se parte de la AFMT de la funcin g y se manipula


para ser representado en trminos de la AFMT de f.
M g (k , v ) =

1
2
1
2

g (r , )r

jv jk

0 0

f (r , + )r

dr
r

jv jk

0 0

dr
r
R = r dR = dr
= + d = d

Cambiando las variables de integracin por

1
2

2 +

jv jk ( )

f (R, )(R )

+ jv

jk

1
2

f (R, )R

jv jk

0 0

(dR )
(R )

dR
R

Y finalmente obtenemos
M g (k , v ) = + jv e jk M f (k , v )

83

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

A.2. Demostracin de la simetra hermitiana de la AFMT


Comenzamos con la frmula de la AFMT
M f (k , v ) =

1
2

f (r, )r

jv jk

0 0

dr
r

Y a esta le cambiamos las variables incluyendo un signo negativo y sacamos el


complejo conjugado.
M f ( k ,v ) =
=
=
=
=

1
2

1
2
1
2
1
2
1
2

f (r , )r

j ( v ) j ( k )

0 0

f (r, + )r

dr
r

r jv e jk d

dr
r

r jv e jk d

dr
r

r jv e jk d

0 0
2

f (r, + )r
0 0

f (r, + )r
0 0

f (r, + )r

jv jk

0 0

dr
r

dr
r

= M f (k , v )

M f ( k ,v ) = M f ( k ,v )

Esta relacin solamente es valida siempre y cuando la funcin f sea estrictamente


real.

84

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

A.3. Demostracin de la invarianza a las similitudes planas de


los descriptores AFMT
Se tienen dos funciones f y g con similitud plana de tal forma que
g (r , ) = f (r , + )

Para este tipo de funciones recordamos que la relacin entre sus AFMTs est
dada por el teorema de traslacin en coordenadas log-polares
M g (k , v ) = + jv e jk M f (k , v )

Comenzamos con la frmula para los descriptores invariantes para la funcin g y


reemplazamos usando el teorema de traslacin. Despus se trata de poner el lado
derecho de la ecuacin solo en trminos de f.
1+ j

I g (k , v ) = M g (0,0)

(
= (

}
M g (k , v )

jk arg M g (1, 0 )
1+ j

= + j (0 )e j (0 ) M f (0,0)

1+ j

M f (0,0 )

1+ j

= jv M f (0,0 )
1+ j

= M f (0,0 )

1+ j

= M f (0,0 )

} + jv jk
e M f (k , v )

jk arg + j ( 0 )e j (1 ) M f (1, 0 )

} + jv jk
e M f (k , v )

} + jv jk
e M f (k , v )

jk arg e j M f (1, 0 )

jk arg e j M f (1, 0 )

( {

} ) jk
e M f (k , v )

jk arg M f (1, 0 ) +

}
M f (k , v )

jk arg M f (1, 0 )

= I f (k , v )

I f (k , v ) = I g (k , v )

El resultado es que los descriptores son los mismos para f que para g. Como f y g
se relacionan por una similitud plana, esto demuestra que los descriptores si son
invariantes para cualquier otra funcin con la misma similitud.

85

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

A.4. Demostracin de la no invarianza a las traslaciones de


los descriptores AFMT
La Transformada de Fourier-Mellin Analtica en coordenadas cartesianas se
expresa de la siguiente forma
M h (k , v ) =

1
2

h(x, y )(x + jy )

(x

+ y2

k 2 + jv
2

dxdy

Por otra parte, dos funciones f y g relacionadas por una traslacin se expresan
h( x , y ) = f ( x x o , y y o )
M h (k , v ) =

1
2
1
2

f ( x xo , y y o )(x + jy )

(x

k 2 + jv
2

+ y2

h(x, y )(x + jy )

(x

dxdy

+ y2

1
2

k 2 + jv
2

dxdy

X = x x o dX = dx

Cambiando las variables de integracin por

Y = y y o dY = dy

f ( X , Y )[( X + xo ) + j (Y + y o )]

[( X + x )
o

+ (Y + y o )

k 2 + jv
2

dX dY

Esa expresin no se puede simplificar de tal forma que sea igual a la AFMT de la
funcin f.

1
2

f ( X , Y )[ X + jY ]

[X

+Y2

k 2 + jv
2

dX dY

M h (k , v ) M f (k , v )

Por lo tanto no existe invarianza a la traslacin de la AFMT ni tampoco de sus


descriptores invariantes a las similitudes planas, o mediante una expresin
matemtica que
I f (k , v ) I h (k , v )

86

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Anexo B.

Programas en Matlab

B.1. im2logpol.m
function logpolar = im2logpol(varargin)
% Convierte una imagen de coordenadas cartesianas a coordenadas log-polares
%
% LOGPOLAR = im2logpol(IMAGE,'PropertyName',PropertyValue,...)
%
%
LOGPOLAR es una matriz que representa una imagen en escala de grices
%
con coordenadas log-polares, obtenida de la imagen original IMAGE. Las
%
siguientes propiedades opcionales se pueden modificar:
%
%
----------------------------------------------------------------%
| PropertyName
| PropertyValue
|
%
----------------------------------------------------------------%
| 'Area'
| [X0 YO R], vector de tres elementos que
|
%
|
|
especifica el centro y el radio del area
|
%
|
|
circular de la imagen que sera convertida. |
%
----------------------------------------------------------------%
| 'Size'
| [M N], especifica el tamao de la imagen
|
%
|
|
log-polar de salida. M y N se refieren a |
%
|
|
las coordenadas de angulo y log-radio
|
%
|
|
respectivamente. Si solo se especifica M |
%
|
|
la salida es cuadrada de tamao M.
|
%
----------------------------------------------------------------%
| 'Method'
| Cadena de caracteres con el nombre del
|
%
|
| metodo de interpolacion.
|
%
|
| 'nearest' - nearest neighbor interpolation |
%
|
| 'linear' - bilinear interpolation
|
%
|
| 'cubic'
- bicubic interpolation
|
%
|
| 'spline' - spline interpolation
|
%
----------------------------------------------------------------%
% Version: 4-A Fecha: 08/07/2004
%
% Mauricio Villegas Santamaria
if nargin == 0
error('Hacen falta argumentos de entrada.');
end
cartesian = varargin{1};
[Y,X] = size(cartesian);
AreaCentreX = (X-1)/2+1;
AreaCentreY = (Y-1)/2+1;
AreaRadius = sqrt(((X-1)^2)+((Y-1)^2))/2;
M = max([X Y]);

% Convertir la imagen a tipo de dato double


% Obtener el tamao de la imagen
% Coordenadas predeterminadas del centro de
la imagen
% Radio predeterminado de la imagen
% Tamao predeterminado de la imagen
log-polar

N = M;
Method = 'linear';

% Metodo de interpolacion predeterminado

if nargin > 1
for index = 2:2:nargin
if nargin == index
break
end
switch varargin{index}
case 'Area'
Area = varargin{index+1};

% Si se especifica Area
% Cambiar las coordenadas del centro y el

87

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
radio del area de la imagen
AreaCentreX = Area(1);
AreaCentreY = Area(2);
AreaRadius = Area(3);
M = 2*AreaRadius;
N = M;
case 'Size'
Size = varargin{index+1};
M = Size(1);
if size(Size,2) == 2
N = Size(2);
else
N = M;
end
case 'Method'
Method = varargin{index+1};
end
end
end

% Si se especifica Size
% Cambiar el tamao de la imagen log-polar

% Si se especifica Method
% Cambiar metodo de interpolacion

theta = [0:2*pi/M:2*pi-2*pi/M];
rho = transpose(logspace(0,log10(AreaRadius),N));
x = rho*cos(theta)+AreaCentreX;

% Vector con el angulo con respecto


al origen
% Vector con el radio con respecto
al origen
% Coordenadas x para la malla de
muestras log-polares
% Coordenadas y para la malla de
muestras log-polares

y = rho*sin(theta)+AreaCentreY;
logpolar = interp2(cartesian,x,y,Method);
mask = (x>X) | (x<1) | (y>Y) | (y<1);
logpolar(mask) = 0;

% Hacer la interpolacion
% Si las muestras estaban por fuera
del area original de la imagen
ponerlas como negro

88

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

B.2. F_Afmt.m
function [Mf,logpolar] = F_Afmt(varargin)
% Transformada de Fourier-Mellin Analitica (AFMT) de una imagen usando el algoritmo
rapido
%
% [AFMT,LOGPOLAR] = F_Afmt(IMAGE,[K V],IM2LOGPOL_PROPERTIES)
%
%
Donde IMAGE es una matriz que representa una imagen en escala de grises;
%
K, V, son los parametros de la transformada; IM2LOGPOL_PROPERTIES son
%
las propiedades opcionales que pueden ser especificadas para la transformacion
%
a log-polar, vea HELP IM2LOGPOL.
%
%
AFMT es la Transformada de Fourier-Mellin Analitica calculada usando el
%
algoritmo rapido; y LOGPOLAR es la imagen convertida a coordenadas log-polares.
%
% Version: 3-A Fecha: 08/07/2004
%
% Mauricio Villegas Santamaria
if nargin == 0
error('Hacen falta argumentos de entrada.');
end
f = varargin{1};
[Y,X] = size(f);
% Obtener el tamao de la imagen
Area = [(X-1)/2+1, (Y-1)/2+1, sqrt(((X-1)^2)+((Y-1)^2))/2]; % Area predeterminada
Size = max([X Y]);
% Tamao de la imagen log-polar predeterminado
Method = 'linear';
% Metodo de interpolacion predeterminado
sigma = 0.5;
% Sigma = 0.5 predeterminado
if nargin > 2
for index = 3:2:nargin
if nargin == index
break
end
switch varargin{index}
case 'Area'
Area = varargin{index+1};
case 'Size'
Size = varargin{index+1};
case 'Method'
Method = varargin{index+1};
case 'Sigma'
sigma = varargin{index+1};
end
end
end
if nargin == 1
K = floor((min(Size)-1)/2);
V = K;
else
K = varargin{2}(1);
V = varargin{2}(2);
end

% Si se especifica Area
% Cambiar las coordenadas del centro y el radio
del area de la imagen
% Si se especifica Size
% Cambiar el tamao de la imagen log-polar
% Si se especifica Method
% Cambiar metodo de interpolacion
% Si se especifica Sigma
% Cambiar sigma

%
%
%
%
%

K predeterminado
V predeterminado
Si los parametros AFMT se especifican
Cambiar K
Cambiar V

logpolar = im2logpol(f,'Area',Area,'Size',Size,'Method',Method);
f = logpolar;
% Convertir la imagen de coordendas cartesianas a log-polares:
%
%
2*pi*n/N
%
f(e
, 2*pi*m/M)
M = size(f,2);
N = size(f,1);

% Obtener el tamao de la imagen nueva

a = 2*pi*sigma/N;

89

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
for n = 0:N-1
b = a*n;
for m = 0:M-1
f(n+1,m+1) = exp(b)*f(n+1,m+1);
end
end
% Calcular:
2*pi*sigma*n/N
2*pi*n/N
%
e
* f(e
, 2*pi*m/M)
Mf = (2*pi/(N*M)).*fftshift(fft2(f));
% Calcular: 2*pi M-1 N-1
2*pi*sigma*n/N
2*pi*n/N
-j2*pi*(km/M+vn/N)
%
---- sum sum e
* f(e
, 2*pi*m/M) * e
%
MN m=0 n=0
Mf = Mf((N/2+1-V):(N/2+1+V),(M/2+1-K):(M/2+1+K));
% Si los parametros K y V son suministrados, descartar el resto de los resultados
Mf = transpose(Mf);

90

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

B.3. Afmt_descriptors.m
function [If,Mf,logpolar] = Afmt_descriptors(varargin)
% Familia completa de descriptores AFMT de una imagen invariantes a cambios de tamao y
rotacion
%
% [AFMTD,AFMT,LOGPOLAR] = AFMT_descriptors(IMAGE,[K V],IM2LOGPOL_PROPERTIES)
%
%
Donde IMAGE es una matriz que representa una imagen en escala de grises;
%
K, V, son los parametros de la transformada; IM2LOGPOL_PROPERTIES son
%
las propiedades opcionales que pueden ser especificadas para la transformacion
%
a log-polar, vea HELP IM2LOGPOL.
%
%
AFMT es la Transformada de Fourier-Mellin Analitica calculada usando el
%
algoritmo rapido; y LOGPOLAR es la imagen convertida a coordenadas log-polares.
%
%
AFMTD es una matriz con los descriptores basados en la Transformada de
%
Fourier-Mellin Analitica (AFMT) invariantes a cambios de tamao y rotacion;
%
AFMT es la Transformada de Fourier-Mellin Analitica calculada usando el
%
algoritmo rapido; y LOGPOLAR es la imagen IMAGE convertida a coordenadas
%
log-polares.
%
% Version: 5-A Fecha: 18/08/2004
%
% Mauricio Villegas Santamaria
if nargin == 0
error('Hacen falta argumentos de entrada.');
end
f = varargin{1};
[Y,X] = size(f);
% Obtener el tamao de la imagen
Area = [(X-1)/2+1, (Y-1)/2+1, sqrt(((X-1)^2)+((Y-1)^2))/2]; % Area predeterminada
Size = max([X Y]);
% Tamao de la imagen log-polar predeterminado
Method = 'linear';
% Metodo de interpolacion predeterminado
sigma = 0.5;
% Sigma = 0.5 predeterminado
if nargin > 2
for index = 3:2:nargin
if nargin == index
break
end
switch varargin{index}
case 'Area'
Area = varargin{index+1};
case 'Size'
Size = varargin{index+1};
case 'Method'
Method = varargin{index+1};
case 'Sigma'
sigma = varargin{index+1};
end
end
end
if nargin == 1
K = floor((min(Size)-1)/2);
V = K;
else
K = varargin{2}(1);
V = varargin{2}(2);
end

% Si se especifica Area
% Cambiar las coordenadas del centro y el radio
del area de la imagen
% Si se especifica Size
% Cambiar el tamao de la imagen log-polar
% Si se especifica Method
% Cambiar metodo de interpolacion
% Si se especifica Sigma
% Cambiar sigma

%
%
%
%
%

K predeterminado
V predeterminado
Si los parametros AFMT se especifican
Cambiar K
Cambiar V

logpolar = im2logpol(f,'Area',Area,'Size',Size,'Method',Method);
f = logpolar;
% Convertir la imagen de coordendas cartesianas a log-polares:
%
%
2*pi*n/N

91

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
%

f(e

, 2*pi*m/M)

M = size(f,2);
N = size(f,1);

% Obtener el tamao de la imagen nueva

a = 2*pi*sigma/N;
for n = 0:N-1
b = a*n;
for m = 0:M-1
f(n+1,m+1) = exp(b)*f(n+1,m+1);
end
end
% Calcular:
2*pi*sigma*n/N
2*pi*n/N
%
e
* f(e
, 2*pi*m/M)
Mf = (2*pi/(N*M)).*fftshift(fft2(f));
% Calcular: 2*pi M-1 N-1
2*pi*sigma*n/N
2*pi*n/N
-j2*pi*(km/M+vn/N)
%
---- sum sum e
* f(e
, 2*pi*m/M) * e
%
MN m=0 n=0
Mf = Mf((N/2+1-V):(N/2+1+V),(M/2+1-K):(M/2+1+K));
% Si los parametros K y V son suministrados, decartar el resto de los resultados
Mf = transpose(Mf);
M00 = Mf(K+1,V+1);
argM10 = angle(Mf(K+2,V+1));

% Guardar Mf(0,0)
% Guardar arg{Mf(1,0)}

if M00 ~= 0
for k = -K:K
% Para todos los valores de k=[-K,K] y v=[-V,V]
for v = -V:V
If(k+K+1,v+V+1) = (M00^((i*v-sigma)/sigma))*exp(-i*k*argM10)*Mf(k+K+1,v+V+1);
end
end
% Calcular:
(jv-sigma)/sigma
-jk*arg{Mf(1,0)}
%
Mf(0,0)
* e
* Mf(k,v)
else
If = Mf;
end

92

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

B.4. imdistance.m
function d = imdistance(I1,I2)
% Distancia de similitud entre dos imagenes invariante a cambios de tamao y rotacion
(AFMT)
%
% DISTANCIA = imdistance(AFMT_DESCRIPTORS1,AFMT_DESCRIPTORS2)
%
%
Donde AFMT_DESCRIPTORS1 y AFMT_DESCRIPTORS2 son los descriptores AFMT invariantes
%
a cambios de tamao y rotacion calculados usando AFMT_DESCRIPTORS.M. DISTANCIA es
%
un escalar que represente la similitud entre las dos imagenes.
%
% Version: 2-A Fecha: 18/08/2004
%
% Mauricio Villegas Santamaria
if nargin < 2
error('Hacen falta argumentos de entrada.');
elseif nargin > 2
error('Demasiados argumentos de entrada.');
end
d = I1-I2;
d = abs(sum(sum(d.*conj(d))));

93

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

B.5. ObMoDe.m (Solo la parte en que se determinan las


posiciones)
tic
K = str2double(get(handles.K_edit,'String'));
V = str2double(get(handles.V_edit,'String'));
ObjectSize = str2double(get(handles.ObjectLogpolarSize_edit,'String'));
ObjectMethod = get(handles.ObjectInterpolationMethod_popupmenu,'String');
ObjectMethod = ObjectMethod{get(handles.ObjectInterpolationMethod_popupmenu,'Value')};
ObjectCentreX = str2double(get(handles.ObjectCentreX_edit,'String'));
ObjectCentreY = str2double(get(handles.ObjectCentreY_edit,'String'));
ObjectRadius = str2double(get(handles.ObjectRadius_edit,'String'));
Project = getappdata(handles.ObMoDe,'Project');
Iobject = Afmt_descriptors(rgb2gray(Project.ObjectCartesian),[K V], ...
'Area',[ObjectCentreX ObjectCentreY ObjectRadius], ...
'Method',ObjectMethod,'Size',ObjectSize);
if get(handles.IgnoreK0_checkbox,'Value') == 1
Iobject(K+1,:) = zeros(1,2*V+1);
end
dzero = imdistance(Iobject,zeros(2*K+1,2*V+1));
Movie = getappdata(handles.ObMoDe,'Movie');
X = Project.MovieSizeX;
Y = Project.MovieSizeY;
Z = Project.MovieSizeZ;
for z = 1:Z
[CurrentFrame,Map] = frame2im(Movie(z));
frame{z} = im2double(ind2gray(CurrentFrame,Map));
end
clear Object Movie
MaxRadius = str2double(get(handles.MaximumObjectRadius_edit,'String'));
MaxSpeed = str2double(get(handles.MaximumSpeed_edit,'String'));
Size = str2double(get(handles.VideoLogpolarSize_edit,'String'));
Method = get(handles.VideoInterpolationMethod_popupmenu,'String');
Method = Method{get(handles.VideoInterpolationMethod_popupmenu,'Value')};
for z = 1:Z
if z == 1
if get(handles.SpecifyInitialPosition_checkbox,'Value') == 1
X0 = str2num(get(handles.InitialPositionX_edit,'String'));
Y0 = str2num(get(handles.InitialPositionY_edit,'String'));
mask{z} = logical(zeros(Y,X));
mask{z}(Y0,X0) = logical(1);
se = strel('disk',4);
mask{z} = imdilate(mask{z},se);
else
dif = abs(frame{z}-frame{z+1});
dif_max = max(max(dif));
temp1 = dif > dif_max/4;
se = strel('disk',MaxRadius);
temp2 = imclose(temp1,se);
se = strel('disk',floor(MaxRadius/3));
mask{z} = imopen(temp2,se);
end
Radius(z) = MaxRadius;
else
mask{z} = logical(zeros(Y,X));
se = strel('disk',MaxSpeed);
if get(handles.SlowMovement_checkbox,'Value') == 1
temp = logical(zeros(Y,X));
temp(PositionY(z-1),PositionX(z-1)) = logical(1);
temp = imdilate(temp,se);
mask{z} = mask{z} | temp;
end
if get(handles.FastMovement_checkbox,'Value') == 1

94

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
temp = logical(zeros(Y,X));
dif = abs(frame{z}-frame{z-1});
dif_max = max(max(dif));
temp = dif > dif_max/2;
temp2 = temp & mask{z-1};
temp = temp-temp2;
mask{z} = mask{z} | temp;
end
end
for x = 1:X
for y = 1:Y
if mask{z}(y,x)
Iframe = Afmt_descriptors(frame{z},[K V], ...
'Area',[x y Radius(z)], ...
'Method',Method,'Size',Size);
if get(handles.IgnoreK0_checkbox,'Value') == 1
Iframe(K+1,:) = zeros(1,2*V+1);
end
d{z}(y,x) = imdistance(Iobject,Iframe);
else
d{z}(y,x) = NaN;
end
end
end
dmin(z) = min(min(d{z}));
[PositionY(z),PositionX(z)] = find(d{z}==dmin(z));
if get(handles.VariableRadius_checkbox,'Value') == 1
NumRadius = 25;
for r = 1:NumRadius
VarRadius = (r-1)*(MaxRadius-(MaxRadius/3))/(NumRadius-1) + (MaxRadius/3);
Iframe = Afmt_descriptors(frame{z},[K V], ...
'Area',[PositionX(z) PositionY(z) VarRadius], ...
'Method',Method,'Size',Size);
d2{z}(r) = imdistance(Iobject,Iframe);
end
d2min(z) = min(min(d2{z}));
r = find(d2{z}==d2min(z));
Radius(z+1) = (r-1)*(MaxRadius-(MaxRadius/3))/(NumRadius-1) + (MaxRadius/3);
else
Radius(z+1) = MaxRadius;
end
end
for z = 1:Z
if dmin(z) < 0.9*dzero
Trusted(z) = logical(1);
else
Trusted(z) = logical(0);
end
end
time = toc;

95

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

Anexo C.

Resultados usando el programa ObMoDe

C.1. Bola en cada libre, prueba 1


Prueba con el vdeo de la bola en cada libre, especificando la posicin
inicial:
Proyecto: Caida_con_posicion_inicial
Video: c:\PFC\caida.avi
Tamao = 512 x 512
Fotogramas = 10
Objeto: c:\PFC\bola.bmp
Centro = [ 33, 32 ]
Radio = 15
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 15
Posicion inicial especificada -> si
x=280, y=39
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> si
Radio variable -> no
Tiempo de calculo:

4 minutos 17.841 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10

281
279
279
279
279
279
279
279
280
280

39
40
50
75
114
167
233
312
405
503

dmin
0.330927
0.21683
0.026887
0.00824656
0.00814286
0.00721438
0.00479522
0.0134195
0.00853141
0.287115

96

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
Posicion confiable:
dcero = 1.44423
1
2
3
4
5
6
7
8
9
10

si
si
si
si
si
si
si
si
si
si

97

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.2. Bola en cada libre, prueba 2


Prueba con el vdeo de la bola en cada libre, sin especificar la posicin
inicial:
Proyecto: Caida_sin_posicion_inicial
Video: c:\PFC\caida.avi
Tamao = 512 x 512
Fotogramas = 10
Objeto: c:\PFC\bola.bmp
Centro = [ 33, 32 ]
Radio = 15
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 15
Posicion inicial especificada -> no
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> si
Radio variable -> no
Tiempo de calculo:

4 minutos 40.473 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10

281
279
279
279
279
279
279
279
280
280

39
40
49
75
114
167
233
312
405
503

dmin
0.330927
0.21683
0.0138467
0.00824656
0.00814286
0.00721438
0.00479522
0.0134195
0.00853141
0.287115

Posicion confiable:
dcero = 1.44423
1
2
3
4
5
6
7

si
si
si
si
si
si
si

98

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
8
9
10

si
si
si

99

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.3. Bola en cada libre, prueba 3


Prueba con el vdeo de la bola en cada libre, especificando la posicin inicial
y usando radio variable:
Proyecto: Caida_con_radio_variable
Video: c:\PFC\caida.avi
Tamao = 512 x 512
Fotogramas = 10
Objeto: c:\PFC\bola.bmp
Centro = [ 33, 32 ]
Radio = 15
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 15
Posicion inicial especificada -> no
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> si
Radio variable -> si
1 15.00
2 10.00
3 10.00
4 10.00
5 11.67
6 14.17
7 15.00
8 15.00
9 15.00
10 15.00
Tiempo de calculo:

4 minutos 53.341 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10

281
280
283
281
281
279
279
279
280
280

39
41
44
69
110
167
233
312
405
503

dmin
0.330927
0.198684
0.179918
0.179082
0.139775
0.0211565
0.00479522
0.0134195
0.00853141
0.287115

Posicion confiable:

100

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

dcero = 1.44423
1
2
3
4
5
6
7
8
9
10

si
si
si
si
si
si
si
si
si
si

101

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.4. Bola en cada libre, prueba 4


Prueba con el vdeo de la bola en cada libre, especificando la posicin inicial
e ignorando k = 0:
Proyecto: Caida_con_posicion_inicial_ignorando_k0
Video: c:\PFC\caida.avi
Tamao = 512 x 512
Fotogramas = 10
Objeto: c:\PFC\bola.bmp
Centro = [ 33, 32 ]
Radio = 15
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> si
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 15
Posicion inicial especificada -> si
x=281, y=39
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> si
Radio variable -> no
Tiempo de calculo:

4 minutos 17.09 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10

284
284
279
279
279
279
279
279
280
282

39
40
50
75
114
167
233
312
405
409

dmin
0.214646
0.151945
0.0226691
0.00554445
0.00674421
0.00475231
0.00292301
0.011144
0.00410605
0.0417353

Posicion confiable:
dcero = 0.0460686
1
2
3
4
5
6

no
no
si
si
si
si

102

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
7
8
9
10

si
si
si
no

103

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.5. Video de trfico, prueba 1


Prueba con el vdeo de coches en una va para el primer coche, especificando
la posicin inicial:
Proyecto: Coches_con_posicion_inicial
Video: c:\PFC\coches.avi
Tamao = 720 x 576
Fotogramas = 28
Objeto: Movie frame no. 1
Centro = [ 420, 250 ]
Radio = 25
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 25
Posicion inicial especificada -> si
x=420, y=250
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> no
Radio variable -> no
Tiempo de calculo:

6 minutos 30.672 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

420
420
421
420
419
419
418
419
419
419
420
418
418
418
418
416
420
418
418
418
416

250
248
246
244
242
240
238
236
234
232
230
229
226
225
223
222
220
219
217
215
213

dmin
1.53003e-031
0.00296411
0.00870912
0.00807683
0.0205116
0.0216639
0.0215698
0.0205504
0.0223157
0.0265931
0.040893
0.0605591
0.0463159
0.0496616
0.0601548
0.0569771
0.06102
0.0738973
0.0785066
0.0800082
0.0780053

104

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
22
23
24
25
26
27
28

417
419
418
414
418
418
414

212
210
209
207
205
204
202

0.0622099
0.0772506
0.0928553
0.102047
0.0886841
0.101854
0.0985513

Posicion confiable:
dcero = 1.55347
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si

105

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.6. Video de trfico, prueba 2


Prueba con el vdeo de coches en una va para el segundo coche,
especificando la posicin inicial:
Proyecto: Coches_con_posicion_inicial_2
Video: c:\PFC\coches.avi
Tamao = 720 x 576
Fotogramas = 28
Objeto: Movie frame no. 1
Centro = [ 465, 228 ]
Radio = 23
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 23
Posicion inicial especificada -> si
x=466, y=229
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> no
Radio variable -> no
Tiempo de calculo:

6 minutos 29.25 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

465
465
464
464
463
463
462
462
461
461
460
460
460
459
459
458
458
458
457
458
457

228
226
224
223
222
220
218
216
215
213
212
210
208
207
205
204
202
201
199
198
196

dmin
1.26679e-031
0.00666422
0.0171151
0.0181771
0.0171718
0.0159431
0.0154979
0.0180648
0.025794
0.023035
0.0267353
0.0303597
0.025723
0.0295593
0.0378323
0.0386289
0.0390489
0.044309
0.0398885
0.0418932
0.0454168

106

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
22
23
24
25
26
27
28

457
457
456
456
456
455
455

195
194
193
191
190
188
188

0.0407611
0.0432201
0.0454939
0.0430412
0.0530836
0.0550204
0.0457099

Posicion confiable:
dcero = 1.61185
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si

107

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.7. Video de trfico, prueba 3


Prueba con el vdeo de coches en una va para el primer coche, sin
especificar la posicin inicial:
Proyecto: Coches_sin_posicion_inicial
Video: c:\PFC\coches.avi
Tamao = 720 x 576
Fotogramas = 28
Objeto: Movie frame no. 1
Centro = [ 420, 250 ]
Radio = 25
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 25
Posicion inicial especificada -> no
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> no
Radio variable -> no
Tiempo de calculo:

26 minutos 30.948 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

420
420
421
420
419
419
418
419
419
419
420
418
418
418
418
416
420
418
418
418
416
417

250
248
246
244
242
240
238
236
234
232
230
229
226
225
223
222
220
219
217
215
213
212

dmin
1.53003e-031
0.00296411
0.00870912
0.00807683
0.0205116
0.0216639
0.0215698
0.0205504
0.0223157
0.0265931
0.040893
0.0605591
0.0463159
0.0496616
0.0601548
0.0569771
0.06102
0.0738973
0.0785066
0.0800082
0.0780053
0.0622099

108

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
23
24
25
26
27
28

419
418
414
418
418
414

210
209
207
205
204
202

0.0772506
0.0928553
0.102047
0.0886841
0.101854
0.0985513

Posicion confiable:
dcero = 1.55347
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si

109

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.8. Video de trfico, prueba 4


Prueba con el vdeo de coches en una va para el primer coche, especificando
la posicin inicial y usando radio variable:
Proyecto: Coches_con_radio_variable
Video: c:\PFC\coches.avi
Tamao = 720 x 576
Fotogramas = 28
Objeto: Movie frame no. 1
Centro = [ 420, 250 ]
Radio = 25
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 25
Posicion inicial especificada -> si
x=420, y=251
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> no
Radio variable -> si
1 25.00
2 25.00
3 25.00
4 25.00
5 25.00
6 25.00
7 25.00
8 25.00
9 24.31
10 24.31
11 23.61
12 23.61
13 22.92
14 22.22
15 22.92
16 25.00
17 25.00
18 23.61
19 22.92
20 22.92
21 22.92
22 22.92
23 22.92
24 20.83
25 19.44
26 20.14
27 19.44
28 19.44

110

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
Tiempo de calculo:

7 minutos 21.345 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

420
420
421
420
419
419
418
419
419
419
419
420
418
418
418
416
420
418
418
417
416
417
418
419
415
418
416
414

250
248
246
244
242
240
238
236
234
232
230
228
226
225
223
222
220
219
217
215
213
212
210
208
206
205
203
201

dmin
1.53003e-031
0.00296411
0.00870912
0.00807683
0.0205116
0.0216639
0.0215698
0.0205504
0.0192589
0.0364965
0.0172947
0.0439194
0.0234795
0.0322467
0.0632376
0.0569771
0.06102
0.0588717
0.0498945
0.0545915
0.0540716
0.0424731
0.0455587
0.0565428
0.051847
0.0416545
0.0382121
0.0673734

Posicion confiable:
dcero = 1.55347
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si

111

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.9. Video de trfico, prueba 5


Prueba con el mismo vdeo de coches, pero digitalizado sin compresin y
compensando por el entrelazado. Para el primer coche, especificando la
posicin inicial:
Proyecto: Coches2_con_posicion_inicial
Video: c:\PFC\Coches2.avi
Tamao = 720 x 576
Fotogramas = 28
Objeto: Movie frame no. 1
Centro = [ 420, 250 ]
Radio = 25
Tamao = 32 x 32
Metodo de interpolacion = nearest
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = nearest
Radio maximo del objeto = 25
Posicion inicial especificada -> si
x=419, y=251
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> no
Radio variable -> no
Tiempo de calculo:

6 minutos 58.352 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

420
420
420
419
419
419
419
419
418
419
418
418
418
418
418
416
418
418
417

250
248
246
244
242
240
238
236
234
232
230
229
227
225
223
221
220
219
217

dmin
1.43864e-031
0.00682935
0.00884323
0.00917912
0.0152779
0.0178657
0.0187988
0.0196352
0.0215433
0.0303127
0.0304038
0.0388993
0.039214
0.042547
0.047115
0.0528559
0.0474957
0.0532026
0.0501531

112

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
20
21
22
23
24
25
26
27
28

416
416
416
417
417
417
415
415
417

215
213
211
210
208
206
205
203
202

0.0624397
0.0620621
0.0721109
0.0688744
0.0689072
0.0807965
0.0784683
0.0831674
0.0856042

Posicion confiable:
dcero = 1.52753
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si

113

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________

C.10.

Video de trfico, prueba 6

Prueba con el mismo vdeo de coches, pero digitalizado sin compresin y


compensando por el entrelazado. Para el primer coche, especificando la
posicin inicial usando interpolacin bilineal:
Proyecto: Coches2_con_interpolacion_linear
Video: c:\PFC\Coches2.avi
Tamao = 720 x 576
Fotogramas = 28
Objeto: Movie frame no. 1
Centro = [ 420, 250 ]
Radio = 25
Tamao = 32 x 32
Metodo de interpolacion = linear
Determinacion de las posiciones:
K = 10
V = 10
Ignorar k = 0 -> no
Tamao = 32 x 32
Metodo de interpolacion = linear
Radio maximo del objeto = 25
Posicion inicial especificada -> si
x=421, y=251
Movimiento lento -> si
velocidad maxima = 5
Movimiento rapido -> no
Radio variable -> no
Tiempo de calculo:

6 minutos 48.257 segundos

Posiciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

420
420
419
419
418
418
418
419
418
419
418
419
418
417
417
416
417
417
417

250
248
246
244
242
240
238
236
234
232
230
228
227
225
223
221
220
219
217

dmin
4.76442e-032
0.00320878
0.00962361
0.00946262
0.0180781
0.0187868
0.0189941
0.020658
0.0203819
0.0243617
0.0286942
0.0377882
0.0401915
0.0413421
0.045174
0.0491888
0.0460469
0.0523431
0.0473538

114

Determinacin de la posicin de objetos en imgenes usando la AFMT


Proyecto Fin de Carrera
______________________________________________________________________________________________
20
21
22
23
24
25
26
27
28

416
416
415
417
417
415
415
416
417

215
213
211
210
208
207
205
203
202

0.060895
0.0572296
0.0675528
0.063721
0.067468
0.0772211
0.073373
0.0795433
0.0806659

Posicion confiable:
dcero = 1.52425
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si

115

Вам также может понравиться