SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS...

80
SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS POR MEDIO DE VISIÒN ARTIFICIAL ANDRÉS MAURICIO GARCIA PIRAGUA WILLIAM ALEXANDER MORENO GOMEZ TRABAJO DE GRADO PARA OPTAR AL TITULO DE INGENIERO EN CONTROL. DIRGIDO POR: ING. MIGUEL RICARDO PEREZ PEREIRA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLOGICA INGENIERIA EN CONTROL Bogotá D.C. Colombia 2016

Transcript of SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS...

Page 1: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS POR MEDIO

DE VISIÒN ARTIFICIAL

ANDRÉS MAURICIO GARCIA PIRAGUA

WILLIAM ALEXANDER MORENO GOMEZ

TRABAJO DE GRADO PARA OPTAR AL TITULO DE INGENIERO EN CONTROL.

DIRGIDO POR: ING. MIGUEL RICARDO PEREZ PEREIRA

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLOGICA INGENIERIA EN CONTROL

Bogotá D.C. Colombia

2016

Page 2: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

HOJA DE ACEPTACION

Sistema de conteo automático de personas por medio de visión artificial

OBSERVACIONES

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

_____________________________

Director del Proyecto

Ing. Miguel Pérez Pereira

Fecha de presentación Mayo de 2016

Page 3: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Dedicatoria

Andres: Dedico este trabajo a mis Padres, hermanos, amigos y todas las personas

que me apoyaron día a día en este camino, gracias por su voto de confianza.

William: Dedico este trabajo a mis Padres quienes con su apoyo me han brindado la

motivación para lograr mi desarrollo profesional, a mi familia quienes han sido parte

importante y ejemplo a seguir y todas las personas que han hecho parte de este

gran logro..

Page 4: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

AGRADECIMIENTOS

Andrés: Gracias a Dios por mi familia, mis profesores, amigos y compañeros que

estuvieron compartiendo con nosotros durante estos años, nunca los olvidare porque

siempre nos apoyaron con sus consejos y enseñanzas. Gracias a mis padres por su

apoyo, su paciencia y su fe en mí. Y gracias a esa mujer que me ha llenado de

muchas sonrisas para superar los momentos más difíciles.

William: Doy gracias principalmente a Dios por brindarme las herramientas para

haber alcanzado esta meta y por haberme brindado el apoyo de familiares,

profesores, amigos e incluso personas que me enseñaron a comprender el

transcurso por la universidad. Gracias profundas a mis padres ya que son el motivo

de este gran esfuerzo, a mi compañero de grado quien me brindo un gran apoyo

durante la carrera y a todas las personas que me brindaron un apoyo moral durante

estos años.

Page 5: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

RESUMEN

Un problema típico en una ciudad tan poblada como lo es Bogotá es la densidad de

personas que concurren a sitios de carácter público, muchos sitios carecen de

sistemas de control de aforo de personas, debido al costo de implementación y

mantenimiento, por ello se pensó en una solución a partir de dispositivos no

mecánicos. Desde el área del Procesamiento digital de señales y Visión artificial se

propuso implementar un contador de personas versátil, capaz de trabajar en tiempo

real, y sobre cualquier tipo de fuente de video, basado en soluciones de código

abierto de tal forma que no haya restricción de ningún tipo a la hora de usar,

modificar, o comercializar la solución. Se implementaron dos algoritmos diferentes

para identificación de peatones, los algoritmos fueron programados sobre Python y

librerías OpenCV donde mediante pruebas de desempeño se identificó el algoritmo

más óptimo en cuanto a uso de recursos de hardware y precisión para realizar un

conteo de personas sobre un entorno real controlado. Al final se tiene como resultado

dos algoritmos de identificación que se pueden llevar a otras aplicaciones como

seguridad y vigilancia sobre múltiples plataformas gracias al lenguaje de

programación el cual puede ser portado fácilmente sin restricciones de ningún tipo.

Palabras clave: Extracción de características, Análisis de imágenes, Detección de

objetos, Técnicas de sustracción, Reconocimiento en imágenes, Histograma de

Gradientes

Page 6: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Abstract

A typical problem in such populated as it is Bogotá city is the density of people

attending sites public, many sites lack control systems capacity of people because

the cost of implementation and maintenance, so think of a solution from non-

mechanical devices. Since the area of digital signal processing and artificial vision we

set to implement a versatile counter, able to work in real time, and any type of video

source, based on open source solutions so that there is no restriction to use, modify,

or implement in market the solution. Two different algorithms for identifying

pedestrians were implemented, the algorithms are programmed in Python and

libraries OpenCV where by performance tests the most optimal algorithm identified

regarding use of hardware resources and precision for a count of people on a real

environment checked. Eventually results in two identification algorithms that can lead

to other applications such as security and surveillance on multiple platforms thanks to

the programming language that can be easily ported without any restrictions

Keywords: Feature extraction, Image analysis, Object detection, Subtraction

techniques, Image recognition, Histogram of Oriented Gradients.

Page 7: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Tabla de Contenido

LISTA DE FIGURAS ................................................................................................... 9

LISTA DE TABLAS .................................................................................................... 11

Capítulo 1 .................................................................................................................. 12

1. Introducción ........................................................................................................ 12

1.1 Descripción .................................................................................................. 12

1.2 Objetivo General .......................................................................................... 13

1.2.1 Objetivos Específicos ............................................................................ 13

1.3 Motivación .................................................................................................... 13

Capítulo 2 .................................................................................................................. 15

2. Estado del arte ................................................................................................... 15

Capítulo 3 .................................................................................................................. 17

3. Marco Teórico .................................................................................................... 17

3.1 Definiciones .................................................................................................. 17

3.2 Algoritmos de Detección de Personas ......................................................... 24

3.3 Detección Mediante Descriptores de Gradientes Orientados ....................... 25

3.3.1. Entrenamiento de la maquina HOG descriptor ...................................... 25

3.3.2. Aplicación del algoritmo HOG descriptor ............................................... 26

3.3.3. Pirámides de imágenes HOG para OpenCV ......................................... 29

3.4 Detección mediante técnicas de sustracción de Fondo y extracción de blobs

30

3.4.1 Background Subtractor MOG2 (segmentación de mezclas Gaussianas) .. 32

3.4.2. Extracción de Blobs .................................................................................. 38

3.5 Fuente de Video para el análisis. ................................................................. 39

Capítulo 4 .................................................................................................................. 41

4. Metodología ....................................................................................................... 41

4.1 Introducción: ................................................................................................. 41

Page 8: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

4.2 Arquitectura de Hardware y Software ........................................................... 42

4.3 Arquitectura Funcional .................................................................................. 43

4.4 Implementación de Descriptores HOG en OpenCV ..................................... 44

4.5 Implementación de sustractor de fondo y extracción de blobs ..................... 54

4.6 Evaluación de los algoritmos de identificación. ............................................ 61

4.7 Puesta a prueba del mejor algoritmo de identificación. ................................ 66

4.8 Caracterización del ambiente real controlado. ............................................. 68

Capítulo 5 .................................................................................................................. 71

5. Análisis de resultados y conclusiones ................................................................ 71

5.1 Análisis de resultados: .................................................................................. 71

5.2 Conclusiones: ............................................................................................... 75

5.3 Trabajo Futuro .............................................................................................. 76

Bibliografía ................................................................................................................. 77

6. Anexos ............................................................................................................... 80

6.1 Licencia de uso OPEN CV: (http://opencv.org/license.html) ......................... 80

Page 9: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

LISTA DE FIGURAS

FIG. 1. ESPACIO DE COLOR RGB [5] ......................................................................................................... 18

FIG. 2 ESPACIO DE COLOR HSV [6] ........................................................................................................... 19

FIG. 3. HISTOGRAMA DE UNA IMAGEN EN ESCALA DE GRISES Y POR COLORES RGB ...................................... 20

FIG. 4 DIAGRAMA DE BLOQUES HOG DESCRIPTOR [8] ................................................................................ 26

FIG. 5. FUNCIÓN DEL DETECTOR HOG. [8] ................................................................................................ 28

FIG. 6. REPRESENTACIÓN PIRAMIDAL DE UNA IMAGEN A 5 NIVELES [10] ....................................................... 30

FIG. 7. IMÁGENES Y SU DIAGRAMA DE DISPERSIÓN ...................................................................................... 33

FIG. 8 CREACIÓN DE BLOB A PARTIR DE UN UMBRAL DEFINIDO SOBRE LA IMAGEN [15]. ................................. 39

FIG. 9 CAMERA CANON POWER SHOT A2500 [16] ..................................................................................... 40

FIG. 10. CÁMARA WEB LOGITECH QUICK CAM [17] .................................................................................... 40

FIG. 11 DIAGRAMA DE FLUJO APLICACIÓN PRINCIPAL ................................................................................... 44

FIG. 12. DIAGRAMA DE FLUJO DETECCIÓN POR HOG .................................................................................. 45

FIG. 13. IMAGEN DE PRUEBA PARA CALIBRAR EL DETECTOR HOG ............................................................... 47

FIG. 14. RESULTADO DE DETECCIONES A PARTIR DE LA VARIACIÓN DEL WINSTRIDE. ..................................... 47

FIG. 15. ANÁLISIS DE DESEMPEÑO POR VARIACIÓN DE WINSTRIDE.. ............................................................. 48

FIG. 16 RESULTADO DE DETECCIONES POR VARIACIÓN DEL PADDING. ......................................................... 49

FIG. 17 VELOCIDAD DE DETECCIÓN POR VARIACIÓN DEL PADING ................................................................. 49

FIG. 18. RESULTADO DE DETECCIONES POR VARIACIÓN DE ESCALADO. ....................................................... 50

FIG. 19. VELOCIDAD DE DETECCIÓN POR VARIACIÓN DE ESCALADO.. ........................................................... 51

FIG. 20. MÚLTIPLE DETECCIÓN Y FALSOS POSITIVOS ................................................................................... 52

FIG. 21. IMÁGENES DE ENTRENAMIENTO PARA LA MAQUINA SVM. ............................................................... 53

FIG. 22. DIAGRAMA DE FLUJO PARA ALGORITMO DE DETECCION POR SUSTRACCION DE FONDO ..................... 55

FIG. 23 OBTENCIÓN FOTOGRAMA POR FOTOGRAMA DEL VIDEO .................................................................. 56

FIG. 24. SEPARACIÓN DEL FOREGROUND MEDIANTE SUSTRACTOR DE FONDO. ............................................. 57

Page 10: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

FIG. 25 APLICACIÓN DE FILTRO MORFOLÓGICO DE EROSIÓN. ...................................................................... 58

FIG. 26. APLICACIÓN DE FILTRO MORFOLÓGICO DE DILATACIÓN .................................................................. 58

FIG. 27. DETECCIÓN DE BLOBS MEDIANTE LA MASCARA .............................................................................. 59

FIG. 28. DETECCIÓN DE PERSONAS ............................................................................................................ 60

FIG. 29. GENERACIÓN DE VIDEO RESULTANTE ............................................................................................ 60

FIG. 30 GRAFICA DE PROCESAMIENTO EN FPS DEL ALGORITMO HOG ......................................................... 61

FIG. 31 GRAFICA DE PROCESAMIENTO EN FPS DE IMÁGENES A 400X300 PIXELES ....................................... 62

FIG. 32 PROCESAMIENTO EN FPS BACKGROUND SUBTRACTION .................................................................. 63

FIG. 33 DESEMPEÑO HOG DESCRIPTOR ARRIBA USO DE CPU, ABAJO USO DE RAM .................................... 64

FIG. 34 DESEMPEÑO DEL BACKGROUND SUBTRACTION ............................................................................... 65

FIG. 35 IMPLEMENTACIÓN DEL ALGORITMO HOG ....................................................................................... 67

FIG. 36 DETECCIÓN DE DOS PERSONAS MEDIANTE SUSTRACTOR DE FONDO Y BLOBS ................................... 72

FIG. 37 DETECCIÓN DE DOS PERSONAS POR HOG DESCRIPTOR.................................................................. 72

FIG. 38 CONFUSIÓN DEL DETECTOR POR UN CAMBIO DE LUZ REPENTINO. ..................................................... 73

FIG. 39 COMPARACIÓN DE DETECCIÓN POR BLOBS Y HOG DESCRIPTOR . ................................................... 73

Page 11: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

LISTA DE TABLAS

TABLA 1. SPECIFICATIONS CANON POWER SHOT A2500 [16] ..................................................................... 40

TABLA 2. ESPECIFICACIONES LOGITECH QUICK CAM [17]. .......................................................................... 41

TABLA 3 . COMPARACION DE DETECCION DE PERSONAS .............................................................................. 66

Page 12: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Capítulo 1

1. Introducción

1.1 Descripción

El campo de la visión artificial es una disciplina que hace parte del Control electrónico

donde se busca mediante el análisis de imágenes que una maquina logre percibir su

entorno. Por muchos años abordar el campo de la investigación en visión artificial ha

sido una tarea difícil en parte, porque se busca solucionar un problema de forma

inversa, es decir buscar soluciones y respuestas a partir de información incompleta, y

por otra parte debido a las limitaciones tecnológicas que no lograban hace 30 años

concebir sistemas complejos trabajando en tiempo real. Gracias a los avances en

tecnología de los últimos 15 años, la implementación de algoritmos matemáticos

complejos sobre visión por computadora se ha facilitado bastante y por ello desde la

Ingeniería en Control se quiere aplicar ésta ciencia a un problema típico como lo es

la detección de personas mediante una cámara de video con el fin de generar un

conteo que permita calcular el aforo de asistentes en un lugar. Su aplicación puede

ser implementada en campos como la seguridad, administración, y el marketing,

entre otros, por la importancia que genera poder disponer de la información en

cuanto a número de visitantes, cantidad estimada de personas en un recinto,

estadística de asistencia, etc. Para lograr hacer la detección de personas mediante

Visión Artificial se desarrollaron dos tipos de algoritmos con el fin de indicar como se

lleva a cabo su implementación y optimización para trabajar en tiempo real,

posteriormente se explica una metodología de medición cuantitativa para demostrar

cuáles son las ventajas de un método respecto al otro tomando en cuenta la

precisión y el entorno de funcionamiento.

Además, el proyecto trabaja sobre la plataforma de código abierto Python y OpenCV

buscando amplia compatibilidad de códigos y vincular a la academia y al ingeniero a

desarrollar aplicaciones robustas sobre intérpretes de código abierto que permiten un

libre desarrollo y mejoramiento de las herramientas existentes con el mínimo de

restricciones referente a su copia, distribución o modificación.

Page 13: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

1.2 Objetivo General

Diseñar un sistema de conteo de personas basado en algoritmos de identificación de

imágenes continuas digitales.

1.2.1 Objetivos Específicos

1.1.1 Evaluar dos algoritmos de procesamiento continuo de

imágenes para conteo de personas.

1.1.2 Implementar el algoritmo de conteo de personas de mejor

desempeño entre los evaluados.

1.1.3 Realizar las pruebas del sistema para comprobar el

funcionamiento del algoritmo en un ambiente real

controlado.

1.3 Motivación

Dentro de la experiencia a través de la carrera un punto sobresaliente es que

muchos trabajos de tesis de ingeniería en control y telecomunicaciones han sido

basados en software privativo como Matlab, antes de empezar el proyecto para junio

de 2015 el proyecto estaba centrado sobre la herramienta Computer Vision System

Toolbox, pero en ese entonces hubo un inconveniente de adquisición de licencias

para los estudiantes, esto implicaba que toda tesis quedaba bloqueada por un

problema de licenciamiento ajeno a los estudiantes, por lo tanto la propuesta fue

desarrollar el proyecto sobre herramientas de código abierto.

Para ello se tomó OpenCV como base, liberado al público en el año 2000 y sobre la

que muchos institutos y universidades a nivel mundial han contribuido al desarrollo

de sus librerías con algoritmos y técnicas muy bien fundamentadas, es por esto que

el impulso que se le quiere dar al uso de esta plataforma desde el área del

procesamiento digital de señales en la carrera de ingeniería en control, busca lograr

en futuro dominar otras técnicas y algoritmos como el de redes neuronales, o

modelado 3-Dimensional. Se deja una puerta abierta a un mundo de posibilidades.

Page 14: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha
Page 15: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Capítulo 2

2. Estado del arte

En este capítulo se realiza una revisión de varios sistemas de detección

desarrollados con múltiples técnicas que brindaron una guía para buscar los dos

algoritmos a implementar y la metodología de detección que fuese más útil para

cumplir con los objetivos.

2.1 Sistema de conteo de personas basado en detección de rostros

En el trabajo de detección de rostros se tiene una visión positiva del proyecto; el

desempeño que han logrado hoy en día las herramientas computacionales permiten

avanzar en la implementación de soluciones basadas en sistemas más flexibles,

precisos y seguros basándose en sistemas informáticos que proveen una solución

económica de bajo mantenimiento como lo son las cámaras. Este trabajo se enfoca

en un análisis de imágenes de alta calidad para el monitoreo y control del área del

rostro, su principal componente se basa en el detector de rostros y el tracking que se

le hace hasta determinada región para saber si el sujeto avanzo y se debe contar [1].

2.2 Contador de alta densidad de personas usando herramientas morfológicas

En este trabajo se destaca el diagrama de flujo que proponen para el análisis de

imágenes. Aunque su trabajo está limitado a la cantidad de personas que están

presentes en determinado momento, representa un aporte bastante positivo para el

proyecto. Plantean problemas que se debe intentar solucionar como, el hecho que

las personas lleguen abrazadas y haga un conteo erróneo; este trabajo ubica la

cámara apuntando paralelamente al piso y utilizan una técnica de marcado de

pixeles para marcar sobre unos vectores entre imágenes que determinan hacia

donde se dirigen ciertos objetos. Existen problemas cuando las personas llevan

objetos como maletas de mano u otros que marcan también trayectorias sobre los

análisis y pueden convertirse en falsos positivos, pero hace parte de problemas que

estarán incluidos dentro del proyecto. El diagrama de flujo que propone estima la

extracción de los objetos que en la imagen están moviéndose, y estima la posible

existencia de una persona basándose en el área del objeto en movimiento, calcula el

Page 16: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

color de los pixeles en movimiento y le hace un seguimiento a través de un par le

líneas imaginarias que representan la entrada y salida del lugar para finalmente

hacer el conteo. Se considera que si el seguimiento a los pixeles no supera las líneas

imaginarias no se debe contar. Es de destacar que la aplicación se realiza con una

resolución de imagen de 320x240 a 30FPS, datos que para el proyecto plantea la

duda si es posible elevar la resolución de la imagen a costa de elevar el proceso

computacional pero mejorar la precisión del trabajo, propone si también se puede

considerar la posibilidad de elevar los fotogramas por segundo que se están tomando

en el video. El resultado final de este trabajo fue un contador de personas con buena

precisión [2].

2.3 Sistemas de reconocimiento basados en la imagen facial

En este trabajo el autor basa su trabajo en la detección facial y resume las

principales investigaciones en el campo del reconocimiento facial. El aporte más

importante de este artículo es la revisión matemática que se realiza para la

extracción de características en las imágenes. Además muestra que si bien los

algoritmos de identificación muestran una alta eficiencia ninguno es 100% confiable y

esto es porque la técnica de identificación por imágenes al no ser invasiva, deja un

margen de error que para algunas aplicaciones puede ser despreciable. Los trabajos

se basan en diferentes técnicas de detección de rostros como Eigenfaces, o

discriminantes lineales FLD de Fisher o Fisherfaces, estos trabajos se especializan

en detección de rostros sobre personas específicas y exponen identificadores claves

para el reconocimiento del área del rostro para eliminar el problema de los falsos

positivos cuando se ponga a prueba el prototipo [3].

2.4 Sistema adaptativo Multi-cámara para detección de objetos en tiempo real

Finalmente un trabajo enfocado a detección de objetos mediante el uso de las

técnicas de modelado de fondo y extracción (background modeling techniques), se

exponen 6 técnicas diferentes para construcción de Background entre las mejores

están: el promedio gaussiano, la estimación por densidad y la concurrencia por

variaciones de imágenes. La comparación de los métodos se hace entorno a la

velocidad, los requerimientos de memoria y la precisión de los métodos. Este Trabajo

extrae el objeto de interés y mediante un seguimiento de coordenadas se estima su

posición en el espacio muy útil si no es posible una detección morfológica [4].

Page 17: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Capítulo 3

3. Marco Teórico

Este capítulo estará dividido en 3 etapas, en primera instancia se hará una revisión

de los términos claves para la comprensión del proyecto, posteriormente se

consignan los elementos de software claves a tener en cuenta para que el proyecto

tenga el éxito esperado de portabilidad de código entre plataformas y finalmente se

presenta la revisión de la teoría de los métodos de detección que utilizados para el

proyecto.

3.1 Definiciones

En un trabajo enfocado en imágenes digitales se debe manejar los términos claves.

A continuación están los términos básicos relacionados con la visión artificial:

3.1.1 Visión por computadora: Se refiere a la adquisición,

procesamiento, identificación y clasificación de patrones

que se pueden encontrar en las imágenes digitales.

3.1.2 Pixel: Elemento fundamental sobre el que se construyen las

imágenes digitales, a saber cada pixel aporta información

de la imagen sobre color intensidad u otro según el formato

usado.

3.1.3 Imagen: Se denomina al arreglo bidimensional de pixeles en

forma de matriz o mapa de bits, que dependiendo del tipo

de representación obtendrá los distintos formatos como

RGB, HSV, Gray Scale, binarizada. Matemáticamente

centrados en la imagen representada por una matriz como

lo muestra la ecuación (1) tal que cada 𝒙𝒏𝒚𝒏 contiene los

valores que representan el color de cada uno de los pixeles

𝑖𝑚𝑔 = 𝑓(𝑥, 𝑦) = [

𝑥1𝑦1 ⋯ 𝑥𝑛𝑦1

⋮ ⋱ ⋮𝑥1𝑦𝑛 ⋯ 𝑥𝑛𝑦𝑛

] (1)

Page 18: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

El valor que 𝑥𝑛𝑦𝑛 toman valores en base a una codificación de 8 bits de 0-255

para formatos RGB, HSV, y Gray Scale, y de Unos y Ceros para una imagen

Binarizada.

Formato de color de un Pixel: La generación de colores en imágenes digitales se

hace mediante múltiples técnicas analizando las 3 principales

3.1.4 RGB: es un modelo de imagen aditivo en base a los colores

primarios rojo, verde y azul (Red, Green, Blue). El modelo

indica que por cada color existen diferentes tonalidades

que van desde 0 el más oscuro hasta 255 el más claro, tal

que la combinación de los 3 canales representados por 3

matrices combinadas dan la luminosidad y ancho de banda

del color, para dar el espectro final. Este método es uno de

los más trabajados en visión artificial pues es de los más

simples de comprender tal cual se muestra en la Figura 1.

Fig. 1. Espacio de Color RGB [5]

3.1.5 HSV: representa un modelo cilíndrico del color, fue

desarrollado para aplicaciones de computación gráfica.

HSV representa el matiz (Hue), saturación (Saturation), y el

brillo (Value, o Bightness). Su representación también se

construye de 0-255, tal que en el matiz da la tonalidad del

color deseado, a partir del modelo cilíndrico como se

representa en la Figura 2, donde se hace una equivalencia

de los 365 grados de la circunferencia a los 256 valores de

color que se pueden obtener. Mientras que en la saturación

dada de 0-255 representa el radio del cilindro y el brillo

representado por la altura en 256 valores dan al matiz

deseado el ancho de banda del color su atributo de

percepción de brillo. Este sistema es útil cuando queremos

Page 19: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

identificar colores en específico sobre una imagen, pues se

concentra sobre un solo valor o eje facilitando la diferencia

computacional y no sobre los 3 si estuviera en RGB.

Fig. 2 Espacio de Color HSV [6]

A partir de los pixeles y sus colores se tienen otras representaciones que permiten

comprender el espacio sobre el que se construyen las imágenes para que a partir de

valores una maquina pueda distinguir su claridad y tonalidad, en general los cálculos

más importantes son:

3.1.6 Histograma: es una representación gráfica que da una idea

del promedio de distribución de la intensidad en una

imagen, donde en el eje X representa el rango de los pixeles

de 0-255 generalmente para un espacio de profundidad de

color de 8 bits, y en Y la cantidad de pixeles que tienen

asignado ese valor [7]. Un histograma en pocas palabras da

un valor intuitivo a la maquina sobre el contraste, la

intensidad y el brillo. En la Figura 3 se muestra un

histograma de una imagen JPG tomada con una resolución

de 8 megapíxeles en la que se calculó su histograma en

escala de grises y su histograma por colores.

Page 20: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 3. Histograma de una imagen en escala de grises y por colores RGB

3.1.7 Resolución: La resolución de una imagen especifica las

dimensiones a las cuales fue grabada es decir la cantidad

de pixeles por pulgada cuadrada que existen en la imagen,

entre más resolución tenga una imagen más detalles se

pueden apreciar pues la matriz será más grande, pero

tendrá un mayor peso y su procesamiento será más

demorado, por el contrario una imagen de baja resolución

será más fácil de procesar pero puede que su nivel de

detalle no sea el suficiente para el análisis.

Ruido en imágenes

El ruido en las imágenes es una característica inherente en las mismas y se debe a

la naturaleza de la cámara o el medio de transmisión de la señal, generalmente son

pixeles aislados con valores marcadamente diferentes a los pixeles vecinos. Existe

una clasificación básica de ruido que de acuerdo al tipo es:

3.1.8 Gaussiano: Cuando se aprecian pequeñas variaciones en

las imágenes, se debe principalmente a diferentes

ganancias en la cámara o ruido en los opto sensores.

Page 21: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Se considera que el valor ideal del pixel es el mismo más

una ganancia variable aleatoria gaussiana.

3.1.9 Impulsional: en otras literaturas lo llaman “sal-pimienta”, en

la imagen se aprecia como puntos que son pixeles que

toman valores muy altos o bajos con respecto a sus

vecinos, sus causas son saturaciones en los sensores o

una pérdida de señal en el punto, aunque también en

sistemas de cámaras infrarrojas se da por saturación del

pixel.

3.1.10 Multiplicativo: Si la imagen en general muestra una

deficiencia progresiva, se dice que ocurre cuando hay

presente la convolución de 2 señales [7].

Python

Es un lenguaje de programación de alto nivel, para propósitos generales, cuya

filosofía de centra en la fácil interpretación tal que su sintaxis permite a los

programadores plasmar conceptos en pocas líneas de código para diferentes escalas

de complejidad. Python puede ser comprimido en programas ejecutables sobre casi

cualquier tipo de plataforma, y sin la instalación de intérpretes adicionales. Además

de una escritura dinámica y una combinación de conteos de referencia junto con

detectores de basura que en base a los ciclos de ejecución permite una óptima

administración de memoria, con lo cual facilita la resolución dinámica de nombres

ligando métodos y variables durante la ejecución del programa lo cual para los

programadores nos evita la dispendiosa tarea de describir tipos de variables y

conversión entre ellas para cálculos de múltiples funciones.

Herramientas para Python

Actualmente se han desarrollado múltiples herramientas sobre código abierto que

han sido muy usadas para potenciar Python entre ellas se destacan tres

principalmente las cuales son:

3.1.11 NumPy: Ofrece un soporte de arreglos de N-dimensiones

para Python. La librería es reconocida por ofrecer

manipuladores multidimensionales para lenguaje C. Gran

cantidad de algoritmos a bajo nivel son basados en NumPy.

Page 22: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

3.1.12 SciPy: Contiene librerías y herramientas científicas y

matemáticas para Python sobre NumPy. La herramienta

incluye rutinas como integración optimización y funciones

para procesamiento de imágenes como Matplotlib y Python.

3.1.13 OpenCV: Originalmente nació como una iniciativa de Intel.

Se creó como una plataforma de código abierto para visión

por computadora, muy usada por su desempeño en tiempo

real. La librería se desarrolló sobre código C, y asegura una

portabilidad rápida del código para múltiples plataformas de

tipo embebido.

Librerías OpenCV 3.1 (Open Source Computer Vision)

OpenCV es una librería de funciones especializada en el procesamiento de

imágenes enfocada especialmente en la visión artificial en tiempo real, fue

desarrollada originalmente por la empresa Intel en su centro de investigación en

Nizhiny Novgorod (Rusia), con el fin de ser lanzada bajo licencia open-source BSD,

para compilarse sobre múltiples plataformas. OpenCV está escrito en lenguaje C++ y

su interface primaria está en C++, pero debido a la extensibilidad de dicho lenguaje

se han desarrollado bindings en Python, Java y MATLAB/OCTAVE.

Las áreas de aplicación incluyen:

3.1.14 Herramientas para caracterización 2D y 3D

3.1.15 Reconocimiento Facial.

3.1.16 Reconocimiento de Gestos

3.1.17 Robótica Móvil

3.1.18 Segmentación y reconocimiento

3.1.19 Visión Estéreo

3.1.20 Seguimiento de movimientos

3.1.21 Realidad Aumentada

Finalmente una ventaja adicional es que OpenCV trabaja con aceleración por

hardware tal que al ejecutar programas sobre sistemas Intel está pre-programado

para optimizar sus rutinas con las tarjetas integradas en los equipos.

Page 23: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Actualmente OpenCV va en la versión 3.0 compatible con Python 2.7 y es la

recomendada para el trabajo ya que su última versión posee versiones optimizadas

de algoritmos de procesamiento de imágenes así como nuevas funciones por ello

será la Versión 3.0 sobre la que se compilaran los códigos para que haya

compatibilidad en la ejecución matemática es importante que en la plataforma que se

instale la librería de NumPy la cual se encarga del manejo de arreglos numéricos y

matrices

Plataforma de trabajo: OpenCV 3.0, Python 2.7, Windows y Linux

Un tema muy importante antes de empezar el trabajo es considerar la portabilidad

del código a Windows pues es la plataforma en la cual cientos de estudiantes

trabajan, por la facilidad e instalación en comparación de otros S.O. como Linux.

Para lograr tal portabilidad se debía escoger un lenguaje de programación práctico,

portable y gratuito así pues la mejor opción es Python como interprete, ya que es un

lenguaje orientado a objetos que incorpora módulos, brindando una escritura rápida,

de alto nivel y muy poderoso con una sintaxis clara y fácil de interpretar, puede ser

extensible a lenguajes como C y C++, y está en la capacidad de correr sobre

cualquier variante de Unix, Windows y Linux. La característica más importante que

tiene este lenguaje es su compatibilidad con OpenCV y que a diferencia de

compiladores C++ que podría ser la otra opción como Visual Studio el uso de Python

así como de OpenCV es Libre y no requiere de comprar otros paquetes para poder

tener todo su potencial a la mano.

Al trabajar en Linux se dispone de un compilador nativo por lo tanto solo se debe

hacer una actualización a la versión 2.7 y descargar e instalar los repositorios de

OpenCV 3.1. Para el caso de Windows basta con ir a la página oficial de Python:

www.python.org y descargar la versión 2.7.X de forma gratuita, posteriormente se

debe buscar la librería OpenCV 3.1 descargarla descomprimirla y enlazar las librerías

al compilador.

Page 24: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

3.2 Algoritmos de Detección de Personas

La detección de personas en el campo de la visión artificial se enfoca al estudio de

análisis de patrones correspondientes a objetos de interés dentro de una imagen.

Cuando se busca detectar personas los algoritmos se enfocan en la búsqueda de

características específicas que logren determinar si el objeto analizado corresponde

o no a un peatón.

A continuación se analizan dos algoritmos para detección de personas

implementados en este trabajo, de primera mano existe una técnica que se ha

abierto paso en los últimos años en el campo de la investigación denominada HOG

Descriptor (Histogram of Oriented Gradients) [8], este método hace un cálculo de

vectores en base a los valores de los pixeles mediante una ventana deslizante de

tamaño variable sobre la imagen buscando el gradiente que concuerda con un patrón

de peatón sobre casi cualquier tipo de imagen. La otra técnica se enfoca a la

detección de objetos mediante técnicas de modelado de fondo y extracción de

objetos de interés (background modeling techniques) [9], este método centra su

estudio en la construcción del background mediante técnicas como: promedio

gaussiano, la estimación por densidad y la concurrencia por variaciones de imágenes

posteriormente se complementa con la extracción de Blobs.

Page 25: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

3.3 Detección Mediante Descriptores de

Gradientes Orientados

La técnica HOG descriptor fue modelada por Navneet Dalal y Bill Trigss [8] en el año

2005 esta técnica hoy en día ha cobrado bastante relevancia por los resultados que

ofrece. El trabajo está basado en hacer uso de los histogramas normalizados de los

gradientes de orientación, calculados a partir de los pixeles que conforman la imagen

y la selección de una maquina SVM (Support Vector Machine) para darle la precisión

a los clasificadores. Así pues a continuación se explica cómo es el entrenamiento de

la máquina, luego como aplicar HOG descriptor a la imagen de prueba y por último

la descripción de imágenes piramidales y su aplicación en HOG descriptor.

3.3.1. Entrenamiento de la maquina HOG descriptor

El entrenamiento de una maquina HOG descriptor se realiza de la siguiente forma:

Primero debe haber un listado con muestras de imágenes del objeto que a detectar,

esto se denomina datos positivos que para este caso deben ser personas, a cada

imagen se le debe extraer los descriptores HOG para después suministrarlos como

entrenamiento al clasificador.

Ser arma otro listado con muestras de imágenes de objetos no deseados a estos se

les denomina datos negativos, a cada uno de ellos se les debe calcular los

descriptores HOG tomando en cuenta que las muestras positivas deben ser muchas

más que las negativas (entre mayor cantidad de imágenes positivas y negativas

sobre 200 los resultados serán mejores).

Se debe entrenar la máquina de soporte de vectores lineales (SVM) con los datos

positivos y negativos.

Se aplica la técnica Hard-Negative Mining que consiste en hacer pasar al clasificador

una serie de imágenes de los datos negativos a diferentes escalas y mediante

Page 26: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

ventana deslizante, tal que cuando el clasificador detecte falsos-positivos de objetos

no deseados se almacenen los datos de los vectores asociados a estos falsos-

positivos grabados junto con el índice de probabilidad de clasificación que hayan

tenido.

Con los datos de los falsos positivos que arroja el Hard-Negative Mining, se hace un

listado en base a un criterio de confiabilidad que puede ser por ejemplo la

probabilidad. Estos datos organizados se vuelven a pasar por el clasificador, de tal

manera que se hace un refuerzo del aprendizaje.

3.3.2. Aplicación del algoritmo HOG descriptor

A continuación están descritas las etapas del HOG descriptor, los detalles más

importantes a tomar en cuenta y su diagrama de bloques el cual puede ser apreciado

en la Figura 4.

Fig. 4 Diagrama de bloques HOG descriptor [8]

a. Se toma la Imagen para analizar: de una cámara de video (online) o

archivo de video (offline)

b. Normalización de gama: Toda imagen debe pasar por una normalización

de la gama y el color de la imagen en pocas palabras debe ir con el

menor ruido posible, la mejor opción es que la fuente de video original

sea de buena calidad pues la idea no es tampoco elevar el costo

computacional con una imagen demasiado grande ni aplicando filtros

muy complejos pues a largo plazo el método demuestra que al aplicar el

gradiente el hecho de hacer un filtrado no afecta el resultado final en

apenas del 1 al 2% [8].

Page 27: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

c. Calculo del gradiente en la imagen: El gradiente de una imagen se refiere

al cambio en la intensidad o color de los pixeles, su cálculo permite

extraer información de los objetos analizados. El gradiente se define por

la ecuación (2)

∇𝑓 = [𝑔𝑥

𝑔𝑦] = [

𝜕𝑓

𝜕𝑥𝜕𝑓

𝑑𝑦

] (2)

Donde: 𝜕𝑓

𝜕𝑥 𝑒𝑠 𝑒𝑙 𝑔𝑟𝑎𝑑𝑖𝑒𝑛𝑡𝑒 𝑒𝑛 𝑙𝑎 𝑑𝑖𝑟𝑒𝑐𝑐𝑖ó𝑛 𝑑𝑒 𝑋 (2.1)

𝜕𝑓

𝜕𝑦 𝑒𝑠 𝑒𝑙 𝑔𝑟𝑎𝑑𝑖𝑒𝑛𝑡𝑒 𝑒𝑛 𝑙𝑎 𝑑𝑖𝑟𝑒𝑐𝑐𝑖ó𝑛 𝑑𝑒 𝑌 (2.2)

Para calcular 𝜕𝑓

𝜕𝑦 por ejemplo debemos aplicar un filtro unidimensional a la

imagen A por convolución y no por producto como lo explica la ecuación (3):

𝜕𝑓

𝜕𝑦= [

−10

+1] ∗ 𝑨 (3)

Para computar el ángulo de dirección de los pixeles se efectúa mediante el

cálculo del arco Tangente tal como se indica para un pixel en la posición x, y

en la ecuación (4) tal que:

𝜃𝑥𝑦 = tan−1 [𝑔𝑦

𝑔𝑥] (4)

Estas operaciones al ser unidimensionales implican que cuando se trabajan

imágenes en color se debe llevar la imagen a escala de grises para el análisis

o computar cada canal B, G, R por separado y tomar aquel valor que presente

los gradientes más altos. Este proceso se puede ver más claro en la Figura 5

donde se hace una conversión a escala de grises.

Page 28: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 5. Función del detector HOG. Se destaca la búsqueda de vectores sobre la

silueta. (a) Gradiente promedio de las imágenes de entrenamiento. (b) Cada pixel

muestra el valor máximo positivo SVM ponderado en bloques. (c) Cada pixel muestra

el valor máximo negativo SVM ponderado en bloques. (d) imagen de prueba. (e)

Computación del R-HOG descriptor. (f) Descriptor R-HOG ponderado por SVM

positivos. (g) Descriptor R-HOG ponderado por SVM negativos. [8]

d. Ponderación y orientación del Histograma: En esta etapa se calcula el

histograma con base a la orientación del gradiente para hacer una

detección de bordes, generalmente existen múltiples técnicas para

hacerlo pero en la práctica con simplemente tener en cuenta la magnitud

basta para obtener buenos resultados [8]

e. Normalización del contraste: Este paso es esencial pues al tener

variaciones de iluminación y contraste hace que los resultados de

detección empeoren; para ello se agrupan pixeles en bloques o celdas,

tal que mediante técnicas de normalización por bloques se llegue a

mostrar contornos que representan siluetas humanas en base a su

orientación.

f. Ventana de detección: Como se vio anteriormente, se debe hacer un

barrido sobre la imagen procesada en el trabajo de Triggs [8] se trabaja

con regiones de 64X128 mas un margen de 16 pixeles por cada lado

donde se esté detectando la persona, si la persona a detectar sube por

encima de esta resolución se deben aplicar técnicas de escalamiento,

poniendo atención a la perdida de desempeño.

Page 29: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

g. Clasificación: Finalmente se aplica la maquina SVM (Support Vector

Machine) para tomar la decisión si el promedio vectorial de una imagen

si corresponde a un posible peatón, según el entrenamiento que haya

recibido con los datos positivos y negativos. En su forma más simple

una maquina SVM es un separador de dos clases al resolver el

entrenamiento buscamos los parámetros de la función de decisión de

forma estadística según la ecuación (5)

𝑓(𝑥) = ∑ 𝛼𝑖𝑦𝑖𝑋𝑖 ∙ 𝑋 − 𝑏𝑖 (5)

En este punto el término i recorre la sección de vectores de entrenamiento, los

vectores seleccionados xi son llamados los vectores de soporte que ayudan a

definir la decisión del clasificador [8].

h. Detección positiva: Si la detección ha sido positiva el algoritmo guarda

las coordenadas en donde se encontró la persona, y se continúa el

análisis hasta terminar la imagen.

3.3.3. Pirámides de imágenes HOG para OpenCV

Usualmente las imágenes se trabajan a una escala constante, pero en el caso de los

descriptores HOG para detección de personas es necesario hacer un escalado en la

imagen debido a la incertidumbre de no saber a qué escala se encuentra el objeto y

por ende que fracción de la imagen ocupa. Al compilado de copias de la misma

imagen se les denomina Pirámides de imágenes o Pyramid representation, al

considerar que en la base se encuentra la original y sucesivamente se construyen a

partir de ella unas más pequeñas hasta el tope.

Page 30: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 6. Representación Piramidal de una imagen a 5 niveles [10]

Generalmente existen 2 tipos de Pirámides de imágenes, la Gaussiana y la de

Laplace, tal que un nivel más alto en la pirámide se forma a partir de un cálculo

gaussiano de 5 pixeles a 1 reduciendo la resolución original a ¼. La pirámide de

Laplace es formada a partir de la Gaussiana solo que ella toma en cuenta solo los

bordes en una imagen y no el promedio de los 5. Al tener la Imagen Piramidal se

aplica el HOG descriptor tal cual se explicó tantas veces como imágenes piramidales

se calculen no inferiores a la dimensión del entrenamiento.

3.4 Detección mediante técnicas de sustracción de

Fondo y extracción de blobs

La técnica de detección por sustracción de fondo funciona cuando la detección se

hace a objetos en entornos con un fondo fijo o de poca variación (background).

Massion Piccardi elaboro un trabajo guía a modo de estado del arte donde destaca

las mejores técnicas de modelamiento de background [9], donde uno de los mejores

resultados corresponden a los algoritmos basados en mezclas Gaussianas, siendo

así las mejores técnicas para la modelamiento de background:

Page 31: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

1. Algoritmo de segmentación de mezclas Gaussianas basadas en el fondo,

este método formulado por Kaew y Bowden en 2001 [11], hace que los

pixeles se modelen como una serie de distribuciones Gaussianas, con

ello se puede hacer un cálculo de probabilidad para determinar cuánto

tiempo está un pixel sin cambiar su valor en una escena y así construir el

fondo que se desea eliminar. Kaew y Bowden [11] encontraron que había

un problema pues para construir el fondo necesitaba el algoritmo una

base de 255 hasta 346 fotogramas para que un componente se

reconociera como parte del fondo, en un video estándar esto implica de

8,5 a 9 segundos de video, la modificación que plantearon en el

algoritmo de Kaew fue agregar un componente de actualización tal que

contribuyera a la eliminación de sombras y mejorara la velocidad. Este

mismo algoritmo fue modificado en 2004 por Z. Zivkovic [12] que

modifico el algoritmo para hacerlo adaptativo tal que logro implementar

sobre este la capacidad de actualizar parámetros dinamizando la

eliminación del fondo mediante la búsqueda de los parámetros óptimos

de distribución Gaussiana para cada pixel, mejorando la eficiencia y

adaptabilidad a la variación de la escena durante los cambios de

iluminación.

2. Algoritmo de segmentación por pixel de Bayes fue propuesto por

Andrew B, Akihiro Matsukawa y Ken Goldberg en 2012 [13], Este método

utiliza los primeros fotogramas de la fuente de video para construir el

modelo del fondo, empleando un algoritmo de segmentación

probabilística de primer plano identifica posibles objetos ajenos al

modelo del fondo mediante la inferencia Bayesiana. Las estimaciones

son de tipo adaptativo y se les agrega un valor o peso a los nuevos

objetos dependientes del tiempo en que estén fijos en una región, con el

cual permite ir eliminándolos pues no son objetos deseados. finalmente

se le agrega operaciones de filtrado de cerrado y apertura para eliminar

el ruido y crear la máscara que permite enfocar los objetos que se

mueven en el escenario analizado.

3. Algoritmo de segmentación basado en K-nearest neigbours que se

apoya en un valor de probabilidad en que los pixeles a posteriori

pertenezcan o no al fondo. Este algoritmo se construye a partir de las

primeras imágenes mediante un tipo de entrenamiento que almacena las

características del fondo en un modelo KNN, tal que a posteriori se

determina si determinado pixel pertenece o no al modelo de background,

Zoran Zivkovic en 2006 [14], complemento el modelo KNN con

Page 32: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

ecuaciones que trabajan sobre los modelos de distribución gaussiana y

componentes para cada pixel.

A continuación se describe el algoritmo implementado para realizar la detección de

peatones basados en la técnica de modelamiento de fondo a partir de mezclas

gaussianas.

3.4.1 Background Subtractor MOG2 (segmentación de mezclas Gaussianas)

Este algoritmo modela el valor de un pixel y sus vecinos como una mezcla de

distribuciones gaussianas en función a su entorno [9], basándose en la persistencia y

la concordancia de cada una de las mezclas, se determina cuales pixeles

corresponden a colores que hacen parte del fondo (background) y por ende cuales

pixeles encajan como objetos (Foreground), cuando un objeto pasa demasiado

tiempo inmóvil en la escena se dice que su mezcla gaussiana por su invariancia en el

tiempo debe incluirse progresivamente como background según el criterio de

inclusión del método.

Para garantizar la efectividad del método de eliminación de background, tanto en

entornos controlados como no controlados se recomienda usar mezclas gaussianas

múltiples de tipo adaptativo tal que cada cierto tiempo sus parámetros sean

actualizados, para esto las mezclas gaussianas son evaluadas usando una heurística

donde mediante la hipótesis se pueda calcular la probabilidad de pertenencia de un

conjunto de pixeles al background tal que los componentes relacionados como

Foreground sean rastreados fotograma por fotograma usando un rastreador de

hipótesis múltiple. El proceso implica considerar 4 pasos que son:

Paso 1: Modelo Mixto on-line

Se debe modelar en primera instancia los pixeles junto con su variación en el tiempo

como un único valor a esto se le denomina “Proceso”. El proceso de un pıxel se

refiere al cambio que presenta en el tiempo, por ejemplo son números escalares para

imágenes en escala de grises o vectores para las imágenes en color.

Matemáticamente para cualquier momento, t lo que se sabe acerca de un pıxel en

particular (𝑥0, 𝑦0), depende de su historial como lo indica la ecuación (6).

Page 33: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

{𝑋1 , . . . , 𝑋𝑡 } = {𝐼(𝑋0 , 𝑌0 , 𝑖) ∶ 1 < 𝑖 < 𝑡} (6)

Dónde 𝐼 corresponde a la secuencia de imágenes

Algunos procesos de pıxeles son mostrados por diagramas de dispersión en la

Figura 7, donde se ilustra la necesidad de un sistema adaptativo con una

umbralización automática.

Fig. 7. Imágenes y su diagrama de dispersión [15]

El valor de cada pıxel representa una medida de la claridad en la dirección del sensor

del primer objeto intersectado por los rayos ópticos del pıxel. Con un fondo e

iluminación estáticos, dicho valor es relativamente constante. Si suponemos la

independencia del ruido gaussiano que incurre en el proceso de toma de muestras,

su densidad puede ser descrita por una sola distribución de Gauss centrada en el

valor del pıxel. Por desgracia, las secuencias de vıdeo más interesantes involucran

cambios de luz, cambios de escenas, y objetos moviéndose.

Si se producen cambios de iluminación en una escena estática, serıa necesario que

la mezcla gaussiana tenga la capacidad de rastrear esos cambios. También puede

darse el caso en que un objeto estático aparezca en la escena y no sea incorporado

al background hasta que esté allí más tiempo tal que los pıxeles correspondientes

Page 34: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

son considerados Foreground durante largos perıodos de tiempo. Esto implica que

se van acumulando errores en la estimación del Foreground, resultando pobres

comportamientos de rastreo. Estos factores implican que las observaciones más

recientes deberían ser más importantes a la hora de determinar las estimaciones de

parámetros gaussianos.

Un aspecto adicional de variación ocurre si en la escena están presentes objetos

moviéndose, ya que un objeto en movimiento coloreado relativamente de forma

constante se espera que produzca más variación que un objeto estático. Además, en

general, habrá más datos dando soporte a las distribuciones de background porque

estas son repetidas, mientras que los valores de pıxel para diferentes objetos no son

a menudo del mismo color.

Todos estos factores mencionados son los que sirven de guía a la hora de modelar y

actualizar el procedimiento. La historia reciente de cada pıxel,{𝑋1, . . . , 𝑋𝑡}, esta

modelada por una mezcla de 𝐾 distribuciones gaussianas. En la ecuación (8)

tenemos la probabilidad de observar el valor del pıxel.

𝑃(𝑋𝑡) = ∑ 𝑊𝑖,𝑡 ∗ 𝜂(𝑋𝑡,, 𝜇𝑖,𝑡, ∑ 𝑖, 𝑡)𝐾𝐼=1 (8)

Donde:

𝐾, es el número de distribuciones.

𝑊𝑖,𝑡 es una estimacion del peso de la 𝑖𝑡ℎ gaussiana en el momento 𝑡.

𝜇𝑖,𝑡 es el valor de la 𝑖𝑡ℎ gaussiana en el momento 𝑡.

∑ 𝑖 , 𝑡 es la matriz de covarianza de la 𝑖𝑡ℎ gaussiana en el momento 𝑡.

y donde 𝜂 es un valor gaussiano.

η entonces como lo muestra la ecuación (9) es un valor dado por la función de

densidad:

𝜂(𝑋𝑡 , 𝜇, Σ) =1

(2𝜋)𝑛2|Σ|

12

𝑒−1

2(𝑋𝑡−𝜇𝑡)𝑇 ∑(𝑋𝑡−𝜇𝑡)

(9)

Page 35: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

𝐾 Es determinado por la memoria disponible y la capacidad de cómputo.

En la actualidad, se utilizan de 3 a 5. Por otra parte, por razones de cálculo, la matriz

de covarianza se supone debe tener la forma de la ecuación (10)

∑ 𝑘, 𝑡 = 𝜎𝑘2𝐼 (10)

Esto supone que los valores de los pıxeles de color rojo, verde y azul son

independientes y tienen las mismas variaciones. Esto no es exactamente cierto, pero

permite evitar una costosa inversión de la matriz a expensas de cierta exactitud.

Así pues, la distribución de los valores observados recientes de cada pıxel en la

escena está caracterizada por una mezcla de gaussianas. Un nuevo valor de pıxel

estará, en general, representado por uno de los componentes principales del modelo

mixto y será usado para actualizar el modelo.

Si el proceso de pıxel fuera considerado un proceso estacionario, un método

estándar para maximizar la probabilidad del dato observado se denomina EM

(expectation maximation). Desafortunadamente, como ya se dijo anteriormente, cada

proceso de pıxel varia durante el tiempo pues por lo general los entornos son

dinámicos, por lo que se usara un método aproximado que trata esencialmente cada

nueva observación como una colección de muestras de tamaño 1 y usa reglas de

aprendizaje estándar para integrar la nueva información.

Debido a que hay un modelo mixto para cada pıxel en la imagen, implementar un

algoritmo EM exacto serıa costoso. En su lugar, se implementa una aproximación

online de k medias. Cada nuevo valor del pıxel 𝑋𝑡, es cotejado con las distribuciones

𝐾 gaussianas existentes, hasta que se encuentra coincidencia. Una coincidencia es

definida como un valor de pıxel dentro de una desviación estándar de 2.5 de una

distribución. Este umbral puede ser perturbado con un pequeño efecto en la

ejecución. Esto es realmente un umbral por pıxel por distribución, y es

extremadamente útil cuando diferentes regiones tienen diferente iluminación, porque

los objetos que aparecen en regiones sombreadas no exhiben generalmente tanto

ruido como los objetos en las regiones iluminadas. Un umbral uniforme a menudo

resulta en objetos que desaparecen cuando estos entran en regiones oscuras.

Page 36: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Si ninguna de las 𝐾 distribuciones empareja con el valor del pıxel actual, la

distribución menos probable es reemplazada por una distribución con el valor actual

como su valor principal, una varianza alta inicialmente, y un peso de prioridad bajo.

Los pesos de prioridad de las 𝐾 distribuciones en el instante 𝑡 son ajustados como

indica la ecuación (11).

𝑊𝑘,𝑡 = (1 − 𝛼)𝑤𝑘,𝑡−1 + 𝛼(𝑀𝑘,𝑡) (11)

Dónde:

𝛼 Es la tasa de aprendizaje.

𝑀𝑘,𝑡 Es 1 para los casos que coinciden y 0 para el resto de modelos.

Después de esta aproximación, los pesos son re normalizados. (1 − 𝛼) Define la

constante de tiempo que determina la velocidad a la cual cambian los parámetros de

las distribuciones. 𝑊𝑘,𝑡 En la ecuación (11), es en realidad un filtro paso bajo de los

valores promedio de la probabilidad posterior de que los valores de pıxel hayan

encajado en el modelo 𝑘 en observaciones de 1 a 𝑡. Esto es equivalente a la

expectativa de este valor con una exponencial basada en los valores del pasado.

Los parámetros 𝜇 𝑦 𝜎 para distribuciones que no casan se quedan igual.

Los parámetros de la distribución que corresponden con la nueva observación son

actualizados mediante las ecuaciones (12), (13), (14).

𝜇𝑡 = (1 − 𝜌)𝜇𝑡−1 + 𝜇𝑋𝑡 (12)

𝜎𝑡2 = (1 − 𝜌)𝜎𝑡−1

2 + 𝜌(𝑋𝑡 − 𝜇𝑡)𝑇(𝑋𝑡 − 𝜇𝑡) (13)

𝜌 = 𝛼𝜂(𝑋𝑡|𝜇𝑘, 𝜎𝑘) (14)

Una de las ventajas importantes de este método es que si un nuevo objeto pasa a

formar parte del background, esto no destruye el modelo existente de background, ya

que el color de background original permanece en la mezcla hasta que llega a ser el

𝐾𝑡ℎ más probable y un nuevo color es observado. Por lo tanto, si un objeto queda

estático en la escena el suficiente tiempo como para formar parte del background y

entonces se mueve, la distribución describe el background previo hasta que exista un

mismo 𝜇 𝑦 𝜎2 , pero un filtro bajo W k, t hará que rápidamente el objeto se reincorpore

al background.

Page 37: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Paso 2: Estimación del modelo de Background

Como los parámetros del modelo mixto de cada pıxel cambian, se requiere

determinar cuál de las mezclas gaussianas son producidas por los procesos de

background. Así pues nos interesa la distribución gaussiana que tenga la evidencia

de mayor soporte y de menor variación.

Para comprender esta elección, se considera la acumulación de evidencias de

soporte y la variación relativamente baja para las distribuciones de background

cuando un objeto estático y persistente es visible. En contraste, cuando un objeto

nuevo obstruye el objeto de background, este, en general, no concuerda con ninguna

de las distribuciones existentes e implicara o bien la creación de una nueva

distribución o un incremento en la variación de una distribución existente. Además, la

variación de un objeto en movimiento se espera que permanezca más que un pıxel

de background hasta que el objeto en movimiento pare. Para modelar esto, se

necesita un método que decida que porción del modelo mixto es la que mejor

representa los procesos de background.

Primero, las gaussianas son ordenadas por el valor 𝑤𝜎⁄ . Este valor aumenta tanto

por la distribución de ganancias como por la disminución de la varianza. Después de

re-estimar los parámetros de la mezcla, tenemos lo suficiente para emparejar la

distribución con el fondo de distribución más probable.

Esta ordenación del modelo es efectivamente una lista ordenada y sin límite, donde

las distribuciones de background más probables permanecen en la cima y las

distribuciones de background pasajeras menos probables gravitan hacia el fondo y

son eventualmente sustituidas por nuevas distribuciones.

Así pues las primeras B distribuciones son elegidas como indica la ecuación (15).

𝐵 = 𝑎𝑟𝑔𝑚𝑖𝑛(∑ 𝑊𝑘 > 𝑇𝑏𝑘=1 ) (15)

Donde 𝑇 es una porción mínima de la información que se estimada por el

background. Esto toma la mejor distribución hasta una porción cierta 𝑇 de la reciente

información que ha sido estimada. Si se escoge un pequeño valor para 𝑇, el modelo

de background es normalmente unimodal.

Page 38: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Si 𝑇 es más alto, una distribución multimodal causada por un movimiento de

background repetitivo (por ejemplo, las hojas de un árbol, una bandera en el viento,

etc.) resultaría en que más de un color seria incluido en el modelo de background.

Estos resultados permiten al background aceptar dos o más colores separados.

Paso 3: Componentes conectados.

El método descrito anteriormente permite identificar pıxeles de Foreground en cada

nuevo fotograma mientras se actualiza la descripción de cada proceso de pıxel.

Estos pıxeles de Foreground etiquetados pueden entonces ser segmentados en

regiones por un algoritmo de componentes conectados en dos pasos.

Ya que este procedimiento es efectivo en determinados objetos en movimiento, las

regiones en movimiento pueden ser caracterizadas no solo por su posición, sino

también por su tamaño, momentos (instantes, importancias), y otra información de

forma. No solo pueden estas características ser útiles para el posterior proceso y

clasificación, sino que también pueden ayudar en el proceso de rastreo.

Paso 4: Rastreo de hipótesis múltiples.

Estableciendo correspondencia de los componentes conectados entre fotogramas se

logra usar un algoritmo de rastreo de múltiples hipótesis predictivo directamente que

incorpore tanto posición como tamaño. Debido a que este algoritmo no es esencial

en el entendimiento del método, es preferible no profundizar en el funcionamiento del

mismo debido a su complejidad.

3.4.2. Extracción de Blobs

Un blob (Binary Large Object) es un conjunto conectado y amorfo de pixeles de una

imagen cuya intensidad es superior a un umbral y que están unidos entre sí. A partir

de él es posible calcular una serie de características de gran utilidad a la hora del

procesamiento y posterior detección de los objetos de una imagen. Una muestra de

Blob se aprecia en la Figura 8

Page 39: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 8 Creación de Blob a partir de un umbral definido sobre la imagen [16].

Extracción:

OpenCV tiene varias librerías que permiten extraer los blobs de una imagen,

destacando la extracción de áreas, elipses correspondientes a la relación entre los

ejes del blob, cálculo de perímetro, cálculo de momentum, entre otros.

Filtrado:

Obteniendo los blobs de una imagen, se puede identificar casi cualquier objeto si se

filtra a través de sus características. Para la detección de personas, se utiliza filtros

como áreas (calculando el área promedio de un blob que corresponde a una

persona), centro de masa del objeto, relaciones como largo ancho o incluso

detección de características dentro del blob como por ejemplo la semejanza de un

círculo sobre la semejanza de un rectángulo etc. En este enfoque es la

caracterización del objeto a detectar.

3.5 Fuente de Video para el análisis.

Finalmente se considera uno de los elementos más importantes y de los que

depende en gran medida el funcionamiento de cualquier tipo de algoritmo a

implementar, esto es la fuente de captura de video, en este punto en base a toda la

Page 40: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

documentación analizada se tiene que dicha fuente debe tener en lo posible la menor

variación cuando se incida luz sobre ella.

Para el análisis comparativo de ambos algoritmos se tomó un video en formato

H.264, los análisis de los fotogramas se hicieron de forma Off-Line, la fuente de video

para análisis Off-line fue tomado una Cámara Canon Power Shot A2500 con una

resolución de 640x480 pixeles a una tasa de 29 fotogramas por segundo con una

velocidad de datos de 10076 kbps.

Fig. 9 Camera Canon Power Shot A2500 [17]

Tabla 1. Specifications Canon Power Shot A2500 [17]

Image Capture Device 16.0 Megapixel 1/2.3-inch CCD

Focal Length 5.0(W)-25.0(T) (35mm film equivalent

Sensivity Auto, ISO 100- ISO 1600

LIgth Metering Method Evaluative, Center-weighted average

White Balance Control Auto, Daylight, Cloudy, Tungsten

JPEG Compresion Mode Movies: MOV(Image data: H.264)

Recording Pixels HD 1280 x 720: 25 fps

640 x 480: 30 fps (29.97)

Para hacer pruebas de conexión en tiempo real se usó una cámara WEB, marca

Logitech Quick Cam Deluxe.

Fig. 10. Cámara WEB Logitech Quick Cam [18]

Page 41: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Tabla 2. Especificaciones Logitech Quick Cam [18].

USB Type High Speed USB 2.0, UVC

Lens and Sensor Type Glass, CMOS

Focus Type Manual

Field of View 60º Diagonal

Optical Resolution True 640x480(VGA)

Video Capture (4:3) 320x240(QVGA), 640x360(VGA)(WMV True)

Frame Rate 30fps @640x480 (VGA) (Hardware Limit)

Capítulo 4

4. Metodología

4.1 Introducción:

En torno al desarrollo de los dos primeros objetivos, en cuanto a evaluación de

desempeño e implementación de dos algoritmos, fue claro que el mejor escenario de

comparación y evaluación de las dos propuestas era en primera instancia lograr la

implementación de los dos sistemas de detección en entornos de trabajo, para que

de manera cuantitativa puedan ser evaluados y de esta forma demostrar con datos

Page 42: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

cual algoritmo es mejor y bajo qué circunstancias. Primero se hace una revisión

sobre la arquitectura de hardware y software usado así como la arquitectura

funcional, después se detalla la implementación de un detector de personas

mediante Histogramas de Gradientes Orientados (HOG descriptor) y las

consideraciones de funcionamiento óptimo; posteriormente se describe en detalle la

detección de personas mediante sustractores de fondo tipo MOG y extracción de

Blobs , y al final mediante pruebas de desempeño se elige cuál de los dos sistemas

tiene el mejor desempeño, para finalizar con el tercer objetivo que implica poner a

prueba el algoritmo y comprobar su desempeño en un ambiente real controlado.

4.2 Arquitectura de Hardware y Software

Con la finalidad de brindar al lector toda la información necesaria sobre las

herramientas utilizadas para el proyecto, se muestra a continuación el hardware y

software utilizado dentro del proyecto.

4.2.1 Sistema Operativo:

Gracias a la compatibilidad que tienen las herramientas de OpenCV y Python, el

sistema operativo no es un problema a la hora de desarrollar la aplicación. Para el

proyecto, el primer algoritmo HOG descriptor fue desarrollado sobre Windows 7

profesional versión de 64 bits. El segundo algoritmo se desarrolló sobre el sistema

operativo Ubuntu 14.04 LTS a 64 bits. Para efector de las pruebas de desempeño

ambos algoritmos se ejecutaron desde una maquina con Ubuntu 14.4 instalado de

forma nativa, se sugiere no usar máquinas virtuales si el desempeño es un factor

importante a la hora de la implementación.

4.2.2 Software de programación:

Como lenguaje de programación se utilizó Python por su gran versatilidad, fácil

aprendizaje y manejo. El código escrito se ejecuta de igual forma tanto en Windows

como Linux. Para la ejecución de los programas los requerimientos mínimos en

ambas plataformas son:

Requisitos:

Python 2.7 o superior

Page 43: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Numpy 1.10.4 o superior

PsUtil 4.1.0

Matplotlib 1.5.1

Como motor de Procesamiento de imágenes se utilizaron las librerías de OpenCV en

su versión 3.1.

4.3 Arquitectura Funcional

A continuación se realiza la descripción de los algoritmos utilizados, estudiando todos

los módulos que los componen y mostrando a través del siguiente diagrama de

bloques como se estructuraron las etapas de los algoritmos así como la relación

entre bloques:

Page 44: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 11 diagrama de flujo aplicación principal

La figura 11 describe el diagrama de flujo de la aplicación principal, con las etapas

comunes entre ambos algoritmos implementados, en el bloque opcional se

implementan los dos detectores de personas, uno a través de histogramas de

gradientes orientados HOG y el otro por técnicas de sustracción de fondo y

extracción de blobs. En las siguientes secciones se desglosara cada uno de los

algoritmos por separado mostrando su análisis y principales parámetros a utilizar.

4.4 Implementación de Descriptores HOG en

OpenCV

OpenCV ofrece un algoritmo HOG, para usarlo correctamente hay que entender

sus requerimientos y como se carga la maquina SVM junto con los parámetros

óptimos para trabajar en el entorno deseado.

Captura del Fotograma

Inicio

Inicio de dispositivo

de captura

Muestra del video por

fotogramas

Análisis de fotograma en busca de peatones.

Según algoritmo implementado

Análisis de coordenadas de detección

Conteo de personas

Muestra de fotogramas procesados

Page 45: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

El diagrama de la Figura 12 del detector HOG muestra las etapas del algoritmo

donde se agregó una etapa de filtrado a la imagen por reducción de resolución, la

cual tiene por objetivo reducir el ruido en la imagen a través de la interpolación Inter

Área para que mediante una imagen más pequeña se lograra reducir el tiempo de

detección y procesamiento final para la imagen.

4.4.1 Inicio del descriptor HOG

Matriz final de coordenadas de detección por peatón encontrado

FIN

Filtro por reducción de resolución en la imagen Calculo de gradientes orientados HOG

Matriz inicial de coordenadas de detección por peatón

encontrado

Algoritmo Non Máxima Supresión para eliminación

de detecciones superpuestas

Seguimiento de coordenadas

objeto ¿excede límite?

¿Fin de archivo de

video?

Peatones = Peatones +1

No

Si

No

Si

Fig. 12. Diagrama de flujo detección por HOG

Page 46: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

En primer lugar, sobre Python se debe programar un objeto que llevara la función,

para ello se ejecuta:

Hog_des =cv2.HOGDescriptor () # Se carga en el objeto Hog_des las características de la función

Una vez listo el objeto se cargar la maquina SVM, la ventaja de OpenCV es que

ofrece una maquina ya entrenada la cual se parametrizó a partir de la base de

imágenes positivas de peatones del MIT [19], y la base de imágenes positivas y

negativas del INRIA [20]. Para cargarla sobre el objeto creado se digita:

Hog_des.setSVMDetector (cv2.HOGDescriptor_getDefaultPeopleDetector ())

Parámetros del descriptor HOG

Como se había revisado en el marco teórico el algoritmo HOG descriptor se basa

en una ventana de barrido sobre la imagen, en este apartado se describen y

analizan los parámetros del algoritmo y cómo influyen en la detección final.

hog.detectMultiScale(image, winStride, padding, scale, UseMeanshiftGrouping)

4.4.2 Image: La imagen a analizar no importa si es BGR o

GrayScale, pues cuando es B, G, R, se hace un cálculo por

cada una de las matrices y se toman los vectores de mayor

valor, para efectos de programación esta particularidad es

transparente, es decir que el algoritmo se encarga de la

conversión de forma automática.

4.4.3 WinStride: El parámetro Winstride indica cada cuantos

pixeles se mueve la ventana de análisis en X & Y, si el valor

es muy pequeño la detección es muy detallada y el tiempo

de procesamiento se extiende demasiado, es conveniente

hacer un pre-análisis para buscar el valor óptimo y definir la

zona de detección. Se elaboró una imagen de prueba con

un par de peatones que se deseaba detectar; esta se

aprecia en la Figura 13. Se hizo un programa que realiza una

variación exclusiva del parámetro Winstride. Los resultados

de detección se aprecian en la Figura 14, y el análisis de

tiempo en la Figura 15.

Page 47: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 13. Imagen de prueba para calibrar el Detector HOG

Fig. 14. Resultado de detecciones a partir de la variación del Winstride.

En la Figura 14 se aprecian los múltiples cuadros de detección conforme va

aumentando el valor del Winstride, se ve de color rojo oscuro para un valor

bajo, hasta un color rojo claro las detecciones con un Winstride alto, los

parámetros de evaluación del valor optimo se basan como se aprecia en la

Figura 15 en la velocidad de procesamiento y la precisión de detección donde

se buscaba el parámetro que coincida con dos detecciones, esto ocurre para

los valores 2, 4, 5 y 7. De este análisis es pertinente indicar que un mal

manejo del Winstride implica fallas en la detección.

Page 48: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 15. Análisis de desempeño por variación de Winstride. Arriba tiempo de detección del algoritmo, abajo: número de personas detectadas.

4.4.4 Padding: es el parámetro que indica la dimensión de un

borde alrededor de la ventana de detección para contribuir

a especificar el área de cálculo del gradiente de orientación

en la ROI (Región of Image) analizada; su valor se da en

pixeles en X & Y. Para el análisis del parámetro se varia el

Padding de 1-18 los resultados de detección se aprecian en

la Figura 16, y los respectivos tiempos de detección

aparecen en la Figura 17, se concluye que este parámetro

siempre que esté por debajo de 18 pixeles no afecta

considerablemente la detección. Un buen valor de Padding

está entre 2-5 pixeles.

Page 49: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 16 Resultado de detecciones por variación del Padding.

Fig. 17 Velocidad de detección por variación del Pading, arriba variación de Padding y abajo las detecciones por la variación.

4.4.5 Scale: indica el nivel de escalamiento piramidal para este

análisis de imágenes el algoritmo considera números tal

que el escalamiento sea un numero flotante desde 1 hasta 2

para apreciar cambios significativos, donde un número

cercano a uno implica pirámides sucesivas pequeñas tal

Page 50: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

que aumenta el tiempo de procesamiento tanto como sub-

imágenes estén muestreadas, y un número superior a 2 son

escalados tan grandes que se pierden los objetos, este

parámetro se varia considerando el tamaño de los objetos

que para un escenario controlado se estima a partir de su

dimensión, la Figura 18 muestra las detecciones que

ocurren en la imagen cuando el parámetro es cercano a 1

tenemos imágenes que en la figura se representan con un

color verde oscuro llegando a detectar falsos positivos.

Sucesivamente conforme el parámetro aumenta la ventana

de detección toma un tono verde más claro y su tiempo de

detección va disminuyendo porque son menos las sub-

imágenes analizadas.

Fig. 18. Resultado de detecciones por variación de Escalado.

Gracias a la Figura 19 que representa el valor de escalado y la detección de

elementos fijados se establece los valores óptimos de escalado para esta

calibración están entre 1,2 y 1,3 para hacer barridos rápidos pero sin perder

detalles de los objetos analizados como pasa por encima de 1,4 donde

pueden ocurrir problemas de detección donde se omiten detecciones positivas

a cambio de que no se mejora mucho el tiempo de detección. Se da el caso

que al calcular escalamiento sobre la imagen genera en ocasiones una

múltiple detección del mismo peatón a las diferentes escalas.

Page 51: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 19. Velocidad de detección por Variación de Escalado. Arriba tiempo de procesamiento, abajo detecciones por variación de Scale en pasos de 0,1.

4.4.6 UseMeanshiftGrouping es un parámetro que va relacionado

con el escalamiento, manejar el escalamiento sobre la

imagen puede ocasionar que se detecte el mismo objeto a

diferentes dimensiones o que aparezcan falsos positivos

como se evidencia en la Figura 20. Siempre programando

para la detección de objetos en imágenes puede suceder

este fenómeno, pero no es tan preocupante porque indica

que el detector funciona bien simplemente debe ajustarse;

para ello la librería nos ofrece el MeanShift Grouping cuyo

propósito es eliminar las detecciones repetidas, la forma en

que funciona es mediante el cálculo de la distancia

euclidiana de los centroides de los marcos de detección, tal

que si la distancia es menor que determinado valor implica

que es el mismo objeto y se debe eliminar el marco de

detección más grande. Pero a la hora de calibrar este

parámetro se aprecia que funciona cuando el escalamiento

piramidal es alto. En la Figura 20 hay un proceso en el que

ambas imágenes se escalaron a razón de 1.01 a la izquierda

no se aplica Meanshift Grouping por lo tanto múltiples

cuadros de detección incluso falsos positivos.

Page 52: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 20. Múltiple detección y falsos positivos a la izquierda, a la derecha uso del Meanshift para eliminar objetos no deseados

En la Figura 20 a la derecha el descriptor HOG tiene configurado un Meanshift

Grouping desde 10 hasta 50 mostrando siempre el mismo resultado respecto a los

cuadros eliminados que corresponden a falsos positivos con un tiempo de detección

no menor a 2.4 segundos debido a un escalamiento del orden de 1.01. En este punto

evidentemente la falencia del uso del Meanshift Grouping está en la cantidad de

tiempo de ejecución que toma para analizar cada imagen el cual para la imagen sin

Meanshif Grouping es de 1,6 segundos y para la imagen con Meanshift Grouping es

de 2.1 segundos en este punto se evidencia claramente que tiempos de ejecución

tan altos hacen que un procesamiento de imágenes en tiempo real sea pésimo,

debido a la cantidad de escalamiento que se debe hacer. Por lo anterior se decidió

bajar la tasa de escalamiento a un nivel donde el Meanshift Grouping ya no funciona

pero donde se logra obtener los mismos resultados de detección con una rapidez de

hasta 10 veces. Por lo tanto se descarta el uso el Meanshift Grouping para detección

en imágenes con resolución menor a 640x480 se recomienda controlar

cuidadosamente el factor de escalamiento, para mejorar los tiempos de ejecución,

cuando exista la múltiple detección, para eliminarla se sugiere el uso de una técnica

denominada Non-Maxima Supresion.

Page 53: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Consideraciones para la detección de Peatones mediante HOG

descriptor.

Lo primero a tener en cuenta cuando se realiza la detección de peatones en

imágenes es el entrenamiento que se le hace a los clasificadores, en este caso

estamos usando la maquina SVM de OpenCV la cual ha sido entrenada con el

paquete de imágenes del MIT [19] para el detector en la versión 2.4 pero para la 3.1

se tomó como base de entrenamiento la Base de INRIA [20]. La Figura 21 muestra

algunas de las muestras que se usaron en los entrenamientos en donde se concluye

que la detección mediante HOG descriptor es fiable siempre que las personas estén

lo más de frente a la perspectiva de la cámara.

Fig. 21. Imágenes de entrenamiento para la maquina SVM. Arriba imágenes del MIT [19], y abajo imágenes del INRIA [20].

Conociendo la base de entrenamiento se ve algo en particular en ambas

metodologías y es que explorando en detalle las dos bases de datos se encuentra

que los peatones siempre están de frente o de espalda. Solo en la base INRIA se

aprecian peatones de perfil pero en una proporción de menos del 5% de los datos,

esto implica que La metodología HOG para detección de peatones exige que la

cámara este lo más perfilada de frente respecto al peatón de esta manera fue que se

tomó el video de análisis.

Es importante en resumen realizar a partir de una imagen de muestra la calibración

de los parámetros, de escalado, Padding y Winstride, tal que se garantice un número

Page 54: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

mínimo de 15FPS para trabajar en tiempo real, además la captura de imágenes se

debe hacer lo mas de frente posible a la perspectiva de la cámara cuando se toman

gradientes desde una cámara alta no se tiene una certeza del objeto y crece la

incertidumbre de detección al igual que si se tomara la captura de perfil.

4.5 Implementación de sustractor de fondo y

extracción de blobs

Una de las técnicas encontradas para la detección de personas, se basa en la

simpleza de la detección de blobs en movimiento sobre una escena. A continuación

se muestra en un diagrama de flujo la representación de cada uno de los módulos

que comprenden el algoritmo así como la relación entre ellos.

Dispositivo de Captura Cámara

WEB

Obtención del Video y separación

Fotograma por Fotograma

Sustracción de Fondo y

separación de Foreground

Aplicación de filtros Morfológicos

Detección de Blobs

¿Corresponde

a una persona?

¿Paso límite de

detección?

Seguimiento sobre el fotograma

No

Si

No

Si

Page 55: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 22. Diagrama de Flujo para algoritmo de deteccion por sustraccion de fondo y extraccion de Blobs

Dispositivo de captura:

En visión artificial, el principal dispositivo de captura es una cámara de video, la cual

obtiene las imágenes del mundo real y las digitaliza para poder ser utilizadas por un

equipo de procesamiento. Aunque en la aplicación el dispositivo de captura es la

cámara web descrita con anterioridad, este también puede ser un video previamente

grabado, o una imagen almacenada en un computador o incluso un video creado a

partir de un algoritmo de imágenes.

Obtención del video – Separación fotograma por fotograma:

Entrando en materia del algoritmo diseñado, el primer bloque o modulo funcional

debe ser la obtención del video, cuyo objetivo principal es la generación de datos de

imágenes sobre las que los demás bloques realizar su ejecución. La técnica de

procesamiento es capturar un fotograma, realizar las operaciones diseñadas,

capturar el siguiente fotograma y realizar de nuevo las operaciones, por lo que este

bloque separa el video en fotogramas para ser procesados.

Peatones = Peatones +1

¿Fin de

Video?

Si

Generación de video a partir de

Fotograma Procesado

No

FIN

Page 56: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 23 Obtención Fotograma por Fotograma del Video

Sustracción de fondo y separación de Foreground:

Dentro de las librerías de OpenCV, se tienen implementado 2 algoritmos de

sustracción de fondo, el BackgroundSubtractorMOG2 y el

BackgroundSubtractorKNN. Para el algoritmo de detección de personas se

ensayaron ambos métodos pero fue el BackgroundSubtractorMOG2 el que mostro

una mayor velocidad a los cambios de iluminación y del entorno de fondo,

permitiendo que el análisis en tiempo real de la imagen presente mejores resultados.

Los siguientes son los valores de configuración del sustractor de fondo:

History: Cantidad de frases que utilizara para modelar el fondo.

varThreshold: Umbral de distancia entre pixeles.

detectShadows: Si es True, el algoritmo detecta las sombras y las marca.

Los parámetros definidos para el sustractor de fondo fueron

History = 500

varThreshold = 16 # por defecto

detectShadows: False # No se requiere detectar sombras. Solo objetos en movimiento.

Page 57: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 24. Separación del Foreground mediante sustractor de fondo.

Al observar, el algoritmo modela un escenario estático sobre el cual aplica una

máscara binarizada en donde se muestran los pixeles en movimiento. La

variación de los parámetros del algoritmo no agrega mayor valor a la

aplicación, ya que lo que se quiere en este punto es detectar los objetos en

movimiento para luego detectar el blob perteneciente.

Filtros morfológicos:

Las transformaciones morfológicas modifican la forma de los objetos de una

imagen. En la detección de blobs son de gran utilidad para eliminar ruido como

por ejemplo el movimiento de un árbol o pixeles dispersos que no contribuyen

con el modelo y que pueden ser generados por cambios de luz en la escena.

Dentro de las transformaciones morfológicas de utilidad se implementaron las

siguientes:

Erosión:

La idea básica de la erosión es igual que la erosión del suelo solamente, que

erosiona los límites del objeto en primer plano. Un kernel se desliza a través

de la imagen. Un píxel en la imagen original será considerado 1 sólo si todos

los píxeles bajo el kernel son iguales a 1, de lo contrario se erosiona (se hace

cero).

Page 58: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 25 Aplicación de Filtro Morfológico de erosión.

Dilatación:

El filtro de Dilatación es justo lo contrario al de erosión, Aquí, un elemento de

imagen es ' 1' si al menos un píxel bajo el kernel es ' 1 ' . Por lo tanto, aumenta

la región de blanco en la imagen o el tamaño de los aumentos de objeto en

primer plano. Normalmente, en casos como la eliminación de ruido, la erosión

es seguida por la dilatación. Debido a que, la erosión no solo elimina ruidos

blancos, sino que también se reduce el objeto. Entonces al dilatarlo, no va a

volver el objeto inicial, pero aumenta el área de objetos.

Fig. 26. Aplicación de Filtro Morfológico de dilatación

Detección de blobs:

En los bloques anteriores el objetivo es agrupar en cada fotograma los pixeles

en movimiento que se encuentran continuos o adyacentes entre sí como una

sola región (blob). De la máscara de Foreground obtenida y filtrada, las

imágenes en blanco representan las zonas en movimiento y las partes negras

las partes inmóviles.

Page 59: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Estos blobs son una herramienta útil para el análisis de forma y la detección

de objetos para reconocimiento.

Fig. 27. Detección de Blobs mediante la mascara

Detección de personas:

Una vez se obtienen los blobs en movimiento sobre el fotograma analizado,

falta identificar si esta coincide o no con una persona, para lo cual existen

varias técnicas, pero el objetivo de este algoritmo es la utilización de las

características del blob para su detección.

Al observar en las imágenes analizadas, varios objetos en movimiento son

detectados por la aplicación por lo que se realiza un primer filtro concerniente

al área del blob detectado, descartando los que contengan un área inferior o

superior a un valor establecido. Este valor depende de la distancia de análisis

de la cámara y es un parámetro que debe ser configurado en el escenario

analizado.

El siguiente filtro aplicado es la relación entre el ancho y el largo del blob,

clasificando así el blob dentro de un valor el cual corresponde a una persona

erguida y descartando por ejemplo un animal o un coche pequeño o algún

elemento que no corresponda con una persona.

Page 60: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 28. Detección de personas

Generación Video de salida:

Es el ultimo modulo y se encarga de la generación del fotograma con todas las

modificaciones, y texto de información para mostrar en pantalla como la

cantidad de personas que se han detectado. Asi mismo la información incluye

la cantidad de fotogramas por segundo analizados que deben estar por

encima de 15 FPS para cumplir con la rata minima de detección en tiempo

real.

Fig. 29. Generación de video resultante

Page 61: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

4.6 Evaluación de los algoritmos de identificación.

Una vez implementados los dos algoritmos de detección se pusieron a prueba, para

esto se tuvo en cuenta en primera instancia la velocidad de procesamiento,

colocando un video de prueba en ambos detectores y evaluando el tiempo de

detección por fotograma, posteriormente se evaluó la exigencia de hardware en

procesador y RAM, y por último se analiza la precisión del conteo que cada

algoritmo. La prueba se realizó sobre una maquina ASUS N53SV con procesador

Intel Core I5 @ 2.3 GHz sobre un sistema operativo Linux Ubuntu 14.4 con 8 Gb de

RAM.

4.6.1 Evaluación por tiempo de detección a través de fotogramas

HOG descriptor y Background Subtraction.

Para este análisis se colocó un video de prueba de 1 minuto a 29 FPS (Fotogramas

Por Segundo) grabado con la cámara Canon Power Shot A2500, para un total de

1740 fotogramas a una resolución de 640x480. La cantidad de fotogramas por

segundo se calcula como uno sobre el tiempo que tarda en analizar una imagen, el

resultado se aprecia en la Figura 30.

Fig. 30 Grafica de procesamiento en segundos por Fotograma del algoritmo HOG.

Page 62: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Analizando el resultado el tiempo de procesamiento es muy alto por lo que hacer un

seguimiento de un peatón a 6 FPS no tiene sentido, con el fin de aplicar el algoritmo

en un entorno real se buscó bajar el tiempo de detección reduciendo la resolución

de la imagen del video fuente, pasando de 640x480 a 400x300. El resultado se

aprecia en la Figura 31 donde se logra bajar el tiempo de detección por imagen a un

valor aceptable para trabajo en tiempo real. Un valor superior a 15 FPS

Fig. 31 Grafica de procesamiento en FPS de imágenes a 400x300 pixeles

Ahora se evalúa el algoritmo de detección por sustracción de Fondo y análisis de

Blobs; para esta prueba se analizaron de igual forma los 1740 Fotogramas y los

resultados se aprecian en la Figura 32.

Page 63: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 32 Procesamiento en FPS Background subtraction

A partir de las comparaciones entre las Figuras 30,31 y 32 vemos como la velocidad

del algoritmo Background subtraction es hasta cinco veces más rápido y trabaja en la

resolución original.

Page 64: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

4.6.2 Evaluación de exigencia de CPU y memoria RAM.

En este apartado a partir de la herramienta Psutil de Python, se monitorea el uso de

la maquina en cuando a procesador y memoria RAM los resultados se aprecian en

las Figuras 33 y 34 para HOG descriptor y Background sustractor respectivamente.

Fig. 33 Desempeño HOG descriptor arriba uso de CPU, abajo uso de RAM

La prueba se hizo con 1000 Fotogramas donde en los primeros 100 simplemente se

toman medidas con la maquina en reposo posteriormente se activan ambos

algoritmos hasta completar los 900 fotogramas donde nuevamente se pone en

reposo la máquina. El video de prueba fue un archivo de video grabado con la

cámara Canon Power Shot A2500 a 29 FPS y con una resolución de 640x480

pixeles.

Page 65: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 34 Desempeño del Background subtraction

De análisis de la Figura 33 y 34 se concluye que ambos algoritmos usan la misma

RAM, por lo tanto el análisis se debe enfocar en el desempeño de la CPU, siendo

claramente el Background sustractor el algoritmo más liviano, el con una media de

uso de procesador del 60% en comparación al 80% del algoritmo HOG.

4.6.3 Precisión de conteo con diferentes videos de peatones.

Con el fin de verificar la precisión de cada algoritmo al conteo de personas se

realizaron varias pruebas con distintos videos de peatones caminando, aplicando

sobre el mismo equipo de cómputo y al mismo video cada algoritmo, los resultados

se muestran en la siguiente tabla:

Page 66: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Tabla 3 . Comparación de detección de personas

Video Ambiente Total

personas

personas detectadas por HOGDescriptor

Personas detectadas por extracción de Blobs

Video 1 Controlado 24 20 15

Video 2 Controlado 16 13 10

Video 3 Controlado 9 8 8

Video 4 Controlado 30 28 21

% detección Controlado 100% 86,70% 70,90%

De los resultados mostrados en la tabla 3, se observa que el algoritmo de mejor

precisión para el conteo de personas corresponde al HogDescriptor sobre el cual se

tiene un porcentaje promedio del 86 % de detección, frente a un 70% del algoritmo

de sustracción de fondo y extracción de Blobs. Lo anterior ocurre debido a que el

segundo al utilizar una técnica de sustracción de fondo, los cambios de iluminación

producidos en la fuente del video generan que la máscara de Foreground cambie las

áreas de detección de blobs superiores a las filtradas por el algoritmo, mientras que

el HogDescriptor al realizar comparaciones de histogramas a partir de un

entrenamiento previo es más preciso en la detección del peatón.

4.7 Puesta a prueba del mejor algoritmo de

identificación.

Una vez realizadas y analizadas las pruebas de desempeño y en base a que el

objetivo principal del aplicativo es la detección de peatones, se determinó que el

algoritmo que mejor desempeña esta función es el Hog descriptor por la precisión de

detección que maneja, sacrificando un poco el uso de recursos y la velocidad de

análisis por fotograma del mismo.

En la figura 35 se muestran los resultados del algoritmo HogDescriptor implementado

sobre un ambiente real controlado, donde el tiempo de análisis de fotograma se

encuentra entre 0.05 y 0.06 segundos y el desempeño de frames por segundo entre

15 y 20 fps, así manteniendo un desempeño óptimo para detección de personas en

tiempo real y una precisión de conteo de peatones del 84 % sin la inclusión de falsos

positivos.

Page 67: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 35 Implementación del Algoritmo HOG Arriba imagen resultante, abajo grafica de desempeño al analizar 10500 Fotogramas.

Page 68: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

4.8 Caracterización del ambiente real controlado.

Dentro del proyecto fue definido que el trabajo estaría determinado dentro de un

ambiente real controlado, por lo cual a continuación se precisan las principales

características del ambiente de trabajo sobre el cual los algoritmos de extracción de

Bolbs y Hog Descriptor funcionan:

Iluminación:

La iluminación es uno de los factores más importantes a la hora del procesamiento

del video y aunque depende en gran medida del tipo y calidad de la cámara

escogida, es importante tener en cuenta la iluminación mínima del escenario donde

se está poniendo a prueba los algoritmos de detección pues al no haber una

iluminación suficiente, las imágenes carecerán de información y no será posible

extraer ningún detalle de las mismas.

La cantidad de luz en un ambiente se mide en Lux (lx) que es una unidad derivada

del sistema métrico internacional que da una equivalencia de lumens por metro

cuadrado que hay en el ambiente.

Las pruebas de caracterización del escenario se hicieron al aire libre en determinado

periodo de tiempo mediante un luxómetro incorporado en un teléfono celular

Motorola G3 de alta gama, de referencia CT406 que incorpora un sensor TAOS

TSL277xx con un rango de medición desde 2 lux hasta 65535 lux [21].

En la tabla 4 se registraron los niveles de iluminación de un ambiente al aire libre no

controlado mediante una aplicación que entrega el valor en Lux al tiempo se

ejecutaban los algoritmos de identificación para revisar en todo momento si era

posible realizar la detección de peatones los resultados fueron:

Page 69: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Tabla 4 Nivel de iluminación en la escena

Hora de Lectura Nivel de iluminación (LUX) Detección de peatones

08:00 1300 si

09:00 1270 si

10:00 1322 si

11:00 1349 si

12:00 1483 si

13:00 1516 si

14:00 1497 si

15:00 1357 si

16:00 1160 si

17:00 824 si

17:30 687 si

17;45 28 si

18:00 20 si

18:15 12 no

18:30 8 no

18:45 8 no

19:00 5 no

20:00 4 no

21:00 4 no

22:00 2 no

Page 70: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Con lo anterior se concluye que el mínimo de luz necesario para que a través de la

cámara el algoritmo pueda detectar las personas es de 30 lux, contando con una

cámara de buena calidad como el lente canon ya descrito anteriormente [17].

Distancia:

La distancia mínima a la cual deben estar los peatones de la cámara para que estos

sean detectados respecto al foco de la cámara se estima en 3 metros, lo anterior

debido a que en primera medida el detector de Blobs es sensible al cambio repentino

de iluminación que se incrementa cuando un peatón pasa demasiado cerca al foco y

el historial de construcción del background se ve afectado, por otra parte dado que

fue necesario hacer un control muy preciso del escalamiento que realiza el HOG

Descriptor implica que las personas deben estar lo suficientemente lejos tal que se

logre hacer la detección morfológica de los vectores que corresponden al peatón,

cuando esto es incompleto el algoritmo simplemente lo descarta.

Desplazamiento del peatón:

Para el sistema del conteo, se parametrizo que el desplazamiento de los peatones es

de izquierda a derecha en los fotogramas analizados, por lo cual el ambos algoritmos

hacen un seguimiento cuando una persona se desplaza desde la izquierda hacia la

derecha respecto al foco de la cámara tal que en cualquier otro desplazamiento

aunque el algoritmo llegue a detectar los peatones, la precisión del conteo se

perderá.

Page 71: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Capítulo 5

5. Análisis de resultados y conclusiones

5.1 Análisis de resultados:

Ventajas y desventajas cualitativas de los algoritmos.

Aparte del cálculo de la velocidad y la eficiencia hay características que en la visión

artificial son fundamentales a tener en cuenta, y estas se relacionan con la buena

percepción que logra hacerse en su entorno, estas pruebas entre más fidedignas

sean, será posible definir el entorno óptimo de trabajo del algoritmo. Hay que

recordar que no hay sistemas 100% efectivos, pero si se conoce bien las limitantes

de detección de cada uno de los algoritmos se logra una mejor postura sobre el

algoritmo que mejor funciona basado en la situación de su entorno. A continuación el

análisis de dos situaciones en específico.

Detección Múltiple.

En primer lugar se debe hablar de la robustez a la hora de una detección múltiple,

dentro de las pruebas se presentó un caso donde se tiene un fotograma en el cual

pasan dos personas bajo una sombrilla; rápidamente se induce que el algoritmo más

robusto es el HOG descriptor, puesto que detecta a través de los gradientes

orientados cada objeto parecido lo más posible a un peatón. En las Figuras 36 y 37

se muestra una comparativa de este caso típico no controlado, un par de personas

caminan bajo una sombrilla apreciando como el detector por Blobs lo detecta como

un solo objeto, mientras que gracias al cálculo de los gradientes que aunque requiere

más tiempo de procesamiento da a la maquina una mayor certeza del objeto

detectado.

Page 72: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Fig. 36 Detección de dos personas mediante Sustractor de fondo y Blobs

Fig. 37 Detección de dos personas por HOG descriptor

Cambios repentinos de luz

El objetivo era buscar el mejor algoritmo encontrando varias veces esta falencia en

el detector de Blobs comparado con el HOG descriptor. El problema son los cambios

incidentes en la luz, dado que para un sustractor de fondos su percepción de la

imagen es un conjunto de mezclas Gaussianas un cambio en una de sus regiones

afecta considerablemente el comportamiento del detector, por el contrario el

descriptor de gradientes no toma en cuenta la magnitud del gradiente que es la

variable afectada por el cambio repentino de luz, mientras la orientación se

Page 73: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

mantenga para el sistema la detección sigue vigente como se aprecia en las figuras

38 y 39.

Fig. 38 Confusión del detector por un cambio de luz repentino.

Fig. 39 Comparación de detección por Blobs en Verde y HOG descriptor en rojo.

En resumen en la tabla 5 tenemos una revisión de los aspectos más importantes de

cada uno de los algoritmos implementados y analizados.

Page 74: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Tabla 5. Resumen de características más importantes de los algoritmos implementados

Característica Background Subtraction HOG Descriptor

Carga de CPU 60% 80%

Carga de RAM 12% 12%

Desempeño 640x480 Pixeles @90FPS 400x300 Pixeles @20FPS

Detección de Peatones

por imagen 2 3

Precisión de conteo 70,9% 86,7%

Inmunidad a cambios de

luz leves No Si

Detección de personas

superpuestas No No

Detección Múltiple No Si

Mínima calidad de fuente

de video Alta VGA Media QVGA

Page 75: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

5.2 Conclusiones:

La propuesta del mejor escenario de evaluación para ambos algoritmos condujo a la

implementación de ambos para verificar con certeza la complejidad y desempeño de

cada uno de los códigos, por una parte se implementó un algoritmo que no depende

de una base de datos ni entrenamiento previo, el cual funciona bastante bien si se

configuran los parámetros correctos para el escenario seleccionado, su velocidad de

procesamiento por fotograma llega a situarse por encima de los 90 frames por

segundo a una resolución de 640x480 pixeles y su detección no es dependiente de la

perspectiva de la cámara, en contra parte requiere que la fuente de video sea lo más

fidedigna posible y el éxito del mismo deprende de los buenos resultados que genere

la técnica de sustracción de fondo implementada.

En contraparte la implementación de un descriptor de gradientes Orientados HOG,

permite gracias al respaldo del entrenamiento de una maquina SVM, se logre una

detección más exacta de personas por su morfología en comparación a las

metodologías de análisis por Background, sin embargo hay que considerar que el

procesamiento es mucho mayor y que para llegar a procesar a una tasa de por lo

menos 19 Fotogramas por segundo debemos usar resoluciones de imagen por

debajo de los 400 Pixeles.

En lo que respecta a la evaluación e implementación se puede concluir del análisis

de resultados el hecho de que un algoritmo como el Background subtraction que

presenta una mayor velocidad de análisis por fotograma y con un menor uso de

recursos respecto a otros, no implica que sea el más preciso en la función de

detección de peatones; Por otra parte el algoritmo HOG Descriptor no es infalible

pues dado que su entrenamiento se realizó a partir de las imágenes del INRIA [20] ,

a la hora de fijar la perspectiva de la cámara respecto a los peatones detectados

debe respetarse la base de detección, de lo contrario tenemos detecciones

intermitentes y falsos positivos.

Para el proyecto se seleccionó como mejor algoritmo de detección el que implementa

la técnica de HogDescriptor en busca de cumplir con el objetivo principal de

detección de peatones, sin embargo el uso de ambos algoritmos es confiable

siempre que se defina el escenario donde se implementa trazando los parámetros

correctos y fijando las pautas de comportamiento del entorno.

Page 76: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

5.3 Trabajo Futuro

Como trabajo futuro se plantea el mejoramiento del algoritmo por detección de blobs

para mejorar la detección de múltiples peatones con cierta cercanía. Gracias a las

herramientas seleccionadas de uso libre y la portabilidad que tiene un código de

lenguaje como Python, ambos algoritmos pueden ser implementados a futuro en

dispositivos que sean compatibles con estas herramientas como sistemas embebidos

o tarjetas de desarrollo tales como Raspberry Pi.

Se sugiere la exploración con lenguajes para tarjetas gráficas como Cuda de Nvidia

compatible con OpenCV, para mejorar los tiempos de detección.

Adicional a los algoritmos implementados aquí para la detección de peatones,

existen otras varias como son: la detección por reconocimiento facial mediante las

técnica Haar Cascades o entrenadores a través de redes neuronales, estas pueden

ser implementadas sobre python e identificar sus ventajas o desventajas con

respecto a los dos métodos acá expuestos con el fin de tener una base de

conocimiento que, permita identificar en qué escenarios presentan mejores

resultados cada una de las técnicas.

Se vislumbra la implementación de los sistemas de detección sobre una plataforma

de desarrollo Raspberry para sistemas de vigilancia en tiempo real con monitoreo

permanente a través de aplicativos web.

Page 77: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

Bibliografía

[1] Tsong-Yi, Chao-Ho, Da-Jinn y Yi-Lio, «A People counting System Based on Face-

Detection,» de Fourth International Conference on Genetic and Evolutionary

Computing, 2010.

[2] A. Albiol y V. Naranjo, «Real-Time High Density People Counter using

Morphological Tools,» de Intelligent Transportation Systems IEEE Transactions

on., 2001.

[3] H. Aguello, «Sistemas de reconocimiento basados en la imagen facial,» de Revista

Avances en Sistemas e Informática, pp. 7-16 Vol. 8, Diciembre 2011.

[4] Salgado y M. C. a. Luis, «Adaptative Multi-Camera System for Real Time Object

detection,» de IEEE International Conference on Consumer Electronics (ICCE),

2011.

[5] N. Sabine, «Underwater Photography- level adjustement,» 2002. [En línea].

Available: http://www.dive.snoack.de/tutorials/e_Basics_01.html. [Último acceso:

25 Abril 2016].

[6] Hanzra y B. Singh, «Computer Vision and Programming Blog,» Hanzra Tech,

2014. [En línea]. Available: http://hanzratech.in/2015/02/07/caveat-thresholding-

hue-component.html. [Último acceso: abril 2016].

[7] J. J. E. L. Elizondo, «Introducción.,» de Fundamentos de procesamiento de

imagenes, California, Universidad Autonoma de Baja California.

[8] Triggs, N. Dalal y Bill, «Histogram of Oriented Gradients for Human Detection,»

IEEE Computer Society Conference on Computer Vision and Pattern Recognition,

vol. 1, pp. 886-893, 2005.

[9] P. Massion, «Background subtraction techniques review,» de IEEE international

conference on Systems, Man and Cybernetics, 2004.

Page 78: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

[10] A. M. K. y Abid, «Image Pyramids,» de OpenCV-Python Tutorials Documentation,

Copyright 2011-2015, opencv dev team, 2013, pp. 79-84.

[11] B. P. y K. T. a. R., «An Improved Adaptive Background Mixture Model for Realtime

Tracking with Shadow detection,» de 2nd European Workshop on Advanced Video

Based Surveillance Systems, AVBS01, Sept 2001.

[12] Z. Z., «mproved adaptive Gaussian mixture model for background subtraction,» de

Pattern Recognition, 2004. ICPR 2004. Proceedings of the 17th International

Conference on, 2004, 23-26 Aug. 2004.

[13] A. B. Godbehere, A. Matsukawa y K. Goldberg, «Visual tracking of human visitors

under variable-lighting conditions for a responsive audio art installation,» de

American Control Conference (ACC), 2012, Montreal, QC, 2012.

[14] Heijden, Z. Zivkovic y F. v. der, «Efficient adaptive density estimation per image

pixel for the task of background subtraction,» Pattern Recognition Letters, vol. 27,

pp. 773-780, 2007.

[15] L. Li, W. Huang, I. Y.-H. Gu y Q. Tian, «Statistical Modeling of Complex

Backgrounds for Foreground Object Detection,» IEEE Transactions on Image

Processing, vol. XIII, pp. 1459-1471, 2004.

[16] Adrian y J. Gonzales, «Técnicas de percepcion activa para segumiento de objetos

mediante robots móviles en entornos urbamos,» Robotica y Telematica.

[17] I. Canon U.S.A., «www.usa.canon.com,» 2016. [En línea]. Available:

https://www.usa.canon.com/internet/portal/us/home/products/details/cameras/point-

and-shoot/slim-stylish-cameras/powershot-a2500. [Último acceso: 2016 abril 2016].

[18] 2. Logitech, «Support Logitech,» 2016. [En línea]. Available:

http://support.logitech.com/en_us/product/quickcam-deluxe-for-notebooks. [Último

acceso: 28 Abril 2016].

[19] M, Center for Biological and Computational Learning at MIT and MIT, 2000. [En

línea]. Available: http://cbcl.mit.edu/software-datasets/PedestrianData.html. [Último

acceso: 12 Abril 2016].

Page 79: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

[20] «INRIA Person Dataset,» [En línea]. Available:

http://pascal.inrialpes.fr/data/human/. [Último acceso: 10 Abril 2016].

[21] b. m@, «andrux and me,» 24 Enero 2015. [En línea]. Available: http://andrux-and-

me.blogspot.com.co/p/summary.html. [Último acceso: 24 abril 2016].

[22] Cmglee, «https://en.wikipedia.org/wiki/Pyramid_(image_processing),» CC BY-SA

3.0, [En línea]. Available:

https://commons.wikimedia.org/w/index.php?curid=42549151. [Último acceso: 6

Abril 2016].

[23] R. Szelinski, Computer Vision Algorithms and Aplications, Springer, 3 de

Septiembre 2010.

[24] J. P. Viola y M. J., «Robust Real-Time Face Detection,» International Journal of

Computer Vision, nº 57, pp. 137-154, 2004.

[25] K. T. Yi, C. Ho y D. Yi-Li, «People counting System Based on Face-Detection,» de

Fourth International Conference on Genetic and Evolutionary Computing, 2010.

[26] Solem y J. Erik, «Support Vector Machines,» de Programing Computer Vision with

Python, creative commons, 2012, pp. 223-227.

Page 80: SISTEMA DE CONTEO AUTOMÁTICO DE FLUJO DE PERSONAS …repository.udistrital.edu.co/bitstream/11349/7363/1/GarciaPiragua... · Director del Proyecto Ing. Miguel Pérez Pereira Fecha

6. Anexos

6.1 Licencia de uso OPEN CV:

(http://opencv.org/license.html)

License Agreement

For Open Source Computer Vision Library

(3-clause BSD License)

Redistribution and use in source and binary forms, with or without modification are

permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of

conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of

conditions and the following disclaimer in the documentation and/or other materials

provided with the distribution.

Neither the names of the copyright holders nor the names of the contributors may be

used to endorse or promote products derived from this software without specific prior

written permission.

This software is provided by the copyright holders and contributors “as is” and any

express or implied warranties, including, but not limited to, the implied warranties of

merchantability and fitness for a particular purpose are disclaimed. In no event shall

copyright holders or contributors be liable for any direct, indirect, incidental, special,

exemplary, or consequential damages (including, but not limited to, procurement of

substitute goods or services; loss of use, data, or profits; or business interruption)

however caused and on any theory of liability, whether in contract, strict liability, or

tort (including negligence or otherwise) arising in any way out of the use of this

software, even if advised of the possibility of such damage.