PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE...

98
PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE PARQUEADEROS EN UN CENTRO COMERCIAL CAMILO SNEIDER GARCIA VELANDIA JAIRO ALBERTO HUERTAS ACEVEDO Universidad Distrital Francisco José de Caldas Facultad tecnológica, Ingeniería en control Bogotá, Colombia 2018

Transcript of PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE...

Page 1: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

CAMILO SNEIDER GARCIA VELANDIA

JAIRO ALBERTO HUERTAS ACEVEDO

Universidad Distrital Francisco José de Caldas

Facultad tecnológica, Ingeniería en control

Bogotá, Colombia

2018

Page 2: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 3: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

CAMILO SNEIDER GARCIA VELANDIA

JAIRO ALBERTO HUERTAS ACEVEDO

Monografía presentada como requisito parcial para optar al título de:

Ingeniero en control

Director:

ING. FRANK NIXON GIRALDO RAMOS

Línea de Investigación:

Procesamiento de señales, Instrumentación electrónica

Universidad Distrital Francisco José de Caldas

Facultad tecnológica, Ingeniería en control

Bogotá, Colombia

2018

Page 4: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 5: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

A nuestros padres y a todas las personas que

con su apoyo y solidaridad abrieron las

posibilidades de llegar a realizar este trabajo

Page 6: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 7: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Agradecimientos

Agradecemos enormemente al director de este proyecto el Ingeniero Frank Nixon Giraldo

Ramos, por la dedicación y apoyo que ha brindado a este trabajo, por el respeto a las

sugerencias e ideas y por la dirección y el rigor que ha facilitado a las mismas. Gracias

por la confianza ofrecida por el camino en esta facultad.

Un trabajo de investigación es siempre fruto de ideas, proyectos y esfuerzos previos, por

esto agradecemos al Ingeniero Rafael Alberto Fino Sandoval por su amabilidad para

facilitarnos su tiempo y sus ideas, por su orientación y atención a las consultas y por la

revisión cuidadosa que ha realizado y sus valiosas sugerencias.

Gracias a nuestras familias, a nuestros padres, hermanos y amigos, que siempre nos han

prestado un gran apoyo moral y humano, necesarios en los momentos difíciles de este

trabajo y esta profesión. Sin su apoyo este trabajo nunca se habría escrito y, por eso,

este trabajo es también el suyo.

Page 8: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 9: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Resumen y Abstract IX

Resumen

En esta monografía se consigna la información, del proceso de investigación, desarrollo

y resultados que se obtuvieron. El fin de la investigación fue crear una alternativa de

solución a la problemática que consiste en que actualmente algunos de los

parqueaderos que prestan el servicio, en centros comerciales, no asignan una plaza de

parqueo específica a los automóviles, dejando que la ubicación de estos automóviles,

quede libre a la decisión de cada usuario; otros parqueaderos no tienen en cuenta la

totalidad de automóviles que se encuentran en su interior lo que puede determinar si

este llego a su máxima capacidad, o no. Estas prácticas puede llegar a generar

congestión vehicular dentro del parqueadero, poca comodidad para los usuarios, y no se

genera una rotación adecuada en cuanto al uso de todas las plazas de parqueo con las

que cuenta el parqueadero. Teniendo en cuenta la problemática expuesta anteriormente

se propuso como una alternativa de solución, el diseño de un sistema prototipo que

permite gestionar la ocupación de parqueaderos por medio de una red neuronal artificial

(RNA), este sistema prototipo permite dar solución a los problemas descritos, y cumple

con el objetivo de la gestión de las plazas de parqueo. El sistema informa por medio de

una interfaz gráfica de usuario, las zonas de parqueo libres existentes, también asigna

óptimamente la ubicación de parqueo y genera una dirección web en donde se muestra

una guía de ruta que permite llegar al parqueadero libre asignado.

Palabras clave: Scikit Learn, red neuronal artificial, aprendizaje supervisado,

procesamiento digital de imágenes, plano de ruta.

Page 10: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

X PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Abstract

In this monograph the information is recorded, of the research process, development and

results obtained. The purpose of the research is to create an alternative solution to the

problem that is that at present some of the parks that provide the service, in shopping

centers, do not There is a parking space specific to cars, leaving the location of these

cars, be free to the decision of each user; Other parking lots do not take into account the

totality of the cars that are inside, which can determine if this reaches its maximum

capacity, or not. These practices can generate traffic congestion within the parking lot,

little comfort for users, and no adequate rotation is generated in terms of the use of all

parking spaces with parking accounts. Taking into account the problems described

above, a prototype system was proposed as a solution alternative, which allows

managing the occupation of parking spaces by means of an artificial neural network

(RNA). This prototype system allows solving the problems described, and meets the

objective of the management of parking spaces. The system informs by means of a

graphical user interface, the existing free parking areas, also assigned in an optimal way

the parking location and generates a web address where a route guide is shown that

allows to reach the assigned free parking.

Keywords: Scikit Learn, artificial neural network, supervised learning, digital image

processing, route plan.

Page 11: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Contenido XI

Contenido

Pág.

Resumen ......................................................................................................................... IX

Lista de figuras ............................................................................................................. XIII

Lista de Símbolos y abreviaturas ............................................................................... XVI

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

1 Delimitación del ejercicio de investigación ............................................................ 5 1.1 Problema ......................................................................................................... 5 1.2 Justificación ..................................................................................................... 5 1.3 Objetivos.......................................................................................................... 6

1.3.1 General ................................................................................................. 6 1.3.2 Específicos ............................................................................................ 6

2 Marco de referencia ................................................................................................. 9 2.1 Evaluación de un sistema de estacionamiento autónomo basado en una red neural BP ................................................................................................................... 9 2.2 Aplicación de arquitecturas modernas de redes neuronales profundas ......... 10

3 Marco teórico .......................................................................................................... 13 3.1 Redes neuronales artificiales ......................................................................... 13

3.1.1 La neurona artificial ............................................................................. 13 3.1.2 El Perceptrón ...................................................................................... 14 3.1.3 Tipos de aprendizaje ........................................................................... 16

3.2 Procesamiento digital de imágenes ............................................................... 17 3.3 Sustracción de fondo ..................................................................................... 19 3.4 Scikit learn ..................................................................................................... 19 3.5 MLPClassifier ................................................................................................ 20 3.6 MLPRegressor ............................................................................................... 20 3.7 BernoulliRBM ................................................................................................. 21 3.8 Máquina de Boltzmann .................................................................................. 21 3.9 Raspberry pi .................................................................................................. 21

4 Ejecución de proyecto ........................................................................................... 23 4.1 Metodología ................................................................................................... 25 4.2 Características del prototipo .......................................................................... 26 4.3 Metodología para tratamiento de imágenes ................................................... 28 4.4 Pruebas de imagen ........................................................................................ 30 4.5 Descripción de la red neuronal ...................................................................... 40

Page 12: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

XII PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

4.5.1 Primera regla .......................................................................................46 4.5.2 Segunda regla .....................................................................................46 4.5.3 Tercera regla .......................................................................................47 4.5.4 Cuarta regla .........................................................................................48

4.6 Desarrollo del código ......................................................................................48 4.7 Funcionamiento de la red local .......................................................................57

5 Resultados ..............................................................................................................63 5.1 Pruebas de usuario ........................................................................................63 5.2 Cumplimiento de las reglas ............................................................................66 5.3 Comparación de aprendizaje de redes neuronales .........................................71

5.3.1 Método MLPClassifier ..........................................................................71 5.3.2 Método MLPRegressor ........................................................................76

6 Conclusiones y recomendaciones ........................................................................79 6.1 Conclusiones ..................................................................................................79 6.2 Recomendaciones ..........................................................................................80

Bibliografía .....................................................................................................................81

Page 13: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Contenido XIII

Lista de figuras

Pág.

Figura 2-1: La topología del modelo de red neuronal de BP. ................................... 10

Figura 2-2: Ejemplo de imagen procesada .............................................................. 11

Figura 2-3: Resultados experimentales .................................................................... 12

Figura 3-1: Esquema de neurona artificial ............................................................... 13

Figura 3-2: Perceptrón de dos capas. ............................................................................ 15

Figura 4-1: Diagrama de bloques general del sistema ................................................... 23

Figura 4-2: Dimensiones de la estructura en madera del prototipo ................................ 26

Figura 4-3: Dimensiones del parqueadero diseñado para el prototipo ........................... 27

Figura 4-4: Metodología usada para el tratamiento de imágenes .................................. 28

Figura 4-5: Diagrama de flujo tratamiento de imágenes ................................................ 29

Figura 4-6: Algoritmo para iniciar prueba de imagen ..................................................... 30

Figura 4-7: Algoritmo del ciclo while utilizado para captura de imágenes ...................... 31

Figura 4-8: Línea de código para realizar resta de imágenes ........................................ 31

Figura 4-9: Primera comparacion entra la imagen actual y el resultado de la resta ....... 32

Figura 4-10: Segunda comparacion entra la imagen actual y la imagen re reconocimiento

....................................................................................................................................... 32

Figura 4-11: Algoritmo de la máscara para identificar cambios en la imagen ................ 32

Figura 4-12: Algoritmo utilizando cv2.mpments (resm) .................................................. 33

Figura 4-13: Línea de código para identificación de contorno ........................................ 33

Figura 4-14: Definición de los vectores matapx y matapy. ............................................. 33

Figura 4-15: Vista grafica de la delimitación de los vectores matapx y matapy .............. 34

Figura 4-16: Esquina del rectángulo del cual se toman las coordenadas ...................... 34

Figura 4-17: Prueba de comparación y detección en sus diferentes capaz ................... 35

Figura 4-18: Algoritmo con GPI0.Input(5) para detectar acción en el pulsador .............. 35

Figura 4-19: Algoritmo con la función Draw_sal() .......................................................... 36

Figura 4-20: Asignación de parqueadero en conteo de número par. ............................. 37

Figura 4-21: Asignación de parqueadero en conteo de número par. ............................. 37

Figura 4-22: Asignación de parqueadero en conteo de número impar. .......................... 38

Figura 4-23: Creación de los círculos de entrada y de centro de plaza de parqueo ....... 38

Figura 4-24: Creación de las líneas de guía en la ruta para parquear ........................... 38

Figura 4-25: Creación del mapa para las diferentes páginas web.................................. 39

Figura 4-26: Condiciones programadas de la página web ............................................. 39

Figura 4-27: Ejemplo de funcionamiento de la página web. ........................................... 40

Figura 4-28: Estructura básica de la red neuronal ......................................................... 42

Page 14: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

XIV PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-29: Estructura de la red neuronal ..................................................................... 42

Figura 4-30: Diagrama de flujo proceso de aprendizaje ................................................. 43

Figura 4-31: Esquema básico de las plazas de parqueo ................................................ 44

Figura 4-32: Esquema de las plazas de parqueo numeradas ......................................... 44

Figura 4-33: Matrices para el control de las plazas de parqueo ..................................... 45

Figura 4-34: Ejemplo de la primera regla, plaza de parqueo ocupada (rojo) y libre (verde)

....................................................................................................................................... 46

Figura 4-35: Ejemplo de la segunda regla, plaza de parqueo ocupada (rojo) y libre

(verde) ............................................................................................................................ 47

Figura 4-36: Ejemplo de la tercera regla, plaza de parqueo ocupada (rojo) y libre (verde)

....................................................................................................................................... 47

Figura 4-37: Ejemplo de la cuarta regla, plaza de parqueo ocupada (rojo) y libre (verde)

....................................................................................................................................... 48

Figura 4-38: Algoritmo utilizando Def search_section2() ................................................ 49

Figura 4-39: Algoritmo utilizando Def Vacio () ................................................................ 50

Figura 4-40: Algoritmo utilizando Def Tiempo() .............................................................. 50

Figura 4-41: Algoritmo utilizando Topos() ....................................................................... 51

Figura 4-42: Algoritmo utilizando Search_position() ....................................................... 52

Figura 4-43: Segmento de código regla dos ................................................................... 52

Figura 4-44: Segmento de código regla tres .................................................................. 53

Figura 4-45: Algoritmo utilizando Sear_section1() .......................................................... 53

Figura 4-46: Algoritmo utilizando Def learn() .................................................................. 54

Figura 4-47: Algoritmo utilizando Def Prediccion() ......................................................... 55

Figura 4-48: Algoritmo utilizando Def forlearn() .............................................................. 56

Figura 4-49: Algoritmo para la creación de códigos QR y la edición de la imagen en la

página web ..................................................................................................................... 57

Figura 4-50: Publicación de codigo QR y alfanumérico .................................................. 57

Figura 4-51: Estructura de la red local utilizada .............................................................. 58

Figura 4-52: Configuración de la dirección IP del computador para crear red local ........ 59

Figura 4-53: Página de prueba index.html ...................................................................... 60

Figura 4-54: Código de la página web utilizada .............................................................. 60

Figura 5-1: Código alfanumérico y QR mostrados en pantalla ....................................... 63

Figura 5-2: Referencia de autos en el parqueadero ....................................................... 64

Figura 5-3: Escaneo de código QR ................................................................................ 64

Figura 5-4: Lectura de la dirección de página ................................................................ 65

Figura 5-5: Dirección de página web en el navegador .................................................... 65

Figura 5-6: Visualización del plano de ruta en la página ................................................ 66

Figura 5-7: Imagen actual del parqueadero (regla 1)...................................................... 67

Figura 5-8: Asignación realizada (regla 1) ...................................................................... 67

Figura 5-9: Imagen actual del parqueadero (regla 2)...................................................... 68

Figura 5-10: Asignación realizada (regla 2) .................................................................... 68

Figura 5-11: Imagen actual del parqueadero (regla 3) .................................................... 69

Figura 5-12: Asignación realizada (regla 3) .................................................................... 69

Page 15: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Contenido XV

Figura 5-13: Imagen actual del parqueadero (regla 4) ................................................... 70

Figura 5-14: Asignación realizada (regla 4) ................................................................... 70

Figura 5-15: Conversión de vector binario, a numero decimal ....................................... 71

Figura 5-16: Porcentaje de aciertos vs porcentaje de error (100 capas) ........................ 72

Figura 5-17: Porcentaje de aciertos vs porcentaje de error (90 capas) .......................... 72

Figura 5-18: Porcentaje de aciertos vs porcentaje de error (80capas) ........................... 73

Figura 5-19: Porcentaje de aciertos vs porcentaje de error (70 capas) .......................... 73

Figura 5-20: Porcentaje de aciertos vs porcentaje de error (60 capas) .......................... 74

Figura 5-21: Porcentaje de aciertos vs porcentaje de error (50 capas) .......................... 74

Figura 5-22: Porcentaje de aciertos vs porcentaje de error (40 capas) .......................... 75

Figura 5-23: Porcentaje de aciertos vs porcentaje de error (30 capas) .......................... 75

Figura 5-24: Porcentaje de aciertos vs porcentaje de error (100 capas) ........................ 76

Figura 5-25: Porcentaje de aciertos vs porcentaje de error (100 capas), segunda prueba

....................................................................................................................................... 77

Page 16: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Contenido XVI

Lista de Símbolos y abreviaturas

Símbolos con letras latinas Símbolo Término Unidad SI Definición

A Área m2 ∬

Símbolos con letras griegas Símbolo Término Unidad SI Definición

α Factor de superficie

(wF,waf)(ABET)

η mittlere 1 Ecuación 3.6

Subíndices Subíndice Término

E Experimental

Superíndices Superíndice Término

T Exponente, potencia

Abreviaturas Abreviatura Término

BP Back Propagation

Page 17: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Introducción

En la actualidad existen diferentes soluciones electrónicas o de software, para el

creciente negocio de los parqueaderos, estas alternativas de solución van desde

aplicaciones para dispositivos celulares tales como Cellular Parking System, My park o

NIDOO, entre otras, que sirven para la reserva de lugares de parqueo o cálculo de

tarifas; las alternativas de solución llegan hasta parqueaderos automatizados tales como

Parkeo, un parqueadero con una plataforma totalmente robotizada que presta el servicio

en Bogotá, está diseñado con tecnología que ya ha sido implementada en muchos

parqueaderos alrededor del mundo; las soluciones que son implementadas varían

dependiendo de la zona y el tipo de clientes que se tienen, y lo máximo que estos

pueden pagar por el servicio.

Por esto se parte de la idea de crear una alternativa de solución que sea económica y útil

tanto para los dueños de parqueadero, como para los usuarios de los mismos, y por lo

tanto esta alternativa genere interés y se pueda acoplar en los parqueaderos presentes

en la ciudad que cumplan con requerimientos de luminosidad e infraestructura; se inicia

por identificar los principales problemas o necesidades que se presume puedan tener

tanto los usuarios, como los dueños de los parqueaderos, de los problemas identificados

se seleccionan los que se creen más importantes o frecuentes para trabajar en la

solución de estos.

Identificamos que la gestión de la mayoría de aspectos de un parqueadero en un centro

comercial, son el eje fundamental para su buen funcionamiento, siendo uno de los

aspectos más importantes, la gestión de ocupación de las plazas de parqueo; ya que

cuando funciona correctamente, se ven beneficiados tanto el que ofrece el servicio como

también al usuario final; los eventos que pueden generar que por el contrario, se vean

afectados son: ya sea porque se genera congestión vehicular, atascamiento dentro del

parqueadero, o porque a ciertas horas la demanda de plazas de parqueo es alta y es

difícil para los usuarios encontrar espacios para estacionar rápidamente, y puede

Page 18: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

2 Introducción

suceder que tengan que dar vueltas antes de encontrar una plaza de parqueo; se pueden

presentar uno, varios o todos los eventos anteriores.

Los usuarios eventualmente podrían querer parquear todos en el mismo lugar, ya sea

porque quedan más cerca a la puerta o al supermercado, esto genera que cuando hacen

sus compras y se disponen a guardarlas en el automóvil, no encuentran espacio para

abrir las puertas correctamente y termina generando inconvenientes entre dueños de

automóviles o congestión vehicular; con respecto al que ofrece el servicio de

parqueadero, tiene como resultado que unas plazas tienen más desgaste en su

superficie que otras, y le generan una necesidad de mantenimiento más frecuente, y por

lo tanto más gasto de dinero.

También se llega al caso de que los que ofrecen el servicio de parqueadero se ven en la

necesidad de contratar una persona que esté pendiente de todos los aspectos del

parqueadero, hasta de verificar visualmente si quedan plazas de parqueo disponibles,

porque no tienen una herramienta electrónica, que se vuelve necesaria para realizar un

monitoreo constante y automático.

Algunas empresas se dedican a la automatización de parqueaderos, estas empresas

tales como Signal Park, Park Help o circontrol tienen soluciones electrónicas, que

contemplan la utilización de un sensor por plaza de parqueo, estas soluciones permiten

sensar la totalidad de las plazas de parqueo, es decir que si un parqueadero cuenta con

100 plazas de parqueo necesitara la misma cantidad de sensores, además de todo el

cableado que estos sensores necesitarán, resultan entonces sistemas con gran cantidad

sensores; como solución a esto se propuso utilizar una cámara de video como reemplazo

de sensores, ya que por medio del procesamiento de sus imágenes se obtendrá

información que permite verificar múltiples plazas con una única cámara, lo que reduce la

cantidad de sensores necesarios para realizar el monitoreo.

Como se quiere plantear una solución generalizada que pueda ser usada en diferentes

parqueaderos, inicialmente el sistema fue montado en un prototipo a escala que permite

realizar pruebas de funcionamiento, esto permite simular condiciones de luminosidad y

de la forma en que están distribuidas las plazas de parqueo, estas condiciones podrían

Page 19: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Introducción 3

encontrarse en los parqueaderos reales, por lo tanto el sistema debe ser adaptable,

simplemente modificando sus parámetros.

Este prototipo también tiene la capacidad de simular como seria todo el proceso desde

que un automóvil entra, y hasta que sale, es decir como es la interacción entre el sistema

y el usuario, y verificar su correcto funcionamiento; para la solución además no se utiliza

más que un minicomputador de bajo costo, una cámara de video, un pulsador, y una

pantalla, esto hace que el sistema sea económico. El prototipo solo está pensado para

parqueaderos cerrados, donde la luz no cambie considerablemente con el paso del

tiempo.

Uno de los aspectos más importantes del sistema es la utilización de una red neuronal

para la toma de decisiones con respecto a la gestión, ya que esta permite, programar

diferentes parámetros para cada parqueadero según sea el caso y la necesidad del

momento, con esto la gestión del parqueadero tiene la opción de ser flexible; en este

caso se diseñó un plano de parqueadero y se establecieron los parámetros de la red

más acordes a la estructura de distribución de las plazas de parqueo.

Page 20: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 21: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

1 Delimitación del ejercicio de investigación

1.1 Problema

Algunos parqueaderos que prestan el servicio, en cualquier tipo de centro comercial, no

asignan una ubicación de parqueo específica a los automóviles, dejando que la ubicación

de estos automóviles, quede libre a la decisión de cada usuario; otros parqueaderos no

tienen en cuenta el número de automóviles que se encuentran en su interior lo que puede

determinar si este llego a su máxima capacidad, o no. Estas prácticas puede llegar a

generar congestión dentro del parqueadero, poca comodidad para los usuarios ya que

los vehículos se ubican muy cerca unos de otros y no dejan espacio suficiente para la

apertura de puertas y el ingreso de mercancía, tampoco se genera una rotación

adecuada en cuanto al uso de todas las plazas de parqueo con las que cuenta el

parqueadero.

1.2 Justificación

Con este sistema se espera beneficiar a usuarios directos es decir a todas las personas o

empresas que tengan como actividad económica el prestar el servicio de parqueadero,

así como también las personas que son usuarias de estos parqueaderos y en general se

beneficiaran de manera indirecta toda la comunidad que tenga que ver de una u otra

forma con el funcionamiento de estos parqueaderos. Logrando con la gestión de los

parqueaderos una mejor experiencia y comodidad a la hora de usar el servicio, la

organización también permitirá mejorar aspectos como el tiempo de entrada y de

parqueo.

La gestión automática de los parqueaderos generara un ahorro de tiempo y dinero. La

gran mayoría de los sistemas para parqueaderos que se encuentran actualmente en el

mercado tienen un alto costo, por lo que su compra e implementación desde el punto de

vista del desarrollo tecnológico no es viable, además de que el proyecto se desarrolla con

Page 22: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

6 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

equipos de bajo costo, se cambia la configuración de múltiples sensores a una de un

único sensor y el programa es diseñado en software libre, las personas o empresas

interesadas preferirán implementar un sistema que ofrezca una solución de bajo costo y

que brinde seguridad.

Este sistema tendrá como avance el uso de la tecnología de una Raspberry pi 2,

ampliando el rango de posibilidades y permitiendo ahora la toma de datos del sistema por

medio de una cámara de video, lo que facilita un monitoreo constate. Esto lo hace un

sistema efectivo y de menor costo, superando así los aspectos más importantes de la

mayoría de los sistemas actuales existentes.

También, si se tiene en cuenta que actualmente existe una tendencia cada vez más

fuerte al cambio por implementaciones en plataformas de software libre, se tiene una

gran ventaja, y con la implementación de una red neuronal artificial, se espera que el

sistema tenga una mejor capacidad en la toma de decisiones en cada momento en el que

se requiera. Por tanto, se espera que este sistema tenga muchas implementaciones a

corto y mediano plazo.

1.3 Objetivos

1.3.1 General

Diseñar un sistema prototipo para gestión de ocupación de parqueaderos por medio de

una red neuronal artificial.

1.3.2 Específicos

Detectar cuando un usuario oprima el pulsador de solicitud de parqueo y

publicarle en pantalla un código alfanumérico, que representa la plaza de parqueo

asignada.

Generar y publicar en pantalla un código QR para cada usuario, este código

contiene una dirección web, en la cual se visualiza un plano de vista superior del

parqueadero, y una ruta desde la entrada hasta la plaza asignada.

Identificar por medio de la cámara de video, si cada plaza de parqueo se

encuentra disponible u ocupada.

Page 23: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 7

Asignar una plaza de parqueo a cada usuario, por medio de una red neuronal

artificial (RNA) diseñada en Python utilizando la herramienta Sckit learn.

Page 24: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 25: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

2 Marco de referencia

2.1 Evaluación de un sistema de estacionamiento autónomo basado en una red neural BP

El sistema de aparcamiento autónomo es un sistema inteligente que puede aparcar un

coche en una plaza de aparcamiento. Recientemente, más y más estudios prestan

atención en este sistema. Sin embargo, la investigación sobre la evaluación del sistema

de estacionamiento autónomo en estos estudios no es suficiente. Debido a que la

mayoría de los métodos de evaluación del sistema de vehículos inteligentes se basan en

el grado de realización de tareas, la evaluación del sistema de estacionamiento

autónomo no puede mostrar su nivel real inteligente. (Du, Zhao, Gao, & Wang, 2017)

Con el fin de garantizar la viabilidad y exactitud de la evaluación del sistema de

estacionamiento autónomo, se propone un método de evaluación eficaz basado en la red

neuronal de BP. El método de evaluación se establece sobre la base del sistema de

evaluación del sistema de estacionamiento autónomo, utilizando el modelo de evaluación

de la red neuronal de BP. Utilizando muestras recogidas del sistema de estacionamiento

autónomo en vehículos inteligentes, el modelo es entrenado por el software MATLAB y el

modelo de evaluación es probado por muestras. Se tuvo como resultado que los valores

de simulación son muy cercanos a los esperados, lo que significa la viabilidad y exactitud

del modelo de evaluación. (Du et al., 2017)

Page 26: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

10 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 2-1: La topología del modelo de red neuronal de BP.

(Du et al., 2017)

Donde d1 es la distancia más corta del vehículo desde la acera, N1 el número de

conmutadores de avance / retroceso, N2 el número de paradas, N3 el número de

dirección, D es la distancia total del proceso de estacionamiento, t el tiempo total del

proceso de estacionamiento, d2 la distancia desde el centro del vehículo al centro del

espacio de estacionamiento y Q el ángulo entre el eje longitudinal del vehículo y el

espacio de estacionamiento, S simplemente es la salida de la red neuronal.

2.2 Aplicación de arquitecturas modernas de redes neuronales profundas

Al clasificar imágenes, es importante seleccionar un método para extraer características

de una imagen que puede ser una tarea bastante difícil. Recientemente, el aprendizaje

profundo de redes neuronales ha mostrado buenos resultados en la extracción de

características automáticas para una clasificación posterior, por esto se evalúa la

capacidad de utilizar una red neuronal de convolución moderna GoogLeNet para la

extracción automática y la clasificación de imágenes adicionales. La tarea de clasificación

se revisa en el contexto de un problema de determinación de lugares de estacionamiento

vacantes. La red neuronal ha mostrado un resultado comparable con el resultado de la

clasificación en las características seleccionadas manualmente, pero más sostenible para

las transformaciones de imagen. (Mityakov, Varankin, & Tatarinov, 2017)

Page 27: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 11

En la tarea de clasificación de imágenes, lleva mucho tiempo preparar el conjunto de

datos para el entrenamiento. En este caso, este conjunto de datos es un conjunto de

imágenes relacionadas con una de dos clases: "lugar vacante" o "lugar ocupado". Las

imágenes se anotaron manualmente utilizando la herramienta LabelImg. En la figura se

muestra una imagen procesada. Debido a que las imágenes en nuestra tarea son

estáticas, se realizó una modificación significativa de la herramienta utilizada. Su

modificación nos permitió no anotar cada imagen individualmente, sino cambiar solo los

estados de los lugares anotados y, por lo tanto, ahorrar tiempo para la preparación del

conjunto de datos de capacitación. Entonces la anotación de 2167 imágenes tomó

aproximadamente 2 horas. Como resultado, se creó el conjunto de datos de capacitación

que contiene 1726 imágenes con la clase "ocupada" y 441 imágenes con la clase

"vacante". (Mityakov, Varankin, & Tatarinov, 2017)

Figura 2-2: Ejemplo de imagen procesada

(Mityakov et al., 2017)

Page 28: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

12 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 2-3: Resultados experimentales

Utilizando la red neuronal GoogLeNet, se logra obtener una calidad de reconocimiento

comparable con el método elegido manualmente. Las características de red neuronal

seleccionadas automáticamente son resistentes a la transformación de la imagen de

origen, a diferencia de las características de HOG se encontró. Debido a la rápida mejora

de los marcos para el desarrollo y capacitación de redes neuronales en procesadores

gráficos y la disponibilidad pública de los últimos desarrollos en esta área, el uso de

redes neuronales se vuelve disponible para resolver problemas de diversa complejidad y

presupuesto. Así que en este trabajo, la capacitación de la red neuronal en el conjunto de

entrenamiento compuesto por 2167 imágenes tomó aproximadamente 12 minutos en una

computadora con la tarjeta de video de la familia nvidia gtx 1070. (Mityakov, Varankin, &

Tatarinov, 2017)

Page 29: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

3 Marco teórico

3.1 Redes neuronales artificiales

3.1.1 La neurona artificial

La neurona artificial es una unidad procesadora con cuatro elementos funcionales:

Figura 3-1: Esquema de neurona artificial

(Lara, n.d.)

El elemento receptor, a donde llegan una o varias señales de entrada xi, que

generalmente provienen de otras neuronas y que son atenuadas o amplificadas cada una

de ellas con arreglo a un factor de peso wi que constituye la conectividad entre la

neurona fuente de donde provienen y la neurona de destino en cuestión. (Lara, n.d.)

El elemento sumador, que efectúa la suma algebraica ponderada de las señales de

entrada, ponderándolas de acuerdo con su peso, aplicando la siguiente expresión:

( ) (3.1)

Page 30: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

14 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

El elemento de función activadora, que aplica una función no lineal de umbral (que

frecuentemente es una función escalón o una curva logística) a la salida del sumador

para decidir si la neurona se activa, disparando una salida o no. (Lara, n.d.)

El elemento de salida que es el que produce la señal, de acuerdo con el elemento

anterior, que constituye la salida de la neurona. Este modelo neuronal es el utilizado en

casi todas las Redes Neuronales artificiales, variando únicamente el tipo de función

activadora. A continuación se presentarán los modelos más simples de Redes

Neuronales artificiales. (Lara, n.d.)

3.1.2 El Perceptrón

Desarrollado por Rosenblatt (1958), consiste en una neurona procesadora, con sus

elementos de entrada, sumador, activador y de salida. A la cual llegan señales de

entrada xi, i = 1, 2,..., n cada una con una a través de una línea con conductividad o peso

asociado wi. El elemento sumador efectúa entonces una suma ponderada de las

entradas, en tanto que el activador emplea una función escalón de umbral: si la suma

ponderada es mayor o igual a un valor de umbral U, da una salida y de tal manera que:

(3.2)

(3.3)

La red neuronal más simple construida con perceptrones tiene dos capas: una capa

receptora de entrada, en la que la salida de cada neurona reproduce simplemente su

entrada y una capa de salida formada por perceptrones como los descritos, totalmente

conectados con la capa de entrada, a través de líneas de comunicación con

conductividades o pesos ajustables. (Lara, n.d.)

Así, cada neurona de entrada está conectada con cada neurona de salida a través de

una línea de comunicación con una conductividad o peso ajustable. La ley de aprendizaje

del perceptrón ajusta estos pesos, de manera que se obtenga con mayor probabilidad la

salida deseable correspondiente a un cierto conjunto de entradas. (Lara, n.d.)

Page 31: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 15

Figura 3-2: Perceptrón de dos capas.

(Lara, n.d.)

El perceptrón es entrenado presentándole un conjunto de patrones de entrenamiento en

forma repetida. Cada patrón de entrenamiento es una pareja formada por un vector de

entrada x y su vector de salida y deseable. La dimensión del vector de entrada es igual al

número de neuronas de la capa de entrada, en tanto que la dimensión del vector de

salida es igual al número de neuronas de la capa de salida. (Lara, n.d.)

Al presentarle el vector de entrada al perceptrón, sus neuronas de entrada lo asumen.

Las salidas de la red se comparan con el vector de salida y la diferencia obtenida se

utiliza para reajustar los valores de los pesos w de las interconexiones. Este reajuste se

hace de modo que sea más probable que la red dé la respuesta apropiada la siguiente

vez. El entrenamiento prosigue hasta que todas las respuestas de la red se aproximan en

forma aceptable a las deseadas. (Lara, n.d.)

Para el reajuste de los pesos, existen diferentes reglas propuestas posteriormente por

diferentes autores, basadas en la Regla Delta de Widrow y Hoff (1960). En una de las

más sencillas, el nuevo peso w1 es igual al peso anterior w0 más una cantidad

proporcional a la diferencia entre la salida deseada t y la salida real y:

( ) (3.4)

Donde h es una constante de proporcionalidad menor que la unidad que se llama razón

de aprendizaje. (Lara, n.d.)

Page 32: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

16 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Si el vector de entradas es de ceros y unos, hay una fórmula derivada en la que la razón

de aprendizaje se multiplica por la entrada correspondiente x. De este modo, el peso se

modifica solo cuando la entrada vale 1, es decir, cuando está activa. Así, la fórmula

anterior queda en la forma:

( ) (3.5)

De acuerdo con estas fórmulas, el nuevo peso es mayor que el anterior, si la salida

deseada es mayor que la actual y menor en el caso contrario. (Lara, n.d.)

Antes de comenzar el entrenamiento, los pesos se fijan aleatoriamente. Durante el

entrenamiento, los patrones de entrenamiento se presentan a la red una y otra vez (a

veces cientos y hasta miles de veces), hasta que los pesos ya no se modifican. En este

caso se dice que la red ha convergido, en cuyo caso o ha aprendido con éxito o se

declara incapaz de aprender todas las respuestas correctas. (Lara, n.d.)

Las limitantes más grandes del perceptrón es que, aunque pueden construirse Redes

Neuronales de varias capas con él, no permite más que una sola capa de pesos

adaptativos. (Lara, n.d.)

3.1.3 Tipos de aprendizaje

Se ha mencionado ya que una de las características fundamentales de las Redes

Neuronales es su adaptabilidad y su susceptibilidad de aprendizaje, a través de la

modificación de los pesos de las interconexiones entre las diferentes neuronas. (Lara,

n.d.)

Hay dos formas fundamentales de aprendizaje:

Aprendizaje supervisado, que requiere la presencia de un tutor externo y una serie de

patrones de aprendizaje. El tutor conoce el vector de respuesta correcto ante cada

vector de entradas y, con la respuesta real de la red, genera un vector de error, que

retroalimenta a ésta. La red, con base en el vector de error, actualiza los pesos de sus

interconexiones de manera que el error tienda a desaparecer. Con un número

suficiente de sesiones de entrenamiento, la red converge, produciendo las respuestas

Page 33: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 17

deseadas. Este tipo de aprendizaje es el aplicado tanto en el Perceptrón, como en la

Adaline.

Aprendizaje no supervisado, que utiliza datos de entrenamiento no etiquetados

previamente y no necesita tutor externo. Los datos son presentados simplemente a la

red, que de acuerdo con ellos configura cúmulos internos que comprimen los datos de

entrada en cierto número de categorías de clasificación. Este tipo de aprendizaje es el

aplicado en las Redes de Kohonen. (Lara, n.d.)

3.2 Procesamiento digital de imágenes

El Procesamiento de Imágenes (PI) es una subcategoría del tratamiento digital de

señales. Es la ciencia de manipulación de imágenes usando computadores para realizar

procedimientos específicos según las aplicaciones y requerimientos del usuario, tales

como: filtrado, recorte, segmentación, compresión y reconocimiento. Es un área del

conocimiento que tiene atención de investigadores y escolares para desarrollar y mejorar

algoritmos para aplicaciones en: robótica, comunicaciones, sensores remotos,

biomedicina, automatización industrial, sistemas de inspección, navegación, mediciones

ópticas, entre otras. (Jiménez, Pelayo, & Ramírez, 2015)

Las prácticas de laboratorio son actividades pedagógicas, y en el estudio del PI éstas se

realizan mediante el uso de algún software especializado. Algunos software comerciales

de procesamiento de imágenes como: Photoshop, CorelDraw, Ulead Photoimpact, entre

muchos otros, realizan procedimientos internos que no permiten el entendimiento de

algoritmos, la lógica o el método del proceso, presentando cajas negras que no admiten

su manipulación. Después de su uso, los estudiantes se vuelven expertos en la

herramienta mas no en el procesamiento de imágenes, que por supuesto podría ser

adecuado para diseñadores digitales, pero no para ingenieros electrónicos, ni de

sistemas.(Jiménez et al., 2015)

Se han realizado esfuerzos por el desarrollo de herramientas didácticas para la

enseñanza del tratamiento digital de imágenes y existen paquetes comerciales para

aplicación de laboratorios de PI, como por ejemplo MATLAB y Khoros, con desventajas

similares a las herramientas de manipulación de imágenes comerciales, adicionando el

elevado costo de licencias para su instalación. Existen también plataformas no

comerciales independientes desarrolladas en C o Java, ambientes para el análisis de

Page 34: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

18 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

imágenes tales como IPLab, colecciones de rutinas y clases sin ambientes y también

gran cantidad de applets interactivos independientes en internet que permiten

comprender algoritmos relacionados con el tema. Varias universidades han

implementado cursos virtuales para trabajar bajo herramientas E-Learning con los

estudiantes interesados en PI, en donde se ha logrado hacer que el aprendiz reciba

instrucciones acerca de la edición de imágenes y tener la opción de manipularlas en

línea. (Jiménez et al., 2015)

Para poder comprender claramente los conceptos y algoritmos del PI deben tener como

prerrequisito el conocimiento de: algebra lineal, análisis multivariado y del procesamiento

de señales, siendo estos conceptos muchas veces abstractos. Por esta razón es

necesaria la práctica e interactividad con las herramientas de software para lograr efectos

positivos en la comprensión de conceptos, ya que la enseñanza y aprendizaje de los

fundamentos de PI se logra si la atención está en la representación visual de los

algoritmos y el trabajo experimental. La visualización en PI puede considerarse como un

factor de impulso cognitivo mientras la descripción plana textual requiere un poco de

imaginación y habilidades interpretativas, con un resultado pedagógico positivo al

visualizar herramientas para la demostración de aspectos básicos del procesamiento de

imágenes. Muchas aplicaciones tales como: juegos de video, graficas por computador,

pos-procesamiento de imágenes y video, estimación y compensación de movimiento, son

implementados mediante soluciones de software en procesadores de propósito general.

(Jiménez et al., 2015)

Para que la aplicación en software sea útil en el aprendizaje del PI debe ser fácil de

aprender, las tareas de PI deben poder implementarse en pequeños programas y las

complejas usando sub-tareas, los programas deben correr lo más rápido posible, la

visualización de las imágenes debe ser simple y rápida, y debe ser posible visualizar el

progreso del procesamiento en cada una de sus etapas. En esencia, se busca utilizar

una herramienta de software que permita a la vez aprender a utilizar un lenguaje de

programación mientras se aplican los conceptos teóricos, para lo cual se pueden

desarrollar aplicaciones en MATLAB, C++, C, Java, Visual Basic, Python, entre otros.

(Jiménez et al., 2015)

Page 35: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 19

Se ha planteado el uso de Python el cual permite desarrollar aplicaciones de alta calidad

en la producción de software, con aplicabilidad en la investigación y el diseño de

proyectos de nivel avanzado. Python es un lenguaje de programación de alto nivel,

interpretado y multipropósito, cuyo creador es Guido Van Rossum. En los últimos años su

utilización ha aumentado y es uno de los lenguajes de programación más empleados

para el desarrollo de software. Python puede ser utilizado en diversas plataformas y

sistemas operativos, entre los que se puede destacar: Windows, Mac OS X, Linux o

Raspbian, el cual es el sistema operativo utilizado en este proyecto. Pero, además,

Python también puede funcionar en smartphones y sistemas embebidos, por todas estas

razones se decidió utilizar esta herramienta en el prototipo. (Jiménez et al., 2015)

3.3 Sustracción de fondo

El método utilizado para discriminar el fondo de los objetos, se realiza a nivel de pixel.

Para esto, para cada pixel se almacenan N muestras de frames anteriores al actual

elegidos aleatoriamente, y se determina que son fondo aquellos que son

estadísticamente invariante en el tiempo. En la práctica se define N como 20. Para cada

muestra, puede guardarse tanto la información de color (por ej. en el espacio de colores

RGB) como su valor en tono de grises, dependiendo de la imagen de entrada con la que

se cuenta. Como consecuencia de la detección o salida realizada por cada imagen o

cuadro del video, se debe realizar un proceso de actualización del modelo que permita

adaptar gradualmente la representación a los diferentes cambios que ocurren a lo largo

de una secuencia. Esta actualización se realiza una vez realizada la sustracción de fondo

en el cuadro actual y consiste en agregar en el modelo aquellos pixeles pertenecientes al

fondo. Así mismo, aquellos clasificados como parte del movimiento se asegura que no se

inserten en el modelo, ya que puede alterar significativamente los resultados en la

detección.(Gervasoni, D’amato, & Barbuzza, 2014)

3.4 Scikit learn

Sirve para realizar el proceso de aprendizaje automático de máquina o de una red

neuronal el cual se trata de aprender algunas propiedades de un conjunto de datos y

aplicarlos a nuevos datos. Esta es la razón por la cual una práctica común en el

aprendizaje automático para evaluar un algoritmo es dividir los datos disponibles en dos

Page 36: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

20 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

conjuntos, uno que llamamos el conjunto de entrenamiento en el que aprendemos

propiedades de datos y otro que llamamos el conjunto de pruebas en el que probamos

estas propiedades, esta herramienta la encontramos disponible en Python, y permite

utilizar una red neuronal preestablecida y entrenarla según los parámetros que se

deseen. (scikit-learn developers & Developers, 2017)

En general, un problema de aprendizaje considera un conjunto de n muestras de datos y

luego trata de predecir propiedades de datos desconocidos. Si cada muestra es más de

un número único y, por ejemplo, una entrada multidimensional (también conocida como

datos multivariables), se dice que tiene varios atributos o características. (scikit-learn

developers & Developers, 2017)

3.5 MLPClassifier

Herramienta de Scikit learn. MLPClassifieradmite la clasificación de clases múltiples

aplicando Softmax como la función de salida. Además, el modelo admite la clasificación

de etiquetas múltiples en la que una muestra puede pertenecer a más de una clase. Para

cada clase, la salida sin procesar pasa a través de la función logística. Los valores

mayores o iguales a 0.5 se redondean a 1, de lo contrario a 0. Para un resultado predicho

de una muestra, los índices donde el valor es 1 representan las clases asignadas de esa

muestra.(scikit-learn developers & Developers, 2017)

3.6 MLPRegressor

Herramienta de Scikit learn. La clase MLPRegressor implementa un perceptrón multicapa

(MLP) que entrena usando backpropagation sin función de activación en la capa de

salida, que también puede verse como el uso de la función de identidad como función de

activación. Por lo tanto, utiliza el error cuadrado como la función de pérdida y el resultado

es un conjunto de valores continuos. MLPRegressor también admite la regresión de

salida múltiple, en la cual una muestra puede tener más de un objetivo. (scikit-learn

developers & Developers, 2017)

Page 37: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 21

3.7 BernoulliRBM

Herramienta de Scikit learn. En el BernoulliRBM, todas las unidades son unidades

estocásticas binarias. Esto significa que los datos de entrada deben ser binarios o tener

valores reales entre 0 y 1, lo que significa la probabilidad de que la unidad visible se

encienda o apague. Este es un buen modelo para el reconocimiento de caracteres,

donde el interés está en qué píxeles están activos y cuáles no. Para las imágenes de

escenas naturales, ya no se ajusta debido al fondo, la profundidad y la tendencia de los

píxeles vecinos a tomar los mismos valores. (scikit-learn developers & Developers, 2017)

3.8 Máquina de Boltzmann

La máquina de Boltzmann es una máquina estocástica constituida por unidades de

proceso (neuronas) estocásticas con conexiones sinápticas simétricas entre las mismas.

Dichas unidades de proceso son de dos tipos funcionales: visibles u ocultas. Las

unidades visibles sirven de interfaz entre la red y el entorno en el que opera (recogen la

información suministrada). Durante la fase de entrenamiento se ajustan los estados de

todas las unidades visibles a estados específicos establecidos por los patrones de

entrenamiento (entorno en el que opera) pueden ser, a su vez, de entrada o de salida

mientras que las unidades ocultas siempre operan libremente y se utilizan para explicar

restricciones subyacentes contenidas en los patrones de entrada.(Algoritmo, n.d.)

3.9 Raspberry pi

En el centro de todas las placas Raspberry Pi se encuentra un semiconductor cuadrado,

más comúnmente conocido como circuito integrado o chip. Este es el módulo system-on-

chip (SoC) Broadcom BCM2835, el encargado de proporcionarle a la RasPi sus

capacidades de procesamiento de propósito general, de renderización de gráficos y de

entrada/salida. Apilado sobre este chip se encuentra otro semiconductor, este es el

encargado de proveer la memoria a la RasPi para el almacenamiento temporal de datos

mientras sus programas se encuentran en ejecución. Este tipo de memoria es conocida

como memoria RAM (memoria de acceso aleatorio), ya que la computadora puede leer o

escribir en cualquier parte de la memoria y en cualquier momento. La RAM es volátil, lo

que significa que cualquier cosa almacenada en esta memoria se eliminará cuando la

RasPi pierda su energía o sea desenchufada.(Upton & Halfacree, 2013)

Page 38: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

22 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Por la parte de arriba y de abajo del SoC se encuentran las salidas de video de la RasPi.

El conector plata (abajo) es un puerto HDMI (High Definition Multimedia Interface), es del

mismo tipo de conector que se puede encontrar en los reproductores de video y muchos

decodificadores de cable y satélite. Cuando es conectado a un televisor o monitor

moderno, el puerto HDMI proporciona video en alta resolución y audio digital. El conector

amarillo (arriba) es un puerto de video compuesto y está diseñado para conectarse a

televisores antiguos que no cuentan con conexión HDMI. La calidad del video es más

baja que la que está disponible a través del HDMI y no transmite audio; en cambio, el

audio es suministra como una señal analógica a través del conector de audio de 3.5mm a

la derecha del conector del video compuesto. (Upton & Halfacree, 2013)

En la esquina inferior de la placa está la toma de alimentación de la RasPi. Esta es una

toma micro-USB, la misma que está presente en la mayoría de los modernos teléfonos

inteligentes (smartphones) y tablets. La conexión de un cable micro-USB a un adaptador

de energía adecuado encenderá a la Raspberry Pi; a diferencia de una PC o laptop, la

RasPi no cuenta con un botón de encendido y arranca inmediatamente cuando el cable

de la alimentación es conectado. (Upton & Halfacree, 2013)

En la parte inferior de la placa Raspberry Pi, a mano izquierda, se encuentra una ranura

para tarjetas SD. Una tarjeta de memoria SD (Secure Digital) proporciona el

almacenamiento para el sistema operativo, los programas, datos y otros archivos, y no es

volátil; a diferencia de la RAM volátil, la memoria SD conservará su información incluso

cuando la energía se pierda. (Upton & Halfacree, 2013)

El borde a mano derecha de la RasPi tendrá diferentes conectores dependiendo de qué

modelo de Raspberry Pi tenga, el Modelo A o el Modelo B. Arriba de éstos se encuentran

una serie de LEDs (Light Emitting Diodes). Los dos primeros LEDs que están etiquetados

con ACT y PWR proporcionan una notificación de actividad y de energía

respectivamente, y están presentes en todas las placas. La Raspberry pi 2 tiene: Una

CPU ARM Cortex-A7 de cuatro núcleos a 900 MHz y 1GB de RAM. (Upton & Halfacree,

2013)

Page 39: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

4 Ejecución de proyecto

La descripción general del proyecto consiste en que se envía un pulso de voltaje a un

minicomputador de placa única (Raspberry pi 2), en el momento que se presiona un

pulsador, y así el sistema detecta cuando un usuario solicita un parqueadero, por otro

lado una cámara de video, toma imágenes y las envía constantemente al minicomputador

el cual basado en una red neuronal artificial le asigna un código alfanumérico y un código

QR al usuario que solicita parquear. Este código QR contiene una dirección de página

web en la que se ve un plano de vista superior del parqueadero, y una ruta desde la

posición inicial hasta la plaza asignada. Un diagrama de bloques general del sistema es

el siguiente:

Figura 4-1: Diagrama de bloques general del sistema

Imágenes digitales

Page 40: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

24 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Cuando un usuario quiere solicitar una plaza de parqueo oprime el pulsador, en ese

momento se envía un pulso de voltaje al minicomputador.

Como se comentó anteriormente la mayoría de parqueaderos tienen sensores en cada

plaza de parqueo para detectar si esta se encuentra libre u ocupada, en este caso

decidimos utilizar un único sensor, se trata de una cámara de video, la cual nos aporta

algunas ventajas como son: poco cableado, y recolección de mayor cantidad de

información, lo que permite tener más estrategias para la identificación de automóviles,

también se identificaron algunas desventajas como son: la calibración de la cámara con

respecto a la posición del parqueadero o la sensibilidad a los cambios de luz, ya que al

ser un solo sensor ,al momento de un fallo o cambio brusco no hay forma de saber si la

información recibida es verdadera o falsa. La cámara tiene como función transmitir

imágenes de las plazas de parqueo constantemente al minicomputador,

El minicomputador, es el dispositivo central del sistema, este dispositivo se escogió ya

que cumplía con los requerimientos necesarios para la implementación en el sistema los

cuales eran: la capacidad de soportar y poder ejecutar sin problema Python y su

respectivo procesamiento de imágenes, el procesamiento de datos de la red neuronal,

todo esto sin llegar a bloquearse o exceder su capacidad operativa, también, se buscaba

que el dispositivo tuviera puertos periféricos como puertos GPIO, puertos USB, puerto

Ethernet, y puertos para salida de video; se encontró además que el dispositivo era

económico, por lo que se evidencio que era la solución que mejor se acoplaba a este

proyecto.

El minicomputador tiene como función el procesamiento de los datos entrantes desde la

cámara de video, ejecutando un algoritmo de reconocimiento, encargado de procesar las

imágenes e identificar las plazas libres y ocupadas, con esta información se ejecuta una

red neuronal artificial, que a su salida entregara una plaza específica para parqueo. Las

otras funciones del dispositivo son: generar los códigos para el usuario y enviarlos para

ser publicados en un monitor, así como también almacenar la información que se

muestra en una página web.

Una vez el procesamiento de las imágenes se ha realizado, se genera un código QR que

es mostrado al usuario en un monitor, este código QR es leído por medio de un celular

que posea el usuario, la información contenida en el código es la dirección de un página

Page 41: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 25

web, a la cual el usuario podrá ingresar conectándose a la red local del centro comercial,

en la página web se encuentra publicado un plano de vista superior del parqueadero, que

contiene una ruta que indica el camino desde la posición inicial del usuario, hasta la plaza

asignada, esta página se genera con la finalidad de dar una guía al usuario en la

búsqueda de la plaza de parqueo asignada.

4.1 Metodología

Se realizó el proceso de recopilación de información sobre conceptos fundamentales a

tener en cuenta y de proyectos similares o fuentes bibliográficas que aportaran al

contenido del proyecto, y se presentan en el marco teórico y de referencia, para así

poder estimar la alternativa de solución que más beneficios adicionaba a los objetivos

propuestos.

Se definió la forma de realización del algoritmo, necesario tanto para la configuración del

controlador como para la interpretación de los datos recibidos del sistema, marcando una

ruta de acción específica para el desarrollo del algoritmo y su correlación con la

publicación en el monitor y la página web. Así mismo Con la información recolectada se

hizo una evaluación de los requerimientos tanto físicos como tecnológicos de cada una

de las etapas, determinando así las posibilidades o limitaciones físicas que presentaban.

Una vez se realizó la adquisición de datos, la ejecución de los códigos, y la publicación

en los diferentes medios, se realizaron las pruebas necesarias de funcionamiento en

conjunto, es decir el acoplamiento de las diferente partes del código o de las diferentes

tareas de dichos códigos; a continuación se realizaron las correcciones a las que había

lugar y las modificaciones de la visualización de las operaciones realizadas.

Cuando todo estuvo debidamente diseñado, montado y acoplado se realizaron pruebas

de funcionamiento al sistema, y con esto se obtuvieron los datos necesarios para evaluar

el comportamiento y verificar si el sistema funcionaba de manera correcta. El análisis

realizado con los resultados de dichas pruebas arrojo que efectivamente el sistema

funciona de forma correcta, y se puede concluir que se cumplieron los objetivos

propuestos y se obtuvieron los resultados esperados.

Page 42: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

26 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

4.2 Características del prototipo

Para efectos de estabilidad en la captura de imágenes, y para facilidad y protección de

los dispositivos, se creó una estructura en madera que sirve de soporte para todos los

componentes del proyecto, esta estructura y sus dimensiones se muestran a

continuación:

Figura 4-2: Dimensiones de la estructura en madera del prototipo

Page 43: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 27

La distribución del parqueadero diseñada para el prototipo, se encuentra instalada en la

base de la estructura, muestra la de las zonas de parqueo y las flechas que representan

el sentido de circulación que deben tener los autos, es utilizada para realizar las pruebas

de funcionamiento del sistema, y tiene las siguientes dimensiones:

Figura 4-3: Dimensiones del parqueadero diseñado para el prototipo

En el interior del prototipo se necesitan condiciones de luz controlada, por esto se realizó

la instalación de dos leds de luz blanca, cada uno de 10w, esto con el fin de que las

imágenes se vean claras, y que la luz en el interior no varié durante el funcionamiento,

en lo posible, es importante impedir que no entre luz externa.

El prototipo cuenta con un pulsador para la asignación de plazas de parqueo. Este

pulsador está conectado directamente al minicomputador, estos dos elementos junto con

la cámara digital, fueron acoplados en la estructura manera fija, para minimizar los

riesgos por caída y para volver las capturas de la cámara estables ya que a menos

movimiento de la cámara la captura de las imágenes será mejor, también se fijó la

cámara a una distancia focal fija de 50 cm, para que su enfoque no varié.

Page 44: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

28 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

4.3 Metodología para tratamiento de imágenes

El propósito fue diseñar un sistema capaz de identificar los elementos y características

de una escena o imagen del parqueadero usado en el prototipo, y de esta forma lograr

extraer información simbólica a partir del reconocimiento de objetos y estructuras

presentes en la imagen. Para lograrlo se llevan a cabo cuatro actividades principales:

Figura 4-4: Metodología usada para el tratamiento de imágenes

Se usan técnicas de procesamiento de imágenes en Python y herramientas como

OpenCv, que están estrechamente relacionadas con la visión artificial, se utilizan para

facilitar la localización y detección de áreas de interés en las imágenes.

Page 45: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 29

El diagrama de flujo que explica el algoritmo que se utilizó en el tratamiento de imágenes

es el siguiente:

Figura 4-5: Diagrama de flujo tratamiento de imágenes

Page 46: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

30 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

4.4 Pruebas de imagen

Para realizar estas pruebas se utilizó una cámara digital con las siguientes

características: tiene una conexión al minicomputador por medio de USB, alcanza una

tasa de unos 15 a 30 fotogramas por segundo, y tiene la posibilidad de utilizarse en las

siguientes resoluciones (320x240) y (640x480).

Para este proyecto se decidió trabajar con la resolución de (320x240) ya que tiene menos

cantidad de pixeles y por lo tanto el procesamiento de cada imagen se hace más rápido,

así mismo si el procesamiento se realizara con la resolución de (640x480) se obtendrían

más información en cada imagen pero el procesamiento demoraría más, para efectos de

este prototipo la imagen con resolución de (320x240) resulto con la suficiente

información, por lo tanto se eligió.

Para el uso de la cámara de video se utiliza la librería open.cv de Python, que se encarga

del procesamiento de las imágenes.

Figura 4-6: Algoritmo para iniciar prueba de imagen

Primero se inicializa la cámara física con la línea cap = cv2.videoCapture

Después se le asigna una resolución de 320 x 240, se escoge esta resolución para

facilitar el procesamiento de la imagen, y optimizar los recursos de procesamiento en el

minicomputador.

Se comienza un ciclo while infinito, donde en cada ciclo se capturara una imagen, que

será analizada para detectar los vehículos y las plazas de parqueo.

Page 47: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 31

Figura 4-7: Algoritmo del ciclo while utilizado para captura de imágenes

Se captura una imagen por medio de la cámara, utilizando la línea cap.read(). Esta

imagen se convierte del formato RGB al Formato HSV para facilitar su procesamiento ya

que se pasa la imagen de un formato de colores a un formato de contraste, esto facilita la

identificación de objetos sin importar su color.

Grisimg es la conversión de la imagen de HSV a blanco y negro.

Frame2 es la imagen de referencia, ya que para detectar los automóviles que entren al

parqueadero, se hace por medio del método de sustracción de fondo, donde se toma una

imagen de referencia (frame2) que corresponde al parqueadero vacío. Esta imagen de

referencia se resta con cada imagen actual para notar los cambios en esta y así detectar

si ha cambiado algo, lo cual puede ser un vehículo que ocupe una plaza de parqueo.

Esta imagen de referencia se toma una sola vez, esto se hace por medio de la variable

bol, ya que al entrar en el if, está cambia de valor y no se vuelve a cumplir la condición de

bol == 0.

Después de tomar la imagen actual, se hace la resta entre esta y la imagen de referencia

por medio de la línea cv2.absdiff.

Figura 4-8: Línea de código para realizar resta de imágenes

Si las imágenes son iguales el resultado (cam) es una imagen totalmente negra.

Page 48: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

32 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-9: Primera comparacion entra la imagen actual y el resultado de la resta

Si las imágenes son diferentes, en el resultado (cam) se nota la parte que es diferente.

Figura 4-10: Segunda comparacion entra la imagen actual y la imagen re reconocimiento

Figura 4-11: Algoritmo de la máscara para identificar cambios en la imagen

Page 49: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 33

Seguidamente a la imagen en blanco y negro se le aplica una máscara y se le hace una

dilatación para identificar de manera precisa y concreta los cambios entre la imagen de

referencia y la imagen actual.

En la imagen dilata, guardada en (resm), y se aprecian los objetos que se detectaron por

medio de la diferenciación de la imagen actual y la imagen de referencia.

Con cv2.mpments (resm) obtenemos información sobre los objetos marcados en la

imagen dilatada guardada en (resm) donde m00 corresponde al área de los objetos

encontrados.

Figura 4-12: Algoritmo utilizando cv2.mpments (resm)

Si el área del objeto es mayor a 50 se da la instrucción de hallar sus contornos con

cv2.findContours, y después se halla el contorno externo de los objetos.

Figura 4-13: Línea de código para identificación de contorno

Se crean los vectores matapx y matapy, que limitan el área de cada una de las plazas de

parqueo, esto se crea para tener identificadas la totalidad del área de dichas plazas.

Figura 4-14: Definición de los vectores matapx y matapy.

Page 50: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

34 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-15: Vista grafica de la delimitación de los vectores matapx y matapy

Después de hallar el contorno de los objetos diferentes entre las imágenes, se halla un

rectángulo que encierra al objeto por completo, por medio de la línea cv2.boundingRect

que retorna x, y, w, h.

Figura 4-16: Esquina del rectángulo del cual se toman las coordenadas

Donde x y y representan las coordenadas en pixeles de la esquina superior izquierda, y

w y h son el alto y el ancho en pixeles del rectángulo.

Page 51: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 35

Figura 4-17: Prueba de comparación y detección en sus diferentes capaz

Después de esto se hace un barrido por todas las plazas de parqueo, por medio de los

vectores matapx y matapy, si en una de estas se encuentra un objeto, se dibuja en rojo

sobre la pantalla, y se guarda su estado como ocupada, de lo contrario se dibuja en

pantalla esta plaza de parqueo en amarillo y su estado pasa a ser desocupado.

Después de 50 ciclos sin cambios en la imagen de resta, se toman los valores de estado

de cada plaza de parqueo y se transfieren estos datos a la matriz parb.

Figura 4-18: Algoritmo con GPI0.Input(5) para detectar acción en el pulsador

Page 52: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

36 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Con la utilización de la línea GPI0.Input(5) se pone el sistema a la espera de que el

usuario oprima un botón de petición que está conectado al pin 5 del minicomputador, con

el cual se le asignara un puesto en el parqueadero por medio de la función ppedir().

La función Draw_sal() se encarga de dibujar la entrada al parqueadero y la ruta a seguir

a la plaza de parqueo asignada, usando las funciones cv2.circle y cv2.line

Después de esto se crea un código QR que contiene la dirección IP del servidor y el

alojamiento de la página html, donde se publica un gráfico que muestra las indicaciones

para llegar a la plaza de parqueo.

Figura 4-19: Algoritmo con la función Draw_sal()

Se determina la plaza de parqueo asignada al usuario por medio de xxx y yyy, que son

las coordenadas de la plaza de parqueo en la matriz parn, que corresponde a la matriz

de nombres de las plazas de parqueo.

A continuación se presenta un diagrama de flujo en donde se describe el algoritmo

utilizado para mostrar la ruta que debe seguir el usuario.

Page 53: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 37

Figura 4-20: Asignación de parqueadero en conteo de número par.

Figura 4-21: Asignación de parqueadero en conteo de número par.

Page 54: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

38 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-22: Asignación de parqueadero en conteo de número impar.

Después de realizar esta acción se determina si la columna en donde está ubicada la

plaza de parqueo asignada es par o impar, al ser par se llega a la plaza de parqueo por

la izquierda y al ser impar se llega por la derecha.

Figura 4-23: Creación de los círculos de entrada y de centro de plaza de parqueo

Se crean dos círculos, uno en la entrada del parqueadero y otra en el centro de la plaza

de parqueo, para identificar el punto en donde encuentra el vehículo y el punto de destino

al tiene que llegar

Figura 4-24: Creación de las líneas de guía en la ruta para parquear

Se dibujan 3 líneas, una línea horizontal desde el centro de la entrada hasta el centro de

la calle entes las columnas, una línea vertical desde el centro de la calle hasta la plaza de

parqueo y una línea horizontal desde la calle hasta el centro de la plaza de parqueo.

Page 55: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 39

Se crean 8 páginas web, que pueden ser utilizadas por diferentes usuarios a la vez.

Después de un tiempo se refrescan y reutilizan estas páginas web para los nuevos

usuarios que van llegando.

Figura 4-25: Creación del mapa para las diferentes páginas web.

Figura 4-26: Condiciones programadas de la página web

Finalmente se carga todo en la página web previamente diseñada y que muestra el plano

de vista superior, y las indicaciones, que a la vez, se va actualizando según el usuario

que lo solicite, a continuación se muestra un ejemplo del funcionamiento de esta página:

Page 56: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

40 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-27: Ejemplo de funcionamiento de la página web.

4.5 Descripción de la red neuronal

La primera tarea que se realizó, antes de elegir qué tipo de red neuronal se iba a utilizar,

fue la elección de las herramientas informáticas que permitían la creación de algoritmos y

el entrenamiento o aprendizaje de máquina, también llamado machine learning, al

realizar esta tarea se encontró la herramienta Scikit learn, una biblioteca de aprendizaje

de software libre para Python, que ofrece múltiples posibilidades de uso como son la

creación de diferentes tipos de redes neuronales con algunos de los siguientes métodos:

BernoulliRBM, MLPregressor, MLPClassifier,.

BernoulliRBM está basado en una máquina de Boltzmann con capas visibles y ocultas,

está diseñada para aprendizaje no supervisado, de forma que aprende características

lineales no supervisadas en un modelo probabilístico. El modelo hace suposiciones con

respeto a la disposición de entradas y asume que las entradas son valores binarios entre

cero y uno.

Mlpregressor es un perceptron multicapa que se entrena usando back propagation sin

función de activación de la capa de salida, que también puede verse como el uso de la

Page 57: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 41

función de identidad, como función de activación. Por lo tanto, utilizando el error

cuadrado como la función de perdida y el resultado conjunto de valores continuos.

MLPClassifier está basada en un perceptron de múltiples capas ajustables, es un

algoritmo de aprendizaje supervisado, que aprende una función mediante el

entrenamiento en un conjunto de datos, puede aprender un aproximado de función no

lineal para la clasificación o la regresión. Las ventajas de un perceptron multicapa son: la

capacidad para aprender modelos no lineales y la capacidad para aprender modelos en

tiempo real. Las desventajas son que las capas ocultas tiene una función de pérdida no

convexa donde existe más de un mínimo local, por lo tanto, diferentes inicializaciones de

peso aleatorio, pueden llevar a una precisión de validación diferente.

MLPClassifier fue el tipo de red neuronal que se utilizó en este proyecto, ya que tiene un

modelo de aprendizaje supervisado, lo cual era necesario en este prototipo, porque para

hacer una red neuronal que tenga aprendizaje automático se deberían hacer pruebas en

un proceso donde los autos entren y salgan del parqueadero de forma que la red

aprendería sin supervisión esto podría generar resultados variables o salidas indeseadas,

en nuestro caso se eligió una red supervisada, para poder ingresarle la salida deseada y

que con esto la red aprendiera. MLPClassifier se entrena usando un algoritmo de back

propagation que ya viene incorporado en Scikit learn. Después del entrenamiento el

sistema tiene la capacidad de predecir salidas ante nuevas entradas.

Para realizar el entrenamiento de la red neuronal se definen unas salidas deseadas, con

las que el algoritmo de aprendizaje compara si la salida que tiene en cada iteración es

igual a la deseada, así se ajustan los pesos en cada neurona de forma que al final del

entrenamiento la red no tenga errores y prediga la plaza de parqueo sin equivocación.

Después del entrenamiento la estructura de la red neuronal básicamente es la siguiente.

Page 58: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

42 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-28: Estructura básica de la red neuronal

La red neuronal tiene una entrada a en donde se le indica cuales plazas de parqueo

están ocupadas y cuales están libres, con esta información, la red hace una comparación

con los datos aprendidos duran el entrenamiento, y genera una salida, que representa

una plaza de parqueo especifica.

Figura 4-29: Estructura de la red neuronal

Page 59: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 43

Donde la entradas (X1I a X9I) representan la entrada de cada columna que se quiera

evaluar, ya que cada una de estas columnas cuenta con 9 plazas de parqueo; las salidas

(X1O a X9O) representan los estados de cada plaza de parqueo, cambiando una de esas

salidas a la vez, la salida que cambia es la que finalmente se asigna como plaza de

parqueo al usuario. Las capas ocultas pueden ser variables y se programan directamente

en código, si este parámetro no se especifica, Scikit learn tomara por defecto una red

neuronal de 100 capas ocultas

A continuación se presenta un diagrama de flujo en donde se puede apreciar el proceso

de aprendizaje de la red neuronal:

Figura 4-30: Diagrama de flujo proceso de aprendizaje

Page 60: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

44 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

510 representa el número de veces, al cual le corresponde un 111111110 en binario la

respuesta de ese vector es 511 que es 111111111 en binario o sea 9 unos en binario,

por eso el for va hasta 510 para enseñarle a la red todas las posiciones desde la

000000000 hasta la 111111110 que corresponde de 0 a 510 en decimal.

Para efectos prácticos se escogió un parqueadero de 8 columnas, cada una con 9 plazas

de parqueo, con este modelo fue entrenada la red neuronal.

Figura 4-31: Esquema básico de las plazas de parqueo

Figura 4-32: Esquema de las plazas de parqueo numeradas

Para realizar el control de las plazas de parqueo en el código se crearon 3 matrices, así:

Page 61: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 45

Figura 4-33: Matrices para el control de las plazas de parqueo

Dónde parb es la matriz que representa los estados actuales de las plazas de parqueo.

Por lo tanto se conforma de 8 columnas y 9 filas.

Los estados se representan por medio de 3 valores posibles:

0: significa que la plaza de parqueo está vacía, y disponible para ser ocupada.

1: significa que la plaza de parqueo se encuentra ocupada

2: significa que la plaza de parqueo ya fue solicitada y está en modo en espera para

ser ocupada por un nuevo vehículo.

Parac es la matriz que corresponde al estado actual del parqueadero, es decir a las

imágenes captadas por la cámara en cada momento, Por lo tanto se conforma de 8

columnas y 9 filas.

Para esta matriz:

Page 62: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

46 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

0: significa que la plaza de parqueo está vacía, y disponible para ser ocupada.

1: significa que la plaza de parqueo se encuentra ocupada.

Parn, es una matriz que guarda el nombre de cada plaza de parqueo. Y también tiene de

8 columnas y 9 filas.

Para el entrenamiento de la red neuronal se dispuso de una serie de condiciones y reglas

que permiten la organización del parqueadero.

4.5.1 Primera regla

Si el parqueadero cuenta con espacio suficiente, se deja un espacio vacío entre auto y

auto de la misma columna. Esto se hace para que a los usuarios se les facilite la apertura

de las puertas laterales, y subir paquetes o mover carritos de mercado.

Figura 4-34: Ejemplo de la primera regla, plaza de parqueo ocupada (rojo) y libre (verde)

Donde el color rojo representa el espacio ocupado y el verde el espacio que ocupara el

auto que ingrese al parqueadero

4.5.2 Segunda regla

Si no es posible cumplir con la primera condición, se dejara un espacio vacío cada dos

autos.

Page 63: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 47

Figura 4-35: Ejemplo de la segunda regla, plaza de parqueo ocupada (rojo) y libre

(verde)

4.5.3 Tercera regla

Si no es posible cumplir ninguna de las anteriores condiciones se le asignara el primer

espacio vacío en la columna con menos autos.

Se evidencio que para enseñarle a la red neuronal se recomienda usar valores de

entrada que varíen entre 0 y 1, para disminuir el tiempo de aprendizaje de la red neuronal

y el tiempo de procesamiento, se convierte la matriz de 8 X 9 en un vector de 1 x 9, que

representa cada columna del parqueadero. Antes de seleccionar la plaza de parqueo que

será asignada al usuario, se determina cual columna es la que tiene menos autos, en el

caso de haber varias con el mismo número de autos se elige la columna más cercana a

la entrada.

Figura 4-36: Ejemplo de la tercera regla, plaza de parqueo ocupada (rojo) y libre (verde)

Page 64: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

48 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

4.5.4 Cuarta regla

Si hay plazas de parqueo disponibles pero el pasillo para ingresar hasta las plazas está

bloqueado, se busca una ruta por un pasillo diferente, y si todas los pasillos se

encuentran ocupados, se da un tiempo de máximo un minuto para esperar si algún

pasillo se desocupa ya que podrían ser autos en movimiento que hasta ahora se dirigen

a parquear.

Figura 4-37: Ejemplo de la cuarta regla, plaza de parqueo ocupada (rojo) y libre (verde)

4.6 Desarrollo del código

Se utiliza Def search_section2() para crear un algoritmo que permite buscar la columna

con menos autos

Page 65: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 49

Figura 4-38: Algoritmo utilizando Def search_section2()

Donde Tmaxx es el número de columnas del parqueadero y Tmaxy es el número de filas

del parqueadero

Se hace un barrido por medio de los ciclos for, por cada columna contando el número de

plazas de parqueo que en la matriz parb se encuentren en 0, es decir las plazas de

parqueo vacías y disponibles para parquear, si la plaza de parqueo se encuentra vacía

pero en espera a que llegue un vehículo se asume para este caso como ocupada.

Conta: es un vector q almacena el número de plazas de parqueo disponibles en cada

columna.

Maxx: representa el número más grande que tenga conta

Con el último for se haya, cual columna tiene la mayor cantidad de plazas de parqueo

vacías.

La función Def Vacio () determina si el parqueadero está lleno, en el caso de no tener

ninguna plaza de parqueo disponible retorna 1 que representa que el parqueadero está

lleno.

Page 66: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

50 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-39: Algoritmo utilizando Def Vacio ()

Se hace un barrido con los ciclos for en la matriz parb, al encontrar el primer espacio

vacío se interrumpe el ciclo ya que indica que por lo menos se tiene un espacio vacío.

En este caso las plazas de parqueo en modo espera se cuentan como plazas de parqueo

ocupadas. Esto se hace con el fin de evitar asignar dos carros a la misma plaza de

parqueo al mismo tiempo.

La función Def Tiempo() determina que plazas de parque se encuentran en modo espera,

después determina que tiempo llevan esperando cada una, si este tiempo supera los 5

minutos, se cancela su solicitud y pasa a estar en modo vacío.

Figura 4-40: Algoritmo utilizando Def Tiempo()

Page 67: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 51

Donde Matime es una matriz que almacena la hora en que se asignó cada plaza de

parqueo a un usuario

Tiac es el tiempo actual.

Tmaxe es el tiempo máximo de espera. Si este tiempo es superado, la plaza de parqueo

pasa a estar vacía, es decir pasa de valer 2 en la matriz parb a valer 0

Con los ciclos for se determina que plazas de parqueo están en modo espera, es decir

que las plazas de parqueo que valgan 2 en la matriz parb.

La función Topos() determina la diferencia entre dos vectores, xx y yy. Esta diferencia

representa la plaza de parqueo que se le asigna al usuario

Figura 4-41: Algoritmo utilizando Topos()

j: es el número de la columna con la mayor cantidad de plazas de parqueo vacías.

Poss es el nombre de la plaza de parqueo asignada al usuario.

La función Search_position() recibe un vector con que representa la columna con mayor

cantidad de plazas de parqueo vacías.

Page 68: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

52 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-42: Algoritmo utilizando Search_position()

El anterior segmento de código corresponde a buscar que se cumpla la primera condición

del sistema, es decir dejar una plaza de parqueo vacía entre los autos.

El siguiente segmento del código se encarga de la segunda condición para el sistema, en

caso de que la primera no pueda ser cumplida. Corresponde a dejar una plaza de

parqueo vacía cada dos autos o plazas de parqueo ocupadas.

Figura 4-43: Segmento de código regla dos

El siguiente segmento de código se encarga de la 3 condición del sistema, en caso de

que no se pueda cumplir la condición 1 o 2. Esta es ocupar la plaza de parqueo

disponible. En caso de que tampoco se pueda cumplir esta condición se determina que le

parqueadero está lleno.

Page 69: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 53

Figura 4-44: Segmento de código regla tres

Mb: representa si se cumplió cualquier condición, si es 0 significa que no se cumplió, y si

es 1 significa que si se cumplió, por lo tanto todo se detiene.

La función Sear_section1() determina que plazas de parqueo superaron el tiempo de

espera y si el parqueadero cuenta con plazas de parqueo disponibles, por medio de las

funciones tiempo y vacío, después si el parqueadero cuenta con plazas de parqueo

vacías, se determina con la función search_section2 la columna con más plazas de

parqueo disponibles.

Figura 4-45: Algoritmo utilizando Sear_section1()

Page 70: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

54 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Donde Pos y secac: representan el número de la columna del parqueadero con el mayor

número de plazas de parqueo vacías y disponibles.

Mi: contiene el valor de todas las plazas de parqueo de la columna pos. Donde 0

representa las plazas de parqueo vacías, y 1 las plazas de parqueo ocupadas o en

espera.

Mif: representa el valor de todas las plazas de parqueo de la columna pos, más la

posición asignada al nuevo usuario.

Por medio del primer ciclo for se le asigna a los vectores mi y mif el valor de la columna

pos de la matriz parb.

Con la función search_position() se le asigna la plaza de parqueo al usuario y se guarda

su valor en el vector mif.

Con el segundo for se transfiere el nuevo valor del vector mif a la matriz parb donde se le

asigna el estado de espera a la plaza de parqueo asignada y en la matriz matime se

guarda la hora en que se solicitó la plaza de parqueo.

Después se publica el nombre de la plaza de parqueo por medio de la función topos.

Con la función Def learn() se tiene que:

Figura 4-46: Algoritmo utilizando Def learn()

Page 71: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 55

Xi: es un valor de entrada que se desea q aprenda la red neuronal

Yi: es un valor de salida que se desea q aprenda la red neuronal.

Data_x: son los todos valores de entrada que se ingresaron para ser aprendidos por la

red neuronal

Data_y: son los todos valores de salida que se ingresaron para ser aprendidos por la red

neuronal

Esta función por medio de model.partial_fit(data_x,data_y) le enseña a la red neuronal un

valor de entrada con su respectiva salida.

La función Def Prediccion() requiere un valor de entrada, y se le pide a la red neuronal

que analice este valor y haga una predicción sobre este valor, la red neuronal retorna un

vector con el mismo tamaño que el vector de entrada, también este vector contiene

valores en porcentajes comprendidos entre 1 y 0, con el ciclo for se determina si este

porcentaje equivale a un 1 o a un 0.

Figura 4-47: Algoritmo utilizando Def Prediccion()

La función Def forlearn() hace para entrenar a la red neuronal

Page 72: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

56 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-48: Algoritmo utilizando Def forlearn()

Por medio de un ciclo while se hacen muchas iteraciones, necesarias para que la red

neuronal tenga muchos datos de los cuales aprender.

Por medio de la función ramm se crea un vector de 1 x 9 con valores aleatorios que

varían entre 1 o 0, después con la función search_position se busca la plaza de parqueo

asignada para el vector mx, que fue generado de manera aleatoria. Después se le

enseña a la red neuronal el vector aleatorio con su respuesta hallada con la función

search_position, y con en el vector mx3 se guarda un vector proporcionado por la red

neuronal que corresponde a la respuesta dada por esta al vector aleatorio, si este vector

es igual a la respuesta dada por la función search_position se aumenta en uno la variable

cont, de lo contrario, si es diferente el vector de predicción de la red neuronal y el vector

de respuesta dado por la función search_section, la variable cont se iguala a cero.

Cuando la variable cont es igual o mayor a 500 se detiene todo, ya que significa que las

ultimas 500 interacciones la red neuronal respondió de la manera adecuada.

Para escribir en la página web se utiliza servi que es equivalente a servidor, y está en la

dirección IP que tenga el servidor, es decir si el minicomputador tiene comunicación, en

Page 73: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 57

este caso la IP del computador ya que este es el que comparte internet al

minicomputador.

Figura 4-49: Algoritmo para la creación de códigos QR y la edición de la imagen en la

página web

Figura 4-50: Publicación de codigo QR y alfanumérico

4.7 Funcionamiento de la red local

El procesamiento del código se realiza en la Raspberry pi 2 por medio de Python, sin

embargo, fue necesario crear un servidor local, el cual permite al usuario conectarse por

medio de wifi al contenido de los códigos, que son publicados desde la Raspberry pi 2,

después de realizar dicho procesamiento. El servidor local es el puente de comunicación

creado para hacer que el contenido del plano de vista superior, y las indicaciones, se

Page 74: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

58 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

visualicen en un dispositivo que posea el usuario, el cual tenga la posibilidad de

conectarse a internet. Las conexiones utilizadas se ven representadas gráficamente en el

siguiente esquema:

Figura 4-51: Estructura de la red local utilizada

Inicialmente la unidad lógica es configurada como servidor instalando Apache2 Debian

(LAMP) directamente sobre Raspbian, esta acción configura la Raspberry como servidor

local, permitiendo entrar al contenido de la página directamente con la dirección IP o

desde el local host.

Page 75: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 59

Figura 4-52: Configuración de la dirección IP del computador para crear red local

Al realizar la instalación del LAMP, se busca la carpeta raíz del sistema, dentro de ella se

encuentra la carpeta “vav”, y como la instalación fue correcta dentro de esta se encuentra

una carpeta configurada por Apache2 Debian, llamada “www”, que contiene a la carpeta

“html” que es donde se alojaran las páginas web que se quieren compartir. La página

llamada index.html es la página creada por defecto y sirve para hacer las pruebas de

funcionamiento o de conexión del servidor.

Page 76: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

60 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 4-53: Página de prueba index.html

A continuación de esto se crea la página web que sirve para publicar los planos de vista

superior, con sus respectivas rutas, el siguiente es el código de dicha página:

Figura 4-54: Código de la página web utilizada

Cuando se tuvo funcional la página web, junto con el código de procesamiento de la

señal, se procedió a realizar la conexión de la red local, que es una comunicación por

Ethernet entre la unidad lógica y el computador.

Page 77: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 61

Este computador a su vez está conectado a la red wifi compartida por un celular o

modem, del que también tienen conexión los celulares de los usuarios, quedando todo

dentro de la misma red local del centro comercial y de esta forma accediendo libremente

al plano de vista superior, y sus indicaciones, simplemente teniendo la dirección correcta

que también es entregada por el sistema.

Page 78: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 79: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

5 Resultados

Para la documentación de resultados se hicieron diferentes pruebas que evidencian el

proceso de entrenamiento de la red neuronal, la comprobación de que se cumplen todos

los regalas enseñadas a la red y también una prueba de todo el sistema, y los pasos que

haría un usuario al utilizarlo

5.1 Pruebas de usuario

Para realizar las pruebas de usuario, se comienza, desde el principio del proceso, es

decir desde que un usuario llega a la entrada del parqueadero, hasta que se le muestra

la ruta que debe seguir en la página web, es un proceso que se hace paso a paso,

entonces, lo primero que se debe hacer cuando un usuario llega al parqueadero, es

oprimir el pulsador, en una pantalla vera lo que se muestra a continuación:

Figura 5-1: Código alfanumérico y QR mostrados en pantalla

Page 80: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

64 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Para tener una referencia de los autos que están dentro del parqueadero se toma una

imagen, que los identifique, la cual se muestra a continuación:

Figura 5-2: Referencia de autos en el parqueadero

La imagen anterior es solo de referencia, lo que quiere decir que los usuarios no verán

esta imagen; a continuación el usuario debe escanear con su celular el código QR, como

se ve a continuación:

Figura 5-3: Escaneo de código QR

El código QR contiene una dirección de una página en la red local, lo siguiente que vera

el usuario después de realizar el escaneo, es la lectura, así como se muestra a

continuación:

Page 81: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 65

Figura 5-4: Lectura de la dirección de página

A continuación se copia el contenido y se pega en el buscador, así:

Figura 5-5: Dirección de página web en el navegador

Page 82: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

66 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Finalmente el usuario vera la página web, en la que se muestra un mapa que le indica la

ruta que debe seguir para llegar a la plaza de parqueo asignada.

Figura 5-6: Visualización del plano de ruta en la página

5.2 Cumplimiento de las reglas

En cuanto al cumplimiento de las reglas se realizaron pruebas, evaluando lo que se

debe cumplir en cada una de ellas, se toma como referencia que el tiempo que se

demora la red neuronal en predecir cualquiera de estas reglas es 0.001423 s

La primera regla es la que primero evalua el sistema, si no es posible, entonces evaluara

la segunda y asi sucesivamente. En condiciones de no utilizacion de la red neuronal el

procesamiento de la regla se realizara en 3.09944152832e-05 segundos.

La primera regla consiste en que la asignacion de zona para parqueo sea dejando un

espacio entre vehiculos como se muestra a continuacion:

Page 83: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 67

Figura 5-7: Imagen actual del parqueadero (regla 1)

Figura 5-8: Asignación realizada (regla 1)

En condiciones de no utilizacion de la red neuronal el procesamiento de la regla se

realizara en 4.10079956055e-05 segundos

La segunda regla consiste en que la asignacion de zona para parqueo sea dejando un

espacio entre vehiculos, cada dos vehiculos, como se muestra a continuacion:

Page 84: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

68 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 5-9: Imagen actual del parqueadero (regla 2)

Figura 5-10: Asignación realizada (regla 2)

En condiciones de no utilizacion de la red neuronal el procesamiento de la regla se

realizara en 9.67979431152e-05 segundos

La tercera regla consiste en que la asignacion de zona para parqueo sea asignando las

unicas plazas que queden disponibles, como se muestra a continuacion:

Page 85: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 69

Figura 5-11: Imagen actual del parqueadero (regla 3)

Figura 5-12: Asignación realizada (regla 3)

En condiciones de no utilizacion de la red neuronal el procesamiento de la regla se

realizara en 4.20079956055e-05 segundos

La cuarta regla consiste en que la asignacion de zona para parqueo sea asignando las

unicas plazas que queden disponibles, en donde no se encuentre el pasillo bloqueado,

como se muestra a continuacion:

Page 86: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

70 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 5-13: Imagen actual del parqueadero (regla 4)

Figura 5-14: Asignación realizada (regla 4)

Page 87: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 71

5.3 Comparación de aprendizaje de redes neuronales

El aprendizaje de la red neuronal se realizó guiadamente, calculando a base de prueba y

error, el cual era la cantidad de iteraciones necesarias para que el sistema aprendiera

todas las reglas programadas y respondiera con la respuesta acertada cada vez, hasta

llegar a un nivel de seguridad del 100%.

5.3.1 Método MLPClassifier

A continuación se muestran las gráficas del comportamiento en el aprendizaje de la red

neuronal, modificando el número de capas de la red en cada intento, se puede ver la

diferencia en cuanto al número de iteraciones necesarias, para que la red aprenda con

un error del 0%, y el tiempo de aprendizaje que tiene. En conclusión se establece un

vector deseado, y después la red neuronal aprende a predecirlo.

Se convierte todo el vector binario a un número decimal, de la siguiente manera:

Figura 5-15: Conversión de vector binario, a numero decimal

El cálculo del error se hace de la siguiente manera: se tienen dos vectores, uno de

entrada y otro deseado, se resta el valor de entrada del valor deseado y se divide entre el

valor deseado.

El siguiente entrenamiento fue realizado con una red neuronal de 100 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 183 segundos, y un total de

12581 muestras

Page 88: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

72 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

Figura 5-16: Porcentaje de aciertos vs porcentaje de error (100 capas)

El siguiente entrenamiento fue realizado con una red neuronal de 90 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 277 segundos, y un total de

14114 muestras

Figura 5-17: Porcentaje de aciertos vs porcentaje de error (90 capas)

Page 89: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 73

El siguiente entrenamiento fue realizado con una red neuronal de 80 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 393 segundos, y un total de

15136 muestras

Figura 5-18: Porcentaje de aciertos vs porcentaje de error (80capas)

El siguiente entrenamiento fue realizado con una red neuronal de 70 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 680 segundos, y un total de

20757 muestras

Figura 5-19: Porcentaje de aciertos vs porcentaje de error (70 capas)

Page 90: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

74 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

El siguiente entrenamiento fue realizado con una red neuronal de 60 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 595 segundos, y un total de

20757 muestras

Figura 5-20: Porcentaje de aciertos vs porcentaje de error (60 capas)

El siguiente entrenamiento fue realizado con una red neuronal de 50 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 298 segundos, y un total de

16592 muestras

Figura 5-21: Porcentaje de aciertos vs porcentaje de error (50 capas)

Page 91: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 75

El siguiente entrenamiento fue realizado con una red neuronal de 40 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 593 segundos, y un total de

24334 muestras

Figura 5-22: Porcentaje de aciertos vs porcentaje de error (40 capas)

El siguiente entrenamiento fue realizado con una red neuronal de 30 capas ocultas,

teniendo como resultado, el aprendizaje en un tiempo de 515 segundos, y un total de

26768 muestras

Figura 5-23: Porcentaje de aciertos vs porcentaje de error (30 capas)

Page 92: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

76 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

El mejor comportamiento se evidenció con el aprendizaje de 100 capas ya que tuvo un

tiempo de aprendizaje menor que los demás, y con un menor número de iteraciones.

5.3.2 Método MLPRegressor

El siguiente entrenamiento fue realizado con una red neuronal de 100 capas ocultas,

teniendo como resultado, el no aprendizaje en un tiempo de 95 segundos, y un total de

12581 muestras

Figura 5-24: Porcentaje de aciertos vs porcentaje de error (100 capas)

Se realizó otro entrenamiento con una red neuronal utilizando la misma cantidad de

capas, un total de 100 capas ocultas, teniendo como resultado, que por más tiempo que

se deje aprendiendo el sistema, no logra disminuir el erro a cero, por lo tanto este método

de entrenamiento de red neuronal, se deja descartado y se utiliza el MLPClassifier, ya

que se comportó de la forma esperada en las diferentes pruebas realizadas.

Page 93: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Capítulo 1 77

Figura 5-25: Porcentaje de aciertos vs porcentaje de error (100 capas), segunda prueba

Page 94: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía
Page 95: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

6 Conclusiones y recomendaciones

6.1 Conclusiones

A partir de la realización de este proyecto se pudieron obtener resultados, que

demuestran que se diseñó un prototipo capaz de realizar la gestión de ocupación de los

parqueaderos por medio de una red neuronal artificial, creada en Python por medio de la

herramienta Scikit learn. Esta red de tipo perceptron fue entrenada con dos métodos

diferentes usando un algoritmo de back propagation y se muestra la diferencia entre

ellos, se puede identificar cual fue el que arrojo mejor resultado. El sistema es capaz de

asignar plazas de parqueo específicas a cada usuario, siguiendo cuatro reglas que la red

neuronal ha aprendido previamente, por medio del entrenamiento.

Cuando ocurre un accionamiento del pulsador el sistema publica en una pantalla un

código alfanumérico, que representa la plaza de parqueo asignada .También se publica

en la pantalla un código QR, el código contiene una dirección web, en la cual se visualiza

un plano de visa superior del parqueadero y una ruta desde la entrada hasta la plaza

asignada,

La implementación del código QR es una ayuda en el ingreso a la página web ya que el

celular toma la dirección web automáticamente y el usuario no tiene que hacer el tedioso

procedimiento de digitarla, con esto, no se afecta el comportamiento normal de como

opera el parqueadero, sino que se agrega un beneficio, y el usuario tiene la posibilidad

de usarlo o no, sin afectar de ninguna forma el estacionamiento normalmente, la decisión

está en el administrador del parqueadero si quiere que las reglas sean opcionales u

obligatorias .

Por medio de la cámara digital de video se identifica si cada plaza de parqueo se

encuentra libre u ocupada, esto se logra por medio del procesamiento digital de las

imágenes, usando la técnica de sustracción de fondo, así como diferente herramientas

que permiten el procesamiento de imágenes en Python, esto también permite la

Page 96: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

80 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

identificación de bloqueo en los pasillos, para un cálculo acertado de la ruta que se

muestra al usuario.

6.2 Recomendaciones

Para el aprendizaje de la red neuronal se recomienda usar valores de entrada que varíen

entre 0 y 1, así como intentar optimizar de la mejor forma el código, los algoritmos y las

reglas que aprende la red neuronal, todas estas recomendaciones en conjunto se verán

reflejadas en una disminución del tiempo de aprendizaje de la red neuronal y del tiempo

de procesamiento de todo el sistema.

En investigaciones o desarrollos futuros se recomienda usar una cámara de video con

mayor resolución, ya que tendrá más cantidad de datos disponibles para el

procesamiento y análisis de la sección que se desee, esta recomendación es útil siempre

y cuando la unidad procesadora también sea aumentada en capacidad de

procesamiento, el sistema adquirirá mejores prestaciones, como por ejemplo, más

exactitud, y una capacidad mayor de monitoreo en cuanto a plazas de parqueo se refiere.

Page 97: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

Bibliografía

Algoritmo, E. (n.d.). Máquinas Estocásticas

___________________________________________________________________

___.

Du, F., Zhao, Y., Gao, L., & Wang, W. (2017). Evaluation of the autonomous parking

system based on bp neural network. Proceedings - 9th International Conference on

Intelligent Human-Machine Systems and Cybernetics, IHMSC 2017, 2, 324–327.

https://doi.org/10.1109/IHMSC.2017.185

Gervasoni, L., D’amato, J. P., & Barbuzza, R. (2014). Aplicación de un método de

sustracción de fondo a partir de imágenes de vídeo-vigilancia. XLIII Jornadas

Argentinas de Informática E Investigación Operativa (43JAIIO)-XV Argentine

Symposium on Technology (AST)(Buenos Aires, 2014), 25–36. Retrieved from

http://43jaiio.sadio.org.ar/proceedings/AST/Paper3_AST_Gervasoni.pdf

Jiménez, A. F., Pelayo, M. C., & Ramírez, Á. (2015). Enseñanza del Procesamiento de

Imágenes en Ingeniería usando Python. Vaep-Rita, 3(4), 179–186.

Lara, F. (n.d.). Fundamentos De Redes Neuronales Artificiales. Unam. Retrieved from

http://conceptos.sociales.unam.mx/conceptos_final/598trabajo.pdf

Mityakov, A. V., Varankin, V. K., & Tatarinov, Y. S. (2017). Application of modern

architectures of deep neural networks for solving practical problems. Proceedings of

2017 20th IEEE International Conference on Soft Computing and Measurements,

SCM 2017, 389–390. https://doi.org/10.1109/SCM.2017.7970594

scikit-learn developers, & Developers, S. (2017). Scikit-Learn User Guide.

Upton, E., & Halfacree, G. (2013). Raspberry Pi User Guide, 314. Retrieved from

Page 98: PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE ...repository.udistrital.edu.co/bitstream/11349/7846/1/monografia 2.pdf · Resumen y Abstract IX Resumen En esta monografía

82 PROTOTIPO DE SISTEMA PARA LA GESTIÓN DE OCUPACIÓN DE

PARQUEADEROS EN UN CENTRO COMERCIAL

http://books.google.at/books?id=YJo3AgAAQBAJ

Valipour, S., Siam, M., Stroulia, E., & Jagersand, M. (2017). Parking-stall vacancy

indicator system, based on deep convolutional neural networks. 2016 IEEE 3rd

World Forum on Internet of Things, WF-IoT 2016, 655–660.

https://doi.org/10.1109/WF-IoT.2016.7845408