102
MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925 STEVEN PARRA GIRALDO 2141430 UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA INGENIERÍA MECATRÓNICA SANTIAGO DE CALI 2019

MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJEPROFUNDO

LUCAS BECHARA ECHEVERRY2136925

STEVEN PARRA GIRALDO2141430

UNIVERSIDAD AUTÓNOMA DE OCCIDENTEFACULTAD DE INGENIERÍA

DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICAINGENIERÍA MECATRÓNICA

SANTIAGO DE CALI2019

Page 2: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJEPROFUNDO

LUCAS BECHARA ECHEVERRYSTEVEN PARRA GIRALDO

Proyecto de grado para optar al título deIngeniero Mecatrónico

DirectorJESÚS ALFONSO LÓPEZ SOTELO

Ph. D. Ingeniero electricista

UNIVERSIDAD AUTÓNOMA DE OCCIDENTEFACULTAD DE INGENIERÍA

DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICAINGENIERÍA MECATRÓNICA

SANTIAGO DE CALI2019

Page 3: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Nota de aceptación:

Aprobado por el Comité de Grado encumplimiento de los requisitos exigidospor la Universidad Autónoma de Occi-dente para optar al título de IngenieroMecatrónico.

Juan Carlos Perafan

Jurado

William Gutiérrez Marroquin

Jurado

Santiago de Cali, 13 de Agosto de 2019

3

Page 4: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

AGRADECIMIENTOS

Agradezco a mi madre y a mi padre por su apoyo incondicional a lo largo de estosúltimos años con el fin de motivarme en el alcance de esta meta. Así mismo, graciasa toda mi familia por sus buenos deseos. Y, sobretodo, gracias a Dios por permitirque este trabajo fuese dispuesto de la mejor manera para su cumplimiento.

Lucas Bechara Echeverry

Agradezco a mi madre y abuela por los sacrificios que han venido haciendo todosestos años con el objetivo de apoyarme en el transcurso de mi carrera profesional.

Steven Parra Giraldo

Se agradece de manera conjunta a nuestro director de tesis Jesús Alfonso LópezSotelo por brindarnos la teoría durante las asignaturas de Redes Neuronales Ar-tificiales y Deep Learning, y Control Inteligente, ya que, gracias a estas, logramostomar la decisión de solucionar el problema mediante el uso de inteligencia artificial.Por otro lado, agradecemos profundamente a Zeida Solarte, por darnos las bases,además de las asesorías desde la perspectiva del Internet de las Cosas, puesto quegracias a esto se pudo hacer un sistema de monitoreo continuo y con acceso a lainformación de manera remota. Además, se les agradece a los profesores que tu-vimos durante la vida universitaria, debido a que gracias a ellos logramos tener lasbases que permitieron realizar este trabajo de grado, teniendo en cuenta la calidadque exige ser parte de la Universidad Autónoma de Occidente.

4

Page 5: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

CONTENIDO

Pág.

GLOSARIO 12

RESUMEN 14

INTRODUCCIÓN 15

1 PLANTEAMIENTO DEL PROBLEMA 16

2 JUSTIFICACIÓN 17

3 OBJETIVOS 183.1 OBJETIVO GENERAL 183.2 OBJETIVOS ESPECÍFICOS 18

4 ANTECEDENTES 19

5 TEORÍA DE LAS REDES NEURONALES ARTIFICIALES 315.1 NEURONA ARTIFICIAL 315.2 REDES NEURONALES ARTIFICIALES 345.3 RED NEURONAL MONOCAPA 355.3.1 Red neuronal multicapa 365.3.2 Redes Multicapa profundas 365.3.3 Redes convolucionales 375.3.4 Transfer Learning 385.4 TIPOS DE OPTIMIZADORES 385.4.1 Gradiente descendente 395.4.2 Momentum 395.4.3 AdaGrad 405.4.4 AdaDelta 415.4.5 Adam 425.4.6 Ftrl 42

5

Page 6: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.5 TASA DE APRENDIZAJE 435.6 LOTES 435.7 TUNING DE ENTRENAMIENTO (HIPERPARAMETROS) 435.8 PROPAGACIÓN INVERSA (BACKPROPAGACIÓN) 445.9 DATASET 475.9.1 Tipos de Dataset 475.9.2 Variables Cualitativas o Categóricas 495.9.3 Escala Nominal 495.9.4 Escala Ordinal 50

50515253

54

5.10 Extracción de características5.10.1 Aprendizaje profundo (Deep Learning) 5.10.2 Aprendizaje supervisado5.10.3 Visión por Computador

6 SOFTWARE REQUERIDO Y TEORÍA IOT 6.1 LENGUAJES DE PROGRAMACIÓN 546.1.1 Python 546.1.2 Lenguaje C 556.2 LIBRERIAS PARA VISIÓN COMPUTARIZADA 556.2.1 Matplotlib 556.2.2 Numpy 566.2.3 Opencv 566.3 ENTORNOS 576.3.1 Anaconda 576.4 TENSORFLOW 586.4.1 Tensorboard 586.5 YOLO DETECTION 606.5.1 Darkflow 606.6 GOOGLE COLABORATORY 606.6.1 Máquinas virtuales 606.6.2 CPU - Google Cloud Platform 616.6.3 GPU - Google Cloud Platform 616.7 INTERNET DE LAS COSAS (IoT) 626.7.1 Objetos de IoT 626.7.2 Sensores 63

6

Page 7: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

6.7.3 Plataformas de IoT 64

7 METODOLOGÍA 667.1 OBTENCIÓN DE DATOS 667.2 PREPARACIÓN DE DATOS 667.3 DETECCIÓN DE PERSONAS 677.4 PREPACIÓN DE LOS DATOS CON YOLO 677.5 PLATAFORMAS EN LA NUBE 677.6 GRAFO 687.7 SOFTWARE DE VISUALIZACIÓN DE INFORMACIÓN 697.8 VALIDACIÓN 69

8 RESULTADOS 708.1 EJECUCIÓN DE LA OBTENCIÓN DE DATOS 708.2 EJECUCIÓN DE LA PREPARACIÓN DE DATOS 768.3 ENTRENAMIENTO DE RED PARA CLASIFICACIÓN DE NIVELES DE

OCUPACIÓN EN LA UAO 798.4 TESTEO DE LA RED NEURINAL PROFUNDA 838.5 BASE DE DATOS 878.6 PROCESAMIENTO Y ALMACENAMIENTO DE DATOS 898.7 INTERFAZ GRAFICA ADMINISTRADOR 908.8 INTERFAZ GRAFICA USUARIO 91

93

96

9 CONCLUSIONES

REFERENCIAS

7

Page 8: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

LISTA DE FIGURAS

Pág.

Fig. 1 Cafetería llena 16

Fig. 2 Mejores resultados del desafió ImageNet 2012.[6] 20

Fig. 3 Representación de AlexNet .[5] 20

Fig. 4 Infraestructura de sensores en el estadio Croke Park .[8] 22

Fig. 5 Detección de objetos con TensorFlow MobileNet.[10]. 23

Fig. 6 Vista desde un Celular. [13] 24

Fig. 7 Metodología de conteo de personas utilizando extracción decolores y segmentación para la detección de rostros 25

Fig. 8 Ejemplo de imagen procesada [16]. 26

Fig. 9 Diagrama del parqueadero con indicaciones [15]. 26

Fig. 10 Prototipo [15]. 27

Fig. 11 Aplicación del prototipo [15]. 27

Fig. 12 Imagen de escala de grises y su máscara correspondiente y c)

ejemplo de subdivisión de imagen [17]. 28

Fig. 13 Imágenes sintéticas: a) imagen inicial, c) inicial más 5 % y d)inicial más 10 % de información, b), d) y f) los resultados del método propuesto, respectivamente. [17]. 29

Fig. 14 Etiquetado de imágenes de drones en sabana africana [18]. 29

Fig. 15 Resultados de detección de animales en África [18]. 30

Fig. 16 Neurona Artificial. [20]. 32

Fig. 17 Red Neuronal Monocapa [22]. 35

Fig. 18 Red Neuronal Multicapa. [23]. 36

Fig. 19 Red Neuronal Multicapa Profunda. [23]. 37

Fig. 20 Ejemplo de red convolucional [24]. 37

Fig. 21 Re-entrenar ultima capa Softmax. [25]. 38

Fig. 22 Tasa de entrenamiento según sus hiperparametros [28]. 44

8

Page 9: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 23 Previsualización de dataset MNIST [31]. 49

Fig. 24 Ejemplo de Visión de Computador [38]. 53

Fig. 25 Tensorboard [51]. 59

Fig. 26 Ejemplo de lente ojo de pez.[60]. 64

Fig. 27 Diagrama cliente - servidor.[61]. 65

Fig. 28 Cámara 360. 70

Fig. 29 Cámara seguridad cafetería. 71

Fig. 30 Cámara Cafetería Primer Piso. 71

Fig. 31 Cámara laboratorio Electrónica. 72

Fig. 32 Cámara laboratorio Automática. 73

Fig. 33 Base de Datos Entrenamiento. 74

Fig. 34 Base de Datos Entrenamiento: 9 videos representativos de 7minutos y medio en donde se ilustran cada uno de los estados de ocupación por parte de personas en cafetería primer piso, laborato-rio de electrónica y laboratorio de automática. 75

Fig. 35 Diagrama de flujo Entrenamiento: Vista general de entrenamiento. 76

Fig. 36 Carpetas de 9 niveles de ocupación con cuadros delimitadores

generados por Yolo Detection. 77

Fig. 37 Carpeta Electrónica Vacía con cuadros delimitadores genera-

dos por Yolo Detection. 78

Fig. 38 Grafo general de la red de clasificación de niveles de ocupación. 80

Fig. 39 Cuellos de botella generados por la red para el entrenamiento

(Bottlenecks). 81

Fig. 40 Entrenamiento con 1000 iteraciones a una tasa de aprendizaje(learning rate) de 0.01. 82

Fig. 41 Evolución de la Exactitud (accuracy) respecto a las iteraciones. 82

Fig. 42 Evolución del Cruce de entropía cruzada (cross entropy) res-

pecto a las iteraciones. 83

Fig. 43 Base de Datos Testeada. 87

9

Page 10: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 44 Tabla de MySQL. 88

Fig. 45 Diagrama de flujo IoT. 89

Fig. 46 Interfaz Administrador 90

Fig. 47 Interfaz Administrador 91

Fig. 48 Interfaz usuario Móvil 92

10

Page 11: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

LISTA DE TABLAS

Pág.

TABLA I Nomenclatura del Algoritmo BackPropagation 33

TABLA II Tarifas de Taxi en New York 2018 48

TABLA III Resultados DNN MobileNet V1.0 (Primera Parte) 85

TABLA IV Resultados DNN MobileNet V1.0 (Segunda Parte) 86

11

Page 12: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

GLOSARIO

ACCURACY: Nivel de acierto en el entrenamiento, teniendo en cuenta los archivosde validación vs los archivos de entrenamiento, entre más cerca de 1 esté mejor, esun buen indicador para saber que la red neuronal quedó bien entrenada.68

ARRAY: Un array es un medio de guardar un conjunto de objetos de la misma clase,conocido como un vector.56

BITS: Bit es el acrónimo de Binary digit y un bit es un dígito del sistema de numera-ción binario.55

BYTES: Byte es la unidad de información de base utilizada en computación y en te-lecomunicaciones, y que resulta equivalente a un conjunto ordenado de ocho bits.55

CO: Capa Oculta.36,45

CS: Capa de Salida.45

CUALITATIVA: Representa cualidad o atributo.49

CUANTITATIVA: Numérico.49

FRAMES: Imágenes que conforman un vídeo.66

GRAFO: El Grafo es un diagrama donde se ilustran las conecciones o los nodos delas capas.32

IOT: “Red de objetos cotidianos interconectados a través de Internet”.6, 62

IP: Una dirección IP es un número que identifica, de manera lógica y jerárquica, auna Interfaz en red.62, 63

LOSS: Pérdida en el entrenamiento, entre más cerca a cero esté, mejor resultadode entrenamiento se obtiene.68

MLP: Red Multicapa.36

NEURONA ARTIFICIAL: Es la representación matemática de la neurona biológi-ca.31

NFC: Tecnología inalámbrica de corto alcance (Near Field Communication).62

OPTIMIZADOR: Buscar tener la mejor cantidad de neuronas y la mejor precisión.39,42

12

Page 13: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

PESO SINÁPTICO: Representan la intensidad de interacción entre cada neuro-na.32.

RFID: Identificador por radio frecuencia (Radio Frequency Identification).62

RNA: Las redes neuronales artificiales son un modelo computacional vagamenteinspirado en el comportamiento observado en su homólogo biológico. 34, 51-53

SCRIPT: En informática, un script, archivo de órdenes, archivo de procesamientopor lotes o, cada vez más aceptado en círculos profesionalesy académicos, es unprograma usualmente simple, que por lo regular se almacena en un archivo de textoplano [1]. 54

TIPADO DINÁMICO: Un lenguaje de programación es dinámicamente tipado si unamisma variable puede tomar valores de distinto tipo en distintos momentos. La ma-yoría de lenguajes de tipado dinámico son lenguajes interpretados, como Python oRuby. [2].54 .

XOR: Compuerta lógica no lineal, si le entra un 1, saca un 0, si le entra un 0 sacaun 1.44

13

Page 14: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

RESUMEN

En el presente proyecto se desarrolló una aplicación de aprendizaje profundo (Deep Learning) la cual identifica el nivel de ocupación en lugares comunes con afluencia de personas en la Universidad Autónoma de Occidente, haciendo uso de la técnica transfer Learning para identificar de forma cualitativa el estado de ocupación. Para llevar a cabo este proyecto, se utilizó una red neuronal pre-entrenada (Yolo Detec-tion) para clasificar el objeto(Persona). Con base en dicha información se creó el dataset compuesto de 9 clases, las cuales representan los estados (vacío, medio y lleno) de la cafetería primer piso, laboratorio de electrónica y laboratorio de automá-tica. La aplicación fue desarrollada en TensorFlow, en donde se usó Yolo Detection para añadir la característica de los cuadros delimitadores a las imágenes. Una vez se obtuvieron las representaciones de las imágenes procesadas por Yolo Detection, posteriormente se entrenó una capa clasificadora mediante transfer learning usan-do Mobilenet V1.0 para realizar de forma cualitativa la representación de ocupación por parte de personas en los lugares. El sistema de interfaz gráfica está compuesto por 2 componentes; Aplicación desarrollada en Java para administradores y el desa-rrollo de una aplicación de Android Studio para usuarios. Se hizo de esta manera para evitar de que el usuario final tenga acceso a las imágenes capturadas por el sistema, y con ello solo puede acceder a la información de los estados de niveles de ocupación, por otro lado, el administrador cuenta con una aplicación Web, en la cual puede interactuar con toda la información del sistema, modificar y eliminar da-tos de la base de datos en caso de ser necesario. El sistema de monitoreo funciona en tiempo real teniendo como sensor una cámara tipo (Ojo de pez), obteniendo el nivel de ocupación actualizado cada 5 minutos, este es almacenado en una base de datos MySQL para su registro.

Palabras Claves: Redes neuronales, capas convolucionales, Deep learning, Goo-gle colab, Detección de objetos, Yolo detection, TensorFlow, transfer learning, da-taset, Gradiente descendente, redes, ReLU, BackPropagation, momentum, Cámara tipo(Ojo de pez), parámetros de entrenamiento, IoT.

14

Page 15: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

INTRODUCCIÓN

En el presente documento se mostrarán los procesos desarrollados para poder tener el monitoreo de afluencia de personas utilizando aprendizaje profundo, se muestran técnicas de detección de objetos como Yolo Detection en su versión traducida a TensorFlow como lo es Darkflow, además del uso de la red neuronal convolucional de Mobilenet v1.0, con la cual se clasificaron los estados vacío, medio y lleno de la cafetería primer piso, los laboratorios de electrónica y automática. Posteriormente se usará IoT para poder hacer una conexión en tiempo real de las imágenes cap-turadas por la cámara y la base de datos para almacenar un histórico de: id, lugar, imagen, nivel de ocupación, hora y fecha.

Por lo tanto el objetivo del proyecto es poder tener un monitoreo de afluencia en es-tablecimientos públicos, en tiempo real mediante la implementación de técnicas de aprendizaje profundo (Deep Learning), teniendo como prioridad el hecho de poder tomar decisiones respecto al nivel de ocupación (vacío, medio y lleno) de personas en lugares con afluencia de público, para así optimizar tiempos de espera y evitar en lo posible la congestión; Este tipo de tecnología es escalable, y puede implemen-tarse para otros proyectos como por ejemplo en las estaciones y buses del MIO, así los usuarios tienen conocimiento del estado de ocupación de los buses; también que se tenga información acerca de qué tan llenos se encuentran los laboratorios, biblioteca o la cafetería de la Universidad Autónoma de Occidente.

15

Page 16: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

1. PLANTEAMIENTO DEL PROBLEMA

¿A la hora de desplazarse, se considera que es una pérdida de tiempo pasar por un lugar lleno de personas? ¿Alguna vez se le ha dificultado encontrar una mesa libre en cafetería para poder almorzar?

Fig. 1. Cafetería llena

La afluencia excesiva de personas en un lugar determinado puede provocar pérdi-das deliberadas de tiempo, lo que se traduce en dificultad para encontrar un sitio de reunión o en su defecto un lugar tranquilo para poder estudiar. Esto se ve reflejado en el interior de la Universidad Autónoma de Occidente, debido a la gran cantidad de personas que hacen uso de los espacios con mayor cantidad de público, como la cafetería, biblioteca y el área de “mesas”. Por otro lado, existen entidades o em-presas que les gusta tener un monitoreo de las personas que entran y salen de sus establecimientos, esta es una tarea tediosa puesto que requiere una importan-te cantidad de tiempo hacer este conteo mediante observadores o las facturas del lugar; Más aún si el establecimiento dispone de varias puertas de acceso; Lo cual puede reflejar un porcentaje de error significativo puesto que el hecho de que una persona tenga una factura, no quiere decir que sea una sola persona comprando, en su lugar pueden haber varias. Lo anterior genera el siguiente interrogante:¿Cómo diseñar un sistema que permita monitorear la afluencia y visualizar el nivel de ocupación de personas en sitios públicos usando aprendizaje profundo?

16

Page 17: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

2. JUSTIFICACIÓN

La importancia del presente proyecto radica en la capacidad de analizar datos en tiempo real, con el objetivo de dar una estimación del nivel de ocupación en strea-ming debido al análisis de la afluencia en las diferentes áreas con mayor presencia de gente en la UAO.

La intención de trabajar con técnicas de Inteligencia Artificial (IA) es para resolver problemas que afectan el bienestar de las personas en su vida cotidiana. Este tipo de tecnología a futuro podrá beneficiar a las personas al interior de la UAO porque permitirá ser más eficientes con la organización del tiempo, al momento de ir a co-mer a cafetería o estudiar en alguna otra área del campus con la certeza de que estará vacía o llena. Depende de las aplicaciones, porque es probable que sea útil saber si la biblioteca está llena para ir a desarrollar alguna actividad, o algo por el estilo y es información que sirva para realizar tamaños de mercado los cuales permi-ten poder determinar la viabilidad de un producto o servicio a partir de un mercado primario (Clientes potenciales), normalmente estos análisis del mercado se realizan haciendo uso de encuestas, por ello sería de gran utilidad saber si el sitio en donde se requiere hacer las encuestas se encuentra lleno, puesto que se tendrán mayores probabilidades de éxito en dicho estudio. A partir del modelo se podría estimar el número de personas que se encuentran en cafetería a las horas de almuerzo, etc. Por ende, el alcance del proyecto es bastante amplio, sin mencionar por supuesto las aplicaciones en la movilidad de la ciudad y en la industria. El hecho de poder saber si un bus o estación del MIO se encuentra congestionada serviría para que se le pueda dar más prioridad a la ruta o estación en cuestión, suministrando más cantidad de buses o en su defecto evitar dicha congestión utilizando otro medio de transporte, en caso de que la persona deseé llegar con urgencia a su destino.

17

Page 18: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

3. OBJETIVOS

3.1. OBJETIVO GENERAL

Desarrollar un sistema de monitoreo con aprendizaje profundo que permita analizar la afluencia de personas en las áreas o lugares con mayor flujo de público de la Universidad Autónoma de Occidente, pudiendo determinar y visualizar el nivel de ocupación en lugares críticos como biblioteca, lugares de talleres y laboratorios, cafeterías, entre otros.

3.2. OBJETIVOS ESPECÍFICOS

Desarrollar dataset para entrenamiento de red neuronal.

Seleccionar el modelo de aprendizaje profundo a utilizar.

Entrenar el modelo seleccionado para detección de afluencia.

Validar la propuesta con un prototipo del sistema para el monitoreo de afluenciade personas y visualizar el nivel de ocupación en la UAO.

18

Page 19: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

4. ANTECEDENTES

Algunas tareas que son naturales para el ser humano y utilizadas comúnmente co-mo lo es la visión, el reconocimiento de la voz o el procesamiento del lenguaje, son procesos que resultan complicados de llevar a cabo de manera artificial. Esta es un área que ha estado en constante desarrollo dentro del campo de la IA por déca-das. Sin embargo, a partir del 2006 se han logrado unos avances importantes en el desarrollo de estas y otras tareas, gracias a la utilización del Deep Learning (DL), por respetar su nombre en inglés, o “Aprendizaje Profundo”.[3]

En el apartado de visión, las redes neuronales convolucionales (CNN) fueron muy populares desde 2012, prueba de ello son los resultados obtenidos en diferentes competencias como por ejemplo el ILSVRC (Concurso de Reconocimiento Visual de Gran Escala de ImageNet) en 2012. ImageNet es un conjunto de datos de más de 15 millones de imágenes etiquetadas de alta resolución con alrededor de 22,000 categorías. ILSVRC utiliza un subconjunto de ImageNet de alrededor de 1000 imá-genes en cada una de las 1000 categorías. En total, hay aproximadamente 1.2 mi-llones de imágenes de entrenamiento, 50,000 imágenes de validación y 150,000 imágenes de prueba en donde se debía clasificar desde platos de comida hasta las razas de perros [4], esta competencia es famosa, porque fue en la primera que se presentó un modelo de aprendizaje profundo; Este modelo se denominó ”AlexNet” y tenía la particularidad de ser más preciso que otros modelos que no usaban redes neuronales, logrando una tasa de error entre el 5 % y el 15.3 % lo cual superaba al 26 % del mejor modelo anterior [5].

19

Page 20: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 2. Mejores resultados del desafió ImageNet 2012.[6]

el llamado ”AlexNet” es lo que se puede considerar hoy en día como una arquitecturasimple con cinco filtros convolucionales consecutivos, capas de agrupación máximay tres capas totalmente conectadas [4].

Fig. 3. Representación de AlexNet .[5]

Si bien son bastantes las tareas en las que se ha tenido éxito con el uso de redesneuronales profundos, lo que tienen en común, es que requieren de una red convo-lucional (CNN) como parte fundamental. Por ejemplo, para la detección de objetos(como peatones y vehículos) en imágenes o vídeo, se requiere de dos secciones: laprimera es la red convolucional (CNN) con la que se hace la clasificación de objetosde interés, y la segunda es en la que se asignan las coordenadas de la ubicación dedichos objetos en la imagen. Por otra parte, se encuentran las ciudades inteligen-tes, en las cuales es primordial el uso del internet de las cosas para permitir que sefaciliten herramientas útiles para mejorar el nivel de vida de los ciudadanos. Segúnlos autores de Global Perspective of Smart Cities [7], las ciudades inteligentes se

20

Page 21: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

deben concebir como ”Un sistema urbano que utiliza tecnología de la informacióny la comunicación (TIC) para hacer que tanto su infraestructura como sus serviciospúblicos sean más interactivos, más accesibles y más eficientes.” Un objetivo de laciudad inteligente es mejorar la calidad de vida de los ciudadanos al tiempo queproporciona un entorno sostenible y reduce el costo de la vida.

Son bastantes los desafíos que enfrentan las ciudades inteligentes, al-gunos de ellos son poder procesar los datos generados a raíz de losmúltiples sensores instalados alrededor de toda la infraestructura tec-nológica de la misma, entre esos sensores se encuentran los disposi-tivos con la capacidad de grabar video, en especial para salvaguardarla seguridad de los ciudadanos. Sin embargo, lo referente a la capturade video y el posterior procesamiento conlleva a los siguientes retos:

- Optimizar el ancho de banda de la red.- Capacidad de respuesta en tiempo real.- Preservación de la privacidad de los datos personales.

Diferentes aplicaciones de procesamiento de imágenes y visión compu-tacional requieren una alta calidad en sus datos por lo que aumentan elvolumen de datos (píxeles) que deben transferirse desde la cámara aun servidor de procesamiento central o sistema en la nube. Esto lo queprovoca es que sea de vital importancia optimizar el ancho de bandade red y por supuesto incrementar la capacidad computacional paraprocesar dicha información. En una aplicación de monitoreo de multi-tudes basada en video, los cuadros capturados pueden transformarseen información relevante como por ejemplo determinar la cantidad depersonas en la escena, determinar comportamientos, etc. En el pre-sente artículo se menciona que durante las pruebas realizadas en unestadio (el cual emula el comportamiento de una ciudad inteligente,debido a que tiene que lidiar con multitudes, organización de los espa-cios y brindar confort a sus usuarios.

21

Page 22: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 4. Infraestructura de sensores en el estadio Croke Park .[8]

Se pudo determinar que la experiencia en el estadio se puede mejo-rar al monitorear a la multitud para evitar la congestión y mejorar la administración de emergencias [8].

El aprendizaje profundo (Deep Learning) busca emular la forma en la que el cerebrohumano trabaja, logrando realizar el entrenamiento de neuronas artificiales distri-buidas en una serie de capas profundas para poder procesar una gran cantidad dedatos; Es por ello que el apogeo del aprendizaje profundo en esta época ha tenidouna relevancia importante, puesto que se cuenta con una capacidad de procesa-miento bastante alta, gracias al hardware que se puede encontrar en el mercado.

Por otro lado, existen avances en software que permiten mediante el uso de redesneuronales artificiales poder detectar y clasificar diferentes objetos en tiempo real.Esto se realiza haciendo uso de redes ya pre-entrenadas (Transfer Learning) conel objetivo de clasificar diferentes objetos en el entorno que se encuentren en elcampo de visión de la cámara. Estos algoritmos son usados por compañías quedesarrollan vehículos autónomos para poder evitar colisiones, desvíos de carril ypredecir a partir de parámetros, posibles accidentes [9].

22

Page 23: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 5. Detección de objetos con TensorFlow MobileNet.[10].

Actualmente Google realiza el monitoreo de afluencia de personas haciendo uso desu ubicación por GPS de los celulares de usuarios obteniendo información, de estamanera el sistema ubica muchos dispositivos en un mismo lugar, este indicara elnivel de congestión. Sin embargo, esta aplicación no tiene en cuenta a las personasque no dispongan de un Smartphone o que no utilicen servicios Google, por otrolado, si las personas se encuentran en un edificio, el sistema no puede determinarexactamente en qué lugar se encuentra el usuario; piso, local, sótano, etc. Estolimita al sistema, además de que cabe mencionar que se necesita una conexióna internet para enviar la ubicación, y esto es algo que no todos los usuarios decelulares cuentan. Finalmente si las personas se encuentran en sótanos, el GPStiende a fallar, lo cual también se traduce en pérdidas de precisión [11].

Google cuenta con Search y Maps, los cuales indican que tan lleno puede estar unestablecimiento dada la hora y el día mediante el uso de la opción "Popular Times".Esta función es útil si se está planeando un itinerario de cosas para hacer en undía. Por ejemplo, ir a un restaurante y luego ir una función de cine. Se puede revisarcuánto tiempo suelen demorarse las personas en ese restaurante y organizar eltiempo necesario para llegar a tiempo a una película, los niveles de ocupación delos establecimientos dependiendo del horario, esto se puede observar en la figura 6[12].

23

Page 24: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 6. Vista desde un Celular. [13]

Por otro lado, se han hecho implementaciones para el conteo de personas utilizandootras técnicas de detección como es el procesamiento de imágenes, en donde unode los artículos relacionados se denomina ”Crowd Density Estimation using ImageProcessing [14]” lo que traduce en español; Estimación de la densidad de multitudesusando procesamiento de imágenes. En este trabajo los autores buscan clasificarpersonas y hacer conteo de las mismas, para hacerlo lo hacen a través de modelosde colores como por ejemplo el RGB, HSV, YCbCr. Además usan metodologías paraextraer los contornos de las cabezas de las personas usando propiedades circularesen las imágenes. Con ellos logran extraer diferentes características como son; Colorde piel, contornos de las personas, y las partes de las mismas como las cabezas y

24

Page 25: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

brazos. En resumen, lo que realizan es un procesamiento de imágenes para extraerla segmentación de las personas respecto a otros objetos que existan en la imagenoriginal.

(a) Imagen original (b) Binarización de laimagen usando modelode color HSV.

(c) Binarización de la ima-gen usando modelo de co-lor YCbCr.

(d) Imagen original 2 (e) Remoción de infor-mación no relevante enla imagen

(f) Segmentación debrazos

(g) Segmentación derostros

(h) Detección de rostrosutilizando cuadros deli-mitadores

Fig. 7. Metodología de conteo de personas utilizando extracción de colores y seg-mentación para la detección de rostros [14].

En la Universidad Distrital Francisco José de Caldas se hizo un "Prototipo de sistema para la gestión de ocupación de parqueaderos en un centro comercial""por ingenieros de control, que consiste en solucionar el problema en los parqueaderos cuando se deja libre a la decisión del usuario el lugar donde va a estacionar. Esta situación genera congestión dentro del parqueadero, por esta razón aplican un prototipo que permite gestionar la ocupación de parqueaderos por medio de una red neuronal artificial, asignando de manera óptima la ubicación de

25

Page 26: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

parqueo y genera una dirección web en donde se muestra una guía de ruta quepermite llegar al parqueadero libre asignado [15].

Fig. 8. Ejemplo de imagen procesada [16].

El prototipo hace uso de una (Raspberry pi 2) la encargada de detectar y asignar alnuevo usuario un código QR el que contiene la vista superior del parqueadero conla ruta de su posición a el lugar asignado, como se ve en la siguiente imagen :[15]

Fig. 9. Diagrama del parqueadero con indicaciones [15].

El prototipo tiene las siguientes dimensiones y ha sido usado en una maqueta de unparqueadero como se ve en la siguiente imagen [15]:

26

Page 27: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 10. Prototipo [15].

También se hace usó una aplicación para visualizar el parqueadero asignado y comollegar a esa ubicación [15].

Fig. 11. Aplicación del prototipo [15].

27

Page 28: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Por otra parte un artículo llamado ”Estimación automática de la medida de ocupa-ción de playas mediante procesamiento de imágenes digitales” utilizando otro mé-todo para determinar la densidad de ocupación con procesamiento de imágenes, elcual tiene 2 etapas de proceso, en el primero preprocesamiento se utilizan métodosde corrección de color, subdivisión de la imagen y aplicación de la máscara comoen la figura 12, posteriormente la estimación de densidad de ocupación con uso desegmentación y binarización como se muestra en la figura 13, en el que obtienenmediante sus resultados un error aproximado del 2,6 % lo que sugiere una medidaadecuada a una estimación[17].

Fig. 12. Imagen de escala de grises y su máscara correspondiente y c) ejemplo desubdivisión de imagen [17].

28

Page 29: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 13. Imágenes sintéticas: a) imagen inicial, c) inicial más 5 % y d) inicial más 10 %de información, b), d) y f) los resultados del método propuesto, respectivamente.[17].

En otro contexto, se ha usado la estimación de densidad de objetos en imágenespara poder detectar cantidad de animales mamíferos en África utilizando drones.En el artículo denominado "Detecting animals in African Savanna with UAVs and thecrowds"lo que traduce en español; Detección de animales en la sabana de África convehículos aéreos no tripulados (drones) y aglomeraciones. Para lograrlo un grupo devoluntarios realizó el etiquetado de las imágenes como se ve a continuación:

Fig. 14. Etiquetado de imágenes de drones en sabana africana [18].

29

Page 30: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

La parte de clasificación la hicieron en algoritmos de machine learning para clasifi-cación; (SVM) Una máquina de vectores de soporte. Con este modelo se obtuvieronlos siguientes resultados:

Fig. 15. Resultados de detección de animales en África [18].

Con esto se deja claro que la problemática de determinar el nivel de ocupación ycantidad de objetos en un lugar, es algo que se ha venido trabajando con múlti-ples arquitecturas y el problema más común para abordarlo es la aglomeración deobjetos en una imagen, puesto que, es difícil para cualquier modelo hacer una indi-vidualización y esto a su vez que genera una gran cantidad de falsos positivos enla imagen, esto provoca de que detecte menos o más objetos de los que existen enella.

30

Page 31: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5. TEORÍA DE LAS REDES NEURONALES ARTIFICIALES

5.1. NEURONA ARTIFICIAL

Si se habla de NA quiere decir que la misma proviene de una neurona biológica, es-tas células se encuentran en el cerebro. Y el principal objetivo de la neurona artificial es poder emular el comportamiento de la biológica. Al igual que en el cerebro, estas neuronas están conectadas unas a otras, sin embargo el concepto de las neuronas artificiales no es algo que apenas se haya descubierto en la actualidad, puesto que desde los años 40’s se han venido desarrollando avances significativos que han per-mitido su evolución hacia lo que se conoce hoy en día como el aprendizaje profundo (Deep Learning) [19]. Ahora bien, se puede preguntar ¿Por qué se intentan emular las neuronas biológicas? Porque las neuronas artificiales al igual que las biológicas funcionan por estímulos o señales de entrada provenientes de un medio sensorialu otra neurona, para poder emular el funcionamiento sináptico de las neuronas sele nombra a un vector W por peso sináptico encargado de dar importancia a suseñal de entrada. El parámetro θj mostrado en la figura 16 simboliza el bias (b) oumbral de la neurona encargada de priorizar ciertas neuronas cuando se forman enred, con ello se forman las Redes neuronales, al agrupar cada neurona se aumentalas posibilidades de comunicación y aprendizaje, lo que nos lleva a lo mencionadoanteriormente como Deep Learning. Se puede concluir que para el funcionamientocorrecto de una neurona artificial, esta debe contar con las siguientes característi-cas; Deben ser capaces de percibir entradas, estas señales deben ser modificadaspor los pesos sinápticos, se genera una neta con todas las entradas, transmite da-tos sí y solo sí, se presenta la circunstancia adecuada, finalmente la salida de laneurona se transmite hacia las demás[19].

Pero matemáticamente ¿qué hace una neurona artificial? ya se pudo dimensionarde manera conceptual el funcionamiento de las neuronas artificiales, teniendo claroeso, se procede entonces a explicar en realidad cuales son los cálculos que ha-cen las diferentes unidades de procesamiento y también explicar a menor medida

31

Page 32: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

por qué hoy en día el Deep learning es tan popular. El primer paso es identificar la sintaxis de una neurona artificial, según lo mencionado anteriormente las neuronas biológicas transmiten información, en el caso de las neuronas artificiales le llamare-mos entradas (X) y en prácticamente todos los casos, estas entradas será un vector con n cantidad de entradas Xn, la información que llega a la neurona artificial es modificada por los pesos sinápticos (w) los cuales igualmente son vectores, con el objetivo de emular la sinapsis presente en las neuronas biológicas. Luego se tiene un parámetro adicional el cual es el bias (b) el cual tiene un comportamiento similar a un peso sináptico w, por lo tanto, brinda un estado. Esto se explicará más ade-lante. Los diferentes valores que recibe la neurona son modificados por los pesos sinápticos, los sumamos para producir lo que hemos denominado la entrada neta.

Esta entrada neta es la que va a determinar si la neurona se activa o no [19].La activación o no de la neurona depende de lo que llamaremos Función de Activa-ción. La entrada neta la evaluamos en esta función y obtenemos la salida de la red. Si por ejemplo, esta función la definimos como un escalón unitario, la salida será 1 si la entrada neta es mayor que cero, en caso contrario, la salida será 0 [19]. En la siguiente figura se puede apreciar de forma esquemática lo que es una neurona artificial.

Fig. 16. Neurona Artificial. [20].

Si se observa el gf de izquierda a derecha, se puede apreciar que lo que entra ala neurona (bolita) son las entradas [X1, X2 . . . . Xn] multiplicadas por los snp [Wj1

Wj2. . . . Wjn] y a esa operación se le adiciona el bias [θj]. A ese resultado se leconoce como entrada neta (Netj).

32

Page 33: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

TABLA INomenclatura del Algoritmo BackPropagation

Nota: Se representan las diferentes notaciones para los cálculos matemáticos de laRed Neuronal Artificial. [21].

Las ecuaciones (1)(2)(3):

Netj =N∑i=0

XiWji + θj (1)

33

Page 34: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Netj = X1Wj1 +X2Wj2 + ......XNWjN + θj (2)

Netj = wTXj + θj (3)

Finalmente se determina la salida (Y) la cual está determinada por la función deactivación (FACT) efectuada en la neta.

La ecuación (4):Yj = FACTj(Netj) (4)

Existen diferentes tipos de funciones de activación, en Deep Learning las más co-munes y además las que menos recursos computacionales gastan son las ReLU ylas Softmax.

Función ReLU (5):f(x) = Max(0, x) (5)

Función Softmax (6):

f(xi) =exi∑Ni=0 e

xi

(6)

Permite calcular la probabilidad de la i-ésima neurona

5.2. REDES NEURONALES ARTIFICIALES

Las redes neuronales artificiales (RNA) se pueden considerar una técnica de inte-ligencia artificial c lasificada dentro del aprendizaje automático o machine learning. Las RNA siguen una tendencia diferente a los enfoques clásicos de la inteligencia artificial que tratan de modelar la inteligencia humana buscando imitar los procesos de razonamiento que ocurren en nuestro cerebro [19].

34

Page 35: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.3. RED NEURINAL MONOCAPA

En este tipo de configuración solo nos vamos a encontrar con un vector de entradas Xn el cual no tiene ningún tipo de procesamiento, estos datos entran a una capa la cual tiene la particularidad de compartir el mismo tipo de información (por ello, se le conocen como capas). Antes de entrar a la capa, las entradas X son multiplicadas por los pesos sinápticos W, esta única capa se comporta al mismo tiempo como capa de entrada y salida, al tener solo una capa de procesamiento se le denomina monocapa. A primera vista se puede apreciar una conectividad total entre el nivel de entrada y la capa de salida, pues todas las neuronas de entrada están conectadas con todas las neuronas de salida, por ejemplo, la neurona de entrada i-ésima se conecta a las m neuronas de salida [19].

Existe una relación matemática entre la capa de salida y el espacio de dimensión n, debido a que después del entrenamiento la salida que está compuesta por m neuronas (espacio dimensional) toma dicha relación a partir de las entradas con dimensión n. El esquema de una red neuronal monocapa se puede apreciar a con-tinuación.

Fig. 17. Red Neuronal Monocapa [22].

35

Page 36: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.3.1. Red neuronal multicapa

En este tipo de configuración de red neuronal ya se pasa a tener una capa oculta( CO) y una capa de salida (CS), se sigue conservando la entrada n y la capa desalida m. La CO contiene h cantidad de neuronas y es intermedia entre las entra-das y la CS. La información fluye en única dirección al igual que la red monocapa,desde la entrada a la capa oculta y finalmente, a la capa de salida, además existeconectividad total entre las capas. Hay que aclarar que una red puede tener másde una capa intermedia. En ese orden de ideas entonces ¿Por qué el nombre deoculta? Simplemente porque esta capa no tiene contacto con los datos que modelanel mundo real, es decir, los datos de entrada y salida. [19]. A continuación, se ilustrael esquema de una red multicapa ( MLP) superficial.

Fig. 18. Red Neuronal Multicapa. [23].

5.3.2. Redes Multicapa profundas

Estas redes neuronales básicamente tienen el comportamiento de una red neuronalmulticapa superficial, sin embargo, como se venía hablando las redes multicapa

36

Page 37: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

pueden tener k capas ocultas, es por ello que se llaman profundas, por la cantidadde capas ocultas que tienen. Igualmente tienen un nivel de entrada con n neuronasy una capa de salida con m neuronas. Su esquema se muestra a continuación.

Fig. 19. Red Neuronal Multicapa Profunda. [23].

5.3.3. Redes convolucionales

Las redes neuronales convolucionales son similares a las redes neuronales multi-canal, su principal ventaja es que cada parte de la red se le entrena para realizaruna tarea, esto reduce significativamente el número de capas ocultas, por lo que elentrenamiento es más rápido. Además, presenta invariabilidad en la traslación delos patrones a identificar como se ilustra en la siguiente figura 20. [24].

Fig. 20. Ejemplo de red convolucional [24].

37

Page 38: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.3.4. Transfer Learning

El Transfer Learning se usa como técnica del aprendizaje automático en la que unmodelo o arquitectura entrenada para una determinada tarea se usa para una nueva,esto con el objetivo de reducir la capacidad de computo necesaria para hacer unaacción de clasificación de la imagen o tarea requerida, se puede usar la siguientearquitectura para el entrenamiento:

Re-entrenar la red en la capa Softmax, aprovechando la extracción de caracterís-ticas del modelo pre-entrenado.

Fig. 21. Re-entrenar ultima capa Softmax. [25].

Esta estrategia de Transfer Learning es una de las más eficientes debido a que se entrena la capa Softmax para clasificar l as c lases. L a R NA extrae l os bottlenecks que serían las características de cada imagen para posteriormente re-entrenarse con esos parámetros.

5.4. TIPOS DE OPTIMIZADORES

La optimización se refiere a l a t area de minimizar o maximizar a lguna f unción f(x) alterando x, existen diferentes tipos de optimizadores, los algoritmos para entrenar

38

Page 39: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

redes profundas se basan en el gradiente aplicado a un lote de datos (gradien-te estocástico) y las nuevas propuestas buscan mejorar el desempeño con esteenfoque[26], lo más utilizados son:

5.4.1. Gradiente descendente

Este op intenta encontrar la función de perdida al modificar aleatoriamente los valo-res de los pesos W. En términos más técnicos, el gradiente descendente se aplicaa redes neuronales para la actualización de pesos sin embargo, para su cálculo loideal es usar todos los patrones de entrenamiento o el lote completo de datos (batch)[26]. Una de las desventajas que tiene este op, es que en caso de tener muchosdatos para entrenar la red, el cálculo del gradiente se puede hacer computacional-mente dispendioso e inclusive prohibitivo [26]. Una de las posibles soluciones a esteproblema es utilizando lotes con pequeñas muestras de datos [26].

La ecuación representante esta descrita en(7):

W (t+ 1) = W (t) + α

(− ∂L

∂W

)(7)

5.4.2. Momentum

Cuando se usa este op, el gradiente se calcula respecto al valor actual de los pesos.El momentum, también conocido como momento de Nesterov propone una sutilvariación que consiste en modificar el vector de pesos de acuerdo al momentumque tiene el algoritmo, luego se calcula el gradiente respecto a ese vector de pesosya modificado [26]. Momentum reduce la tasa de aprendizaje cuando los valores delgradiente son bajos.Como se ilustran en las siguiente ecuaciones (8),(9):

39

Page 40: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

∆w(t) = β∆w(t− 1) +

(−α ∂L

∂(w(t) + βv(t))

)(8)

w(t+ 1) = w(t) + ∆w(t) (9)

5.4.3. AdaGrad

Algunas de las dificultades que presenta el gradiente descendente es que se trabajacon una razón de aprendizaje fija, para el caso del algoritmo AdaGrad se busca quela razón de aprendizaje se modifique en el transcurso del proceso de entrenamiento.Esto se logra considerando la sumatoria durante el entrenamiento de las contribu-ciones al gradiente de cada parámetro [26]. Asigna a los atributos frecuentes tasasde aprendizaje más bajas.

Por ejemplo, las ecuaciones (10),(11),(12),(13):

AG(t) = AG(t− 1) +

(∂L

wi(t)

)2

(10)

αi(t) =α0

δ +√AG(t)

(11)

∆wi(t) =

(−α(t) ∗ ∂L

∂wi(t)

)(12)

wi(t− 1) = wi(t) + ∆wi(t) (13)

40

Page 41: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.4.4. AdaDelta

Mejora los resultados de AdaGrad, ya que evita que la tasa de aprendizaje se re-duzca a cero.

Por ejemplo, las ecuaciones (14),(15),(15),(17):

AG(t) = ρ ∗ AG(t− 1) + (1 − ρ) ∗(

∂L

∂wi(t)

)2

(14)

∆wi(t) =

(−RMS [∆wi(t)]

RMS [G(t)]

)(∂L

∂wi(t)

)(15)

A∆w(t) = ρ ∗ A∆w(t− 1) + (1 − ρ) ∗ (∆wi(t))2 (16)

∆wi(t+ 1) = wi(t) + ∆wi(t) (17)

Donde (18),(19):RMS [∆wi(t)] =

√A∆wi(t− 1) (18)

RMS [G(t)] = δ +√AG(t) (19)

41

Page 42: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.4.5. Adam

Este op es un AdaGrad con diferentes mejoras. Usando las ecuaciones (20), (21),(22), (23), (24), (25):

M1(t) = ρ1M1(t− 1) + (1 − ρ1)

(∂L

∂wi(t)

)(20)

M2(t) = ρ2M2(t− 1) + (1 − ρ2)

(∂L

∂wi(t)

)2

(21)

MC1(t) =M1(t)

1 − ρ1(22)

MC2(t) =M2(t)

1 − ρ2(23)

∆wi(t) = − α0MC1(t)

δ +√MC2(t)

(24)

wi(t+ 1) = wi(t) + ∆w1(t) (25)

5.4.6. Ftrl

En español es conocido como “seguir al lider regularizado”, funciona muy bien enlos modelos que son amplios.

42

Page 43: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

En la actualidad los optimizadores Adam y Ftrl son muy buenas opciones predeter-minadas para entrenar modelos de DNN y modelos lineales en Machine Learning [27].

5.5. TASA DE APRENDIZJE

Este hiperparámetro es aquel que controla el tamaño del paso en el espacio del peso W, algunos de los valores más comunes son; 0.1, 0.01, 0.001.

5.6. LOTES

Este es otro de los hiperparametros principales, se encarga de controlar la cantidad de muestras para calcular el gradiente. Los valores más comunes son; 100, 30, 5.

5.7. TUNING DE ENTRENAMIENTO (HIPERPARAMETROS)

Cuando se habla de Tuning, se podría pensar en la afinación d e u n instrumento musical, cambiar estos parámetros provoca una respuesta positiva o negativa en la curva de aprendizaje, es por ello, que se podría asociar al arte de afinar un instru-mento musical, debido a que una mala afinación p uede p rovocar u n r esultado no óptimo [27]. Se podrían llegar a las siguientes conclusiones:

Si la tasa de aprendizaje es muy pequeña (pasos pequeños), el entrenamiento tardará mucho.

Si la tasa de aprendizaje es muy grande (pasos grandes), la curva de aprendizaje rebotará por todos lados y se podría llegar a ignorar el punto óptimo.

Si el tamaño del lote es muy pequeño, podríamos terminar rebotando porque el lote puede no ser una buena representación de la entrada.

43

Page 44: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Si el tamaño del lote es muy grande, el entrenamiento tardará mucho [27].

Fig. 22. Tasa de entrenamiento según sus hiperparametros [28].

Como norma general, entre 40 y 100, serán un buen tamaño del lote, incluso en datasets muy grandes, podría usarse hasta 500. También se debe considerar de que el tamaño del lote debe ser representativo del tamaño total del dataset, otra cosa a tener en cuenta, es que el gradiente se calcula dentro del lote, si el lote no es representativo, la pérdida variará mucho de lote a lote [27]. No hay nada dicho acerca de cuáles son los valores exactos para encontrar un modelo más óptimo, la experiencia habla de que es mejor modificar l os v alores a leatoriamente hasta encontrar la mejor respuesta, entre mayor cantidad de proyectos se realicen, se podría llegar a estimar unos parámetros mejores que otros, ya que dependiendo del problema, estos pueden cambiar considerablemente.

5.8. PROPAGACIÓN INVERSA (BACKPROPAGATION)

Inicialmente las RNA tenían el problema de la incapacidad de resolver problemas que no fueran lineales como por ejemplo la compuerta xor, esto conllevo al primer invierno, es decir un periodo en donde no hubo apoyo económico, ni gubernamental para la investigación y desarrollo de las RNA, esto ocurrió durante los años 50’s y 60’s. Sin embargo, uno de los padres de las RNA Paul Werbos, en su tesis docto-ral, propuso realizar un algoritmo que posibilita entrenar las redes multicapa, lo cual

44

Page 45: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

posibilitó darle solución a una variedad de problemas complejos. La función de estealgoritmo es propagar el error desde la CS hacía las CO [29].

Antes de hablar de los algoritmos matemáticos, se deben tener en cuenta el sig-nificado de las variables, revisar la tabla IV. El error de la capa de salida es el únicoque puede calcularse de forma exacta, el algoritmo propone propagar hacia atráseste error para estimar el error en las salidas de las neuronas de las capas ocultas,con el fin modificar los pesos sinápticos de estas neuronas [26].

Los pasos para realizar BackPropagation [29]:

1) Inicializar los pesos de la RNA MLP.2) Mientras la condición de parada sea falsa ejecutamos los pasos 3 al 12.3) Aplicar un vector de entrada.

XP = [Xp1, [Xp2, ..., [Xpi, ..., [Xpn]T . (26)

4) Calcular los valores de las entradas netas para la capa oculta.

Netahpj =N∑i

W hjiXpi + θhj (27)

5) Calcular la salida de la capa oculta.

ihPj = fhj (NetahPj) (28)

6) Calcular los valores netos de entrada para la capa de salida.

Netaopk =L∑

j=1

W okli

okl + θok (29)

45

Page 46: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

7) Calcular la salida de la red.

ypK = f oK(NetaopK) (30)

8) Calcular los términos de error para las unidades de salida.

δopK = (dpk − yopK)f o′

K (NetaopK) (31)

9) Estimar los términos de error para las unidades ocultas,

δhpK = fh′

j (Netahpj)M∑k=1

δopkWokj (32)

10) Actualizar los pesos en la capa de salida.

W hji(t+ 1) = W o

ji(t) + αδopjihpi (33)

11) Actualizar pesos en la capa oculta.

W hji(t+ 1) = W h

ji(t) + αδhpjxpi (34)

12) Verificar si el error global cumple con la condición de finalizar.

Ep =1

2

P∑p=1

M∑k=1

(dpk − ypk)2 (35)

46

Page 47: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.9. DATASET

Es un conjunto o set de datos en el cual brinda información acerca de algo, por ejemplo; Una base de datos de los estudiantes de la UAO, la información de inven-tario en un supermercado, datos sísmicos recopilados en el volcán Nevado del Ruiz, etc. Y tiene como objetivo principal, extraer características (features) las cuales sir-van como indicios para poder definir una etiqueta (es decir lo que se quiere predeciro inferir). Por ejemplo; si se quiere clasificar perros y gatos, se deben consideraraquellas cosas que los diferencian:

Los gatos tienen bigotes.

Las orejas de los gatos.

Los ojos de los gatos.

Incluso se podría hablar de una diferencia de tamaño y contextura física, en este caso, todas las anteriores fueron características, y la inferencia o predicción es poder decir con base en aquellas características, si es un perro o un gato. En términos generales, los datasets se componen de grandes cantidades de información que sirven como referencias y entre más información se tenga acerca del objeto o la etiqueta, más fácilmente se va a poder predecirla o inferirla.

5.9.1. Tipos de Dataset

• Tabulares

Los datasets tabulares son aquellos que incluyen variables cualitativas y cuantitati-vas, un ejemplo de ello es la siguiente tabla II:

47

Page 48: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

TABLA IITarifas de Taxi en New York 2018

Nota: Se representan las diferentes características que conllevan al precio final de la tarifa de usar taxi, esto fue tomado de un dataset público en BigQuery, el cual hace parte de Google Cloud Platform [30].

Por ejemplo, en este tipo de datasets, se pueden realizar predicciones del precio final del recorrido, teniendo en cuenta que las características más relevantes son el tiempo del trayecto, la distancia, zona (latitud) y la hora de recogida también puede ser determinante para estimar un posible precio. Estos tipos de datasets son los más comunes, puesto que, la recolección de información se facilita gracias a lo que se conoce hoy en día como “BigData”, también son datasets sencillos de organizar y de manejar mediante una buena gestión de los datos, por ejemplo, SQL (Lenguaje de consultas estructurado) permite hacer un filtro de los datos que se quieren obtener de una base de datos y trabajar con ellos para hacer alguna técnica de machine learning.

• Imágenes

Los datasets de imágenes son aquellos que almacenan miles y millones de imá-genes, las cuales permiten hacer ejercicios de clasificación, uno de los ejemplos clásicos, es el dataset MNIST, el cual representa dígitos escritos a mano del 0 al 9, además está conformado por 60.000 imágenes de entrenamiento y 10.000 para

48

Page 49: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

validación, el tamaño de las mismas es de 28x28 píxeles.

Fig. 23. Previsualización de dataset MNIST [31].

Normalmente, cuando se quiere afrontar un problema de clasificación con imágenes,se crean datasets propios, ya sea usando imágenes tomadas de manera propia odescargándolas directamente de internet.

5.9.2. Variables Cualitativas o Categóricas

Se entenderá por variable cualitativa aquella que representa una cualidad o atributo,por ejemplo; Sexo, nacionalidad, color, raza, estrato social, etc. Las variables cua-litativas presentan 2 escalas de medición, su conocimiento y comprensión es muyimportante desde el punto de vista práctico porque ayuda a identificar qué medidasestadísticas es posible utilizar en los análisis [32].

5.9.3. Escala Nominal

En esta escala los diferentes valores que toma la variable, no se le puede definir unorden natural, por ejemplo; Sexo, estado civil, raza, color, etc [32].

49

Page 50: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.9.4. Escala Ordinal

En esta escala los diferentes valores que toma la variable categórica se puedenclasificar de acuerdo a un orden natural predeterminado, pero las diferencias que serepresentan entre ellos no tienen sentido cuantitativo, por ejemplo; Nivel educativo,estrato social, nivel de satisfacción, etc [32].

5.10. Extracción de características

Los algoritmos que usa el Machine Learning para aprender no tienenningún conocimiento sobre el ámbito al que pertenecen los datos nicontexto para utilizarlos. Por ejemplo, cuando un campo es numéricosólo saben que los números que contiene siguen un orden. No sabencuándo un número es par o impar, o primo, o si está dentro o fuerade un rango determinado. El algoritmo recibe el valor de un campo talcomo está, y le aplica sus procedimientos para intentar aprender de élsin más información. No obstante, las informaciones para agrupar uncampo edad podrían ser crear tres grupos: jóvenes, adultos y mayores,o que en un campo número se puede distinguir entre pares e imparesy eso indicará la acera de la calle donde se ubica un edificio, estaspueden ser importantes para que el modelo funcione. Por lo tanto, enestos casos se deberá introducir esa información para ayudar al algo-ritmo. La forma de hacerlo es crear nuevos campos transformados apartir de los que haya en el Dataset y usar el nuevo Dataset extendidopara entrenar el modelo.

Hay transformaciones usuales, como la discretización de los valores deun campo, reemplazar los valores ausentes por un valor fijo, normali-zar, o utilizar valores elegidos al azar. Así pues, transformar el campoedad en un campo categórico con tres rangos de edad se puede ha-cer usando una discretización del campo por terciles. Normalmente,

50

Page 51: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

una vez construidos estos campos derivados, se eliminará el campodel cual proceden de nuestro dataset, o lo excluiremos del conjuntode campos a usar en el aprendizaje. Tener dos campos directamentedependientes como candidatos a predictores para un modelo podríaafectar negativamente, ya que ambos están aportando la misma infor-mación y eso podría confundir al modelo.

Hay que recordar que el Dataset es la base de nuestro aprendizaje.Una buena ingeniería de datos puede ser determinante en la soluciónde nuestro problema. Para ello, es indudablemente necesario un buenconocimiento del dominio en que se va a aplicar el Machine Learning.Dado el gran número de transformaciones posibles, no existen todavíasoluciones automatizadas que permitan determinar cuál es la mejorcombinación de nuestros datos de cara al aprendizaje, aunque se estáempezando a avanzar en esta dirección [33].

5.10.1. Aprendizaje profundo (Deep Learning)

El enfoque de la RNA no es reciente, pero en los últimos años ha resurgido el interésen ellas debido a una técnica que permite entrenar redes de muchas capas ocultasdenominada aprendizaje profundo o Deep Learning. El aprendizaje profundo es labase en la cual se apoya la mayoría de los últimos avances en inteligencia artificial[34].El aprendizaje profundo es muy similar al proceso de aprendizaje humano y tieneun proceso de abstracción de capa por capa. Cada una de ellas tendrá diferentes“ponderaciones”, y estas a su vez se reflejan en lo que se aprendió sobre los “com-ponentes” de las imágenes. Cuanto mayor sea el nivel de capa, más específicos sonlos componentes. Al igual que el cerebro humano, una señal original en Deep Lear-ning pasa a través de capas de procesamiento; después, pasa de una comprensiónparcial (superficial) a una abstracción total (profunda) donde puede percibir el objeto[35].

51

Page 52: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Regresión: La regresión es básicamente el método nombrado para poder realizaruna predicción de una variable continua (fracciones o decimales), es decir una va-riable aleatoria con infinitos valores. Por ejemplo, se puede aplicar regresión parapredecir; Peso de una persona, tiempo que tarda en hacer una actividad específica,calcular el precio de una tarifa de taxi, etc.

Clasificación: Un problema de clasificación implica poder realizar una predicciónde una o varias variables discretas (Categóricas), es decir, variables que solo repre-sentan valores enteros, en donde cada uno de sus valores representan una claseu objeto. Por ejemplo, se puede aplicar clasificación para inferir; razas de perros,detección de rostros, personas admitidas y no admitidas, tipos de vinos, cantidad deobjetos de cada una de las diferentes clases, etc.

5.10.2. Aprendizaje supervisado

El aprendizaje supervisado se caracteriza porque el proceso de entrenamiento escontrolado por un agente externo llamado supervisor o maestro. El Supervisor operacomo un “maestro” que guía el aprendizaje en la red y conoce las salidas deseadascorrespondientes a las respectivas entradas [36].

Los datos de entrada se le presentan al supervisor y a la red de neuronal simul-táneamente, el supervisor propone la salida deseada para ser comparada con lasalida de la red neuronal artificial. Para que la labor del supervisor sea exitosa sedefine el error de entrenamiento como la diferencia entre la salida deseada o espe-rada y la salida que produce la RNA [36].

52

Page 53: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

5.10.3. Visión por Computador

En este caso se tiene como información de entrada a la RNA una imagen. Las tareasmás representativas de la visión por computador son:

Clasificación: La tarea consiste en clasificar o etiquetar el objeto que hay en unaimagen.

Localización: La tarea consiste en localizar en una imagen a un determinadoobjeto

Detección: La tarea consiste en detectar o encontrar los objetos que hay en unaimagen. Con los objetos detectados se puede proceder a su respectiva clasificación.

Segmentación: La tarea consiste en separar los píxeles de los objetos que hayen una imagen [37].

Fig. 24. Ejemplo de Visión de Computador [38].

Esta es una breve introducción de lo que son las redes neuronales artificiales ysu aporte a diferentes campos de la ingeniería y sobre todo a la generación desoluciones a problemas mediante datos de entrada y salidas deseadas. Con estofinalmente se dejan sembradas las bases para poder profundizar en el desarrollodel proyecto.

53

Page 54: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

6. SOFTWARE REQUERIDO Y TEORÍA IOT

6.1. LENGUAJES DE PROGRAMACIÓN

Un Lenguaje de Programación es un conjunto de reglas, notaciones, símbolos y/o caracteres que permiten a un programador poder expresar el procesamiento de da-tos y sus estructuras en la computadora. Cada lenguaje posee sus propias sintaxis. También se puede decir que un programa es un conjunto de órdenes o instruccio-nes que resuelven un problema específico b asado e n u n L enguaje d e Programa-ción. [39]. Los lenguajes de programación no son aplicaciones, sino herramientas que permiten construir y adecuar aplicaciones. [40].

6.1.1. Python

Python es muy utilizado en la programación por su facilidad de programar con todas sus librerías, así como lo indica en su página.

Python es un lenguaje de programación poderoso y fácil de aprender.Cuenta con estructuras de datos eficientes de alto nivel y un enfoquesimple pero efectivo a la programación orientada a objetos. La elegantesintaxis de Python y su td, junto con su naturaleza interpretada, hacende éste un lenguaje ideal para script y desarrollo rápido de aplicacionesen diversas áreas y sobre la mayoría de las plataformas. El intérpretede Python y la extensa biblioteca estándar están a libre disposición enforma binaria y de código fuente para las principales plataformas des-de el sitio web de Python, y puede distribuirse libremente. El intérpretede Python puede extenderse fácilmente con nuevas funcionalidadesy tipos de datos implementados en C o C++ (u otros lenguajes acce-sibles desde C). Python también puede usarse como un lenguaje deextensiones para aplicaciones personalizables [41].

54

Page 55: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

6.1.2. Lenguaje C

Es un lenguaje muy utilizado en la programación de microcontroladores y es muyfácil de aprender, como se explica a continuación.

El lenguaje C reúne características de programación intermedia entrelos lenguajes ensambladores y los lenguajes de alto nivel; con granpoderío basado en sus operaciones a nivel de bits (propias de ensam-bladores) y la mayoría de los elementos de la programación estructu-rada de los lenguajes de alto nivel, por lo que resulta ser el lengua-je preferido para el desarrollo de software de sistemas y aplicacionesprofesionales de la programación de computadoras. Su diseño inclu-ye una sintaxis simplificada, la aritmética de direcciones de memoria(permite al programador manipular bits, bytes y direcciones de memo-ria) y el concepto de apuntador; además, al ser diseñado para mejorarel software de sistemas, se buscó que generase códigos eficientes yuna portabilidad total, es decir el que pudiese correr en cualquier má-quina. Logrados los objetivos anteriores, C se convirtió en el lenguajepreferido de los programadores profesionales [42].

6.2. LIBRERIAS PARA VISIÓN COMPUTARIZADA

6.2.1. Matplotlib

Matplotlib es una biblioteca de gráficos 2D en Python que produce ci-fras de calidad de publicación en una variedad de formatos de copiaimpresa y entornos interactivos en todas las plataformas. Matplotlib sepuede usar en scripts de Python, el shell de python e ipython, servido-res de aplicaciones web y seis kits de herramientas de interfaz gráficade usuario. Matplotlib trata de hacer las cosas fáciles y las cosas difí-

55

Page 56: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

ciles posibles. Puede generar gráficos, histogramas, espectros de po-tencia, gráficos de barras, gráficos de error, diagramas de dispersión,etc. Y con solo unas pocas líneas de código [43].

6.2.2. Numpy

Numpy es el encargado de añadir toda la capacidad matemática y vec-torial a Python haciendo posible operar con cualquier dato numérico oarray. Incorpora operaciones tan básicas como la suma o la multiplica-ción u otras mucho más complejas como la transformada de Fouriero el álgebra lineal. Además incorpora herramientas que nos permitenincorporar código fuente de otros lenguajes de programación comoC/C++ o Fortran lo que incrementa notablemente su compatibilidad eimplementación [44].

6.2.3. Opencv

OpenCV (Open Source Computer Vision) es una librería de visión porcomputador de código abierto, La librería está escrita en los lenguajesC y C++ y es compatible con Linux, Windows y Mac OS X. Cuenta conun desarrollo activo en interfaces para Python, Ruby, Matlab y otroslenguajes. OpenCV ha sido diseñado para ser eficiente en cuanto agasto de recursos computacionales y con un enfoque hacia las apli-caciones de tiempo real. OpenCV está escrito y optimizado en C ypuede tomar ventaja de los procesadores con múltiples núcleos. [45].OpenCV tiene una licencia BSD, lo que permite utilizar y modificar elcódigo, tiene una comunidad de más de 47000 personas y más de 7millones de descargas. Es una librería muy usada a nivel comercial,desde Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota, Ap-plied Minds, VideoSurf, Zeiter [46].

56

Page 57: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

6.3. ENTORNOS

Los entornos virtuales permiten aislar los paquetes que se usan para un proyecto en específico y así evitar problemas como por ejemplo los bugs entre las versiones de Python 2 y 3. También se pueden exportar una lista de paquetes en un archivo con todas las dependencias del proyecto entre esos se encuentra el que se ha utilizado de base en proyectos de manera aleatoria [47].

6.3.1. Anaconda

Anaconda una distribución de código abierto que abarca muchas aplicaciones, li-brerías y conceptos diseñados para el desarrollo de la Ciencia de datos con Python. ”En líneas generales Anaconda Distribution es una distribución de Python que fun-ciona como un gestor de entorno, un gestor de paquetes y que posee una colección de más de 720 paquetes de código abierto [48]”.

Características generales de Anaconda Esta Suite cuenta con una gran canti-dad de características. Entre ellas las más destacables serían las siguientes; Anacon-da es libre, de código abierto y con una documentación bastante detallada y una gran comunidad.

Se trata de una suite Multiplataforma (Gnu/Linux, macOS y Windows).

Permite instalar y administrar paquetes, dependencias y entornos para la ciencia de datos con Python de una manera muy sencilla.

Ayuda a desarrollar proyectos de ciencia de datos utilizando diversos IDE como Jupyter, JupyterLab, Spyder y RStudio.

Cuenta con herramientas como Dask, numpy y Numba para analizar Datos.

Permite visualizar datos con Bokeh, Datashader, Holoviews y Matplotlib.

Anaconda Navigator es una interfaz gráfica de usuario (GUI) bastante sencilla,pero con un gran potencial.

57

Page 58: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Permite gestionar de manera avanzada paquetes relacionados a la Ciencia dedatos con Python desde la terminal.

Elimina problemas de dependencias de paquetes y control de versiones.

Está equipado con herramientas que permiten crear y compartir documentos quecontienen código con compilación,

ecuaciones, descripciones y anotaciones.

Permite compilar Python en código de máquina para una ejecución rápida.

Facilita la escritura de complejos algoritmos paralelos para la ejecución de tareas.

Brinda soporte para computación de alto rendimiento.

Los proyectos son portables. Esto permite compartir proyectos con otros y ejecu-tar estos proyectos en diferentes plataformas. [49].

6.4. TENSORFLOW

TensorFlow es una biblioteca de código abierto dirigida al aprendizajeautomático a través de una serie de tareas. Ha sido desarrollado porGoogle para satisfacer las necesidades de sistemas capaces de cons-truir y entrenar redes neuronales para detectar y descifrar patrones ycorrelaciones, análogos al aprendizaje y razonamiento usados por loshumanos. Actualmente es utilizado tanto para la investigación comopara la producción de productos de Google, remplazando el rol de supredecesor de código cerrado [50].

6.4.1. Tensorboard

Los cálculos que utilizará TensorFlow para tarea como entrenar unared neuronal profunda masiva, pueden ser complejos y confusos. Para

58

Page 59: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

facilitar la comprensión, la depuración y la optimización de los progra-mas TensorFlow, se ha incluido un conjunto de herramientas de visuali-zación llamadas TensorBoard. Puede usar TensorBoard para visualizarsu gráfico TensorFlow, trazar métricas cuantitativas sobre la ejecuciónde su gráfico y mostrar datos adicionales como imágenes que pasana través de él. Cuando TensorBoard está completamente configurado,se ve así en la figura 25: [51].

Fig. 25. Tensorboard [51].

59

Page 60: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

6.5. YOLO DETECTION

”(YOLO) es un sistema de detección de objetos en tiempo real y de vanguardia. En una GPU Nvidia Titan X procesa las imágenes a 30 FPS y tiene un MAP del 57.9 %en COCO test-dev [52]."

6.5.1. Darkflow

Es el port de Darknet a TensorFlow. Este es el sistema que más he estado utilizando, principalmente porque inicié este proyecto sin contar con GPU para entrenar la red, y al parecer usando solamente CPU Darkflow es mucho más rápido que el Darknet original. En otras palabras Darkflow nos permite usar Yolo Detection con Tensorflow. test-dev [53].

6.6. GOOGLE COLABORATORY

”Colaboratory es un entorno gratuito de Jupyter Notebook que no requiere configu-ración y que se ejecuta completamente en la nube. Colaboratory te permite escribir y ejecutar código, guardar y compartir tus análisis y tener acceso a recursos infor-máticos muy potentes, todo de forma gratuita desde el navegador [54]."

6.6.1. Máquinas virtuales

Las máquinas virtuales de google están preconfiguardas en cualquier lenguaje des-plegándose rápidamente aplicaciones en PHP, Java, JavaScript, SQL, Ruby, Go, entre otros. Con las máquinas virtuales se pueden migrar datos a la nube sin preo-cupación de las actualizaciones y solo se paga por lo que se usa, se puede acceder

60

Page 61: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

a hardware como CPU y GPU [55].

6.6.2. CPU - Google Cloud Platform

Cuando inicia una instancia de máquina virtual en Compute Engine, lainstancia usa una de las plataformas de CPU disponibles en ComputeEngine. Si no especifica activamente una plataforma de CPU deseada,la instancia usa la plataforma predeterminada para la zona donde seejecutará la instancia. Puede ver una lista de zonas y sus plataformasde CPU predeterminadas en la página Regiones y zonas. Además,cada plataforma de CPU solo está disponible para tipos de máquinasespecíficos.

En Compute Engine, cada CPU virtual (vCPU) se implementa comoun único subproceso de hardware en una de las plataformas de CPUdisponibles. En los procesadores Intel Xeon, la tecnología Intel Hyper-Threading permite que se ejecuten múltiples hilos de aplicación en ca-da núcleo de procesador físico. Configura las instancias de máquinavirtual de Compute Engine con uno o más de estos hipervínculos co-mo vCPU. El tipo de máquina especifica la cantidad de vCPU que tienesu instancia [56].

6.6.3. GPU - Google Cloud Platform

Los científicos, artistas e ingenieros necesitan acceder a una capaci-dad de computación paralela masiva. Google Cloud cuenta con máqui-nas virtuales equipadas con GPU capaces de ofrecer un rendimientopor instancia de hasta 960 teraflops. Gracias a las GPU NVIDIA TeslaK80, P4, P100 y V100, se agilizan tareas como el aprendizaje profun-do, la simulación física y la creación de modelos moleculares. GCP

61

Page 62: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

ofrece la GPU que mejor se ajusta las necesidades de los usuarios,sea cual sea el tamaño de la carga de trabajo.Se puede conseguir específicamente el hardware necesario para unatarea específica, independientemente de si la tarea requiere el uso deGPUs durante horas o semanas. Se puede configurar una instanciacon la proporción exacta de procesadores, memoria y GPUs, en lu-gar de adaptar la carga de trabajo a los límites de la configuración delsistema local [57].

6.7. INTERNET DE LAS COSAS (IoT)

6.7.1. Objetos de IoT

Los objetos utilizados en iot son dispositivos que se clasifican en l as s iguientes 3 categorías:

Objetos Etiquetados Estos objetos, utilizan la tecnología rfid o nfc que per-mite tener la información de manera local como los que son códigos, identificación, descripción, etc. También conocidos como “Objetos No ip” [58].

Objetos Inteligentes Son objetos que están dotados de ciertas capacida-des de computo internas, almacenamiento, interfaz de comunicación por ( ip) lo cual permite a este objeto el procesamiento de datos y la capacidad de enviar informa-ción acerca de su estado [58].

Objetos Sociales Estos objetos heredan gran parte de los objetos inteligen-tes y gracias a eso tienen la capacidad de interactuar con otros dispositivos for-

62

Page 63: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

mando una comunidad de manera autónoma para cooperar y lograr determinadasactividades [58].

6.7.2. Sensores

Las sensores son dispositivos utilizados para adquirir información del mundo que losrodea transformando las señales diferentes dominios de energía al dominio eléctri-co con una salida determinada, los cuales se utilizan para la adquisición de datospara experimentación o incluso en el campo de iot llevar esa información a la nubeprocesarla y almacenarla [59].

Cámaras Las cámaras son utilizadas en la seguridad, robótica, domótica, etc. Pa-ra el análisis del entorno y estas a su vez funcionan como sensores para determinarlo que se encuentra en el lugar.

Las cámaras actualmente se han convertido en objetos inteligentes porque poseeninternamente una capacidad de cómputo y almacenamiento, con el poder de comu-nicarse teniendo una ip para identificarse, esto a llevado a la utilización de cámarasip en los ámbitos mencionados anteriormente por su facilidad de instalación y ma-nejo y su capacidad de subir la información a la nube de una manera más óptima.

Cámara ojo de pez Es un lente que se utiliza en las cámaras para ampliar elángulo de visión de las cámaras y capturar 270 grados de visión o más, dependiendola capacidad o calidad del lente.

63

Page 64: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 26. Ejemplo de lente ojo de pez.[60].

6.7.3. Plataformas de IoT

Una plataforma de IoT se puede definir como un servicio software que reside enla nube, estos se constituyen en puentes que permiten reunir todos los datos delos sensores, actuadores para procesarlos, ya sea para almacenarlos en bases dedatos, para visualizarlos o para analizarlos y extraer de ellos información útil.

64

Page 65: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Protocolo

REST: (Representational State Transfer - Transferencia de Estado Representacio-nal) es cualquier interfaz entre sistemas que use HTTP para obtener datos o generaroperaciones sobre esos datos en todos los formatos posibles, como XML y JSON.[61].

Fig. 27. Diagrama cliente - servidor.[61].

GET: Solicitar la información de un servidor.

POST: Postear información en un servidor.

Java : Es un lenguaje de programación y una plataforma informática.

65

Page 66: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

7. METODOLOGÍA

7.1. OBTENCIÓNDE DATOS

El presente proyecto está enfocado en los lugares públicos de la UAO. Es por ello que los sitios seleccionados son el primer piso de cafetería por su alta concurrencia de personas y variabilidad de ocupación durante el día, la sala de laboratorio de electrónica puesto que es uno de los lugares en donde se reúnen estudiantes de electrónica, eléctrica, biomédica y mecatrónica, por lo tanto también tiene un alto ni-vel de ocupación y finalmente el laboratorio de automática en el cual se encuentran estudiantes de asignaturas como control 1, 2 e inteligente, redes neuronales arti-ficiales y d eep l earning, a ctuadores y a utómatas p rogramables, e tc., l o h acen ser un lugar muy concurrido sobre todo en épocas de parciales. Para la captura de los datos necesarios en la realización del proyecto se recolectan vídeos tomados por una cámara con lente ojo de pez; Estos vídeos tienen una duración de 7.5 minutos cada uno, con el nivel de ocupación correspondiente a vacío, medio y lleno en los 3 lugares, para un total de 9 vídeos.

7.2. PREPARACIÓN DE DATOS

Los primeros datos que se obtienen son vídeos, pero como tal, lo que se necesitan son los frames para poder entrenar la red neuronal y es por ello que se usa un códi-go escrito en lenguaje python para poderlos extraer; Se ingresa el vídeo y se elige un periodo de muestreo que en el presente proyecto es de 30 imágenes por segun-do (frames por segundo), dando un total 121.500 imágenes para el dataset. Hay que tener en cuenta que los datos a utilizar deben estar normalizados o estandarizados para poder obtener resultados óptimos en el entrenamiento; En el presente caso, usando el software que permite hacer grabaciones con la cámara, se define la reso-lución de 638x360 píxeles puesto que esta resolución permite entrenar la red más rápido porque recibe menos información y se alcanza a distinguir correctamente a las personas. Posteriormente se alojan las imágenes en carpetas en donde se les

66

Page 67: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

asigna un nombre diferente a cada una y así se tendrían las 9 carpetas necesarias para posteriormente añadirle la característica de detección de personas.

7.3. DETENCCIÓND DE PERSONAS

Para la detección de personas se usó YoloV2, el cual se descargó de github, en donde además se implementó un filtro que consiste en modificar unos parámetros internos del código, específicamente un archivo l lamado ”predict.py” el cual se en-cuentra en la ruta ”darkflow-master\darkflow\net\yolov2”, en es te programa python se hizo un filtro de las clases para que solo se visualice la clase ”person”, se realizó esto porque esta red neuronal ya viene adaptada para trabajar con el Dataset CO-CO y con ello se ahorra bastante tiempo en hacer un dataset propio de detección de personas. Esta clase aparece en la posición 0 del archivo COCO names, por ende todas las clases que no correspondan a la 0, no mostrara su cuadro delimitador y solo identificara personas.

7.4. PREPARACIÓN DE LOS DATOS CON YOLO

Los datos anteriores ya están divididos correspondientemente al lugar y nivel de ocupación, pero no tienen los cuadros delimitadores que muestran donde están ubi-cadas las personas. Pasando estos datos a las carpetas de manera ordenada y utilizando Google Colaboratory y Yolo, se obtiene cada frame con detección de per-sonas ó cuadro delimitador y asi se prepara el entrenamiento de la red neuronal.

7.5. PLATAFORMAS EN LA NUBE

Inicialmente se tenía pensado utilizar Amazon Web Services como proveedor en la nube para el entrenamiento de las redes neuronales artificiales, sin embargo, no se

67

Page 68: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

pudo obtener suficiente información de parte de la compañía y de un convenio que existe con la UAO. Entonces, se decidió cambiar de opción y nos decantamos por Google Cloud Platorm (GCP), la cual es una plataforma que cuenta con todas las herramientas necesarias para hacer uso de la misma para el entrenamiento y vali-dación de redes neuronales. Además, Google actualmente está haciendo eco en la democratización de la inteligencia artificial, para ello, tiene a disposición de los usua-rios herramientas como AutoML la cual permite por ejemplo hacer clasificadores de imágenes de una forma sencilla, sin utilizar código alguno. Por último, se decidió realizar este proceso en la nube ya que no se dispuso a tiempo de buenos recursos (GPU’s) en la universidad para el desarrollo óptimo de este proyecto. Sin embargo, se identificó que el uso de AutoML es bastante costoso (20 dólares la hora). Por lo tanto, se llevó a cabo la exploración de Google Colaboratory, la cual es gratuita y brinda la capacidad de computo necesaria para entrenar la red neuronal profunda en un periodo de tiempo reducido a diferencia de usar CPU. La ventaja de Colab es que se puede conectar con los servicios de google como Drive y esto facilita el manejo y administración de la información puesto que el dominio de la universidad permite tener en la nube aproximadamente 370 Gb de datos.

7.6. GRAFO

Los grafos permiten visualizar las operaciones y la arquitectura utilizada dentro de una red neuronal artificial, es por ello que también se pueden identificar los lugares en donde la red está fallando o esté mal conectada. Además se pueden observar algunos resultados de entrenamiento como el Loss y el Accuracy, con estos valores se identifica la mejor red a utilizar y así analizar la velocidad de respuesta, teniendo en cuenta lo anterior, la red con mejor velocidad de respuesta es MobilnetV1.0, ya que se necesita un tiempo de respuesta rápido para el cumplimiento del tiempo real.

68

Page 69: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

7.7. SOFWARE DE VISUALIZACIÓN DE INFORMACIÓN

Se desarrollaron 2 plataformas (Netbeans y Android studios) ; Una para el admi-nistrador (aplicación de escritorio en Java) y una aplicación móvil para usuarios en donde se puede solicitar mediante un botón el nivel de ocupación de los diferente lugares de la universidad (cafetería primer piso, laboratorio de electrónica y labora-torio de automática), se pueden visualizar los datos (lleno, medio y vacío) según la información enviada por el servidor. Se tuvieron en cuenta protocolos de IoT como lo es REST para implementar el sistema de envío y recepción de datos, teniendo como lugar de almacenamiento mysql.

7.8. VALIDACIÓN

Para poder darle validez al proyecto, se recurre a comparar la respuesta de la red neuronal artificial, con la imagen original, en donde se evidencie que el lugar efecti-vamente esté (lleno, medio o vacío) según la percepción humana y teniendo como referencia la ubicación espacial y el área de ocupación.

69

Page 70: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

8. RESULTADOS

8.1. EJECUCIÓN DE L OBTENCIÓN DE DATOS

Inicialmente se procedió a importar una cámara con lente ojo de pez, las carac-terísticas técnicas de la misma es que debía dar una buena resolución (mínimo 1280x720 píxeles), además de tener una conectividad wifi para poder transmitir la imagen a través de una de una red a un servidor (computador). La cámara adquirida se puede observar en la figura 28:

Fig. 28. Cámara 360.

Luego de tener la cámara, se tomó la decisión de buscar los puntos estratégicospara que la misma tuviera un gran campo de visión; Inicialmente se pensó en ubicaral lado de las cámaras de seguridad como por ejemplo en la cafetería, en donde seaprecia una cámara de seguridad (ver figura 29) con una ubicación bastante buena(techo).

70

Page 71: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 29. Cámara seguridad cafetería.

Sin embargo, por cuestiones de logística y permisos del personal encargado dela seguridad, no fue posible su instalación en cafetería. Como segunda opción seescogió ubicarla en una de las paredes de segundo piso (cerca de donde están lostelevisores que se aprecian desde el primer piso). Se puede apreciar su ubicaciónen la figura 30.

Fig. 30. Cámara Cafetería Primer Piso.

71

Page 72: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Se tuvo como resultado unas imágenes con alta presencia de luminosidad duranteel día por contraste, impidiendo que el lente se enfocara bien; Pero con la ventajade que es el mejor lugar para obtener una buena visión de las personas en el primerpiso de cafetería. Por otra parte en la biblioteca fue muy complejo posicionar lacámara ya que en el interior de la misma hay muchos puntos de visión y para lograresto serían necesarias varias cámaras en los diferentes lugares, para poder asirealizar el análisis en este lugar. Por lo tanto fue descartado por la ausencia de losrecursos necesarios.

En el laboratorio de electrónica, se ubicó la camara cerca al área de los casilleros(al lado de la entrada principal); Aquel lugar permite un buen rango de visión, peroexiste un inconveniente, y es que alli hay demasiadas columnas estructurales lascuales provocan puntos ciegos y asi no se puede observar todo el laboratorio (verfigura 31).

Fig. 31. Cámara laboratorio Electrónica.

Finalmente, en el laboratorio de automática, la cámara se ubicó entre el salón deautomática y la oficina del encargado del laboratorio, en donde se puede observargran parte del lugar sin problemas.

72

Page 73: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 32. Cámara laboratorio Automática.

Posteriormente, se eligieron los días y horarios más propensos para que los sitiosen cuestión estuviesen en estados lleno, medio y vacío; Con esa información seprocedió a grabar 7:30 minutos de video en cada uno de los 3 estados para lospuntos de grabación (cafetería primer piso, laboratorio de electrónica y laboratoriode automática). Los 9 vídeos fueron almacenados en la nube (Google Drive) parasu posterior procesamiento.

73

Page 74: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 33. Base de Datos Entrenamiento.

74

Page 75: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 34. Base de Datos Entrenamiento: 9 videos representativos de 7 minutos ymedio en donde se ilustran cada uno de los estados de ocupación por parte depersonas en cafetería primer piso, laboratorio de electrónica y laboratorio de auto-mática.

75

Page 76: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

8.2. EJECUCIÓN DE LA PREPARACIÓN DE DATOS

Fig. 35. Diagrama de flujo Entrenamiento: Vista general de entrenamiento.

76

Page 77: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Posteriormente en la preparación de los datos se hace uso de la herramienta GoogleColaboratory (ver 6.6) en donde se puede implementar el código python. Ademásde que se puede hacer uso de manera temporal (12 horas hasta que se restaurela sesión) y gratuita de GPU’s Tesla T4 las cuales cuentan con 16 GB de memoriaGDDR5. Inicialmente lo que se quiere garantizar es que dentro de las imágenescaptadas por el sistema se detecten personas, para ello se usó YOLO (ver 6.5) co-mo librería para añadir una característica (feature) adicional que son los cuadrosdelimitadores (bounding boxes), los cuales otorgan información (píxeles blancos) ala red de clasificación que se implementó (MobilenetV1.0).En primera instancia se obtuvieron los frames de todos los vídeos con los respecti-vos cuadros delimitadores y se separaron por carpetas. (ver figuras 36 y 37).

Fig. 36. Carpetas de 9 niveles de ocupación con cuadros delimitadores generadospor Yolo Detection.

77

Page 78: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 37. Carpeta Electrónica Vacía con cuadros delimitadores generados por YoloDetection.

78

Page 79: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

8.3. ENTRENAMIENTO DE RED PARA CLASIFICACIÓN DE NIVELES DE OCUPACIÓN EN LA UAO

En total se generaron 113.900 imágenes con los cuadros delimitadores; Estas imá-genes posteriormente fueron usadas como dataset de la red neuronal profunda declasificación de estados, que para este caso se decidió usar la arquitectura de Mobi-lenet debido a, que es una red liviana y que por experiencia ha brindado resultadosmuy buenos. Los cuales son ilustrados a continuación.

79

Page 80: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 38. Grafo general de la red de clasificación de niveles de ocupación.

80

Page 81: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 39. Cuellos de botella generados por la red para el entrenamiento (Bottlenecks).

81

Page 82: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 40. Entrenamiento con 1000 iteraciones a una tasa de aprendizaje (learningrate) de 0.01.

Fig. 41. Evolución de la Exactitud (accuracy) respecto a las iteraciones.

82

Page 83: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

Fig. 42. Evolución del Cruce de entropía cruzada (cross entropy) respecto a las iteraciones.

Respecto al Accuracy y al Cross Entropy se puede decir de que la red neuronal quedó entrenada con una precisión bastante alta, prácticamente superior al 97 % y la explicación a esto recae en los datos recopilados, que lograron representar de manera muy exacta lo que se buscaba como objetivo que era la clasificación de los niveles de ocupación por parte de personas en diferentes zonas de la UAO. Estos datos aparte de ser muy variados, se recolectaron en gran cantidad y es por ello que la red se logró entrenar teóricamente de manera excelente. Cabe aclarar que el tiempo de entrenamiento fue de aproximadamente 48 horas en Google Colaboratory.

8.4. TESTEO DE LA RED NEIRONAL PROFUNDA

El solo hecho de que los resultados de entrenamiento-validación sean buenos, no garantiza de que la red en la aplicación del mundo real vaya a funcionar, los resulta-dos del testeo pueden llegar a ser malos en los siguientes casos:

83

Page 84: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

No se entrenó con suficientes datos, y la cantidad de datos no es solo deter-minante. Por ejemplo, si se tiene una gran cantidad de imágenes, pero estas norepresentan la aplicación real, es probable que los resultados no sean los espera-dos.

Una tasa de aprendizaje e iteraciones incorrectas pueden alterar de manera di-recta los resultados, debido a que, si se usa una tasa de aprendizaje cercana a 1.0el modelo se entrena con rapidez, pero puede ser inestable y por ende la red no seentrenaría de forma correcta, es decir con un accuracy inferior al 50 % y un crossentropy lejano a 0.

Es por ello que a continuación se muestran los resultados obtenidos por nuestromodelo en situaciones reales; Es decir con datos que no fueron usados en el entre-namiento.

84

Page 85: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

TABLA IIIResultados DNN MobileNet V1.0 (Primera Parte)

85

Nota: Se representan en tablas los resultados obtenidos a partir del modelo de RNA entrenado.

Page 86: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

TABLA IVResultados DNN MobileNet V1.0 (Segunda Parte)

Nota: Se representan en tablas los resultados obtenidos a partir del modelo de RNAentrenado. En los anexos se añade la dirección del repositorio en GitHub para quese puedan apreciar los códigos necesarios con los que se obtuvieron estos resulta-dos.

86

Page 87: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

8.5. BASE DE DATOS

El código se dejaría ejecutando para que realice muestras cada minuto (hay que tener en cuenta que está en Colab, por ende, la sesión se reiniciará cada cierto tiempo, por lo tanto a nivel de escalabilidad, se necesitaría un servidor propio en la nube como Google Cloud Platform o uno físico); El resultado del procesado se almacena en una carpeta aparte, con su respectiva ubicación, nivel de ocupación, fecha y hora. Esto se puede apreciar en la figura 43.

Fig. 43. Base de Datos Testeada.

La información se envía mediante el formato JSON hacía una base de datos deMySQL que se llama ”monitoreo” y dentro de ella, almacena los datos en una tablanombrada ”uao”. Los datos que deseamos almacenar en la tabla son:

87

Page 88: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

id: Identificador de los datos

nombre: Nombre de la imagen.

imagen: Imagen en formato Base64 (blob).

ocupación: Estado del nivel de ocupación del lugar por parte de personas detec-tado (lleno, medio o vacío).

fecha: Día, mes y año en que se almacenó el dato.

hora: Horario en formato 24 horas en que se almacenó el dato.

Fig. 44. Tabla de MySQL.

88

Page 89: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

8.6. PROCESAMIENTO Y ALMACENAMIENTO DE DATOS

Fig. 45. Diagrama de flujo IoT.

Inicialmente lo que se tiene que garantizar es el tiempo en que la imagen procesadapor Google Colab llegue a la carpeta de drive, el proceso se puede observar en lasección 8.4. Después de que Colab procesa, se almacena la imagen en una carpe-ta en Drive, que a su vez se puede acceder a ella a través de la conexión con FileStream Drive; Ese tiempo que se tarda en aparecer en el computador, es de apro-ximadamente 46 segundos. Hay que tener muy presente esto, porque el programa

89

Page 90: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

de JAVA ira a esa carpeta buscando las imágenes. La carpeta es la que se observa en la figura 43. En Colab se renombra la imagen resultante con la clasificación del estado de ocupación estimado. Ahora que ya se tiene la imagen en la carpeta espe-cificada, procedemos a agregar la información a la base de datos de MySQL. Esto se hace haciendo uso del método POST del protocolo de comunicación REST.

8.7. INTERFAZ GRÁFICA ADMINSTRADOR

Para el caso del administrador, se realizó una aplicación en Java, en donde podrá tener acceso a toda la información que se recolecta, es decir, imágenes, niveles de ocupación, fechas y horas. Además, podrá limpiar y/o filtrar la base de datos cuando desee. La interfaz se ve de la siguiente forma.

(a) Activar Apache y MySQL (b) Ejecutar programa en Java para adqui-sición de datos

(c) Mensaje debienvenida.

Fig. 46. Interfaz Administrador

90

Page 91: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

(a) Inicio de sesión. (b) Comenzar sincronización de base de datos MySQL

(c) Visualización de afluencia más reciente

Fig. 47. Interfaz Administrador

8.8. INTERFAZ GRÁFICA USUARIO

Luego tenemos a la interfaz de usuario, en donde solo tendrá acceso al nivel deocupación más reciente de los 3 lugares seleccionados.

91

Page 92: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

(a) Inicio de sesión. (b) Selección de lugar

(c) Visualización de afluenciamás reciente

Fig. 48. Interfaz usuario Móvil

92

Page 93: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

2

9. CONCLUSIONES

En el presente trabajo se logró evidenciar el poder de extracción de característi-cas de las redes neuronales profundas (CNN) en donde a partir de unas imágenes las cuales están conformadas por píxeles son representativas de 9 categorías dife-rentes, logró clasificarlas y por ende entrenarse de forma correcta, sin embargo el poder computacional que se requiere para entrenarlas es bastante importante, afor-tunadamente se exploró la herramienta de Google Colaboratory, la cual de forma gratuita brinda uso de GPU de alto desempeño ya sea Tesla T4 o Tesla K80, algo que no es para nada despreciable, teniendo en cuenta de que no cobran por su uso (es por un periodo corto de tiempo).

Algunas de las cosas que logramos identificar de la Redes Neuronales Convolucionales era la facilidad de clasificar objetos a partir de las imágenes, lo cual fue contraproducente debido a que en primera instancia se habían grabado video en cafetería en horas del día y la noche, en donde al medio día se podía observar una gran estela de luz de fondo, en el momento ese estado representaba la cafetería llena, sin embargo, cuando se hizo el testeo de la red con imágenes nuevas en el nivel de ocupación "medio "vacío.en horarios de la tarde en donde la luminosidad era alta, la red se confundía con el nivel de ocupación "lleno". Esto se corrigió haciendo un reentrenamiento con imágenes de estado medio en horarios con demasiada luz. Lo único que faltó por realizar fue un dataset con la cafetería primer piso en estado lleno a horario nocturno, no fue posible encontrar esta condición en los días que se tomaron los datasets, sin embargo, no es normal que la cafetería se encuentre llena en otros diferentes al de medio día, a pesar de la falta de información, el sistema funciona muy bien. El problema de la luminosidad no se presentó en los laboratorios, debido a que estos se encuentran en sótano 2, y las condiciones luminarias son prácticamente las mismas en todo momento, por lo tanto, se puede decir que hay que tener mucho cuidado con las imágenes con las que se entrenan, ya que estas deben representar de manera total los posibles estados de ocupación bajo diferentes condiciones ambientales y de luz.

Por otro lado, la solución IoT permite tener un monitoreo prácticamente en tiempo real de lo que está ocurriendo, además permite almacenar la información para un posterior estudio en el futuro, con esto se podrían generar estadísticas relevantes para poder mejorar los servicios prestados en la cafetería y laboratorios, puesto que se tendría el registro de los lugares y las fechas en donde se presenta una gran

93

Page 94: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

cantidad de congestión. Con esta información también se podrían hacer estudios de mercado y/o redistribuciones de los espacios. Con este trabajo se grado se puede comprobar de que no importa el lugar y las condiciones del mismo, siempre y cuan-do existan imagen es, se pueden sacar los datasets de los diferentes niveles de ocupación, por lo tanto, es un proyecto totalmente escalable para aplicarlo en otras areas de la universidad, como el gimnasio, cafetería de Villa Laurentino, segundo y tercer piso de cafetería, biblioteca, salas 1, área de mesas, etc. En donde posi-blemente se puede sacar bastante información sobre el nivel de ocupación y sería muy útil saber por ejemplo que el gimnasio no tiene congestión para ir a practicar ejercicio.

El hecho de no contar con recursos económicos y técnicos para adquirir hardware para entrenamiento de redes neuronales profundas no debe ser una limitante, toda la parte computacional de cálculo de pesos de la red neuronal artificial se hizo me-diante el uso de Google Colaboratory, herramienta bastante potente con diferentes ventajas como por ejemplo; Una gran cantidad de paquetes pre-instalados y la faci-lidad de instalarlos mediante comandos linux como Pip, La integración con Google drive permite tener toda la información de forma segura y sin riesgo de pérdida por reinicio de kernel, además en la UAO contamos con una gran cantidad de espacio en la nube de google, lo que facilita el manejo de la información, sobre todo cuando se tienen miles de imágenes, es demasiado espacio. Otra cosa que cabe mencionar, es que no tuvimos que usar el servidor del semillero de Inteligencia Artificial, debido a que en la nube contamos con capacidad de computo similar y con una facilidad de uso bastante superior al hecho de tener que manipular el servidor propio, puesto que hay que instalarle los drivers y múltiples controladores para que funcione de forma correcta, técnicamente fue una cuenta pendiente, dado a que por cuestiones de tiempo nos estaba limitando bastante, sin embargo, la estabilidad del proyecto en la universidad se puede hacer mediante el uso de dicho servidor, sobre todo para hacer los testeos en él y no depender de Google Colaboratory el cual es demasiado inestable por el hecho de ser una herramienta gratuita.

La cámara que usamos no fue la mejor opción dado a que el lente tipo ojo de pez genera unas distorsiones en la imagen que producen que el detector de objetos "YOLO", se confunda fácilmente con otros objetos diferentes a la clase "Persona", para poder disminuir esos falsos positivos, tuvimos que hacer corrección de ojo de pez en el software brindado por el fabricante, pero sin embargo, a futuro se reco-

94

Page 95: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

mienda el uso de otro tipo de cámaras con gran angular pero sin que distorsionen de manera tan radical como la nuestra.

En este tipo de problemas predomina el dataset y no la complejidad del modelo, es por ello que es mucho mejor tener una gran cantidad de imágenes representati-vas, que como tal un modelo pre-entrenado complejo. En nuestro caso usamos una de las redes convolucionales más livianas que existen actualmente como es el caso de MobileNet y sin embargo los resultados fueron precisos. Estamos convencidos que con otro tipo de arquitecturas más pesadas como por ejemplo Inception es po-sible tener mejores resultados que los obtenidos, pero la arquitectura que usamos es escalable a dispositivos móviles, por lo tanto utilizan menor cantidad de recursos de hardware para poder realizar cálculos, lo que a futuro se traduce en una ven-taja, por el hecho de que se puede usar esta red en un embebido para que solo realice la función de testeo y de esta manera no se estaría utilizando un hardware sobredimensionado para dicha función.

Por ultimo, este sistema se puede utilizar en otros lugares a parte de la univer-sidad en donde sea relevante tener un registro del nivel de ocupación, como por ejemplo en centros comerciales, estaciones del MIO, parques, plazoletas de comi-das, etc. Es información que somos conscientes que puede llegar a ser de utilidad para empresas de mercadeo, por ejemplo. Adicionalmente, este proyecto no termi-na aquí, la idea es poder seguir explorando más cosas, como por ejemplo no solo clasificar nivel de ocupación de personas, sino de vehículos, o utilizar las bonda-des de Yolo Detection para el conteo de personas y que no solo se pueda medir la ocupación como algo cualitativo, sino que también de forma cuantitativa, se pueden realizar múltiples proyectos con Yolo, por ejemplo; detección de rostros, detección de placas de vehículos para identificar aquellos que estén registrados y autorizados para usar los parqueaderos de la universidad, detección de anomalías para detectar y/o predecir posibles robos, choques de vehículos, se pueden detectar diferentes patologías a partir de imágenes médicas. Definitivamente las redes neuronales arti-ficiales son un campo fascinante el cual aún le falta mucho por ser explorado y las oportunidades que ofrece la visión por computadora son prácticamente ilimitadas.

95

Page 96: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

REFERENCIAS

[1] "Script", Es.wikipedia.org. [En línea]. Disponible:https://es.wikipedia.org/wiki/Script.

[2] "Tipado dinámico", Es.wikipedia.org. [En línea]. Disponible: https://es.wikipedia.org/wiki/Tipado_din %C3 %A1mico.

[3] Marr, B. Forbes Welcome. Forbes.com. 2016 Disponible: https://www.forbes.com/sites/bernardmarr/2016/12/29/4-amazing-ways-facebook-uses-deep-learning-to-learn-everything-about-you/2/1d8933493090.

[4] A. Ouaknine, Review of Deep Learning Algorithms for Image Classification", Medium, 2018. [En linea]. Disponible en: https://medium.com/zylapp/review-of-deep-learning-algorithms-for-image-classification-5fdbca4a05e2.

[5] A. Krizhevsky, I. Sutskever y G. Hinton, ÏmageNet Classification with Deep Convolutional Neural Networks", Papers.nips.cc, 2019. [En linea]. Disponible: https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.

[6] S. Tsang, Review: AlexNet, CaffeNet — Winner of ILSVRC 2012 (Image Classification) - Medium", Medium, 2018. [En linea]. Dispo-nible: https://medium.com/coinmonks/paper-review-of-alexnet-caffenet-winner-in-ilsvrc-2012-image-classification-b93598314160.

[7] S. Pellicer, G. Santa, A. L. Bleda, R. Maestre, A. J. Jara y A. G. Skarmeta, .A

Global Perspective of Smart Cities: A Survey,"2013 Seventh International Con-ference on Innovative Mobile and Internet Services in Ubiquitous Computing, Taichung, 2013, pp. 439-444.

[8] C. Bailas, M. Marsden, D. Zhang, N. E. O’Connor and S. Little, "Performance of video processing at the edge for crowd-monitoring applications,"IEEE 4th World Forum on Internet of Things (WF-IoT), Singapore, 2018, pp. 482-487.

[9] T. Eady, "Tesla’s Deep Learning at Scale: Using Billions of Mi-les to Train Neural Networks", Medium, 2019. [En linea]. disponible:

96

Page 97: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

https://towardsdatascience.com/teslas-deep-learning-at-scale-7eed85b235d3.[Accedido: 08- Jul- 2019].

[10] Jetson object detection with Ten-Mobilenet.

YouTube. TX1 sorflow SSD línea] Disponible en:https://www.youtube.com/watch?v=nd39Yz9CwgEt=102s

[11] ENTER.CO. (2019). [En línea] Disponible en:https://www.enter.co/especiales/universoandroid/hub/apps/en-tiempo-real

[12] TechCrunch. Google can now tell you how busy a place is before you arrive. [En línea] Disponible en: https://techcrunch.com/2016/11/21/google-can-now-tell-you-how-busy-a-place-is-before-you-arrive-in-real-time/

[13] Google. (n.d.). Know before you go, with Google. [En línea] Disponible en: https://blog.google/products/search/know-you-go-google/ [

[14] U. Dahake, B. Bakraniya, J. Thakkar y M. Soha-ni, Çrowd Density Estimation using Image Processing",Pdfs.semanticscholar.org, 2018. [En linea]. Disponible:https://pdfs.semanticscholar.org/a463/04fb04b164513d71e86035af1ef91cb37c 6e.pdf.

[15] C.S. Garcia Valencia. Prototipo de sistema para la gestión de ocupación de parqueaderos en un centro comercial. [ebook] Bogotá, Colombia: Universidad Distrital Francisco José de Caldas. 2018 [en linea] Disponible en: http://repository.udistrital.edu.co/bitstream/11349/7846/1/monografia %202.pdf

[16] Ieeexplore.ieee.org. (n.d.). Application of modern architectures of deep neural networks for solving practical problems - IEEE Conference Publication. [En li-nea] Disponible en: https://ieeexplore.ieee.org/document/7970594

[17] G. Sánchez-Torres, y J Taborda-Giraldo, Estimación au-tomática

de la medida de ocupación de playas mediante proce-

97

Page 98: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

samiento de imágenes digitales.. 16th ed. 2014 [en linea] Disponible en p.https://ezproxy.uao.edu.co/menu. Disponible: http://ezproxy.uao.edu.co:2094/eds/pdfviewer/pdfviewer?vid=2sid=b2a4031d-f87a-4246-b969-9fa24e721f10

[18] Rey, N., Volpi, M., Joost, S. y Tuia, D. (2017). Detecting ani-mals in African Savanna with UAVs and the crowds. In: Remo-te Sensing of Environment. MultiModal Remote Sensing, Depart-ment of Geography, University of Zurich, Switzerland: ELSEVIER,p.https://www.sciencedirect.com/science/article/pii/S0034425717303942.

[19] J. López Sotelo, Redes Neuronales Artificiales y Deep Learning. ( pp. 1-15-17-19). Cali.

[20] López Sotelo, Aprendizaje Profundo (Deep Learning). Cali, p. 7.

[21] López Sotelo y E. Caicedo, Una aproximación práctica a las redes neuronales artificiales. Cali, 2009, p. 79.

[22] López Sotelo, Profundo (Deep Learning). Cali, p. 12.

[23] López Sotelo, Aprendizaje (Deep Learning). Cali, p. 13.

[24] “Convolutional Neural Network”, La.mathworks.com, 2018. [En línea]. Disponi-ble: https://la.mathworks.com/discovery/convolutional-neural-network.html. [Ac-cedido: 13- Mar- 2018].

[25] N. Diaz Salazar y G. Salazar Gómez, Reconocimiento de objetivos en imágnes usando aprendizaje profundo. Ingeniería, Universidad Autónoma de Occidente, 2018.

[26] J. López Sotelo, Aprendizaje Profundo (Deep Learning).

[27] F. Mahvar, ”Art and Science of Machine Learning en Español”, 2018. Coursera.[En línea] Coursera. Disponible: https://www.coursera.org/learn/art-science-ml-es/lecture/MSkrm/optimizacion [Accedido 11 Mar. 2019].

[28] Cs231n.github.io. (n.d.). CS231n Convolutional Neural Networks for Visual Re-cognition. [En línea] Disponible en: http://cs231n.github.io/neural-networks-3/[Accedido 15 Sep. 2018].

[29] J. López Sotelo y E. Caicedo, Una aproximación práctica a las redes neurona-les artificiales. Cali, Colombia: Universidad del Valle, 2017, pp. 77-85.

98

Page 99: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

[30] “Google Cloud Platform”, Console.cloud.google.com, 2018. [En línea].Disponible: https://console.cloud.google.com/bigquery?project=wise-shell-224405p=bigquery-public-datad=new_york_taxi_tripst=tlc_yellow_trips_2018page=table. [Accedido: 17- Mar- 2019].

[31] ”TensorFlow: MNIST for beginners | basiafusins-ka | Katacoda”, Katacoda.com. [En línea]. Disponible:https://www.katacoda.com/basiafusinska/courses/tensorflow-getting-started/tensorflow-mnist-beginner. [Accedido: 18- Mar- 2019].

[32] D. Cardona Salgado, Analisis Exploratorio de Datos. Diplomado: Métodos Es-tadísticos utilizados en la Investigación de Mercado, pp. 15,16,17.

[33] M. Alonso Gimeno and M. Martín, ”Introducción al Machine Learning (2.a edi-ción)”, MiríadaX, 2017.

[34] J. López Sotelo, Redes Neuronales Artificiales y Deep Learning. , p. 15

[35] H. Latinoamérica, 2018, p. 3.

[36] López Sotelo, J. Redes Neuronales Artificiales y Deep Learning. p. 17. Cali.

[37] López Sotelo, J. Redes Neuronales Artificiales y Deep Learning. (., pp. 19). Cali.

[38] F. Li, A. Karpathy y J. Johnson, Lecture 8: Spatial Localization and Detection. Stanford, 2016, p. 8.

[39] Programación. (2019). . [ebook] Instituto Tecnológico de Celaya, p.2.[en linea] Disponible en: http://www.citethisforme.com/es

[40] http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/4/informatica_ 4.pdf . informatica_4, 2019, pp. 2-3.

[41] Docs.python.org.ar, 2019. [En línea]. Disponible:http://docs.python.org.ar/tutorial/pdfs/TutorialPython2.pdf. [

[42] Pablin.com.ar. [En línea]. Disponible: http://www.pablin.com.ar/computer/ cur-sos/c3/man001.htm.

99

Page 100: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

[43] S. Programacion en Castellano, “Introducción a la librería Matplotlib de Python”, Programación en Castellano., 2019. [En línea]. Disponi-ble: https://programacion.net/articulo/introduccion_a_la_libreria_matplotlib_de _python_1599.

[44] 2019. [En línea]. Disponible:http://webs.ucm.es/info/aocg/python/modulos_cientificos/numpy/index.html.

[45] A. Bazaga, “OpenCV: Librería de Visión por Computador - Oficina de Softwa-re Libre (OSL)”, Oficina de Software Libre (OSL), 2019. [En línea]. Disponi-ble: https://osl.ull.es/software-libre/opencv-libreria-vision-computador/.

[46] “¿Qué es OpenCV?”, Un poco de Java y +, 2019. [En línea]. Disponi-ble: https://unpocodejava.com/2013/10/09/que-es-opencv/.

[47] 2019. [En línea]. Disponible: https://medium.com/@orwell.dark/anaconda-y-entornos-virtuales-87ae6ff1761f http://lml.ls.fi.upm.es/ep/entornos.html.

[48] L. Toro, “Anaconda Distribution: La Suite más completa para la Cien-cia de datos con Python”, Desde Linux, 2019. [En línea]. Disponible: https://blog.desdelinux.net/ciencia-de-datos-con-python/. [

[49] D. Amoedo, “Anaconda, suite para la Ciencia de datos con Python desde Ubun-tu 17.10”, Ubunlog, 2019. [En línea]. Disponible: https://ubunlog.com/anaconda-datos-python-ubuntu/.

[50] “¿Qué es Tensorflow?”, OpenWebinars.net, 2019. [En línea]. Disponible: https://openwebinars.net/blog/que-es-tensorflow/.

[51] “TensorBoard: Visualizing Learning | TensorFlow Core |TensorFlow”, TensorFlow, 2019. [En línea]. Disponible:https://www.tensorflow.org/guide/summaries_and_tensorboard.

[52] J. Redmon, “YOLO: Real-Time Object Detection”, Pjreddie.com, 2019. [En lí-nea]. Disponible: https://pjreddie.com/darknet/yolo/.

100

Page 101: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

[53] “Detección de objetos con YOLO: implementaciones ycomo usarlas”, Medium, 2019. [En línea]. Disponible:https://medium.com/@monocasero/detecci %C3 %B3n-de-objetos-con-yolo-implementaciones-y-como-usarlas-c73ca2489246.

[54] Colab.research.google.com. (n.d.). Google Colaboratory. [En línea] Disponible en: https://colab.research.google.com/notebooks/welcome.ipynb?hl=es

[55] Google Cloud. (n.d.). CPU Platforms | Compute Engine Documentation | Goo-gle Cloud. [En línea] Disponible en: https://cloud.google.com/compute/

[56] Google Cloud. (n.d.). CPU Platforms | Compute Engine Do-cumentation | Google Cloud. [En línea] Disponible en: https://cloud.google.com/compute/docs/cpu-platforms

[57] Google Cloud. Unidad de procesamiento de gráficos (GPU) | Google Cloud. [En línea] Disponible en: https://cloud.google.com/gpu/?hl=es

[58] Z. Solarte Astaiza, ”Curso de fundamentos de internet de las cosas” en la Uni-versidad Autónoma de Occidente. Cali, Colombia.

[59] Profesormolina1.webcindario.com. Quelínea]es un sensor [En Disponible en:

https://profesormolina1.webcindario.com/tecnologia/sens_transduct/que_es.htm

[60] ”Anuncios Clasificados gratis - comprar y vender en México | CLASF”, Clasf.mx.[En línea]. Disponible: https://www.clasf.mx/q/lente-ojo-pez-sony/.

[61] BBVAOpen4U. API REST: qué es y cuáles son sus ven-tajas en el desarrollo de proyectos.2016[En línea] Disponible en: https://bbvaopen4u.com/es/actualidad/api-rest-que-es-y-cuales-son-sus-ventajas-en-el-desarrollo-de-proyectos

[62] A., N. Deep Learning: profundizando el valor de la videovigi-lancia. Tecnoseguro.com.2017 Disponible

101

Page 102: MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO · 2020. 2. 25. · MONITOREO DE AFLUENCIA DE PERSONAS UTILIZANDO APRENDIZAJE PROFUNDO LUCAS BECHARA ECHEVERRY 2136925

https://www.tecnoseguro.com/noticias/cctv/deep-learning-videovigilancia-hikvision.html

[63] “Falabella.com”, FalabellaCO, 2018. [En línea]. Disponible: https://www.falabella.com.co/falabella-co/category/cat4920940/Gamers.

[64] “Precios de las instancias EC2 – Amazon Web Services (AWS)”, Amazon Web Services, Inc., 2018. [En línea]. Disponible: https://aws.amazon.com/es/ec2/pricing/on-demand/.

[65] X Song, H Kanasugi, R Shibasaki, (2016). DeepTransport: Prediction and Simulation of Human Mobility and Transportation Mode at a Citywide Level. Disponible ; https://www.ijcai.org/Proceedings/16/Papers/372.pdf

[66] D. Calvo. Red neuronal Convolucional CNN 2018, Dsiponible ; http://www.diegocalvo.es/red-neuronal-convolucional-cnn/

[67] “Jetson TX1 object detection with Tensorflow SSDMobilenet”, YouTube, 2018. [En línea]. Disponible:https://www.youtube.com/watch?v=nd39Yz9CwgEt=102s.

102