Vous êtes sur la page 1sur 15

UNIVERSIDAD POLITCNICA

DE MADRID
MASTER EN AUTOMTICA Y ROBTICA

TECNICAS AVANZADAS DE VISIN POR COMPUTADOR


GABRIEL VINICIO MOREANO SANCHEZ
NMERO DE MATRCULA: M15128
Trabajo de la Asignatura

MADRID, JUNIO DE 2016

Deteccin y Seguimiento de Objetos


1.- Objetivos:
El objetivo del trabajo es la deteccin y reconocimiento de objetos conocidos en un
entorno estructurado (interior), mediante el anlisis de una secuencia de video
desconocida.

2.- Introduccin
La deteccin de objetos en movimiento y de seguimiento basado en el movimiento son
componentes importantes de muchas aplicaciones de visin por ordenador. El problema
de seguimiento de objetos basado en movimiento se puede dividir en dos partes:

Detectar objetos en movimiento en cada cuadro


Asociar las detecciones correspondientes al mismo objeto con el tiempo

Deteccin.- Si bien existen otras reas, la deteccin de objetos es una de las ms


estudiadas y por lo tanto de las que ms aplicaciones tienen, digamos que es la que tiene
mayor usabilidad, de cara al usuario comn. La deteccin de objetos tiene la capacidad
de identificar todas las instancias o caractersticas de un objeto determinado dentro de
una imagen. [1]
Seguimiento.- Tracking en ingles es el proceso de estimar en el tiempo la ubicacin de
uno o ms objetos mviles mediante el uso de una cmara. La rpida mejora en cuanto
a calidad y resolucin de los sensores de imagen, juntamente con el dramtico
incremento en cuanto a la potencia de clculo en la ltima dcada, ha favorecido la
creacin de nuevos algoritmos y aplicaciones mediante el seguimiento de objetos.
El seguimiento de objetos puede ser un proceso lento debido a la gran cantidad de datos
que contiene un video. Adems, la posible necesidad de utilizar tcnicas de
reconocimiento de objetos para realizar el seguimiento incrementa su complejidad.
Un ejemplo de deteccin y seguimiento de objetos se puede observar en las cmaras
digitales con la funcin de deteccin de rostros (ver Figura 1). [2]

Figura 1. Ejemplo de deteccin de rostros en una imagen.


Gabriel Moreano _ TAVC _ MUAR _ UPM

Odometra Visual.- La odometra visual se refiere al proceso de estimar el movimiento


de un agente (robot, vehculo, persona, etc.) a partir de secuencias de imgenes
capturadas por una (enfoque monocular) o varias cmaras ubicadas sobre dicho agente.
[3]

3.- Desarrollo de la aplicacin


Como se indica en los objetivos en este trabajo se pretende desarrollar una aplicacin
que pueda detectar y seguir objetos en una secuencia desconocida de video, para la
realizacin del mismo se dispone de un video sobre el cual se trabaj en la aplicacin de
algoritmos previa comprobacin en la secuencia real de imgenes.
Se opt por utilizar el software Matlab para la realizacin de este trabajo por la facilidad
que tenemos de acceder a esta herramienta computacional y porque brinda una amplia
cantidad de instrucciones y funciones para trabajar en el rea de visin por computador.
A continuacin en cada punto de este apartado se describe paso a paso como fue la
creacin del programa desarrollado, as como los algoritmos probados, utilizados y
analizados. Mientras en el prximo apartado se muestran varias resultados obtenidos
con el programa terminado y funcionando.
3.1.- Inicializacin del Reproductor
Como punto inicial para el desarrollo de cualquier algoritmo de deteccin y seguimiento
de objetos es necesario adquirir los fotogramas que componen el video en cuestin, es
decir, se descompone el video donde se quiere detectar los objetos en fotogramas
consecutivos uno despus de otro, as podemos tener siempre un fotograma del video
con informacin especfica de un instante de la escena sobre la cual trabajar o aplicar
algn algoritmo de deteccin o seguimiento.
EL nmero de fotogramas depende de la edicin que se haya realizado a un video
especfico, en el caso del video obtenido para desarrollo de la aplicacin tenemos
alrededor de 30 fotogramas por segundo, este valor puede influir de manera especial
en el rendimiento de la aplicacin, por ejemplo si considera detectar objetos sobre los
30 fotogramas a cada segundo y dependiendo los algoritmos que se utilicen en cada
anlisis puede resultar un video demasiado lento y extenso.
Matlab proporciona varias herramientas para almacenar los fotogramas de un video en
una variable, as como herramientas reproducir estos fotogramas habiendo o no trabajo
sobre ellos; en este trabajo se utilizaron las herramientas vision.VideoFileReader
y vision.DeployableVideoPlayer para la obtencin de fotogramas y reproduccin
de los mismo, a continuacin un ejemplo de su configuracin.
Gabriel Moreano _ TAVC _ MUAR _ UPM

%% Inicializo el video y el reproductor


video = vision.VideoFileReader('desarrollo.mp4');
player = vision.DeployableVideoPlayer('Location', [10,100]);
while ~isDone(video)
frame = step(video);
step(player,frame);
end

En la variable video se almacenan los fotogramas del video de desarrollo, con la


funcin step se obtiene la informacin del siguiente fotograma del video para
reproducirla secuencialmente con el reproductor creado llamado en este caso player.
3.2.- Anlisis de los objetos a detectar
Una parte decisiva en la creacin del programa es poder diferenciar de manera ptima
los objetos a detectar, en el presente trabajo se pide detectar los objetos que se
muestran en la Figura 2.
Objeto1

Objeto2

Objeto3

Figura 2. Objetos que se desean detectar en el programa.


Como se puede observar se tienen dos objetos muy similares (2 y 3) y otro muy distinto,
por lo que a simple vista se puede observar que se tendrn muchos problemas al
intentar diferenciar entre el objeto 2 y 3, ya que son muy parecidos tanto en forma como
en color.
Para evitar que el programa se confunda con estos dos objetos y pudiera entregar falsos
positivos se intent diferenciar los objetos utilizando pequeos detalles que cada uno
posee y el otro no, as los objetos finales a detectar van a ser los mostrados en la Figura
3.
Objeto1

Objeto2

Objeto3

Figura 3. Objetos a detectar y seguir en el programa desarrollado.


Gabriel Moreano _ TAVC _ MUAR _ UPM

Como se aprecia en la figura 3 los objetos a detectar ya tienen cierta diferencia uno con
otro al menos en forma y esquinas lo que facilitara diferenciarlos entre s, al realizar
este procedimiento tambin reducimos el nmero de esquinas o puntos caractersticos
de los objetos corriendo el riesgo de no detectarlos en la secuencia de imgenes.
3.3.- Dificultades en la deteccin y seguimiento de objetos [4]
Adems del reto de seguimiento que causa el clutter, los cambios de aspecto del
objeto en el plano de la imagen dificultan el seguimiento causado por uno o ms de los
siguientes factores:
Cambios de posicin.- El objeto mvil de inters vara su aspecto cuando se proyecta
sobre el plano de la imagen, por ejemplo, al girar.
Iluminacin ambiente.- La direccin, la intensidad y el color de la luz de ambiente
influyen en el aspecto del objeto de inters. Asimismo, los cambios en la iluminacin
global son con frecuencia un reto en las escenas al aire libre.
Ruido.- El proceso de adquisicin de imgenes introduce en la seal de la imagen un
cierto grado de ruido que depende de la calidad del sensor. Las observaciones del objeto
de inters pueden daarse y por tanto afectar al rendimiento del seguidor.
Oclusiones.- Puede ser que un objeto de inters no se observe bien cuando sea parcial
o totalmente tapado por otros objetos en la escena.
3.4.- Detector de puntos caractersticos BRISK
Este detector de puntos clave de una imagen busca dar velocidad de procesamiento a
una aplicacin utilizando una combinacin de escala espacio entra cada punto clave su
vecindario en la secuencia de imgenes. [5] Se realizaron las pruebas para este trabajo
obteniendo no muy buenos resultados ya que los puntos de correspondencia que se
obtenan no eran los suficientemente fiables o en algunos casos eran inexistentes. Dos
resultados de la aplicacin de este algoritmo se pueden ver en la Figura4.

Puntos = 74

Puntos = 379
Gabriel Moreano _ TAVC _ MUAR _ UPM

Figura 4. Match de puntos detectados con BRISK.


Como se puede ver en el ejemplo no se encontraron coincidencias entre los puntos de
imagen referencial del objeto y la imagen de la escena a pesar de tener un alto nmero
de puntos caractersticos en ambas imgenes por lo que descartamos este mtodo de
trabajo.
3.5.- Deteccin de esquinas Harris
Harris y Stephens plantean el detector de esquinas basndose en el algoritmo de
Moravec e intentando mejorarlo, se considera el diferencial de una esquina con
respecto a la direccin directamente. Esta puntuacin de esquinas se refiere a la suma
de las diferencias al cuadrado. [6]
Al utilizar el detector de esquinas de Harris con la instruccin disponible en Matlab se
obtiene una mejora en los resultados pero tampoco satisfactorios, en la Figura 5
observamos las esquinas detectadas en un fotograma del video de desarrollo, y las
correspondencias existentes con la imagen del objeto de referencia.

Puntos = 33

Puntos = 143

Figura 5. Match de esquinas detectadas con Harris.


Gabriel Moreano _ TAVC _ MUAR _ UPM

Como se puede observar se tiene una correspondencia a pesar que el nmero de


esquinas detectadas en ambas imgenes es mucho menos que al utilizar el detector
BRISK, a pesar de observar una mayor robustez en este mtodo no se aporta la
informacin necesaria para detectar el objeto.
3.6.- Deteccin de regiones MSER
El detector MSER utiliza pasos de gama de intensidad de forma incremental de la imagen
de entrada para detectar regiones estables. [7]
Este detector nos entrega informacin de regiones completas de la imagen o regiones
del objeto que pueden diferenciarse a fin de corresponderse con otro, en la Figura 6 se
puede observar el resultado de aplicar este mtodo de deteccin.

Puntos = 111

Puntos = 173

Figura 6. Match de regiones detectadas con el algoritmo MSER.


Se observa en el resultado del ejemplo que se tiene cuatro correspondencias entre la
imagen de referencia y la escena del video lo cual ya se puede considerar como
informacin importante para el desarrollo del trabajo, el problema es que si nos fijamos
en las correspondencias dos son verdaderas y dos son falsas, en si se podra detectar el
objeto pero se tendran pequeo problemas al momento de realizar la localizacin y el
seguimiento del objeto.

Gabriel Moreano _ TAVC _ MUAR _ UPM

3.7.- Detector de puntos clave SURF


SURF es un detector y un descriptor de alto rendimiento de los puntos de inters de una
imagen, donde se transforma la imagen en coordenadas, utilizando una tcnica llamada
multi-resolucin. Consiste en hacer una rplica de la imagen original de forma Piramidal
Gaussiana o Piramidal Laplaciana, y obtener imgenes del mismo tamao pero con el
ancho de banda reducido. De esta manera se consigue un efecto de borrosidad sobre la
imagen original, llamado Scale-Space. Esta tcnica asegura que los puntos de inters
son invariantes en el escalado. [8]
Con la ayuda del detector de caractersticas SURF de Matlab se repite el ejercicio a fin
de comprobar la robustez del mtodo. En la Figura 7 observamos los resultados de esta
prueba.

Puntos = 103

Puntos = 274

Figura 7. Match de puntos detectados con el algoritmo SURF.


Al utilizar el mtodo SURF se observa primero que se tiene una mayor cantidad de
puntos detectados en ambas imgenes, despus se ve que tiene seis correspondencias
Gabriel Moreano _ TAVC _ MUAR _ UPM

en las imgenes y finalmente que son reales, esta informacin es suficiente para
detectar el objeto en la escena y localizarla sin problemas como se ve en la ltima grfica
de la Figura 7.
3.8.- Combinacin de detectores
En un intento de mejorar la deteccin del objeto en el ejemplo se implement una
combinacin del detector de regiones MSER y el detector de puntos caractersticos SURF
obtenindose os resultados de la Figura 8.

Figura 8. Match de puntos detectado con la combinacin de detectores SURF y MSER.


En un principio esta combinacin de algoritmos de deteccin genera ms puntos y
coincidencias entre los puntos y regiones encontrados en las imgenes pero generando
varios problemas como:

Gabriel Moreano _ TAVC _ MUAR _ UPM

La mayora de correspondencias entre imgenes son falsas o redundantes lo que


afecta al clculo del matriz fundamental y por tanto a la localizacin del objeto
en la escena.
Se pueden eliminar las falsas correspondencias pero permanecen demasiados
puntos redundantes.
Se tiene un coste computacional muy alto al utilizar los dos detectores al mismo
tiempo, esto se puede apreciar fcilmente al ver la velocidad de reproduccin de
video siendo analizada.

Por los puntos mencionados se decidi descartar el mtodo de combinacin de


detectores, cabe mencionar en este punto que los ejercicios se realizaron para varias
escenas del video e intentando detectar los tres objetos en diferentes momentos, en
esta memoria se recoge un solo ejemplo para demostrar el trabajo realizado y por qu
se decidi utilizar como nico mtodo de deteccin el algoritmo SURF.

3.9.- Eliminacin de falsos positivos


A pesar de que el algoritmo de deteccin SURF es bastante robusto ante rotaciones y
cambios de escala en la secuencia de imgenes se detectaron varios falsos positivos o
confunciones entre el objeto 2 y 3, para tratar de eliminar estos falsos positivo se
tomaron dos acciones individuales que son:

Filtrar la imagen intentando eliminar el fondo de la escena.


Crear un lazo de comparacin entre un estado anterior y el estado actual.

Filtrar la escena.- Se utiliz un filtro sobre las escenas intentando diferenciar lo ms


posible el fondo de las imgenes de los objetos de inters, para esto se us un ajuste en
el valor de la intensidad de la imagen con la instruccin imadjust de Matlab que nos
ayuda a mejorar el contraste de las imgenes pudiendo eliminar de forma efectiva los
problemas por reflejos pero reduciendo la efectividad en zonas de poca luz.
Como segunda opcin para la eliminacin del fondo de la escena se implement el
algoritmo de mixturas gaussianas, que es un algoritmo de aprendizaje automtico que
detecta objetos en movimiento y segmenta la imagen creando un conjunto de pixeles
llamado mancha que identifica a un objeto en movimiento. El problema de este
algoritmo es que en nuestra aplicacin no tenemos una escena fija, es decir, el fondo de
la escena donde tenemos nuestros objetos varan tanto en color como en textura por lo
que se le dificulta al algoritmo diferenciar de manera ptima los objetos del fondo de la
escena un ejemplo podemos observar en la Figura 9.

Gabriel Moreano _ TAVC _ MUAR _ UPM

Figura 9. Imagen original y despus de aplicar el filtro de mixturas gaussianas.


El agregar el algoritmo de mixturas gaussianas afecta directamente al rendimiento del
programa y genera ms falsos positivos en lugar de eliminarlos por lo que se decidi
trabajar con el filtro de intensidad de la imagen.
Lazo de cambio de estado.- como un mtodo auxiliar para mejorar la respuesta del
programa se desarrollo un lazo que discrimina un nuevo objeto detectado si no es igual
a otro detectado anteriormente, esto se puede explicar de la siguiente forma:
1.- Se detecta un objeto, (ejemplo objeto 2).
2.- Se memoriza el ltimo objeto encontrado (en el ejemplo objeto 2).
3.- Si se detecta un nuevo objeto:
3.1.- Si el nuevo objeto encontrado es el objeto 2 se acepta la respuesta por ser
el mismo que el ltimo encontrado, se actualiza el ltimo encontrado.
3.2.- Si el nuevo objeto encontrado es diferente al objeto 2 (ejemplo objeto 1) se
rechaza este objeto por no coincidir con el estado anterior y se actualiza la
memoria del ltimo objeto encontrado.
4.- Si nuevamente se detecta el objeto 1 se reconoce que la espuesta era vlida y se
aepta ese objeto encontrado.
Con este lazo auxiliar comparativo retrasamos al menos en un fotograma la deteccin
de los objetos pero nos aseguramos de no tener falsos positivos transitorios.

3.10.- Localizacin de los objetos


Una vez que mediante descarte de detectores se decidi trabajar exclusivamente con el
detector SURF no basta con detectar los objetos sino que debemos localizarlos en la
escena.
Para la localizacin de los objetos realizamos los siguientes pasos:

Gabriel Moreano _ TAVC _ MUAR _ UPM

1.- Deteccin.- con el algoritmo SURF y la instruccin matchFeatures podemos


obtener las correspondencias entre las imgenes de la escena y las de referencia, una
vez que encontramos un nmero adecuado de correspondencias podemos asumir que
encontramos un objeto.
2.- Obtener informacin.- aplicamos un mtodo de transformacin geomtrica a la
informacin de correspondencias que tenemos para obtener la matriz fundamental
relacionada al objeto detectado.
3.- Al aplicar un mtodo de transformacin espacial a las esquinas de la imagen del
objeto de referencia con la matriz fundamental obtenida, generamos las esquinas del
objeto detecta en la escena.
4.- Creamos un objeto que sea visible en la escena mostrando la ubicacin del objeto.
Para ello se utiliz una combinacin de herramientas que son:

Visin.ShapeInserter.- esta herramienta nos ayuda a crear un polgono con los


vrtices que hemos calculado.
InsertObjectAnotation.- esta herramienta se utiliza para etiquetar el objeto.
En la Figura 10 podemos ver un ejemplo de la localizacin del objeto y su etiquetado.

Figura 10. Objeto detectado y localizado.

3.11.- Seguimiento de los objetos [9]


Una vez detectado alguno de los objetos se debe activar el tracking para conocer
constantemente lo posicin del objeto en la escena, para ello se utiliz el objeto de
tracking de Matlab vision.PointTracker, este objeto utiliza el algoritmo KanadeLucas-Tomasi (KLT) para el seguimiento de puntos en una imagen.

Gabriel Moreano _ TAVC _ MUAR _ UPM

Funciona especialmente bien para el seguimiento de objetos que no cambian de forma


y para aquellos que exhiben textura visual. El seguidor del punto a menudo se utiliza
para el seguimiento a corto plazo como parte de un marco de seguimiento ms grande.
Como el algoritmo de seguimiento de punto progresa con el tiempo, los puntos se
pueden perder debido a la variacin de iluminacin, la rotacin de avin, o el
movimiento articulado. Para realizar un seguimiento de un objeto durante un largo
perodo de tiempo, es posible que necesite volver a adquirir puntos peridicamente.
El procedimiento para el seguimiento es el siguiente:
1.- Deteccin del objeto.
2.- Localizacin del objeto y sus puntos caractersticos dentro de la escena.
3.- Inicializacin del objeto de tracking.
4.- Interrumpir la deteccin de objetos y permitir el tracking de los puntos caractersticos
en cada fotograma del video mientras existan puntos disponibles.
5.- Cuando todos los puntos que se estn siguiendo desaparezcan se resetea el objeto
de tracking para un prximo uso.

4.- Resultados
En este apartado se comentar brevemente los resultados obtenidos al terminar la
realizacin del programa; el programa desarrollado en Matlab contiene los comentarios
suficientes para poder entenderse por lo que no se explicar en esta memoria paso a
paso lo que realiza en el programa.
Para el video de desarrollo se tienen los siguientes resultados:

Reconocimiento de todos objetos.


Seguimiento bastante aceptable para las zonas requeridas.
Velocidad del sistema de 3 a 1 en comparacin al video original (bastante rpido
para no cansarse).
No se puede detectar ms de un objeto en la misma escena ya que al entrar en la
zona de tracking el programa se concentra en un solo objeto.
Pequeas intermitencias en el recuadro localizador de pocos objetos, en la mayora
de objetos la respuesta es ptima indicando la zona requerida.

Finalmente en la Figura 11 se ven los resultados obtenidos para los objetos en distintos
instantes del video.
Gabriel Moreano _ TAVC _ MUAR _ UPM

Figura 11. Deteccin y localizacin de los objetos por el programa desarrollado.

5.- Bibliografa:
[1] Reconocimiento de Objetos, Alberto Escudero Pardo, Universidad de Barcelona.
[2] DETECCIN Y SEGUIMIENTO DE OBJETOS CON CMARAS EN MOVIMIENTO, Hector
Lopez, Universidad Autnoma de Madrid.
[3]
https://prezi.com/tl9fmj3cs4ai/sistema-de-odometria-visual-estimacion-de-la
localizacion-d/
[4] https://es.wikipedia.org/wiki/Seguimiento_de_objetos
Gabriel Moreano _ TAVC _ MUAR _ UPM

[5] Leutenegger, S., M. Chli and R. Siegwart. "BRISK: Binary Robust Invariant Scalable
Keypoints", Proceedings of the IEEE International Conference, ICCV, 2011.
[6] Harris, C., and M. Stephens, "A Combined Corner and Edge Detector," Proceedings
of the 4th Alvey Vision Conference, August 1988, pp. 147-151.
[7] Nister, D., and H. Stewenius, "Linear Time Maximally Stable Extremal
Regions", Lecture Notes in Computer Science. 10th European Conference on Computer
Vision, Marseille, France: 2008, no. 5303, pp. 183196.
[8] https://es.wikipedia.org/wiki/SURF
[9] Lucas, Bruce D. y Takeo Kanade. "Una tcnica de registro de la imagen iterativa con
una aplicacin de visin estreo," Actas de la 7 Conferencia Internacional Conjunta
sobre Inteligencia Artificial , de abril de 1981, pp. 674-679.

Gabriel Moreano _ TAVC _ MUAR _ UPM

Vous aimerez peut-être aussi