Seguimiento de Objetos Rígidos Estéreo
Seguimiento de Objetos Rígidos Estéreo
CAMPUS MONTERREY
DIVISIÓN DE INGENIERÍA Y ARQUITECTURA
PROGRAMA DE GRADUADOS EN INGENIERÍA
TESIS
PRESENTADA COMO REQUISITO PARCIAL PARA OBTENER EL GRADO
ACADEMICO DE:
MAESTRA EN CIENCIAS
ESPECIALIDAD EN SISTEMAS DE MANUFACTURA
POR:
ii
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
CAMPUS MONTERREY
Los miembros del comité de tesis recomendamos que el presente proyecto de tesis presen-
tado por la Ing. Gloria Estela Chacón Barragán sea aceptado como requisito parcial
para obtener el grado académico de:
Comité de Tesis:
————————————————–
M.C. Federico Guedea Elizalde
Asesor de la tesis
————————————————– ————————————————–
Dr. Rubén Morales Menéndez M.C. Gerardo Arturo Vallejo Moreno
Sinodal Sinodal
Aprobado:
————————————————–
Dr. Federico Viramontes Brown
Director del Programa de Graduados en Ingenierı́a
Diciembre 2005
iii
Reconocimientos
Gracias a ti, mi hermosa hija, por todo tu amor, paciencia y comprensión, y por brindarme
siempre tu hermosa sonrisa.
Agradezco a mis padres todo su apoyo incondicional. Gracias por ser mis guı́as.
Agradezco a mi asesor, el M.C. Federico Guedea por compartir conmigo sus conocimientos
y por todo el tiempo invertido en la realización de esta tesis.
Gracias. . .
iv
Dedicatoria
A Martı́n mi esposo.
A mis padres.
v
Resumen
El presente trabajo muestra una extensión para algoritmos relacionados con visión
estéreo y el seguimiento de objetos rı́gidos en trayectorias no conocidas con anterioridad.
vi
Índice general
1. Introducción 1
1.1. Objetivo y limitantes de la investigación. . . . . . . . . . . . . . . . . . . . 4
2. Marco Teórico 6
2.1. Visión por Computadora . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Procesamiento de Imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1. Adquisición de la imagen . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2. Preprocesamiento de la imagen . . . . . . . . . . . . . . . . . . . . 9
2.2.3. Segmentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4. Representación y descripción. . . . . . . . . . . . . . . . . . . . . . 10
2.2.5. Reconocimiento e Interpretación. . . . . . . . . . . . . . . . . . . . 11
2.3. Estéreo Visión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1. Modelo Ideal Estéreo . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2. Matriz de Proyección. . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.3. La Visión Estéreo y sus problemas. . . . . . . . . . . . . . . . . . . 15
2.3.4. Algoritmos de correspondencia. . . . . . . . . . . . . . . . . . . . . 16
2.4. Procesamiento de imágenes en tiempo real. . . . . . . . . . . . . . . . . . . 17
2.4.1. Caracterı́sticas de los sistemas en tiempo real. . . . . . . . . . . . . 19
2.4.2. Los sistemas de tiempo real y sus requerimientos. . . . . . . . . . . 20
vii
3.2.5. Seguimiento de centroide mediante el método de interlinea . . . . . 26
3.2.6. Seguimiento en base al Filtro de Kalman. . . . . . . . . . . . . . . . 28
3.2.7. Filtro de Kalman Extendido . . . . . . . . . . . . . . . . . . . . . . 32
3.2.8. Seguimiento en base a Filtrado de Partı́culas. . . . . . . . . . . . . 33
5. Experimentación y Resultados. 45
5.1. Experimentación y Resultados. . . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.1. Secuencias utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6. Conclusiones 57
viii
Índice de figuras
ix
5.11. Seguimiento y predicción mediante EFK. . . . . . . . . . . . . . . . . . . . 54
5.12. Seguimiento y predicción mediante algoritmo desarrollado. . . . . . . . . . 54
5.13. Secuencia de seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.14. Secuencia de seguimiento(continuación) . . . . . . . . . . . . . . . . . . . . 56
x
Capı́tulo 1
Introducción
Por otro lado, los continuos avances en robótica e inteligencia artificial aún están lejos
de permitirnos la automatización de muchas tareas, en las cuales la experiencia humana es
aún la fortaleza de los operadores.
Para cambiar este escenario y movernos hacia una verdadera industria automatizada,
es necesario incrementar la flexibilidad y confiabilidad de los sistemas de producción. Es
imposible lograr esto sin dotar a los sistemas de producción con capacidades de sensado
avanzado, las cuales les permitan detectar eventos inesperados o asegurar la calidad de los
productos que se están produciendo.
Entre los sistemas de sensado, los sistemas de percepción visual proveen la mayor can-
tidad de información en el menor tiempo. De ahı́ que los sistemas de visión son candidatos
perfectos para adquirir la mayorı́a de la información necesaria sobre el ambiente de trabajo
1
2
donde las actividades industriales son llevadas a cabo, ası́ como el estado de los productos
que están siendo manufacturados. Además es de suma importancia acoplar la información
obtenida por estos sistemas de percepción a los nuevos retos de robótica y automatización.
Los sistemas de percepción visual o sistemas de visión pueden ser monocular o estéreo.
En el caso de sistemas monoculares se han desarrollado varias aplicaciones [4], donde ca-
racterı́sticas especı́ficas tales como ejes, esquinas y agujeros fueron usadas para estimar la
posición relativa y orientación de un objeto con respecto a la cámara. En todos los casos la
distancia de la profundidad entre el objeto y la cámara fue predefinida y fija. Esto reduce
el problema a un ambiente en dos dimensiones.
La visión estéreo tiene la capacidad sobre los sistemas de visión monocular de obtener
la profundidad o distancia a la cual se encuentran los objetos desde un punto de referencia
visual.
Tradicionalmente los algoritmos de visión estéreo han sido desarrollados para encontrar
la profundidad de una imagen usando extracción de caracterı́sticas (puntos o esquinas) [5]
o una lı́nea base [6]. La extracción de caracterı́sticas esta basada en operadores diferen-
ciales, como el operador de Canny o el operador de Sobel, y la extracción de esquinas se
basa normalmente en el operador de SUSAN [7]; estos operadores representan una buena
elección, sin embargo son computacionalmente caros y su desempeño en tiempo real puede
ser muy limitado.
Otros de los grandes problemas a los que ha tenido que enfrentarse la visión artificial
es el rastreo de objetos en ambientes densos; además de que el seguimiento de objetos para
aplicaciones con robots requiere de algoritmos de visión computacional que respondan a
requerimientos en tiempo real [8].
Los filtros de partı́culas permiten resolver los problemas asociados a los filtros de
Kalman, no asumen linealidad ni Gausianidad en los procesos, y su cálculo es computa-
cionalmente eficiente. La idea básica es representar las distribuciones de probabilidad,
asociadas a los parámetros a estimar, mediante partı́culas no uniformemente distribuidas.
En otras palabras, las distribuciones de probabilidad se discretizan en forma no uniforme
y el comportamiento de cada partı́cula se modifica a través del tiempo en forma adaptiva,
utilizando el modelo de movimiento y el modelo observacional.
Hoy en dı́a una cámara de visión estéreo y un sofware adecuado para el rastreo de
objetos o personas, funcionando en tiempo real, puede ser muy útil en la industria, en el
transporte y en otros campos, cuando existen peligros latentes, como el que un objeto se
mueva cerca de otro. Por ejemplo la mano de un trabajador de una fábrica puede moverse
muy cerca de una prensa o un peatón puede caminar detrás de un carro moviéndose en
reversa, en estas situaciones la cámara puede detectar rápidamente tales eventos y mandar
una señal de alerta.
Las bolsas de aire de los automóviles podrı́an ser más inteligentes si tuvieran la capaci-
dad de medir el tamaño y posición de los pasajeros. Una cámara estéreo podrı́a proporcionar
exactamente dicha información y de esta forma la bolsa de aire podrı́a desplegar una pre-
sión mesurada de acuerdo a las caracterı́sticas del pasajero, reduciendo lesiones en gente
pequeña.
directamente al carro. En este ejemplo el sistema de rastreo visual actúa como un filtro
visual inteligente, dando solo condiciones anormales de conducta al personal de monitoreo.
La heurı́stica de rastreo desarrollada por [1] es eficiente cuando los movimientos del
objeto a seguir son lentos y no existen movimientos bruscos, sin importar la trayectoria del
objeto (lineal o curva). Sin embargo, la heurı́stica presenta problemas de rastreo cuando
el objeto se mueve rápidamente o existen problemas de oclusión; en dichas situaciones la
herurı́stica pierde el centro del objeto y por ende el rastreo del mismo.
Es por eso la necesidad de desarrollar un método con el cual se pueda rastrear un obje-
to en trayectorias curvas y movimientos rápidos. El método propuesto es validado en una
secuencia de imágenes obtenidas en tiempo real mediante una cámara estéreo.
Las limitaciones en el presente trabajo de tesis son: (1) El algoritmo propuesto debe de
ser desarrollado para ser utilizado en una computadora de propósito general, y el equipo
de visión estéreo utilizado no sea un sistema de sensado de capacidad industrial. (2) Los
problemas de oclusión no son tratados en este trabajo de investigación.
Marco Teórico
La visión por computadora tiene como objetivo duplicar el efecto de la visión humana
percibiendo y entendiendo una imagen por medios electrónicos. Utiliza los resultados y
métodos de las matemáticas, reconocimiento de patrones, inteligencia artificial, ciencias
de la computación, electrónica, neurofisiologı́a, sicologı́a y otras disciplinas cientı́ficas para
conseguir su objetivo.
El procesamiento de bajo nivel recibe y genera como salida datos en matrices que re-
presentan el brillo o color en una posición de la imagen. El procesamiento de alto nivel
está basado en el conocimiento y es común utilizar métodos de Inteligencia Artificial.
La visión por computadora de alto nivel trata de imitar la cognición humana y la toma
de decisiones basada en información contenida en la imagen. La visión de alto nivel comien-
6
Marco Teórico 7
za con un modelo formal del mundo, después, la realidad percibida en forma de imágenes
digitalizadas es comparada con ese modelo. Al hallar diferencias se hacen comparaciones
parciales y se utilizan los métodos de bajo nivel para extraer información. Este proceso es
repetido de forma iterativa y el entendimiento de la imagen es el resultado de la interacción
entre los procesos de alto nivel y de bajo nivel.
Visión por computadora es definida, como se mencionó arriba, como el proceso de ex-
tracción de información del mundo real, obtenida de una imagen por medio del uso de la
computadora, mientras que el procesamiento de imagen puede ser definido como un pro-
ceso que transforma una imagen degradada en una imagen de mucho mejor calidad, con el
fin de facilitar su posterior interpretación.
Las tres tareas principales que actualmente se estudian en visión por computadora son:
3. Reconocimiento de objetos.
Esta última tarea puede ser considerada como la más importante y es usada para com-
plementar las dos primeras. El reconocimiento de objetos es un subcampo de la visión
computacional cuya meta es el reconocer objetos de una imagen, y frecuentemente, esti-
mar la posición y orientación del objeto reconocido en un mundo 3D.
8
Las imágenes a ser analizadas pueden ser imágenes en dos dimensiones (2D), en es-
calas de grises, imágenes a color o imágenes en tres dimensiones (3D). Las aplicaciones son
muchas y varı́an desde máquinas de visión industrial hasta el análisis de imágenes médicas.
Representación
Segmentación
y descripción.
Preprocesado Resultado
2.2.3. Segmentación
El tercer paso del procesamiento digital de imágenes es la segmentación que subdivide a
una imagen en sus partes u objetos constituyentes. El nivel al que se lleva esta subdivisión
depende del problema que se este resolviendo, esto es, la segmentación debe detenerse
cuando los objetos de interés para una aplicación han sido aislados [11]. En general, la
segmentación automática es una de las tareas más difı́ciles en el procesamiento de imágenes.
10
Este paso del proceso determina el eventual éxito o fracaso del análisis de la imagen. Los
algoritmos de segmentación de imágenes tienen tres formas comunes:
técnicas de umbral.
Las técnicas de umbral segmentan la imagen pixel por pixel, es decir, no toman en
consideración el valor de los pı́xeles vecinos para el proceso. Si el valor de un pixel esta
dentro del rango de valores especificado para un objeto el pixel es segmentado. Son efecti-
vas cuando los objetos y el fondo de la imagen tienen rangos de valores diferentes y existe
un contraste marcado entre ellos. Como la información de los pixeles vecinos es ignorada,
las fronteras de regiones borrosas pueden ocasionar problemas.
ser tan simple como detallar las regiones de una imagen donde se sabe que se ubica informa-
ción de interés, limitando ası́ la búsqueda que ha de realizarse para hallar tal información.
La base de conocimientos mantiene todo el conocimiento que se tiene acerca del pro-
blema tratado. Este conocimiento puede ser simple, teniendo solo las regiones de la ima-
gen donde la información de interés se conoce que está localizada, con lo que se limita la
búsqueda que conduce a esa información. La base de conocimiento también puede ser muy
compleja, como una lista interrelacionada de todos los posibles defectos en un problema
de inspección de materiales. La base de conocimiento guı́a la operación de cada modulo de
procesamiento y guı́a la interacción y comunicación entre cada uno de ellos, esta comuni-
cación entre módulos de procesamiento se basa generalmente en el conocimiento previo de
cómo debe ser el resultado [11].
Imagen Imágenes
Izquierda Disparidad en
Ideales la Imagen
Rectificación Correlación Estéreo.
Imagen
Derecha
Imágenes estéreo
de entrada
La figura (2.3) muestra la relación de dos cámaras estéreo ideales. El sistema de coor-
denadas globales es centrado sobre el punto focal de la cámara izquierda. De esta manera
Marco Teórico 13
u
u’
v CxCy s
v’ s’
CxCy
f
X f
Y Tx
el sistema esta basado en la regla de la mano derecha, con Z positive hacia el frente de
la camara, y X positiva hacia la derecha. Las imágenes se alinean, con el v=v ’ para los
coordenadas de cualquier punto de la escena proyectado en las imágenes. La distancia entre
los puntos focales se alinea con el eje de X.
Ambas imágenes son encajadas en un plano común, perpendicular a los rayos princi-
pales. También, los ejes horizontales de la imagen se alinean, de modo que la primera lı́nea
de la imagen izquierda sea igual que la primera lı́nea de la imagen derecha. El rayo prin-
cipal de cada cámara perfora la imagen en las coordenadas (Cx, Cy). Estas coordenadas
no son tı́picamente el centro de la imagen, aunque están cercanas. Estas son normalmente
las mismas coordenadas en ambas imágenes, pero en casos excepcionales para imágenes
orientadas, el valor de Cx puede diferir. Las longitudes focales de ambas imágenes son las
mismas. Cualquier punto tridimensional (S) proyecta a un punto en las imágenes a lo largo
de un rayo a través del punto focal.
Hay que observar que los puntos s y s’ tienen siempre la misma coordenada de v en
las dos imágenes. La diferencia en sus coordenadas de u es la disparidad del punto 3D,
14
que se relaciona con su distancia del punto focal, y de la lı́nea de fondo TX que separa los
puntos focales. Un punto 3D se puede proyectar en la imagen izquierda o derecha por una
multiplicación de la matriz, usando la matriz de la proyección.
Un punto en 3D (XY Z)T es representado por los coordenadas homogéneos (XY Z1)T
y la proyección se realiza usando el múltiplo de la matriz.
X
U
Y
V = P ∗
Z
W
1
donde (u/w, v/w) son las coordenadas de la imagen ideal. Nótese que esta ecuación se
mantiene solo para imágenes ideales, en las cuales las coordenadas (u,v) son de la imagen
rectificada. Las matrices de proyección contienen toda la geometrı́a esencial del par estéreo
ideal. En particular, ellas tienen el centro de proyección del rayo principal, la longitud focal
y la lı́nea base entre las cámaras. El largo focal y los centros de las imágenes son expresadas
en pı́xeles y la lı́nea base en milı́metros. La lı́nea base es parte del elemento (1,4) de la
matriz de proyección de la imagen derecha. Este elemento es 0 para la imagen izquierda.
Fx 0 Cx −Fx Tx
0 Fy Cy 0
0 0 1 0
Las disparidades de todos los puntos que constituyen la imagen se denomina mapa
de disparidad, que puede ser visualizado como una imagen. Si se conoce la geometrı́a del
sistema estéreo, el mapa de disparidad puede convertirse en un mapa 3-D de la escena
visualizada (la reconstrucción). Para resolver este problema es imprescindible contar con
una calibración precisa de las cámaras utilizadas.
diente.
La gran ventaja de los algoritmos basados en área es, que en la actualidad existen a
precios razonables dispositivos orientados al procesamiento de imagenes, capaces de llevar
a cabo convoluciones y correlaciones en tiempo real, con desempeños muy superiores a los
procesadores de propósito general [14].
Marco Teórico 17
Técnicas de
Basadas Correspondencia Basadas en
en Área Características
Basadas en
Fase
Híbrida Relajación
Combinación de
medidas
independientes.
La figura 2.4 provee una taxonomı́a de las técnicas actualmente utilizadas y descritas
en la literatura para enfrentar el problema de correspondencia.
“ Un sistema de tiempo real es aquel en el que para que las operaciones computacionales
estén correctas no depende solo de que la lógica e implementación de los programas com-
putacionales sea correcto, sino también en el tiempo en el que dicha operación entregó su
resultado. Si las restricciones de tiempo no son respetadas el sistema se dice que ha fallado.”
Por lo tanto, es esencial que las restricciones de tiempo en los sistemas sean cumplidas.
El garantizar el comportamiento en el tiempo requerido necesita que el sistema sea pre-
decible. Es también deseable que el sistema obtenga un alto grado de utilización a la vez
que cumple con los requerimientos de tiempo.
Un buen ejemplo es el de un robot que necesita tomar una pieza de una banda sinfı́n;
si el robot llega tarde, la pieza ya no estará donde debı́a recogerla. Por lo tanto el trabajo
se llevó acabo incorrectamente, aunque el robot haya llegado al lugar adecuado. Si el robot
llega antes de que la pieza llegue, la pieza aun no estará ahı́ y el robot puede bloquear su
paso. En algunas ocasiones podemos ver referencias sobre sistemas de tiempo real cuando
solo se quiere decir que el sistema es rápido.
Cabe mencionar que “tiempo real”no es sinónimo de rapidez; esto significa que no es
la latencia de la respuesta lo que nos enfoca en un sistema de tiempo real (esta latencia
a veces esta en el orden de los segundos), el enfoque en tiempo real de la latencia es el
asegurarse de que la latencia del sistema es la suficiente para resolver el problema al cual
el sistema está dedicado.
Si el tener una falla en el tiempo de latencia de un proceso del sistema lleva como
consecuencia un error en el sistema entonces esos procesos se consideran de tiempo real
duro. Si el tener una falla en un proceso del sistema no conlleva una falla en el sistema
siempre y cuando esta falla este dentro de ciertos lı́mites establecidos ( es posible fallar en
la latencia una de cada 1000 veces o una de cada 100, o fallar siempre y cuando el error no
exceda el 3 % de la latencia) entonces esos procesos se llaman procesos de tiempo real suave.
3. Usuarios controladores. En estos sistemas, el usuario (i.e los procesos que corren
en el sistema) tiene un control mucho más amplio del sistema.
Esto aunque parece anárquico no lo es, debido a que los sistemas de tiempo real usan
tipos de procesos que ya incluyen estas caracterı́sticas, y usualmente estos tipos de
procesos son mencionados como requerimientos.
20
Hay tres principales formas de lidiar con estas restricciones: (1) usando hardware de
alto desempeño para lidiar con los datos de entrada, (2) reducir por algún método de fil-
trado la cantidad de datos de entrada a procesar y (3) optimizar los procedimientos de
procesamiento de imágenes.
Durante los últimos años, muchas soluciones han sido desarrolladas basadas en hardware
de alto rendimiento. Al comienzo este hardware era de propósito especial lo que lo hacia
muy caro, sin embargo en la actualidad este hardware a comenzado a ser menos especı́fico
y por ende menos caro. Actualmente los sistemas de visión han basado sus diseños en
hardware tal como redes de procesadores de señal digital (DSPs) utilizando comúnmente
bus VME para interconectar el sistema [15].
Capı́tulo 3
Existen muy diversas áreas y tareas dentro del campo de la industria y la ciencia
en donde el seguimiento de un objeto que se encuentra capturado en una secuencia de
imágenes es un problema crucial a resolver, ejemplo de este tipo de sistema son los sis-
temas de búsqueda y vigilancia, sistemas guı́as para robots, navegación autonóma, análisis
sanguı́neo, etc. Esta tarea se lleva a cabo una vez que el sistema de visión identifica el
objeto, y es de suma importancia que se lleve a cabo en tiempo real.
22
Métodos de Rastreo. 23
Ambas cantidades pueden ser encontradas con ayuda de operadores locales, los cuales
permiten calcular las derivadas espaciales y temporales. El problema que introduce el uso
de operadores, es que los mismos solamente analizan un pequeño sector de la imagen.
Para resolver estos problemas u otros que podrı́a presentar la estimación de movimientos,
se desarrollan diferentes técnicas y métodos que se basan principalmente en gradiente y
correlación. Aunque estos dos campos son muy usados; también existen otras técnicas
basadas en redes neuronales artificiales y en la obtención de fases utilizando filtros.
Para que el seguimiento de objetos en base a centroide sea aceptable deben realizarse por
lo general otro tipo de procedimientos previos, como los de umbralización, segmentación y
reconocimiento.
Una de las principales ventajas del método de interlı́nea es el cálculo del centro de masa
del objeto seleccionado. Este cálculo es realizado en ambas imágenes, imagen izquierda y
derecha de tal forma que hay dos puntos (Xl,Yl) y (Xr,Yr), los cuales representan la mis-
ma información. Asumiendo que ambos puntos están en la misma lı́nea epipolar (Yl=Yr)la
disparidad entre los puntos es dada por d = abs(Xr − Xl). Con esta información se obtiene
la profundidad (Z) en relación a la disparidad obtenida de acuerdo a la siguiente fórmula:
fβ
Z(d) = (3.2)
dk
donde f es la distancia focal de la cámara y k es el factor de conversión en unidades por
pixel.
El método de interlı́nea esta basado en el Teorema de Green, el cual menciona que una
doble integración sobre una región (área), puede ser calculada utilizando una integración
lineal sobre el contorno de la región [16]. Este método es muy rápido para calcular los
momentos de Hu para un objeto especı́fico dentro de una imagen binaria. Con el fin de
reducir el tiempo de procesamiento, la imagen es convertida a una imagen binaria, después
Métodos de Rastreo. 27
se obtiene el valor promedio de los pı́xeles que rodean al punto seleccionado por el usuario
o por una etapa previa de reconocimiento. Como referencia vamos a decir que Ca es el
valor de este punto y el rango de busqueda oscila entre los siguientes valores:
Dirección de
búsqueda
t1 t1
t2
t3
Centro de masa t4
en t4 t5 t2
Sin embargo este algoritmo presenta dos problemas fundamentales: (1) En movimientos
rápidos y bruscos el rastreo del objeto se pierde, y (2) presenta problemas de oclusión, es
decir, el rastreo del objeto se pierde una vez que el objeto sale del campo de visión de la
cámara o el objeto a seguir se oculta en otro objeto de la imagen.
Donde:
El procesamiento del filtro de Kalman tiene como objetivo la estimación del vector de
estado x(tk ) en el tiempo t = tk , basada en la medición de y(t) para los diferentes tiempos
a medir. Con cada nuevo valor se estima la nueva información de un valor futuro. Dentro
de este proceso se tiene un conjunto de ecuaciones para realizar los cálculos necesarios:
zk = yk − Hk x̃k Innovación.
x̂k = x̃k − Kk zk Estimación.
x̃k+1 = φk x̂k Predicción.
Kk = P̃k Hk [Hk P̃k HkT + Rk ]−1 Ganancia de Kalman.
P̂ = [1 − Kk Hk ]P̃ Estimación de la covarianza.
˜ = φP̂k φT + Qk
Pk+1 Predicción de la covarianza.
k
Donde:
x1 (t + T ) 1 0 t 0 x1 (t) w1 (t)
x2 (t + T ) 0 1 0 t x2 (t) w2 (t)
= +
ẋ1 (t + T ) 0 0 1 0 ẋ1 (t) ẇ1 (t)
ẋ2 (t + T ) 0 0 0 1 ẋ2 (t) ẇ2 (t)
Para la medición del sistema de la posición se tiene como vector de la medición del
objeto a:
Para este estudio en particular, nosotros obtuvimos el error del sistema mediante el
procedimiento siguiente: Se grabo durante 10 segundos una secuencia de imágenes, en las
cuales los objetos permanecian estáticos. Se obtuvieron 50 imágenes, cada una de 320 ∗ 240
pı́xeles, dichas imágenes se procesaron en matlab en una matriz de 320∗240∗50 obteniendo
el error entre imágenes, la media y la desviación estándar. El error entre imágenes es la
diferencia de cada pı́xel entre la imagen 1 y la imagen 2, la imagen 2 y la 3, y ası́ sucesi-
vamente hasta la imagen 50.
Media del error. Cada uno de los errores obtenidos en cada pı́xel, entre el número de
imágenes (50 para este caso). La media obtenida fue una media que tendı́a a cero, deducien-
do ası́ que existe ruido [Link] valor de desviación estándar del error obtuvimos 1.5
y una varianza de 2.5.
Pk = (I − Kk Hk )P̄k (3.10)
La porción de Kk que está asociada con elementos obtenidos de la imagen (centro del
objeto) se resta de la matriz identidad I , y a continuación se multiplica por la covarianza
del error estimado. Ası́ se obtiene una actualización de la covarianza del error de x̂k , que
refleja la incerteza del sistema sobre el vector de estado actual. Esto implica que cuando
Kk se decrementa, el error estimado que utilizamos para actualizar Pk aumenta propor-
cionalmente.
Las ecuaciones (3.8,3.10) realizan el proceso de actualización del filtro, utilizando la me-
dida actual para refinar la estimación y recalcular la covarianza del error de esta estimación.
Métodos de Rastreo. 33
Las ecuaciones (3.13-3.16) definen el modelo del sistema utilizando un modelo de ve-
locidad constante para cada iteración del filtro.
Por otra parte una observación llega la cual limita el estado de la variable de interés en
el tiempo. Este método utiliza copias múltiples de la variable de interés, cada una asociada
con un peso, el cual significa la calidad de la partı́cula especificada.
El filtrado de partı́culas puede ser una seria alternativa para aplicaciones de tiempo
real, ya que es eficiente a la hora de hacer predicciones, sin embargo cuando la cantidad
de partı́culas utilizadas es muy grande, el costo computacional se eleva, es por esto que es
recomendable usarlos solo en problemas donde los métodos basados en filtros de Kalman
no produzcan resultados satisfactorios [19].
Capı́tulo 4
“A partir de una secuencia de pares de imágenes estéreo, dentro de las cuales aparece
un objeto en movimiento, el sistema debe ser capaz de detectarlo y rastrearlo en ambas
imágenes, sin importar la trayectoria que realice.”
El sistema de visión por computadora tiene que trabajar con los objetos en movimiento
o cambios de iluminación, esto como resultado de estar inmerso en un ambiente que cambia
continuamente. Todo lo que nos rodea y esta a la vista, forma la escena dinámica.
35
36
Dado que el problema de correspondencia en las imágenes estéreo queda resuelto al uti-
lizar el método de interlinea, el reto radica en conseguir una mayor eficiencia en el rastreo
de objetos en imágenes estéreo.
Como una de los objetivos de esta tesis es el uso de una computadora de propósito
general, las variables a optimizar son el algoritmo de rastreo, ası́ como el área en la imagen
que rodea al objeto.
Tiempo t
Tiempo t-1
Centro Asignan 9 No
Puntos dentro del
del objeto puntos al
objeto
objeto Se
desechan
Si los puntos
Función
borde.
1. El objeto en el tiempo t-1. Consideramos el objeto en el tiempo t−1 como la base para
obtener la predicción de la posición en el tiempo t. Una vez que el objeto a rastrear es
encontrado, se obtiene su borde, centro de masa, perı́metro, radio máximo (Rmax.)
y el radio mı́nimo (Rmin.). Estos radios se obtienen mediante la ecuación 4.1.
q
Radios = (Xp − Xc )2 + (Yp − Yc )2 (4.1)
Rmax + Rmin
Rprom = (4.2)
2
donde Xp es el punto del perı́metro y Xc es el punto del centro. Del radio máximo
y radio mı́nimo obtenos un radio promedio (ecuación 4.2), el cual vamos a utilizar
como radio para distribuir los 8 puntos alrededor del objeto, y el noveno punto en el
centro (figura 4.2).
2
Rmax
Centro
de masa 1 3
Rprom
Rmin
4 5
9
8
6
7
en verficar que el color de los pixeles donde se encuentra el punto sea el mismo al
color del objeto a rastrear, y si el color es el mismo, el punto se guarda y se realiza
la función borde para cada uno de los puntos que cumplieron, pero si el color no es
el mismo, el punto no es considerado como parte del objeto y es desechado (fig. 4.3).
6 8
7
La fig. 4.4 nos muestra como se mantiene el seguimiento de un objeto cuando este se mueve
en el eje Z, en donde la distancia inicial de la cámara al objeto es de aproximadamente 2
metros (profundidad) y la distancia final es de 0.45 metros, además de que el rastreo se
conserva aún y cuando el objeto es girado sobre su centro.
Método Propuesto. 39
2. Una vez que tenemos las imágenes, el usuario selecciona el objeto que desea rastrear.
Seleccionado el objeto, el sistema entra en un proceso de aprendizaje. El proceso
de aprendizaje es usado para enseñar al sistema que caracterı́sticas del objeto debe
Método Propuesto. 41
aprender. En este proceso el sistema captura la imagen del objeto, su área, perı́metro
y momentos de Hu. Mediante el uso de un cuadro de diálogo, el usuario asigna un
nombre al objeto y con este nombre se almacena la información en una base de datos
del sistema.
Para que el proceso de aprendizaje sea útil para procesos posteriores como el rastreo
o manipulación de objetos, se deben cumplir los siguientes requisitos:
3. Una vez que el sistema ha aprendido los objetos seleccionados por el usuario, se puede
llevar a cabo distintas acciones, como lo son: (1) desplegar la información obtenida del
objeto (botón Despliega en la interfaz), (2) encontrar un objeto (botón Encuentra)
y (3) rastrear un objeto (botón Rastrea).
42
Objetos Seleccionados
por el Usuario.
Sistema en modo de
aprendizaje.
4. Al oprimir el botón Rastrea, en la interface, nos aparece un cuadro de diálogo con una
lista de los nombres de los objetos que el sistema ha aprendido, el usuario selecciona
un nombre de objeto y en seguida se realizan los siguientes pasos:
4.2. La imagen obtenida del objeto, ası́ como las imágenes capturadas por la cámara
estéreo son transformadas a imágenes en escala de grises, esta conversión se realiza
cuando las imágenes capturadas son a color, si las imágenes son capturadas en blanco
y negro esto no se realiza.
4.3. Para encontrar el objeto seleccionado dentro de las imágenes, primero se ob-
tiene el valor promedio de los pixeles de la imagen del objeto, después se escanean
las imágenes por medio de cuadros del tamaño del la imagen del objeto y se van
obteniendo los valores promedios de los pixeles de cada recuadro. Se obtiene un error
entre imágenes y si este es menor a un mı́nimo error establecido previamente, se dice
que se encontró el objeto y se pinta una cruz en medio del objeto encontrado. La
figura 4.9 muestra como en ambas imágenes, el objeto es encontrado.
Rastrear Objeto
Obtención de la información
almacenada del objeto.
SearchTemplate. Encuentra en 1 o
ambas imágenes.
Experimentación y Resultados.
Con el fin de probar la eficiencia del algoritmo desarrollado, comparamos tres métodos
ya existentes contra el método propuesto en el presente trabajo de tesis. Los métodos exis-
tentes utilizados son: seguimiento de centroide utilizando el método de interlinea, desarro-
llado por [1], un método de seguimiento basado en el filtro de Kalman para trayectorias
lineales, el filtro de Kalman extendido (para trayectorias curvas).
45
46
Velocidad Rápida. La velocidad rápida se rige por lo siguiente: (1) El traslape del objeto
de la imagen en el tiempo t (imagen actual) sobre el objeto en la imagen en el tiempo
t − 1 (imagen anterior) puede ser menor a el 10 % porciento del radio del objeto y
(2) la distancia avanzada entre el objeto en la imagen en el tiempo t y la imagen en
el tiempo t − 1, no debe de ser mayor a el doble del radio del objeto.
En la segunda secuencia de imágenes (fig. 5.2) el objeto rı́gido se mueve de atrás hacia
adelante (eje Z) en forma diagonal, avanzando en una serie de brincos o levantamientos
(eje XY).
En la tercera secuencia (fig. 5.3) el objeto rı́gido se mueve de atrás hacia adelante (eje
Z) en diagonal, formando una parabola en un plano XYZ.
Experimentación y Resultados. 47
Inicio
Profundidad
Fin
Inicio
Profundidad Fin
Inicio
y
Fin
z
Cámara
En cada una de las imágenes de las secuencias, se obtuvo el centro (punto X,Y) del
objeto rı́gido teniendo como base el algoritmo de seguimiento en base a centro de masa,
este punto X, Y fue considerado el centro real del objeto en cada imagen, y es el que se
utilizó como referencia para estimar el error en los movimientos en el filtro de Kalman,
EFK, y en el método propuesto.
Se agregaron funciones al programa para probar los algoritmos imagen por imagen en
cada una de las secuencias, de esta forma observamos detenidamente cual es el compor-
tamiento de los algoritmos en el rastreo del objeto.
Para la primera trayectoria (trayectoria lineal) los métodos a comparar fueron la heurı́sti-
ca de seguimiento en base a centroide utilizando el método de interlinea, seguimiento y
predicción mediante el filtro de Kalman y el método desarrollado en el presente trabajo.
La gráfica 5.4 muestra una comparación entre la posición real del centro del objeto
(puntos reales) y la posición del objeto obtenida mediante el filtro de Kalman (KF).
Experimentación y Resultados. 49
Secuencia Atras-Adelante
144
143
Puntos reales
142
KF
141
140
Coordenadas Y
139
138
137
136
135
134
133
0 50 100 150 200 250 300
Coordenadas X
Secuencia lineal.
144
143
142
141
140
139
y
centroide
138
137
136
135
134
133
0 50 100 150 200 250 300
pixeles en x
Secuencia lineal.
144
143
142
141
140
139
y
seg. puntos
138
137
136
135
134
133
0 100 200 300
pixeles en x
Como es sabido el filtro de Kalman presenta una muy buena predicción de puntos en
trayectorias lineales, sin embargo a la hora de obtener estas predicciones se requiere un
mayor desarrollo computacional que en la heurı́stica desarrollada por [1], cuyo algoritmo
es fácil de implementar y trabaja con la misma eficiencia que el filtro de Kalman.
Comparación de métodos.
90
80
70 EFK
60
Centro en Y
40
30
20
10
0
55 65 75 85 95
Centro en X
160
140
120
100
Centro Y
80
Centros
60
40
20
0
55 65 75 85 95 105 115 125 135 145 155
Centro X
para hacer una correcta predicción de la posición del objeto en la imagen siguiente.
La gráfica 5.8 muestra como el algoritmo propuesto nos provee una excelente predicción
de la posición del objeto y por lo tanto obtenemos un rastreo eficiente del objeto hasta el
término de la secuencia.
Secuencia parabola
Centros X
0 50 100 150 200 250 300
0
20
40 Centros
Centros Y
60 Reales
80
100
120
140
Centros en X
40 50 60 70 80 90 100 110
0
20
40
Centros en Y
60
Centros
80
100
120
140
40 60 80 100 120
0
20
40
Centros en Y
60
80 Centros
100 EFK
120
140
Centros en X
60
Centros
80
100
120
140
En cada una de las secuencias se estimó el tiempo en ejecutarse los algoritmos utiliza-
dos, obteniendo para cada uno de ellos un promedio de 1.6 milisegundos, cabe señalar que
Experimentación y Resultados. 55
para poder obtener este tiempo el procedimiento tuvo que realizarse 100 veces para cada
imagen y luego ser dividido nuevamente entre 100, esto debido a que si se tomaba el tiempo
directamente en una sola corrida, el tick del sistema operativo (llamadas a interrupción),
que es de 10 milisegundos no nos permitı́a obtener el tiempo exacto de ejecución.
La secuencia de imágenes en las gráficas (5.13 y 5.14) muestran como hasta el momento
el algoritmo desarrollado funciona. Los puntos blancos dentro de la figura (triángulo) son los
puntos que se conservan después de cada ciclo y los cuales nos ayudan a la predicción de la
posición del objeto en la siguiente imagen. Para una mayor comprensión de la secuencia solo
se presentan las imágenes obtenidas con el lado izquierdo de la cámara, pero el seguimiento
siempre se hace en ambas imágenes (izquierda y derecha).
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
Conclusiones
Con base en los resultados de los experimentos realizados, se concluye que el método
de seguimiento propuesto en el presente trabajo de tesis se desempeña satisfactoriamente
bajo las condiciones previamente establecidas. Dicho desempeño se disminuye al modificar
algunas condiciones como iluminación, presencia de otros objetos en movimiento, o por
oclusiones. Los problemas de oclusión pueden ser originados por que el objeto este fuera
del área de visualización o este oculta por algún objeto diferente.
Como trabajo futuro se propone desarrollar métodos que realizen el rastreo de objetos
57
58
que presenten problemas de oclusión, es decir que no se necesite el borde completo del
objeto, sino con solo una parte de él, éste pueda ser reconocido y rastreado por el sistema.
Bibliografı́a
[1] Guedea Federico, Soto Rogelio, Song Insop, and Karray Fakhri, “Real time feature
extraction from artificial marks using interline method,” International Symposium on
intelligent Control, 2003.
[2] Greg Welch and Gary Bishop, “An introduction to the kalman filter,” 2004.
[3] Garcı́a R., Batlle J., Magı́ L., and Pacheco L., “Seguimiento de múltiples objetos: Un
enfoque predictivo,” .
[4] Feddema J. T., George Lee C., and Mitchell R., “Weighted selection of image fea-
tures for resolved rate visual feedback control,” IEEE Transactions on Robotic and
Automation, 1991.
[5] Fiala Mark and Basu Anup, “Feature extraction and calibration for stereo recon-
struction using non-svp optics in a panoramic stereo vision sensor,” IEEE Computer
Society, 2002.
[6] Luo A., Taylor W., and Burkhardt J., “A new multilevel linebased stereo vision
algorithm based on fuzzy techniques,” IEEE International Conference Pattern Recog-
nition, 1996.
[7] Smith Stephen M. and Brady J. Michael, “Susan: A new approach for low-level image
processing,” International journal on Computer Vision, 1997.
[8] Blake A. and Isard M., The Condensation Algorithm: conditional density propagation
and applications to visual tracking, PWC Publishing, 1998.
[9] Okuma Kenji, Taleghani Ali, De Freitas Nando, Little James J., and Lowe David G.,
“A boosted particle filter: Multitarget detection and tracking,” .
[10] Sonka Hlavac and Boyle, Image Processing, Analysis and Machine Vision, PWC
Publishings, 1999.
59
60
[11] Gonzalez Rafael and Woods Richard E., Tratamiento digital de imágenes, Addison-
Wesley/Diaz de Santos, 1993.
[12] Satorre Rossana, Compañ Patricia, Botia Antonio, and Rizo Ramon, “Estimación
de disparidad en visión estereoscópica mediante la integración de diversas técnicas
combinadas con multiresolución,” Tech. Rep., Universidad de Alicante, España, 1995.
[14] Innocent Peter, Hirschmuller Heiko, and Garibaldi Jon, “Real-time correlation-based
stereo vision with reduced border errors,” .
[15] Castrillón-Santana M., Guerra-Artal J., and Henndez-Sosa J., “Real-time tracking
system using c80 dsps and a binocular robotic head,” 1998.
[16] Joaquı́n Salas, Visual Routines for Mobile Robots, Ph.D. thesis, ITESM, 1996.
[17] Méndoza Vazquez Jose R., “Diseño del control de un robot de dos grados de liber-
tad para aplicaciones de seguimiento de objetos,” M.S. thesis, Instituto Nacional de
Astrofı́sica, Óptica y Electrónica, Puebla, 2003.
[18] Rekleites Ioanins M., “A particle filter tutorial for mobile robot localization,” M.S.
thesis, McGill University, Centre for intelligent Machines, 1997.
[19] Ristic Branko, Arulampalam Sanjeev, and Gordon Neil, Beyond the Kalman Filter.
Particle Filters for Tracking Applications, Artech House, 2004.
Apéndice A
61
62
Aprende. Una vez que las imágenes se están capturando y siendo mostradas, el
usuario puede elegir cualquier objeto por medio del cursor del Mouse, una vez elegido
el objeto, el sistema realiza una serie de funciones para obtener el área, perı́metro,
momentos de Hu, y vértices del objeto, y esta información es desplegada en un cuadro
de dialogo mostrado enseguida de la selección del objeto, y en el cual el usuario le
pone un nombre al objeto, para luego generar una lista con los nombres de todos los
objetos que el usuario ha seleccionado para aprendizaje del sistema.
Despliega. Al ser seleccionada la función despliega esta nos mostrara la lista de los
objetos que el sistema ha aprendido. Una vez elegido un objeto de la lista, el sistema
nos da los datos obtenidos del objeto en la función aprende.
Rastrea. La función rastrea nos muestra un caja de diálogo con una lista de objetos
que el sistema ha aprendido, de ahı́ el usuario elige que objeto desea seguir en la
imagen. Una vez seleccionado el objeto el rastreo comienza de inmediato. La función
se realiza de manera indistinta sobre la secuencia de imágenes capturadas en tiempo
real, como sobre las imágenes guardadas en archivos.
Grabar. Esta función la utilizamos para grabar una secuencia de imágenes obtenidas
directamente de la estéreo cámara. Estas secuencias de imágenes son tomadas con
el fin de que los algoritmos sean probados bajos las mismas condiciones y tener
trayectorias iguales en cada uno de los experimentos.
Aristas. Sirve para obtener los bordes de los objetos, siempre y cuando la imagen
este en escala de grises.
Apéndice A 63
Video. Sirve para reproducir los videos que tenemos grabados en archivos y los cuales
fueron utilizados para la experimentación.
Siguiente FK. Esta función se utiliza para obtener los valores de la predicción en
cada una de las imágenes mediante el filtro de Kalman.
Next Manual. Sirve para obtener el centro del objeto deseado en cada una de
las imágenes, en una secuencia de imágenes previamente establecida. Se utilizo esta
función para obtener los centros reales del objeto y de ahı́ comparar los resultados
con el filtro de Kalman y con particle Filter.