Está en la página 1de 42

Estudio de movimiento de objetos en imágenes basados

en el método de flujo óptico de Horn y Schunck

Cristian Javier Briñez Varon

Facultad De Ingeniería

Ingeniería Electrónica

Ibagué,

2019
Estudio de movimiento de objetos en imágenes basados
en el método de flujo óptico de Horn y Schunck

Cristian Javier Briñez Varon

Trabajo de grado presentado como requisito parcial para


optar al
Título de Ingeniero Electrónico

Director del trabajo de grado:


Manuel Guillermo Forero Vargas
PhD. en Ingeniería Biomédica

Facultad de ingeniería
Ingeniería electrónica
Ibagué, 2019
NOTA DE ACEPTACIÓN

________________________________________

________________________________________

________________________________________
Presidente del Jurado

_______________________________________
Nombre del Jurado

_______________________________________
Nombre del Jurado

__________________________
Ciudad y Fecha (día, mes y año)
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Dedicatoria

Dedico este trabajo a mis padres Jair y Gilma, que han sido guía durante toda mi vida,
inculcándome el ejemplo de honestidad, amor y el esfuerzo por todo lo que hago, además
con mucho esfuerzo me brindaron la oportunidad de empezar con mis estudios y pusieron
además en mi toda su confianza para continuar con estos. A mi hermano, quien siempre
está presente en mi vida como gran apoyo de creer juntos todo se puede.

4
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Contenido
Dedicatoria ...................................................................................................................... 4
Lista de figuras ................................................................................................................ 6
Glosario ........................................................................................................................... 8
Agradecimientos ............................................................................................................ 10
Resumen ....................................................................................................................... 11
Abstract ......................................................................................................................... 12
Introducción ................................................................................................................... 13
Descripción del problema y justificación ........................................................................ 15
Objetivo general ............................................................................................................ 16
Objetivos específicos ..................................................................................................... 16
Estado del arte .............................................................................................................. 17
Flujo óptico ................................................................................................................. 17
1. Marco teórico ............................................................................................................. 21
1.1 Interpolación ......................................................................................................... 21
1.2 Función Gaussiana .............................................................................................. 21
1.3 Representación multi-escala ................................................................................ 22
2. Desarrollo del trabajo ................................................................................................ 24
2.1 Análisis y descripción del código original ............................................................. 24
2.2 Implementación del plugin para ImageJ ........................................................... 2526
3. Análisis de resultados ................................................................................................ 30
3.1 Resultados del funcionamiento general del código .............................................. 30
3.2 Variación de los parámetros de ejecución ............................................................ 33
3.3 Comparación de resultados multiescala contra técnica original ........................... 37
Conclusiones ................................................................................................................. 40
Bibliografía................................................................................................................. 4241

5
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Lista de figuras
Figura 1 Grafica de la función de Gauss. [13] ........................................................... 2221
Figura 2 Efecto del filtro gaussiano en una imagen. .................................................. 2221
Figura 3 Representación multiescala de una imagen. Fuente: Autor. ....................... 2322
Figura 4 imagen de fuente y su resultado con el código original. [10] ........................... 24
Figura 5 Cuadro de diálogo inicial del plugin implementado ..................................... 2726
Figura 6 Visualización de los vectores U y V, a) Cuadro de video 1 b) Cuadro de video 2
c) Vector resultante U d) Vector resultante V .......................................................... 2928
Figura 7 Prueba con imagen sintética1: a). cuadro de video 1. B) Cuadro de video 2. C)
resultado. ................................................................................................................... 3029
Figura 8 Prueba con imagen sintética 2. A) Cuadro de video 1 b) Cuadro de video 2 c)
Resultado. ................................................................................................................. 3130
Figura 9 Prueba con imagen real 1 a) Cuadro de video 1, b) Cuadro de video 2, c)
Resultado .................................................................................................................. 3231
Figura 10 Prueba con imagen real 2 a) Cuadro de video 1, b) Cuadro de video 2, c)
Resultado .................................................................................................................. 3231
Figura 11 a) Resultado con parámetros por defecto b) Resultado con variaciones en el
parámetro Lambda .................................................................................................... 3332
Figura 12 Ejecución del código variando el parámetro Lambda ................................ 3433
Figura 13 Ejecución del código variando el parámetro Theta .................................... 3433
Figura 14 Ejecución del código variando el parámetro Nwarps ................................. 3534
Figura 15 Ejecución del código variando el parámetro Epsilon ................................. 3635
Figura 16 a) Cuadro de video 1 b) Cuadro de video 2 (ocurrió el movimiento) c). Resultado
con método multiescala implementado en ImageJ d). Resultado con el método original
de Horn y Schunck implementada en ImageJ ........................................................... 3736
Figura 17 a) Cuadro de video 1 b) Cuadro de video 2 (ocurrió el movimiento) c). Resultado
con método multiescala implementado en ImageJ d). Resultado con el método original
de Horn y Schunck implementada en ImageJ. .......................................................... 3837

6
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Figura 18 a) Cuadro de video 1 b) Cuadro de video 2 (ocurrió el movimiento) c). Resultado


con la técnica multiescala implementado en ImageJ d). Resultado con la técnica original
de Horn y Schunck implementada en ImageJ. .......................................................... 3938

7
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Glosario

Píxel: Menor unidad de información que posee una imagen digital. La resolución de la imagen
determina la cantidad de pixeles presentes en una imagen.

Procesamiento de imágenes: Conjunto de técnicas que sirven para mejorar o resaltar detalles
de una imagen, se utiliza para extraer parámetros o características de las imágenes.

Compilador: En informática, se puede definir un compilador como un traductor que transforma


un código fuente, escrito por un humano en algún lenguaje de programación, a otro programa en
lenguaje máquina, es decir un lenguaje que la maquina es capaz de entender y así mismo
reproducir las instrucciones que se le han asignado en el código fuente.

Plugin: Un plugin, es como se le conoce comúnmente a un programa que por sí solo no puede
ser reproducido, sino en cambio es una extensión de un programa o aplicación existente, de esta
manera el plugin utiliza herramientas del programa existente para cumplir con su funcionalidad.

Software de libre acceso: se le llama de libre acceso a un software que permite al usuario leer,
modificar y ejecutar su código fuente, de esta manera los softwares de libre acceso son
construidos y mejorados por sus usuarios.

Escala: La escala es el nombre que se le da al tamaño de una imagen en relación con su ancho Commented [JAFG1]: Revisar definición
y alto, por ejemplo, una imagen con 100 pixeles de ancho y 200 pixeles de alto se dice que su
escala es 100x200 pixeles.

Escena, o cuadro de video: Un video es una secuencia de imágenes que se reproduce


continuamente a una velocidad mayor a la frecuencia de muestreo natural del ojo humano,
creando la ilusión de que es una toma continua, una escena o cuadro de video es como se le
llama a una de las imágenes que hacen parte de un video.

8
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Suavizado: En el procesamiento de imágenes se le conoce como suavizado de una imagen, a


un procedimiento en el que la imagen resultante presenta bordes menos definidos, lo que a la
práctica hace que los objetos se vean más difuminados o borrosos el resultado parece ser más
borroso, como es el caso del filtro gaussiano, que se explica en el marco teórico de este Commented [JAFG2]: Si, pero definir mejor
trabajo.

Gradiente: Operador vectorial que contiene todas las derivadas parciales posibles de una
función.

Divergencia: Es un operador vectorial que mide la diferencia entre el flujo de entrada y el flujo
de salida de un campo vectorial.

9
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Agradecimientos

Agradezco a mi tutor de tesis el PhD. Manuel Guillermo Forero Vargas, por su disposición
incondicional para aclarar dudas, por sus aportes y sugerencias que fueron de vital importancia
para el desarrollo de este trabajo. A los participantes del semillero Lún Angie Natalia Murillo
Sánchez, Aline Cristina Pereira, Karen Daniela Villanueva Duarte y Juan José Betancourt
Lozano que con su gran aporte de su trabajo sirvió como punto de comparación para realizar Commented [JAFG3]: espacio
pruebas en mi investigacion. Commented [JAFG4]: espero sea punto ¡!

10
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Resumen
Uno de los temas de mayor interés en el área de visión por computador es el análisis de
movimiento de los objetos en una secuencia de video, técnica conocida comúnmente como flujo
óptico. Aunque se han planteado varios métodos para resolver el problema de flujo óptico no
existe una solución óptima puesto que es un problema mal planteado, dado que las imágenes de
video son tan sólo una proyección bidimensional de un mundo 3D. En este trabajo se hace un
estudio de la técnica original de Horn y Schunck que dio origen a las investigaciones en esta
área, y el uso de representaciones multiescalares que se han utilizado recientemente para
mejorar las características de la técnica original. Commented [JAFG5]: ENTER

El método multiescala se basa en reducir el tamaño de la imagen sucesivamente, de tal manera


que se construye una pirámide de múltiples niveles, a partir del tamaño o escala original de cada
imagen de entrada, con el fin de detectar el más pequeño desplazamiento, puesto que la técnica
original no logra detectar movimientos mayores al tamaño de un píxel.

El algoritmo usado por esta técnica corre primero en el nivel másF grueso, y el resultado es usado Commented [JAFG6]: Explicar mejor
como punto de inicio en los más finos, manejando una estructura piramidal y se basa en el Commented [JAFG7]: Contextualizar mejor
procedimiento anterior para calcular el movimiento en las diferentes escalas.

11
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Abstract
One of the most interesting topics in the area of computer vision is the analysis of the movement
of objects in a video sequence, a technique commonly known as optical flow. Although several
methods have been proposed to solve the problem of optical flow, there is no optimal solution
since it is a poorly planned problem, because the video images are only a two-dimensional
projection of a 3D world. In this work a study of the original technique of Horn and Schunck is
made that gave origin to the investigations in this area, and the use of multi-scalare Commented [JAFG8]: ¿multi-scale?
representations that have been used recently to improve the characteristics of the original
technique. The multi-scale method is based on reducing the size of the image successively, thus
a multi-level pyramid is constructed, starting from the original size or scale of each input image,
in order to detect the smallest displacement, since that the original technique fails to detect
movements larger than the size of a pixel.

The algorithm used by this technique runs first at the thickest level, and the result is used as the Commented [JAFG9]: Contextualizar mejor
starting point in the finest, handling a pyramidal structure based on the previous procedure to
calculate the movement at different scales.

12
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Introducción
Uno de los temas de mayor interés en la visión por computador es el análisis del movimiento
entre imágenes sucesivas desplazadas temporalmente, área conocida comúnmente como flujo
óptico. Ésta es usada usualmente en campos como la estimación del flujo vehicular para
determinar los vehículos detenidos, aquellos en movimiento y estimar la velocidad con que se
desplazan. Esta técnica también puede ser utilizada para el análisis de imágenes de microscopía
donde se desea rastrear el desplazamiento celular, lo cual podría, por ejemplo, aportar
información importante sobre el proceso de regeneración de tejidos en especies como el
Parhyale hawaiensis. Aunque se han planteado varios métodos para resolver el problema de flujo
óptico no existe una solución única, puesto que es un problema mal planteado, dado que las
imágenes de video son tan sólo una proyección bidimensional de un mundo 3D. Como soluciones Commented [JAFG10]: Alguna cita ¿?
pueden citarse las desarrolladas por Kanade y Bruce D. Lucas, Horn y Schunck, Uras S., Girosi
F., Verri A. y Torre V [1] [2],. entre otros. Estas técnicas difieren en la forma en que solucionan la
ecuación de restricción de flujo óptico. También existen otras que aparecen como mejoras de las
técnicas anteriores, tales como las desarrolladas por Javier Sánchez, Enric Meinhardt-Llopis,
Gabriele Facciolo, C. Zach, T. Pock, y H. Bischof.

Con el objetivo de conocer las técnicas más conocidasrepresentativas de detección de Commented [JAFG11]: Conocer y luego conocidas ----
cambiar una de las dos
movimiento y evaluar la posibilidad de emplearlas para el análisis del movimiento de células en
microscopía, el semillero en procesamiento de imágenes, reconocimiento de patrones y visión
por computador Lún ha comenzado un estudio sobre ellas, siendo este trabajo el pionero. La
primera técnica escogida fue la desarrollada por Horn y Schunck que dio origen a las
investigaciones en esta área, empleando para ello una solución mejorada, introducida por Javier
Sánchez, Enric Meinhardt-Llopis y Gabriele Facciolo [3], basada en representaciones
multiescalares, desarrollada recientemente para mejorar las características de la técnica original.

En general, en las técnicas de flujo de óptico se toman dos imágenes o cuadros consecutivos de
un vídeo, conocidas en inglés como “frames”, de la misma escena. Comparando cada píxel
ubicado en la misma posición en las dos imágenes, se puede determinar cuáles pixeles han
13
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

cambiado de posición y usar esta información para estimar el movimiento de un objeto. Sin
embargo, resulta difícil determinar qué conjunto de píxeles pertenecen a un objeto en concreto.
Por esta razón, la estimación del flujo óptico aparece para entregar una solución a este problema,
puesto que esta técnica es capaz de determinar no solamente que píxeles cambiaron debido a
un movimiento, sino también la dirección y magnitud de este desplazamiento. Además, esta
técnica es menos pesada computacionalmente que un algoritmo basado en la segmentación de
objetos para la detección y seguimiento de objetos. Commented [JAFG12]: Referencia ¿?

En la técnica estudiada en este trabajo, a diferencia de otras, se reduce el tamaño de la imagen


hasta una escala donde pueda encontrarse un cambio píxel a píxel y, de esta manera, determinar
con mayor precisión la proyección del campo de movimiento. Luego de resolver este problema,
se restaura la imagen a su tamaño original, tomando los datos del movimiento de las imágenes
escaladas.

Además, la técnica de flujo óptico multiescala, busca tener una precisión mayor obteniendo
soluciones bastante aproximadas, detectando pequeños movimientos, siempre y cuando la
magnitud de un vector u, definido más adelante, sea mayor a la de un pixel. Obteniendo así
resultados adecuados con fotografías tomadas con cámara de alta velocidad, cosa que se hace
difícil con otras técnicas, puesto que necesitan que los cambios sean más significativos. Commented [JAFG13]: Referecia ¿?

El trabajo se ha distribuido en varias secciones. El primer capítulo introduce el problema de la


detección de movimiento de objetos, describiendo el flujo óptico y varias de las soluciones
propuestas; en particular, la propuesta por Horn y Schunck y el método de solución multiescala
propuesto por Javier Sánchez et al., tema de esta investigación. En el segundo capítulo, se
presenta el método desarrollado. El tercero contiene los resultados obtenidos. En el cuarto se
realiza una discusión de los resultados. Por último, en el quinto capítulo se presentan las
conclusiones y perspectivas.

14
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Descripción del problema y justificación Commented [JAFG14]: Escribir mejor la descripción


del problema:
Una de las áreas de mayor interés en el área de visión por computador es el análisis del Esta sección debe responder preguntas
relacionadas con el problema de investigación en
movimiento entre imágenes sucesivas desplazadas temporalmente, usualmente usado en este caso el Analisis la técnica de flujo óptico y su
campos como estimación del flujo vehicular, para determinar qué vehículos se encuentran mejora utilizando una representación multiescala.

detenidos, cuales en movimiento y estimar la velocidad con que se desplazan dichos vehículos. Por ej: ¿qué dificultades tiene su implementación?.

Esta técnica es también utilizada en la compresión en videos y puede también ser utilizada para En el caso de usarse para analisis de regeneración
del tejido, ¿qué dificultades o retos tiene esta
el análisis de imágenes de microscopía donde se desea rastrear el desplazamiento celular, lo tecnica?
cual podría aportar información importante, por ejemplo, sobre el proceso de regeneración de
Commented [JAFG15]: Aplicaciones, no es un
tejidos en especies como el Parhyale hawaiensis, tema de estudio del semillero Lún. Por esta problema o una justificación.
razón, se requiere desarrollar este método en una aplicación como IimageJ, software de libre Commented [JAFG16]: Esta parte si es una
justificiación. ¿más justificaciones para hacer este
acceso desarrollado para el análisis de imágenes de microscopía, permitiendo así el análisis trabajo?

temporal del crecimiento celular en tejidos. Commented [JAFG17]: ¿por esta razón?. Lo anterior
no explica la siguiente frase relacionada con el uso de
ImageJ

15
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Objetivo general

Analizar la técnica de flujo óptico de Horn y Schunck y su mejora utilizando una representación
multiescala.

Objetivos específicos
1. Conocer las técnicas más actuales de flujo óptico en imágenes de video.
2. Analizar y desarrollar los algoritmos de flujo óptico escogidos.
3. Evaluar el movimiento de una secuencia de imágenes de video, suavizando la imagen
sucesivamente para obtener campos de desplazamiento denso y así resolver con mayor
facilidad el patrón de movimiento.
4. Evaluar los métodos desarrollados.

16
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Estado del arte

En este mundo donde la tecnología juega un papel cada vez más importante en el diario vivir y
donde cada día se presentan nuevos dispositivos, mejores y más funcionales, la necesidad de
que las nuevas tecnologías sean capaces de interpretar el entorno en el que se encuentran hace
que la visión por computador sea un campo de investigación muy importante. Así, su desarrollo
permite que las máquinas “vean” y con esta información mediante técnicas de aprendizaje de
máquinas “entiendan” lo que las rodea. Commented [JF18]: alguans de estas ideas
condensadas quedarian muy bien en el planteamiento
del problema
Abstraer las características de una imagen puede ser un proceso complejo y representar una alta
carga computacional. Así, en muchas aplicaciones basta con obtener las características de una
sola imagen para cumplir con el objetivo deseado; sin embargo, en muchas otras es necesario
analizar una secuencia de imágenes o cuadros de un video para obtener la información
pertinente, como es el caso del análisis del movimiento. Cada día los procesadores son más Commented [JF19]: esta es la esencia del P. del
problema !!! … quedaría muy bien alli.
rápidos y potentes, lo que permite procesar imágenes y abstraer sus características de una
manera más eficiente. Sin embargo, entre más ligeras sean las técnicas de procesamiento de
imágenes, más eficientes serán sus resultados. Por esta razón, la estimación del flujo óptico tiene
mucha importancia, habiéndose desarrollado distintas implementaciones y mejoras. Commented [JF20]: P del problema ¡!!!

Flujo óptico

La idea del flujo óptico nació a partir del trabajo realizado por el psicólogo James Gibson en su
tesis doctoral “The Perception of the visual World”, en la que define el flujo óptico como el
movimiento que aparentemente tienen los objetos [4]. Este concepto tuvo buena acogida entre Commented [JF21]: espacio
los investigadores en visión por computador, pero no fue hasta 1981 que se dio un desarrollo de
las ecuaciones de flujo óptico por los investigadores Bruce D. Lucas y Takeo Kanade las cuales
describen un barrido de pixeles mediante mínimos cuadrados [2]. Horn y Schunck desarrollaron
de igual manera un método para determinar el flujo óptico, el cual consiste en un suavizado de
imágenes eliminando distorsiones y llegando a una solución eficaz al problema flujo óptico [1].
Desde que estos cuatro investigadores lograron estimar el flujo óptico por dos distintos caminos

17
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

se han desarrollado variedad diversasde mejoras; por ejemplo en 1987 Anandan construyó una Commented [JF22]: distintas ¿?... diversas ¿?
técnica para la estimación de flujo óptico basado en el método de mínimos cuadrados en la cual
las aceleraciones temporales se calculan de forma incremental para superficies cuadráticas [5]. Commented [JF23]: Espacio
Unos años más tarde, en 1990, introducen una mejora a la técnica desarrollada anteriormente
por Jepson A. y Heeger D. donde emplean doce filtros de Gabor para cada espacio y escala, Commented [JF24]: espacio
pirámides, gaussianas, ajustes en los mínimos cuadrados y filtraciones con pasa bandas. [6]. En Commented [JF25]: ¿?
1991, Barman H. Haglund a partir de bases de energía-filtrado de espacio temporal en una
estructura, análisis bajo dos componentes , difusión y reacción donde se agrupan los métodos Commented [JF26]: Muchos espacios y errores de
puntiación… Favor revisar todo el documento ¡!!!!
dados por la densidad de los mapas de disparidad locales y globales determinaron el flujo óptico
[7]. En 1992 J.L. Barron, D.J. Fleet y S.S. Beauchemin, T.A. Burkitt realizaron seis diferentes Commented [JF27]: ¿?
técnicas para determinar el flujo óptico. Dos años más tarde estos mismos autores realizaron una
mejora del artículo publicado en 1992 agregando tres técnicas más; todo este trabajo basado en
técnicas desarrolladas anteriormente por distintos autores como Horn y Schunck, Lucas y
Kanade, Uran - Girosi - Verri y Torre, Anandan, basada en la energía, Fleet y Jepson, Heeger.
En 1996 se realiza por primera vez la estimación del flujo óptico de sistemas discontinuos,
basados en el método de Horn y Schunck y la optimización de Euler-Lagrange, técnica
desarrollada por Sugata Ghosal y Petr Vanek [8]. En 2003 Shi Rong y Li Zaiming desarrollaron
un método para la estimación de flujo óptico donde se compensa el desplazamiento de objetos
a alta velocidad a partir del método de Lucas y Kanade [9]. En el 2006 se empiezan a introducir
aplicaciones al flujo óptico para la determinación del flujo vehicular, donde la técnica es capaz de
determinar la velocidad de los vehículos. Este método al estar basado en la técnica de flujo óptico
deriva varias ventajas, por ejemplo, al implementar este método en las cámaras ya instaladas en
carreteras, permite mejorar el tráfico de una ciudad y reducir bastantes costos [10]. En 2007 C.
Zach, T. Pock, y H. Bischof propucieron uno de los métodos más atractivos y exitosos en cuanto
a la variación de movimiento en dos cuadros de imagen, el cual basa su teoría en una
regularización de la variación total usando la norma robusta L1 en el término de fidelidad de
datos. El uso de esta técnica trajo ventajas como lo son: no tomar datos erróneos y obtener
resultados de movimiento donde no lo hubo. Aunque esta técnica posee ciertas falencias como;
tener una imagen cuya definición sea bastante alta para su procesamiento. Una solución a esto
fue propuesta por C. Zach, T. Pock, y H. Bischof en su método, el cual logra una conservación
en las discontinuidades en el campo de flujo y ofrece una mayor robustez contra los cambios de

18
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

iluminación, oclusiones y ruido. Este método se basa en una formulación dual de la energía de
variación total y emplea un paso de umbrales puntual [11]. En el 2013, Javier Sánchez, Enric
Meinhardt-Llopis y Gabriele Facciolo desarrollaron una mejora del método original de C. Zach, T.
Pock, y H. Bischof cuya principal característica está en permitir discontinuidades en el campo de
flujo, al tiempo que es más robusta al ruido que el enfoque clásico de Horn y Schunck. Es un
algoritmo basado en un esquema numérico eficiente, que resuelve una versión relajada del
problema mediante minimización alternativa [3]. Commented [JF28]: Se propone hacer una tabla en
donde este resumida toda esta información de flujo
optico, organizada por fecha, autor y tecnica
Uno de los grandes problemas que tiene el flujo óptico y la razón por la cual existe una buena
variedad de métodos que buscan resolverlo, es en el punto donde se presentan discontinuidades
en las imágenes, donde el objeto está en movimiento y el fondo no, siendo el punto más difícil de
calcular.

La velocidad con la que se mueve el objeto en los cuadros de imágenes es representada con
más intensidad o brillo en la imagen resultante. así que sí que, entre mayor intensidad de color,
mayor velocidad lleva el objeto. El flujo óptico posee muchas aplicaciones como lo es la
segmentación de movimiento; donde se tiene un video y se quiere saber qué objetos se están
moviendo, así que se calcula el flujo óptico y se determina que movimiento es significativo y cual
es demasiado pequeño para decir que no se movió el objeto, esa es la simple idea de esta
aplicación. Otra de las aplicaciones es deriva de cómo obtener una recopilación 3D de una
secuencia de imágenes, la cual es llamada una estructura de movimiento. La alineación o
compensación del movimiento global es otra de las aplicaciones, la cual se puede emplea cuando
se tienen videos de UAV (vehículo aéreo no tripulado) y del objeto en estudio (persona, carro
etc.). En este caso, se obtienen dos movimientos, y la técnica de flujo óptico es utilizada para
estabilizar la videocámara para obtener una imagen de buena calidad. La comprensión de vídeos
también hace parte de las aplicaciones donde es útil el método de flujo óptico. En este caso, se
toman dos cuadros de video y se calcula por flujo óptico que tanto se movió un pixel en un cuadro
comparado con el siguiente. Esta es la idea básica de la compresión de video. Commented [JF29]: ENTER

La idea básica del Flujo óptico fue planteada por Horn y Schunck. siendo Horn uno de los
investigadores más importantes de la visión por computador del MIT quien también escribió un

19
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

libro llamado “Robot Visión”. Ellos plantearon los cálculos de movimiento entre dos cuadros
llamado flujo óptico, cuya idea principal es simple;
𝑓(𝑥, 𝑦, 𝑡) = 𝑓(𝑥 + 𝑑𝑥, 𝑦 + 𝑑𝑦, 𝑡 + 𝑑𝑡) Commented [JF30]: Numero de la formulas ¿?

El video se representa mediante una función tridimensional(𝒙, 𝒚, 𝒕) donde f es función de tres


dimensiones, 𝒙 y 𝒚 (filas y columnas), además del desplazamiento tiempo, determinado por el
número de cuadros por segundo del video, normalmente son 30 cuadros por segundo, lo que
representa un alto número de cuadros, pero pocos cambios entre cuadro y cuadro. Así que se
revisa pixel a pixel 𝒙𝒚 en un cuadro tomado en el tiempo 𝒕 y se mira el píxel más cercano a 𝒙𝒚
en el siguiente cuadro tomado en 𝒕 + 𝒅𝒕 un tiempo, el cual está muy cerca al más pequeño
cambio que se haya presentado en 𝒙, 𝒅𝒙 y el más pequeño cambio en 𝒚, 𝒅𝒚 . Entonces la
intensidad en 𝒙𝒚 en el primer cuadro y la intensidad en 𝒙 + 𝒅𝒙, 𝒚 + 𝒅𝒚 serán muy similares, ya
que no hay un cambio significativo entre cuadro y cuadro. Así. se puede asumir que se tiene un
brillo o intensidad constante en esta parte del cuadro 𝑓(𝑥, 𝑦, 𝑡) y en esta parte del siguiente
cuadro𝑓(𝑥 + 𝑑𝑥, 𝑦 + 𝑑𝑦, 𝑡 + 𝑑𝑡).
Luego se hace una aproximación en series de Taylor , donde la parte derecha de la función es
una aproximación en función de la derivada de los términos (𝑥 + 𝑑𝑥, 𝑦 + 𝑑𝑦, 𝑡 + 𝑑𝑡)en función de
la derivada. Se obtiene entonces la ecuación siguiente:
𝑓(𝑥, 𝑦, 𝑡) = 𝑓(𝑥, 𝑦, 𝑡) + (ɗ𝑓/ɗ𝑥)𝑑𝑥 + (ɗ𝑓/𝑑𝑦) 𝑑𝑦 + (ɗ𝑓/ɗ𝑡)𝑑𝑡 Commented [JF31]: Simbolo de diferencial ¿???????

En la aproximación en series de Taylor del lado derecho se emplearon únicamente las derivadas
de primer orden. Luego se cancelan los términos a ambos lados de la función y la ecuación se
reduce a la siguiente expresión:
𝑓𝑥𝑑𝑥 + 𝑓𝑦𝑑𝑦 + 𝑓𝑡𝑑𝑡 = 0 Commented [JF32]: No es claro

Dividiendo cada término por 𝒅𝒕, se tiene la ecuación:


𝑓𝑥 𝑢 + 𝑓𝑦 𝑣 + 𝑓𝑡 = 0
donde al dividir 𝒅𝒕 por si mismo se obtiene un 1, 𝒅𝒙 por 𝒅𝒕 indica el cambio en el eje x y 𝒅𝒚 por
𝒅𝒕 indica el cambio en y. Estos valores son llamados 𝒖 y 𝒗. Esta fórmula describe el problema
esencial del flujo óptico. Dado que se tiene una sola ecuación y dos incógnitas 𝒖 y 𝒗 el problema
se dice que etsa mal planteado y no tiene una única solución, por esta razón diferentes técnicas
han sido propuestas para encontrar la mejor solución posible, siendo la primera la introducida por
Horn y Schunck [12].

20
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

1. Marco teórico

En este capítulo se presentan los conceptos teóricos de las técnicas estudiadas para la detección
de movimiento en una secuencia de imágenes, que pueden ser utilizados para la detección y
estimación del flujo vehicular.

Este trabajo se centró en el estudio de las técnicas de detección de movimiento de Horn y


Schunck y el algoritmo de identificación de movimiento en imágenes conocido como multiescala.

1.1 Interpolación
La interpolación es una técnica mediante la cual se encuentran nuevos puntos a partir de un
conjunto discreto de datos conocidos. En el procesamiento de imágenes es muy común su uso
cuando se desea aumentar el tamaño de una imagen, pues al incrementar la escala se generan
vacíos que deben llenarse con valores calculados a partir de los pixeles vecinos. Existen
diferentes técnicas de interpolación. La más simple, conocida como interpolación por vecinos
más próximos, consiste como su nombre lo indica, en llenar cada vacío con el valor del píxel más
cercano. Otra técnica, denominada interpolación bilineal realiza la interpolación a partir de los
valores de los cuatro píxeles vecinos más cercanos, tomando en cuenta la distancia con respecto
a cada uno de ellos. La interpolación bicúbica se basa en el cálculo de los nuevos valores
mediante un polinomio cúbico que se ajusta a las intensidades de los 16 píxeles más cercanos
aumentando la precisión del resultado. Esta técnica es empleada por programas profesionales
como Adobe Photoshop.

1.2 Función Gaussiana


La función gaussiana está definida por la siguiente función:

(𝑥−𝑏)2 Commented [JF33]: ¿????????. Favor tener cuidado


𝑓 ^𝑥 = 𝑎𝑒 − 2𝜎2 con la notación
Commented [JF34]: ¿?

donde a, b y σ son constantes reales, a es el punto más alto de la función gaussiana, b es el Commented [JF35]: ¿?

punto medio y σ es la desviación estándar, la cual determina el ancho de la campana. La función Commented [JF36]: Notación ¡!!!!

gaussiana es usualmente empleada en estadística y, en el procesamiento de imágenes, es usada


para obtener un promedio ponderado de los píxeles dentro de una máscara o ventana ubicada
21
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

alrededor de un píxel central, cuyo valor es reemplazado por este promedio, obteniendo de esta
manera una imagen suavizada como resultado. En la figura 1 se puede apreciar el grafico en 3d
de una función Gaussiana, y en la figura 2 se observa el efecto que tiene este filtro en una imagen.

Figura 1 Grafica de la función de Gauss. [13]. Commented [JF37]: Punto despues de la cita.

Figura 2 Efecto del filtro gaussiano en una imagen.

1.3 Representación multi-escala


La representación multiescala se emplea en la técnica de flujo óptico para detectar grandes
desplazamientos que ocurren entre un cuadro y otro. Esta técnica consiste en la creación de

22
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

imágenes de diferentes tamaños comenzando por la imagen original la cual tendrá la definición
más fina y al reducir el tamaño de las imágenes pasará a una definición más gruesa permitiendo
la estimación del flujo óptico en estas múltiples escalas estructura.

Para construir las escalas, las imágenes se reducen en tamaño usando un factor de escala ɲ
=0.1 y son suavizadas empleando un filtro Gaussiano de desviación estándar definida por el
usuario y que se fija de acuerdo al tamaño de los objetos que se desplazan en la imagen.

Luego, iniciando desde la imagen de menor tamaño la ecuación de flujo óptico es resuelta en
cada escala, para así obtener aproximaciones sucesivas del flujo óptico. Cada solución es
empleada como punto de inicialización de la imagen más grande de la siguiente escala, para ello
la imagen más pequeña es ampliada empleando interpolación bicubica . [14]. Commented [JF38]: ¿?

Figura 3 Representación multiescala de una imagen. Fuente: Autor.

23
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

2. Desarrollo del trabajo

Tras realizar el estudio de la técnica propuesta por Horn y Schunck [1] se realizó una exhaustiva
búsqueda bibliográfica en la cual se encontraron algunas implementaciones de esta técnica en
distintos lenguajes, entre ellas se encontró la mejora que implementa el análisis multiescala de
la imagen, la cual se encuentra desarrollada en C++ [3]. Esta implementación se tomó como base
para escribir un plugin en Java para el software de libre acceso ImageJ. En este orden de ideas
se expone en este capítulo la estructura del algoritmo desarrollado.

2.1 Análisis y descripción del código original


Como se mencionó antes, el código que se tomó como base para este trabajo estaba escrito en
C++. Por lo que el primer paso fue encontrar un compilador para poder ejecutar el programa y
comprobar su funcionamiento. la manera que se encontró adecuada para realizar este proceso
fue mediante el compilador cygwin. Luego de instalarlo, se ejecuta el código original que tiene
como entrada dos imágenes que corresponden a dos cuadros consecutivos de un video sobre
los cuales se calcula el flujo óptico. Como resultado se obtiene una imagen en formato .flo,
iniciales de la palabra flujo óptico. Para leer este formato, se empleó la librería “ReadflowFile.m”
[15]implementada en Matlab. En la figura 4 se puede observar el resultado de este algoritmo. Commented [JF39]: espacio

Figura 4 Imagen de tráfico y resultado de flujo optico obtenido con el código original. [10]

24
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Se puede que el bus y el auto a su lado tienen una mayor velocidad que los autos que lo siguen, debido
a su intensidad.

El procesamiento de las imágenes se inicia con la creación del espacio multiescala. Para ello se
calcula el número de escalas que va a tener según los parámetros ingresados por el usuario y el
tamaño de las imágenes. La pirámide de imágenes resultante es guardada en un arreglo (array)
que contiene en cada uno de sus niveles las distintas escalas que se generan.

Luego de crear la pirámide de imágenes, inicia el cálculo del flujo óptico a partir de la imagen
más pequeña. El flujo optico se calcula a partir de los gradientes y la divergencia. A esta primera
imagen resultante, usando la interpolación bicúbica se le aumenta la escala al siguiente nivel de
la pirámide de imágenes, generando una nueva imagen en este nivel pero que contiene el flujo
óptico calculado en la escala anterior. De esta manera el cálculo del flujo óptico de la segunda
escala se hace con referencia en el de la primera escala, y se almacena en el mismo array que
la escala anterior, este proceso se repite sucesivamente hasta llegar a la escala original. Como
resultado a lo anterior, en el array va a quedar acumulado todo el flujo óptico de la imagen en sus
distintas escalas, y se procede al método en el que se genera el archivo .flo que contiene el
resultado final de la técnica.

2.2 Implementación del plugin para ImageJ

Luego de analizar, comprender y probar el funcionamiento del código en C++, se procede a


realizar la implementación en Java para poder generar un plugin para el software de libre acceso Commented [JF40]:
ImageJ. Como metodología para la implementación de este plugin, se empezó llevando los
métodos del programa escrito en cC++, a Jjava, para lo cual se realizó un proceso de selección Commented [JF41]:
de cuáles métodos eran necesarios en este nuevo lenguaje y cuáles no, ya que cC++ es un Commented [JF42]: java o Java ¿?

lenguaje de programación de más bajo nivel que java, y en este código existen métodos que se
encargaban de crear, eliminar y modificar espacios de memoria y este tipo de manipulación no
es necesaria en java.

Tras suprimir los métodos innecesarios se empezó a escribir lo que sería el método principal del
código. Al comienzo se leen las imágenes con un cuadro de diálogo en el cual el usuario puede

25
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

seleccionar las dos imágenes de fuente para el procesamiento del flujo óptico, de igual manera
el primer paso fue crear la pirámide multiescala de imágenes, y también se inicia el
procesamiento con el nivel más pequeño de la pirámide. Posterior a esto se inicia el cálculo del
flujo óptico, también se implementaron los métodos de gradiente y divergencia de la misma
manera que en el código original, y el proceso de cálculo en general es el mismo también. En
este punto es importante mencionar que había métodos que eran llamados una única vez por el
método principal, por lo que estos fueron implementados junto con el método principal, esto con
el fin de optimizar el código. Con el código terminado se comprobó su funcionamiento y se
procedió a realizar algunas mejoras.

La primera mejora, consistió en eliminar todas las variables innecesarias puesto que por la
cantidad de métodos que se eliminaron empezaron a quedar variables que eran locales para el
método, pero en general tomaban el valor de una de las variables presentes dentro del método
principal. El código original tiene algunos parámetros que repercuten en el resultado del
procesamiento, estos parámetros se modificaban dentro del código lo que realmente se traduce
en que cada vez que se quiera modificar alguno de estos parámetros se debe compilar y ejecutar
el código nuevamente, en este caso la mejora que se realizó fue que en el cuadro de diálogo de
inicio del código se le solicite al usuario ingresar estos parámetros, tal como se ve en la figura 5,
lo que permite que el código no tenga que ser compilado cada vez que se desee cambiar alguno
de estos.

26
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Figura 5 Cuadro de diálogo inicial del plugin implementado


Fuente:Autor.

En este cuadro de diálogo aparecen los parámetros por default propuestos por los autores [10].
Cada uno de estos parámetros cumple la siguiente funcionalidad dentro de la ejecución del
programa:
 Épsilon: Representa el valor umbral para el cálculo del flujo óptico en cada escala, un
valor pequeño de épsilon representa un resultado más preciso pero un mayor tiempo de
ejecución del código.
 Lambda: Dentro de la técnica se denomina el parámetro de fijación, y este parámetro
determina qué tan suavizada va a estar la imagen de salida, este parámetro se debe
ajustar con cada imagen, ya que, dependiendo del tamaño de los objetos en la imagen
de entrada, este parámetro debe ser mayor o menor.
 Nscales: Se utiliza para limitar el número de escalas creadas en la pirámide de imágenes.
 Nwarps: Define el número de iteraciones que se van a realizar en el cálculo del flujo
óptico, por cada una de las escalas de la pirámide.
 Tau: Este parámetro se denomina la ventana de tiempo, y básicamente determina en qué
momento converge el esquema matemático

27
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

 Theta: El parámetro de tensión, como se le denomina dentro de la matemática de la


técnica, se usa para relacionar y equilibrar los parámetros de fijación y ventana de tiempo
(lambda y tau), aunque el método se comporta de manera estable para un amplio rango
de valores de este parámetro, lo que lo convierte en uno de los parámetros más ajustables
para obtener el resultado deseado con el programa.
 Zfactor: Define en qué medida se reduce la escala de la imagen, del mismo modo define
el número de escalas máximo que va a tener la pirámide de imágenes, este número se
puede limitar con Nscales.

Otra de las mejoras realizadas sobre la implementación fue eliminar la generación del archivo
.flo, lo que realmente representaba un proceso tedioso para el usuario final del programa, puesto
que para poder leer este archivo era necesario copiarlo en Matlab y ejecutar el código propuesto
por los autores para poder visualizar este tipo de archivo. En este caso sencillamente se
implementó dentro del plugin la creación de una nueva imagen con el resultado del flujo óptico,
que se visualiza de manera inmediata y automática una vez que el procesamiento ha finalizado,
lo que se traduce en una mejor experiencia de usuario, y optimizar el tiempo entre una ejecución
del programa y otra.

Finalmente, otra mejora que se implementó fue que el código también visualice en forma de
imagen el resultado que se almacena en los vectores u y v, puesto que en estos vectores se
almacena la información del movimiento horizontal y vertical respectivamente, esta información
puede resultar útil para procesamientos posteriores al cálculo del flujo óptico.

28
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

a) b) c) d)
Figura 6 Visualización de los vectores U y V, a) Cuadro de video 1 b) Cuadro de video 2 c) Vector
resultante U d) Vector resultante V
Fuente: Autor.

En la figura 6 se creó una secuencia sintética en la que aparecen tres cuadrados y se simula que
el cuadrado de la izquierda se ha movido hacia la derecha, el cuadrado central permanece
estático y el cuadrado de la derecha se desplazó hacia abajo. La figura 6 c) es la imagen que
representa el vector U y se observa como el movimiento horizontal es lo que más resalta, caso
contrario el de la figura 6 d) que representa al vector V, y en este caso es el movimiento vertical
el que resalta más. Además, se puede apreciar que en ninguno de estos vectores se registró
movimiento del cuadrado central, lo cual es totalmente lógico puesto que este no se desplazó.

29
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

3. Análisis de resultados
Tras realizada la implementación del plugin en java se inician las pruebas de la técnica, para lo
que se llevaron a cabo varias pruebas con el software, entre estas pruebas con imágenes
sintéticas y sencillas de interpretar y pruebas con imágenes más compuestas, la variación de los
parámetros con los que se ejecuta la técnica para comprobar el resultado práctico que esto tiene
y finalmente la comparación de los resultados obtenidos con los obtenidos por la técnica original

3.1 Resultados del funcionamiento general del código

Lo primero que se quiso verificar con las pruebas fue que el código funcionará de manera
correcta, por lo que este se ejecutó sobre varios pares de imágenes y se verificó que el
movimiento indicado en el resultado correspondiera al movimiento real en las imágenes de
entrada, para esto se realizaron pruebas con imágenes sintéticas con movimientos sencillos y en
una sola dirección, creadas con el fin de plantear situaciones específicas para analizar el
comportamiento del código. Después se procedió a realizar pruebas con imágenes que contenían
objetos más complejos y movimientos en múltiples direcciones, a continuación, se presentan
algunos de estos resultados:

a) b) c) Commented [JF43]: Se propone elimiar (en todas las


Figura 7 Prueba con imagen sintética1: a). cuadro de video 1. B) Cuadro de video 2. C) resultado. figuras) las ventanas de Windows. Además de
Fuente: autor. homogenizar el tamaño figuras.

30
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

a) b) c)
Figura 8 Prueba con imagen sintética 2. A) Cuadro de video 1 b) Cuadro de video 2 c) Resultado.
Fuente: autor.

De las pruebas con las imágenes sintéticas se puede apreciar como el código es capaz de
determinar la cantidad del movimiento como es el caso de la figura 7, en la que uno de los dos
rectángulos negros se mueve más que el otro, y esto se ve reflejado en el resultado entregado
por el código. Y también se puede comprobar en el caso de la figura 8, que el código muestra en
la imagen resultante únicamente los objetos que se desplazaron entre los dos cuadros. Se
procede entonces a realizar pruebas con imágenes reales:

31
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Commented [JF44]: Se propone elimiar (en todas las


figuras) las ventanas de Windows. Además de
homogenizar el tamaño figuras.

a) [15] b) [15] c) Autor


Figura 9 Prueba con imagen real 1 a) Cuadro de video 1, b) Cuadro de video 2, c) Resultado

Commented [JF45]: Se propone elimiar (en todas las


figuras) las ventanas de Windows. Además de
homogenizar el tamaño figuras.

a) [15] b) [15] c) Autor


Figura 10 Prueba con imagen real 2 a) Cuadro de video 1, b) Cuadro de video 2, c) Resultado

Como se observó en las imágenes anteriores, el resultado muestra de manera clara cuáles
objetos se han desplazado y con qué amplitud fue este desplazamiento, esto demuestra que el
código cumple efectivamente con su objetivo.

32
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

3.2 Variación de los parámetros de ejecución


Tras verificar que el código presenta los resultados esperados se realizaron entonces pruebas
variando los parámetros del código para comprobar visualmente el efecto práctico que estos
tienen sobre la imagen resultante, para lo que a una misma imagen se le hicieron varias pruebas,
pero con distintos parámetros.

a). Autor

b.) Autor

Figura 11 a) Resultado con parámetros por defecto b) Resultado con variaciones en el parámetro
Lambda

33
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

a) Lambda=0.03 b) Lambda=0.15 c) Lambda=1


Figura 12 Ejecución del código variando el parámetro Lambda

Como se habló en el capítulo anterior Lambda es un parámetro que se ajusta dependiendo del
tamaño del objeto de entrada y determina el factor de suavización de la imagen. En la figura 11
y 12 se puede observar que con un Lambda mayor el resultado posee menos información del
movimiento entre cuadros, dado el nivel de suavizado.

a) Theta=0.1 b) Theta =0.9 c) Theta =3


Figura 13 Ejecución del código variando el parámetro Theta
Fuente: Autor

34
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

En el caso del parámetro Theta, se puede apreciar que un valor de theta bajo hace que la técnica
sea más sensible al movimiento y un valor de theta alto tiene el efecto contrario, sin embargo, un
theta bajo, aunque hace que la técnica sea más sensible al movimiento, el resultado se sigue
concentrando en las zonas con movimiento, es decir no aparecen una cantidad alta de falsos
positivos.

a) Nwarps =1 b) Nwarps =5 c) Nwarps =9


Figura 14 Ejecución del código variando el parámetro Nwarps
Fuente: Autor

Modificando la variable Nwarps, se puede cambiar el enfoque del movimiento a detectar, un valor
alto de esta variable resaltará más los movimientos pequeños y dispersos, y un valor bajo
resaltará los movimientos más amplios y conjuntos.

a) Epsilon=0 b) Epsilon=0.05 c) Epsilon=0.01

35
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Figura 15 Ejecución del código variando el parámetro Epsilon


Fuente: Autor
El parámetro Epsilon, permite modificar también la sensibilidad general de la técnica en cuanto
al movimiento, un valor pequeño de épsilon hace que la técnica sea más detallada en el
movimiento que va a captar, pero así mismo aumenta el tiempo de ejecución de la técnica, un
valor alto de esta variable disminuye el tiempo de ejecución de la técnica permitiendo que se
capte más movimiento, pero de una manera no muy específica.

36
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

3.3 Comparación de resultados multiescala contra técnica original

Luego de conocer cómo afectan a la imagen resultante los parámetros de ejecución, se procedió
a comparar el resultado obtenido por el código, con el resultado obtenido por la técnica original,
es decir sin la implementación del espacio multiescala.

a) [15] b) [15] c) Autor d) [16]


a) [15] b) [15] c) Autor d) [16]

a) [15] b) [15] c) Autor d) [16]


a) [15] b) [15] c) Autor d) [16]
Figura 16 a) Cuadro de video 1 b) Cuadro de video 2 (ocurrió el movimiento) c). Resultado con método
multiescala implementado en ImageJ d). Resultado con el método original de Horn y Schunck
implementada en ImageJ [17]

37
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

a). [3] b). [3] c). Autor d). [16]

a). [3] b). [3] c). Autor d). [16]


Figura 17 a) Cuadro de video 1 b) Cuadro de video 2 (ocurrió el movimiento) c). Resultado con método
multiescala implementado en ImageJ d). Resultado con el método original de Horn y Schunck
implementada en ImageJ. [17]

En este ejemplo se puede apreciar que el resultado de la técnica original figura 17d), detecto muy
poco movimiento en comparación al detectado por la técnica con la implementación multiescala,
esto es interesante puesto que el movimiento en este caso es una rotación de la imagen en
general, y vemos como en el resultado del análisis multiescalar se aprecian colores más intensos
en el exterior de la imagen y colores más claros y cercanos al blanco en la parte central de la
imagen, esto tiene sentido porque al rotar un objeto, los desplazamientos más grandes ocurren
en los extremos más alejados del eje de rotación (en este caso el centro de la imagen), y los
desplazamientos más cortos son los cercanos al eje.

38
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

a) [15] b) [15] c) Autor d) [16]

a) [15] b) [15] c) Autor d) [16]

Figura 18 a) Cuadro de video 1 b) Cuadro de video 2 (ocurrió el movimiento) c). Resultado con la técnica
multiescala implementado en ImageJ d). Resultado con la técnica original de Horn y Schunck
implementada en ImageJ. [17]

Como se puede apreciar, la técnica original es útil para distinguir qué objetos se movieron, sin
embargo, el resultado no es muy claro y tampoco se puede definir que tanto se mueven estos
objetos, en cambio el resultado que entrega la implementación multiescala es mucho más claro
en cuanto a qué objetos se desplazaron y sobre todo la amplitud de este movimiento. Commented [JF46]: Resultados con una secuecia de
video ¿?

39
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Conclusiones
A partir del trabajo desarrollado se sacaron las siguientes conclusiones.

 El flujo óptico es una técnica importante para la detección de movimiento en


videos, dado que esta técnica no tiene solución única no es posible encontrar
una técnica óptima. Sin embargo, la técnica de Horn y Schunck muestra una
alternativa que permite obtener resultados adecuados.
 La implementación de la interpretación multiescala de la imagen como mejora a la
técnica original, realmente representa una diferencia significativa en el resultado
del procesamiento. Esto se pudo comprobar con las comparaciones realizadas en
el capítulo 3.3. Y sucede porque el análisis multiescalar permite detectar
movimientos en una alta escala de desplazamientos comenzando por el más
pequeño. La técnica de Horn y Schunck es lenta y el método multiescala es mucho Commented [JF47]: Tiempos ¿?

más lento dado el número de imágenes que se analizan. Por lo tanto, deben
utilizarse computadores de alta capacidad de procesamiento para el análisis de
este tipo de técnicas.
 La visualización de los vectores U y V, puede ser útil en ciertos casos, como por Commented [JF48]: Notacion ¿?

ejemplo cuando se requiera determinar cuáles objetos se desplazaron hacia una


dirección específica, o para calcular la velocidad de un determinado objeto, como
en el caso de las cámaras de tránsito, dado que estos vectores permiten obtener
la dirección y magnitud de los movimientos en los ejes 𝒙 y 𝒚 dirección como
magnitud.
 Modificando los parámetros del método de escala es posible determinar la
cantidad de movimiento que se desea obtener en la imagen resultante y buscar
reducir el tiempo de ejecución del método.
 El uso de una paleta de colores permite una mejor visualización del resultado del
flujo óptico, puesto que los colores permiten definir movimientos son más amplios

40
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

y en qué dirección se desplazan los objetos, lo que representa para el usuario una
imagen con un resultado más intuitivo, y más fácil de entender.

41
______________________________________________________________________
Tesis de grado Ingeniería Electrónica
Estudio de Movimiento de objetos en imágenes basados en el método de flujo
Óptico de Horn y Schunk.
__________________________________________________________________

Bibliografía Commented [JF49]: Formato incorrecto.

[1] B. K. H. a. G. G. Schunck, Determining optical flow, Artificial Intelligence, 1981.


[2] B. L. a. T. Kanade, Proc. darpa iu work-shop, Carnegie, 1981.
[3] E. M.-L. G. F. Javier Sánchez, TV-L1 Optical Flow Estimation, 2012.
[4] J. Gibson, The Perception of the Visual World, University of Illinois Press, 1951.
[5] A.P, Measuring visual motion from image sequences, 1987.
[6] J. a. H.D, Dept. computer science, 1990.
[7] H. L. K. H. Barman H, Motion workshop, 1991.
[8] P. V. S. Ghosal, A fast scalable algorithm for discontinuous optical flow estimation,
1996.
[9] H. Y. a. Tjahjadi, Optical flow estimation and segmentation through fitting and
robust statistics, IEEE International Conference, 2003.
[10] X. H. a. L. Zaiming, A velocity measuring system for vehicle with camera, 2006.
[11] T. P. a. H. B. C. Zach, A Duality Based Approach for Realtime TV-L1, 2007.
[12] D. M. Shah, "https://www.youtube.com/watch?v=5VyLAH8BhF8&t=754s," UCF
Computer Vision Video, 2012. [Online].
[13] R. Valle, "https://gist.github.com/bobetocalo/e302fed4ca19c9b7807a," [Online].
[14] J. S. D. K. Enric Meinhardt-Llopis, Horn–Schunck Optical Flow with a Multi-Scale
Strategy, 2013.
[15] D. Scharstein, "http://vision.middlebury.edu/flow/data/," 16 Agosto 2009. [Online].
[16] A. C. P. y. K. D. V. Angie Natalia Murillo, "Aplicación de técnica Horn – Schunck a
una," 2019.

42
______________________________________________________________________
Tesis de grado Ingeniería Electrónica

También podría gustarte