Está en la página 1de 163

Claudia Patricia Sánchez Sansuste

DESARROLLO DE UN SISTEMA DE GESTIÓN DE PARQUEO


INTELIGENTE BASADO EN VISIÓN ARTIFICIAL PARA LA UNIVERSIDAD
CATÓLICA BOLIVIANA “SAN PABLO” REGIONAL SANTA CRUZ

Proyecto de Grado presentado a la carrera de


Ingeniería Mecatrónica para obtener el Título de Ingeniera
Mecatrónica.

Tutor: Ing. Pablo Marcelo Silva G.

Santa Cruz – Bolivia Julio, 2021


(Claudia Patricia Sánchez Sansuste)

DESARROLLO DE UN SISTEMA DE GESTIÓN DE PARQUEO


INTELIGENTE BASADO EN VISIÓN ARTIFICIAL PARA LA UNIVERSIDAD
CATÓLICA BOLIVIANA “SAN PABLO” REGIONAL SANTA CRUZ

El presente Proyecto de Grado fue sometido a análisis y defendido ante el tribunal


compuesto por:

Job Ángel Ledezma Pérez, Dr. Ing.


DIRECTOR DE CARRERA
INGENIERÍA MECATRÓNICA

Erick Osvaldo Pozo Irusta, MSc Ing.


DOCENTE DE TALLER DE GRADO II

Pablo Marcelo Silva Gutiérrez, Ing.


TUTOR

Santa Cruz de la Sierra, 12 de Julio del 2021


AGRADECIMIENTOS

La vida se encuentra plagada de retos, uno de ellos es la Universidad, al encontrarme dentro de ella
ha sido un camino lleno de aprendizaje, por eso agradezco a la Universidad por la oportunidad,
puesto que no fue sencillo, pero logré llegar al punto en el que me encuentro, gracias al Dr. Ing. Job
Ledezma y MSC. Ing. Erik Pozo, mi tutor Ing. Marcelo Silva por la dedicación y demás docentes por
sus enseñanzas que aportaron al desarrollo de mi proyecto y así poder convertirme en Ingeniera.
Agradezco a Dios, ya que en todo momento está conmigo ayudándome a aprender de mis errores y
no cometerlos otra vez.
A mis padres Hernán Sánchez e Irma Sansuste, que son mi motivación, y por haberme forjado como
la persona que soy, muchos de mis logros se los debo a ellos, entre ellos los que se incluye este,
siempre me motivaron constantemente a alcanzar todos mis objetivos, a Joao Sánchez que es un pilar
importante para mí y a toda mi familia por creer en mí, gracias a Ricardo Dencker y Davor Magno
por darme siempre el apoyo que necesitaba y alentarme a no rendirme, a mis verdaderas amigas,
amigos y todas las personas muy especiales que estuvieron durante este camino confiando en que iba
a poder cumplir mi meta y a otras personas que por alguna u otra razón se quedaron en el camino
pero sé que me desean lo mejor siempre los tendré en mi corazón.
Infinitas Gracias.
RESUMEN

FASLÑDFLKFJKÑLASJDKFLJ
ABSTRACT
Índice

1. CAPITULO 1 MARCO REFERENCIAL

1.1. Casos de implementación de sistemas inteligentes exitosos.................................................4

1.2. Planteamiento del problema................................................................................................. 6

1.3. Objetivos...............................................................................................................................7

1.3.1. Objetivo general.................................................................................................................7

1.3.2. Objetivos específicos.........................................................................................................7

1.4. Motivación............................................................................................................................8

1.5. Justificación..........................................................................................................................8

1.5.1. Justificación económica.....................................................................................................8

1.5.2. Justificación social.............................................................................................................8

1.5.3. Justificación ambiental.......................................................................................................9

1.5.4. Justificación personal.........................................................................................................9

1.6. Delimitación..........................................................................................................................9

1.6.1. Límites................................................................................................................................9

1.6.2. Alcances.............................................................................................................................9

1.6.2.1. Alcance temporal...........................................................................................................9

1.6.2.2. Alcance geográfico........................................................................................................9

1.6.2.3. Alcance técnico............................................................................................................10

CAPÍTULO 2 MARCO TEÓRICO.........................................................................................11

2.1. Introducción..........................................................................................................................11

2.2. Aplicaciones de la visión artificial dentro del tráfico vehicular ..........................................11

2.2.1. Detección de eventos vehiculares......................................................................................12

2.2.2. Conteo de automóviles.......................................................................................................12

2.2.3. Reconocimiento de placas vehiculares..............................................................................12

2.3. Detección de placas..............................................................................................................13

2.3.1. Procesamiento de imágenes binarias……………………….…………………………….14


2.3.2. Procesamiento de imágenes en escala de grises………………………………………….15

2.3.3. Procesamiento de imágenes a color...................................................................................15

2.4. Algoritmo para el reconocimiento de caracteres..................................................................16

2.4.1. Comparación de plantillas..................................................................................................16

2.4.2. Algoritmo de K-vecinos más próximos (K-NN)................................................................17

2.4.3. Reconocimiento en base a características..........................................................................19

2.2.4. Redes neuronales...............................................................................................................19

2.2.5. Algoritmo Tesseract………………………………………………………………………22

2.2.6. Árbol de decisión…………………………………………………………………………23

2.5. Conclusiones del capítulo………………………………………………………………….24

CAPÍTULO 3 PROPUESTA DE PROYECTO DE GRADO...............................................25

3.1. Esquematización del proyecto..............................................................................................25

3.2. Definición de los elementos para el sistema de visión artificial..........................................27

3.2.1. Análisis de ubicación de las cámaras.................................................................................27

3.2.2.1.Cámara para el ingreso....................................................................................................27

3.2.2.2.Cámara para el parqueo...................................................................................................31

3.2.3. Evaluación de cámaras adecuadas para el sistema.............................................................33

3.2.4. Selección de las cámaras a implementar en el sistema......................................................35

3.2.5. Topología de red para la instalación de las cámaras..........................................................36

3.2.5.1.Esquema de la red del sistema de cámaras......................................................................37


3.2.6.Selección del lenguaje y herramienta de programación del sistema……………………..38

3.2.6.1. Herramienta para el procesamiento de imagen……………………………………….47

3.2.6.2. Lenguajes de programación…………………………………………………………..53

3.2.7.Selección del sistema para la gestión de base de datos…………………………………..55

3.2.7.1. Gestión y conexión a MariaDB……………………………………………………….55

3.3. Diseño del sistema de visión artificial……………………………………………………..58


3.3.1. Algoritmo de reconocimiento de placas………………………………………………….58

3.3.1.1. Algoritmo KNN para clasificación de caracteres……………………………………....63

3.3.1.2. Algoritmo para el reconocimiento de placas…..........................................................…75

3.3.2. Algoritmo para la detección de espacios en el parqueo.....................................................99

3.3.4. Integración de ambos sistemas........................................................................................110

3.4. Conclusiones del capítulo................................................................................................111

CAPÍTULO 4 IMPLEMENTACIÓN DEL SISTEMA EN EL CASO DE ESTUDIO......113

4.1. Instalación de la red del sistema.........................................................................................113

4.1.1. Ubicación e instalación cámara de ingreso......................................................................117


4.1.2. Cámara del área de parqueo............................................................................................114
4.1.1. Visualización de los videos en el monitor........................................................................115

4.1.3.1. Cámara de ingreso al parqueo......................................................................................116


4.1.3.2. Cámara de parqueo.......................................................................................................116
4.1.2. Ejecución del algoritmo-reconocimiento de placas..........................................................117

4.1.3. Ejecución del algoritmo-verificación de espacios disponibles.........................................118

4.2.Ejecución del sistema..........................................................................................................121


4.3.Conclusión del capítulo.......................................................................................................123

5. CAPÍTULO 5 COSTOS DEL PROYECTO...............................................................124


5.1. Costos de implementación del proyecto
5.2.Análisis de beneficios..........................................................................................................125
6. CAPITULO 6 MARCO CONCLUSIVO.......................................................................126
6.1.Conclusiones.....................................................................................................................126
6.2.Recomendaciones..............................................................................................................127
6.3.Trabajos futuros................................................................................................................128

BIBLIOGRAFÍA...................................................................................................................129
ANEXOS................................................................................................................................131
Índice de Figuras

Figura 1.1. Datos estadísticos del parque automotor en Bolivia...................................3


Figura 1.2. Sistema Smart Parking que Control Solutions Bolivia implementa............4
Figura 1.3. Instalaciones del caso de éxito en la Universidad Católica de Montevideo
Uruguay...........................................................................................................................5
Figura 1.4. Instalaciones del caso de éxito en Montevideo Shopping...........................6
Figura 1.5. Resultados ante la pregunta si los usuarios consideran que los espacios
de.....................................................................................................................................7
Figura 1.6. Árbol de problemas.....................................................................................7
Figura 2.1. Cámara de vigilancia instalada en la carretera…………………………..13
Figura 2.2. Extracción de la región de la placa de un automóvil ................................15
Figura 2.3. Ejemplo de imagen binarizada..................................................................15
Figura 2.4. Placa boliviana actual 2021.......................................................................16
Figura 2.5. Comparación de plantillas.........................................................................17
Figura 2.6. Búsqueda de la clase “X” en base a sus “K” vecinos más cercanos.........18
Figura 2.7. Características geométricas y topológicas.................................................20
Figura 2.8. Reconocimiento óptico de caracteres utilizando una red neuronal...........21
Figura 2.9. Función de activación Symmetrical sigmoid............................................22
Figura 2.10. Carácter de entrada..................................................................................23
Figura 2.11. Placa recortada para ser reconocido por Tesseract..................................24
Figura 2.12. Recorrido de un árbol de decisión para OCR..........................................25
Figura 3.1. Estacionamiento con cámaras de seguridad incorporada..........................32
Figura 3.2. Ilustración sistema de reconocimiento de placas......................................32
Figura 3.3. Ilustración de indicación de sector de parqueo asignado..........................33
Figura 3.4. Esquema de la ubicación de la cámara de ingreso.....................................34
Figura 3.5. Esquema de instalación de la cámara B....................................................38
Figura 3.6. Kit de instalación para cámaras analógicas y cámara IP..........................41
Figura 3.7. Topologías de red......................................................................................45
Figura 3.8. Esquema de red instalada..........................................................................46
Figura 3.9. Representación de una imagen en forma de matriz...................................48
Figura 3.10. Ejemplo de descripción básica del tratamiento de matrices en Matlab
(2015a)..........................................................................................................................49
Figura 3.11. Ejemplo de descripción básica del tratamiento de matrices en Python...52
Figura 3.12. Diferencias entre los ecosistemas de Python y Matlab............................53
Figura 3.13. Arranque de MySQL en el software Xampp...........................................56
Figura 3.14. Configuración del Software HeidiSQL...................................................56
Figura 3.15. Creación de una nueva base de datos......................................................57
Figura 3.16. Algoritmo KNN (k-Nearest Neighbour).................................................58
Figura 3.17. Letras y números para el entrenamiento del algoritmo...........................60
Figura3.18. Imagen original e imagen en escala binaria de los caracteres.................63
Figura 3.19 Ejemplos de caracteres reconocidos y extraídos de la imagen en escala
binaria...........................................................................................................................63
Figura 3.20 Valores asignados para la clasificación....................................................64
Figura 3.21 Pruebas del algoritmo KNN.....................................................................69
Figura 3.22 Pruebas del algoritmo KNN con K=3......................................................71
Figura 3.23 Pruebas del algoritmo KNN con K=5......................................................71
Figura 3.24 Estructura de los ficheros Python para el algoritmo de reconocimiento de
placas.............................................................................................................................72
Figura 3.25 Ejemplo, video de entrada al sistema.......................................................73
Figura 3.26 Estructura de las funciones del archivo Core.py......................................74
Figura 3.27 Delimitación rectangular de la placa encontrada, en la escena................77
Figura 3.28 Texto de la placa escrito en la escena del video.......................................79
Figura 3.29 Estructura de funciones del archivo Preprocesamiento.py.......................80
Figura 3.30. Aplicación de operaciones morfológicas suma y resta de imágenes.......84
Figura 3.31 Resultado del proceso morfológico, imagen en grises, máximo contraste y

contornos.......................................................................................................................84
Figura 3.32 Estructura de funciones del archivo DetectPlates.py...............................85
Figura 3.33 Extracción de los bordes de la imagen.....................................................88
Figura 3.34 Extracción de las posibles placas de la imagen........................................89
Figura 3.35 Selección de factores ancho y alto de la matricula...................................90
Figura 3.36 Estructura de funciones del archivo DetectarLetras.py............................91
Figura 3.37 Contornos de la imagen y ubicación de las posibles placas.....................96
Figura 3.38 Parámetros y delimitación de los caracteres encontrados........................97
Figura 3.39 Lista de listas de caracteres coincidentes, limpieza del texto y texto
final...............................................................................................................................98
Figura 3.40. Texto de la placa leída en la consola de Python.....................................99
Figura 3.41 Estructura de los ficheros Python para el algoritmo de detección del
parqueo..........................................................................................................................99
Figura 3.42 Selección de las áreas de evaluación para el parqueo............................101
Figura 3.43 Estructura de las funciones del archivo detección.py.............................102
Figura 3.44 Evaluación y definición de parámetros en las regiones seleccionadas para
el parqueo....................................................................................................................104
Figura 3.45 Ventana de inicio del sistema..................................................................109
Figura 3.46 Ventana de visualización de datos del sistema.......................................109
Figura 3.47 Esquema grafico de la integración del sistema......................................110
Figura 4.1. Instalación de la cámara de ingreso.........................................................113
Figura 4.2. Instalación de la cámara del área de parqueo..........................................114
Figura 4.3. Integración del disco duro en el sistema NVR........................................115
Figura 4.4. Cable de red categoría 5e........................................................................115
Figura 4.5. Captura de video de la cámara de ingreso...............................................116
Figura 4.6 Captura de video de la cámara del área del parqueo................................116
Figura 4.7 Imagen de entrenamiento del algoritmo...................................................117
Figura 4.8 Detección de placas de los vehículos de ingreso a la universidad..............118
Figura 4.9 Base de datos con placas registradas........................................................118
Figura 4.10 Archivo generado por el sistema con el reporte de placas detectadas…118
Figura 4.11 Selección de las áreas de interés para el parqueo A1, A2, A3 e
invitado.......................................................................................................................120
Figura 4.12. Funcionamiento final del sistema..........................................................122
Índice de tablas

Tabla 3.1. Promedio de altura de coches urbanos 2019...............................................36


Tabla 3.2 Promedio de altura de coches familiares 2019............................................37
Tabla 3.3 Promedio de las dimensiones de coches familiares y urbanos 2019............41
Tabla 3.4. Ventajas y desventajas cámaras IP vs cámaras analógicas.........................43
Tabla 3.5 Elementos y características del sistema.......................................................54
Tabla 3.6 Predicción del clasificador para cada texto de prueba…………………….78
Tabla 5.1 Costos de los materiales e implementación del proyecto..........................124
15
CAPÍTULO 1

MARCO REFERENCIAL

El incremento del parque automotor a nivel Bolivia en el año 2019, con base en el Registro
Único para la Administración Tributaria Municipal (RUAT), ha sido significativo, siendo
reportados
2.013.400 vehículos. Esto significa un incremento del 5,13% a la cantidad de vehículos en el 2018,
en el que se contabilizaron 1.910.127 unidades (Moreno, 2020). Del cual, el departamento de Santa
Cruz cuenta con la mayor cantidad de vehículos registrados en una escala nacional, alcanzando el
34,1% lo cual significa 686.569 vehículos. Según datos del INE, el 92,8% del parque automotor
total corresponde al servicio particular y el servicio público con una participación del 5,5%
(Moreno, 2020). La Figura 1.1 muestra datos estadísticos del parque automotor en Bolivia.

Figura 1.1. Datos estadísticos del Parque Automotor en Bolivia


Fuente: Registro Único para la Administración Tributaria RUAT (2019)

El incremento de automóviles desemboca en la necesidad de lugares de estacionamientos


tanto en la ciudad como en el caso particular, de universidades o centros comerciales. La gestión
de estacionamientos posee el potencial de reducir la congestión vehicular disminuyendo el tiempo
de búsqueda de un lugar de estacionamiento (Sara, 2020).
16
Con el avance tecnológico en los últimos años, las aplicaciones de visión por computador o
visión artificial son cada vez más viables para su desarrollo e implementación en entornos reales
tales como pueden ser la de vigilancia, control de calidad de productos, control de tráfico e incluso
automatización de estacionamientos o lugares de parqueos (Sisalima, 2018).
En Bolivia, la empresa “Control Solutions Bolivia S.R.L.” desde el año 2017 tiene como uno
de sus servicios, la implementación de parqueos inteligentes verticales que ocupan un espacio
reducido de 33 [m2] y pueden parquear desde 6 hasta 16 vehículos. En la Figura 1.2 se muestra el
tipo de trabajo que realiza esta empresa con respecto a Smart Parking.

Figura 1.2. Sistema Smart Parking que Control Solutions Bolivia implementa
Fuente: Parqueo.biz (2020)

La realización del presente proyecto de grado tiene como fin, disminuir el tiempo de
búsqueda de un lugar para estacionamiento y mejorar todos los efectos que esta acción conlleva
dentro del campus de la Universidad Católica Boliviana San Pablo, Santa Cruz, mediante la
implementación de un sistema automatizado basado en la tecnología de visión artificial, ya que
actualmente la universidad no cuenta con ningún tipo de sistema que gestione los lugares de
estacionamientos.

1.1. Casos de implementación de sistemas inteligentes exitosos

La implementación de parqueos inteligentes en Sudamérica ya es un hecho, existen


empresas que se dedican a brindar soluciones de ingeniería para estos casos de parqueos
17
inteligentes. A continuación, se mencionarán 2 de los muchos casos de éxito de implementación de
sistemas de parqueos inteligentes.

El primero se encuentra en la Universidad Católica de Uruguay, en la ciudad capital de


Montevideo. La empresa encargada de realizar este proyecto fue iParkings en conjunto con su socio
estratégico PARKING SOLUTIONS en el año 2018. Es el estacionamiento inteligente más avanzado
de ese país, entre algunas de sus características es que el sistema cuenta con reconocimiento de
matrículas, telepeaje y pago de servicio automático.
Algunos de los componentes de este sistema son los siguientes:
 Barreras DITEC QIK de alto tránsito en la entrada del estacionamiento.
 Reconocimiento de matrículas.
 Display exterior de disponibilidad.
 Monitor dinámico con publicidad.
 Iluminación inteligente.
 Módulo de facturación electrónica.
 Circuito cerrado CCTV.
En la Figura 1.3 se muestra el estacionamiento en cuestión.

Figura 1.3. Instalaciones del caso de éxito en la Universidad Católica de Montevideo, Uruguay
Fuente: (iParkings, 2018)

El siguiente caso exitoso de un estacionamiento inteligente se encuentra ubicado


también en Uruguay, en la ciudad de Montevideo en el centro comercial “Montevideo Shopping”. La
empresa que llevo a cabo la implementación es iParkings y fue implementada el 30 de octubre del
2019 (iParkings, 2018). Cuenta con sistemas de guiado inteligente, las cuales brinda información
importante a las personas que operan el estacionamiento, tales como ser:

 Días de asistencia del mismo vehículo al estacionamiento.

18
 Alarmas cuando el estacionamiento se encuentre lleno.
 Tiempo de permanencia de cada usuario.
 Cómo se comporta el sistema ante un cambio en alguna variable como ser a alguna promoción
de reducción de precio del servicio.

En la Figura 1.4 se muestra el estacionamiento en físico:

Figura 1.4. Instalaciones del caso de éxito en Montevideo Shopping


Fuente: (iParkings, 2018)

1.2. Planteamiento del Problema

En el siguiente trabajo se toma en cuenta la realidad departamental, en donde se tiene como


principales problemas, la escasa y deficiente organización de espacios destinados al estacionamiento
de vehículos, agregando a esto, una pobre educación vial.
En este contexto estructural, se identifica el problema existente en el actual parqueo de la
Universidad Católica Boliviana “San Pablo” Regional Santa Cruz, cuando se observa que existen
inconvenientes en la gestión de parqueo. Por otro lado, los espacios destinados no abastecen a la
demanda de los usuarios, esta afirmación se sustenta en una encuesta que fue realizada por la autora
del presente documento a personas que componen tanto el plantel estudiantil, docente y
administrativo. En la Figura 1.5 se muestran los resultados a la pregunta “En el caso de que usted
acuda a la Universidad en un vehículo particular, ¿Considera que los espacios de parqueos

19
actualmente disponibles en la universidad (antes de la pandemia), son los suficientes?”.
Figura 1.5. Resultados ante la pregunta si los usuarios consideran que los espacios de
estacionamientos son los suficientes.
Fuente: Elaboración propia
Por otro lado, algunos usuarios estacionan sus vehículos de tal forma que contravienen a la
circulación, ocupando dos espacios o parqueando en lugares prohibidos como aceras o áreas verdes,
o espacios destinados a personas con discapacidad. Toda esta situación se refleja en inconvenientes
de tiempo tanto para docentes y estudiantes, resultando en que estas personas ocupen más tiempo
del necesario tratando de parquear sus vehículos, viéndose perjudicados en el aspecto de la
puntualidad en sus actividades académicas diarias. El mismo efecto enfrenta el personal
administrativo llegando tarde a sus puestos laborales. Otro grupo perjudicado son las personas
externas ya sean visitantes o proveedores cuyo retraso los perjudica y al personal que los atiende
también. La Figura 1.6 muestra el árbol de problemas desarrollado.

Figura 1.6. Árbol de problemas


Fuente: Elaboración propia

La pregunta que guiará el presente trabajo de grado es la siguiente:

¿Cómo se puede optimizar y gestionar el parqueo de la UCB-SCZ aplicando tecnologías


de visión artificial?
1.3. Objetivos

1.3.1. Objetivo General


Desarrollar un sistema funcional automatizado para la gestión de parqueo inteligente en la
Universidad Católica Boliviana San Pablo Regional Santa Cruz.
20
1.3.2. Objetivos Específicos

 Analizar el espacio físico destinado a parqueos en la Universidad Católica Boliviana– Santa


Cruz.
 Determinar los equipos necesarios para el desarrollo del sistema.

 Realizar un estudio de flujo vehicular en la Universidad (en caso de que e l próximo


semestre se lleguen a dar clases presenciales y ya no de forma virtual).

 Implementar software en el sistema de gestión de acuerdo con los requerimientos del proyecto
para brindar mayor eficiencia.
 Diseñar el prototipo para demostrar la funcionalidad del sistema.
 Validar el funcionamiento del software en el caso de estudio propuesto dentro de la
Universidad.

1.4. Motivación

El deseo personal de poder aplicar los conocimientos adquiridos durante mi formación


académica, dando lugar a una solución para el problema central identificado y que, además, tiene
grandes posibilidades de poder ser aplicado en la vida real. Con la aplicación de este diseño y la
posible implementación total del proyecto se pretende que la Universidad también resalte de entre
otras universidades de Santa Cruz, Bolivia.

1.5. Justificación

1.5.1.Justificación económica
Como este proyecto no pretende ser un servicio remunerado, la ganancia radicará en el plus
que la universidad brinde a la población universitaria en beneficio de la propia institución y su
comunidad estudiantil. Los equipos y licencias de softwares que se vayan a requerir para la
efectuación del proyecto serán otorgados por la Universidad con previa solicitación de las mismas.

1.5.2. Justificación social


La implementación de un sistema inteligente de parqueo dentro de la Universidad Católica
Boliviana “San Pablo”, unidad académica Santa Cruz, brindará un mejor confort y evitando
inconvenientes de tiempo a la población estudiantil, docente y administrativos que harán uso de este

21
sistema. Además, se está contribuyendo al desarrollo tecnológico dentro de las instalaciones de la
Universidad.

1.5.3. Justificación ambiental


La desorganización en un parqueo produce más que todo, contaminación ambiental debido a
la emisión de gases de los vehículos por cada segundo que están en funcionamiento. Una gestión de
parqueo inteligente generará orden y rapidez al momento de llegar al lugar de estacionamiento, lo
cual aporta a una disminución de emisión de gases por parte del automóvil, contribuyendo también,
a un parqueo organizado.

1.5.4. Justificación personal

En lo personal, es una satisfacción tener la oportunidad de poder trabajar en un proyecto que


podría dar fin a los problemas de gestión dentro del parqueo de la Universidad.

1.6. Delimitación

1.6.1. Límites
El presente proyecto de grado se limitará a la implementación y validación de
funcionamiento del sistema propuesto en un caso de estudio específico:

• El caso de estudio contará con 3 espacios de estacionamientos para validación de


funcionamiento.

• Se usarán 2 cámaras (la primera ubicada en la entrada y una segunda que estará ubicada en los
espacios de estacionamientos) con el fin de validar resultados.

1.6.2. Alcances

1.6.2.1.Alcance temporal
El presente proyecto de grado se desarrollará durante el periodo de tiempo comprendido del
primer semestre del año 2021, es decir, se desarrollará durante la gestión I/2021.

22
1.6.2.2. Alcance geográfico
La propuesta de diseño e implementación del sistema de gestión de parqueo inteligente
basado en visión artificial estará enfocada para el campus de la Universidad Católica Boliviana
“San Pablo” ubicado en el departamento de Santa Cruz, provincia Andrés Ibáñez. Si bien, el diseño
del sistema en su totalidad podría ser aplicada e implementada en el parqueo de toda la universidad,
dependerá exclusivamente de las decisiones de todo el plantel administrativo.

1.6.2.3. Alcance técnico

El presente proyecto de grado culminará con la implementación del sistema propuesto en el


caso de estudio dentro de la Universidad Católica Boliviana “San Pablo” y estará fundamentado en
el área de Ingeniería Mecatrónica, inteligencia artificial y programación, los cuales otorgan los
conocimientos base y fundamentales para su desarrollo.

23
CAPÍTULO 2

MARCO TEÓRICO

2.1. Introducción
Los algoritmos que existen actualmente para la detección de placas vehiculares tienen
integrado dentro de su sistema ciertas condiciones de funcionamiento, esto debido a todos los
desafíos que implica la detección, como el control de la iluminación durante el procesamiento de
imágenes y las diferentes tipologías en las placas de cada país. Dentro de un sistema de
reconocimiento de matrículas el objetivo es extraer un único objeto de la imagen y este corresponde
a la placa del vehículo. Esto implica que el desarrollo del algoritmo debe procesar las imágenes de
entrada con técnicas que permitan distinguir las características propias que tienen las placas y
reducir el tiempo de procesamiento excluyendo procesos que resten eficiencia al sistema. Algunas
de las investigaciones realizadas para la localización de matrículas son descritas a continuación,
estas mismas tienen como base en su descripción, propiedades correspondientes a las placas en
general, como su forma rectangular, textura, tipografía de las letras y toda la información que
acompaña a la imagen de entrada, como el color de contraste, la distancia entre las letras, el color de
fondo de la placa, la iluminación, etc.

Los estudios de las anteriores propuestas ayudan a seleccionar aquellas técnicas que pueden
usarse para el desarrollo del sistema aplicado a imágenes de vehículos bolivianos.

2.2. Aplicaciones de la visión artificial dentro de tráfico vehicular


Las aplicaciones de sistemas de visión por computador pueden ser varios, dentro de ellos se
puede mencionar el conteo de vehículos, detección de infractores de tránsito, estudio de tráfico
vehicular, identificación de modelos de vehículos y el reconocimiento de placas. Esta última tarea
utiliza una técnica usada y confiable que se centra en el reconocimiento automático de placas
vehiculares o ANPR (Automatic Number Plate Recognition) o ALPR (Automatic License Plate
24
Recognition), (Buch y cols, 2011).
2.2.1. Detección de eventos vehiculares
Por lo general la detección de eventos está enfocado en escenas que se desarrollan en
autopistas, donde es posible detectar accidentes o vehículos detenidos. En (Setchell, 1997)
menciona proyectos piloto donde el enfoque es detectar móviles compitiendo en la carretera.
También hace referencia al análisis para la detección de incendios o humo dentro de los túneles.
Por otro lado, en lugares urbanos el escenario es más complejo y requiere de la consideración
de muchos más detalles, para ello (Setchell, 1997) plantea el uso de cámaras CCTV (Closed Circuit
Televisión) para analizar el congestionamiento vehicular, además de proponer sistemas de
seguimiento a vehículos para detectar maniobras no permitidas (Ej. Adelantar a otro motorizado),
monitoreo de carriles con la clasificación de vehículos (Buch y cols, 2011) que permiten detectar las
infracciones cometidas.

2.2.2. Conteo de automóviles


Por lo general el problema para llevar el registro de coches en circulación se resuelve
utilizando sensores inductivos (Buch y cols, 2011), solución que resulta ser confiable, pero al
mismo tiempo vulnerable debido a las perturbaciones causadas por el asfalto o el pavimento de los
caminos y carreteras, además de ser una técnica muy costosa con respecto a su mantenimiento. El
principio de funcionamiento de estos sensores se basa en un oscilador que reacciona a las
variaciones de corriente inducida por 2 bobinas que se encuentran a una distancia lejana o cercana
de cuerpos metálicos, como un auto. (Monzó, 2014). Por otro lado (Setchell, 1997) plantea un
sistema de visión por computador ubicando las cámaras en postes altos para adquirir las imágenes
de la escena en su totalidad. El análisis de coches en una carretera o camino se utiliza para habilitar
un carril adicional para evitar el congestionamiento.

2.2.3. Reconocimiento de placas vehiculares


Para lograr esta aplicación es común el uso de cámaras con una alta resolución, con el único
fin de garantizar la percepción de detalles necesarios que permita la extracción de las características
de las imágenes, estos sistemas se caracterizan por el análisis de las propiedades definidas en las
placas de cada país. De esta forma es posible la automatización de peajes, utilizando cámaras en los
carriles para detectar la placa y hacer el cobro, sin la necesidad de detenerse, incluso gestionar la
factura del cobro al dueño del vehículo. (Setchell, 1997).

25
Por lo tanto, es importante mencionar que el proceso de reconocimiento automático de
placas, este compuesto de dos etapas: i) Detección de la placa, y ii) Reconocimiento de caracteres.

Figura 2.1 Cámara de vigilancia instalada en la carretera


Fuente: https://bit.ly/3jR3R2P

2.3. Detección de placas


Las técnicas que constituyen la detección de placas vehiculares deben ser elegidas de
acuerdo a los requerimientos del ambiente donde operara el sistema, por lo que no se puede elegir
uno o varios métodos de manera precisa para un desempeño en general.
De igual forma se debe tomar en cuenta los factores que definen cada técnica, como el tiempo de
ejecución y el rendimiento, ya que influirán directamente en el funcionamiento del sistema.
(Anagnostopoulos, Anagnostopoulos, Psoroulas, Loumos y Kayafas, 2008).

26
Figura 2.2 Extracción de la región de la placa de un automóvil
Fuente: https://bit.ly/3dPhCLY

2.3.1. Procesamiento de imágenes binarias


Esta técnica se basa en combinaciones de métodos estadísticos de análisis y morfologías
matemática, utilizada para extraer componentes útiles de las imágenes para la representación y
descripción de forma de regiones, tal y como se documenta en (Radha, 2012). Este método, está
fundamentado en el principio de variación de brillo en la región de la placa, este cambio en el brillo
es mas remarcable y más frecuente que en cualquier parte de la imagen. Sin embargo, una
desventaja de este método, es que puede llegar a ser demasiado sensible a los bordes no deseados,
haciendo evidente los mismos con grandes magnitudes, un ejemplo al momento de analizar los
vehículos es la región del radiador en la vista frontal del vehículo. No obstante, a pesar de esta
desventaja, es posible mejorar la extracción de la placa combinando métodos que eliminen los
bordes no deseados, esta acción incrementa la tasa de extracción de las placas y es más rápida
comparada con otras técnicas, tal y como se detalla en (Anagnostopoulos y cols., 2008).
(Martin, García, y Alba, 2002), proponen un modelo conceptual de algoritmo que se basa en una
operación morfológica llamada top-hat que es capaz de localizar objetos pequeños con diferencias
de brillo. Este algoritmo que depende altamente de la distancia entre el coche y la cámara tiene una
tasa de detección de 80 % debido a que las operaciones morfológicas se refieren al tamaño de los
objetos que se encuentran en binario. Algo similar puede encontrarse en (C. Wu, On, Weng, Kuan,
y Ng, 2005) donde se obtiene un nivel de precisión del 93%.
Po otro lado también existen algoritmos híbridos de extracción de placas vehiculares tal y como se
describe en (Hongliang y Changping, 2004), la propuesta se basa en estadísticas de borde y la
morfología para los sistemas de emisión de tickets para la vigilancia en las carreteras. El promedio
de la precisión alcanzada empleando algoritmos híbridos es de 99,6%, ya que los autores obtuvieron
9786 aciertos de las 9825 imágenes procesadas.

27
Figura 2.3 Ejemplo de imagen binarizada
Fuente: https://bit.ly/3dPhCLY

2.3.2. Procesamiento de imágenes en escala de grises


(Comelli, Ferragina, Graieri, y Stabile, 1995) presentan un sistema llamado RITA
Rlconoscitore di Targhe Automobilistiche (Reconocedor de placas de automóviles), para reconocer
las placas de los automóviles. Este sistema estaba compuesto por un módulo que localizaba el área
de la placa y un módulo de procesamiento. El proceso fue adaptado para identificar placas italianas,
cuya forma es rectangular y contienen caracteres negros en un fondo blanco. Por lo tanto, el
algoritmo selecciona el área que manifiesta el máximo contraste local donde posiblemente se ubique
la zona que contenga la placa.
Para la detección de la placa en varios sistemas se evidencia el enfoque presentado por (Draghici,
2007), que consiste en escanear horizontalmente la imagen en busca de cambios de contraste
repetidos dentro de una escala de 15 pixeles o más, dentro de la descripción Draghici establece los
supuestos que el contraste existente entre los caracteres y el fondo de la placa es lo suficientemente
buena y que hay de tres a cuatro caracteres en una placa cuyo mínimo tamaño vertical es de 15
pixeles.
Este valor es determinado por factores como la resolución de la cámara, la distancia promedio del
vehículo desde la cámara y el tamaño real de las letras.

Las mediciones estadísticas consisten en identificar las posibles regiones de la placa


analizando las secciones con una alta magnitud o varianza de borde. Sin embargo, no todos los
bloques detectados en una imagen son realmente la región de la placa ya que son similares al
coincidir con ciertos criterios geométricos como el área. En (Lee, Chen y Wang, 2004) se analiza
180 pares de imágenes correspondientes a placas de motocicletas, obteniendo una tasa de precisión
de 92.5 %.

La CV o cuantificación vectorial puede dar algunas pistas sobre el contenido de las regiones
de una imagen, proporcionando información adicional la cual puede ser aprovechada para aumentar
el rendimiento de la localización de una placa vehicular. La CV adopta una técnica para la
extracción de líneas. Las regiones de la imagen con mayor contraste y más detalle se asignan a
bloques más pequeños, y las placas de los vehículos pertenecen a esta clase de regiones debido a
que presentan un alto contraste entre el fondo y las letras. (Zunino y Rovetta, 2000).
2.3.3. Procesamiento de imágenes a color
28
Si bien existe una amplia literatura donde se propone el tratamiento basado en color para la
localización de las placas, entre ellas por ejemplo donde se hace uso de la apariencia de la placa
como el fondo y el color del texto especificado en cada país. es estable cuando las condiciones de
iluminación cambian.

2.4. Algoritmos para el reconocimiento de caracteres


Después de detectar la zona de la placa en la imagen independientemente de la técnica
utilizada, se procede al reconocimiento de los caracteres que se encuentran dentro de dicha
matrícula.

Figura 2.4 Placa boliviana actual 2021


Fuente: Elaboración propia

El reconocimiento de caracteres no es una tarea sencilla, existen varios algoritmos y técnicas


para ello. Antes de reconocer un carácter o un texto es necesario localizarlo en el espacio donde se
trabaja, es decir segmentar las áreas que son de interés. La segmentación suele ser difícil ya que en
ciertos casos no es fácil definir donde comienza el texto y donde termina, o si un carácter tiene los
suficientes detalles para poder distinguirlo como tal dentro de la matrícula, además es necesario
considerar el orden en el que se realiza el reconocimiento.

2.4.1. Comparación de plantillas


Esta técnica utiliza una base de datos en el que se dispone de plantillas de los caracteres.
Debe existir una plantilla separada para cada posible carácter que ingrese. El reconocimiento se
logra comparando un carácter de entrada con cada una de las plantillas siguiendo un orden para
encontrar la mejor coincidencia.

29
Figura 2.5 Comparación de plantillas
Fuente: (Setchell, 1997).

Si I ( x , y ) es un carácter de entrada y T n (x , y ) es un plantilla n , entonces la función


coincidencia s( I ,T n ) tendrá como resultado un valor que indique cuan bien la plantilla n coincide
con el carácter de entrada (Setchell, 1997). Existen varias funciones de comparación de uso común,
entre las que se destacan están:

Correlación Cruzada
w h
s ( I , T n )=∑ ∑ I (i , j)T n (i, j) (2.1)
i=0 j=0

Euclideano
w h
s ( I , T n )=∑ ∑ ( I ( i , j )−T n (i, j) )
2
(2.2)
i=0 j=0

City Block
w h
s ( I , T n )=∑ ∑ | I ( i , j )−T n( i, j)| (2.3)
i=0 j=0

El reconocimiento de caracteres se logra tras identificar cual es la plantilla T n que da el


mejor resultado de coincidencia para una entrada s ( I , T n ) . El método de “comparación de
plantillas” es exitoso si la entrada y las plantillas son iguales o muy idénticas. El método puede ser
realizado en imágenes en binario o escala de grises.

2.4.2. Algoritmo K-vecinos más próximos (K-NN)


Es un método muy conveniente, sin parámetros y de aprendizaje supervisado, el cual es
30
capaz de proporcionar resultados bastante parecidos. El algoritmo K-NN es muy conocido debido a
la sencillez y otras propiedades que le proporcionan comportamientos aceptables al enfrentarse a
problemas de clasificación, no solo dentro del contexto óptico de caracteres (Fernández y
Consuegra, 2005).
Para el uso de este método es necesario poseer un conjunto de prototipos o muestras de los
objetos ya conocidos. Es decir, dado un conjunto de caracteres de muestra y teniendo una entrada se
realiza una búsqueda de K prototipos con el objetivo de encontrar el más parecido a la entrada. Al
finalizar la búsqueda se le asigna la clase de vecino más cercano.
El algoritmo se basa en calcular la distancia euclidiana de una entrada “X“ hacia sus vecinos para
tomar los K más cercanos en un espacio de características multidimensional con el objetivo de
asignarlo a una clase correspondiente. Al usar un enfoque basado en estereotipos, el algoritmo se
vuelve más preciso y menos pesado, en términos de procesamiento computacional. Un estereotipo
es la muestra promedio de una clase. Teniendo las coordenadas de la entrada X ( x 1 , x 2 , … , x n ) y de
sus vecinos V (v 1 , v2 , … , v n ) es posible calcular la distancia euclidiana con la ecuación 2.4 que se
presenta en forma generalizada en la ecuación 2.5

√ 2 2
d E ( X ,V )= ( x 1−v 1 ) + ( x 2−v 2) + … ( xn −v n )
2
(2.4)

√∑
n
2
d E ( X ,V )= ( x i−v i ) (2.5)
i=1

En la Figura 2.6 se puede apreciar las distancias d 1 , d 2 , y d 3, medidas desde la entrada X a


cada uno de los estereotipos de las clases. En caso de ser K=1, se tomará la menor distancia y le
asigna a “X “la clase correspondiente al estereotipo seleccionado. En caso de ser K ≥2 , se calcula
distancias a todos los estereotipos y tras obtener los K más próximos se calcula la distancia a todas
las muestras pertenecientes a las clases de dichos estereotipos. Después de este proceso, es
necesario filtrar una vez más a las más próximas usando un numero como 2K. Terminada la
selección de las 2K muestras, se muestra las ocurrencias de cada clase y la que tenga el mayor
número será asignada a la entrada.

31
Figura 2.6 Búsqueda de la clase “X” en base a sus “K” vecinos más cercanos
Fuente: https://bit.ly/2UqJA9N

2.4.3. Reconocimiento en base a características

Esta técnica se realiza extrayendo características significativas de un carácter de entrada.


Dichas características son comparadas con una base de datos contenedora de las descripciones de
características para todas las posibles entradas y pueden ser de varios tipos, como se menciona en
(Setchell 1997).

 Características producidas por transformadas globales o series de expansión


Reducen la dimensionalidad del vector de características y no varían demasiado en la traducción,
en la escala o rotación. Se utiliza las series de Fourier, Haar o Transformadas de Hough.
 Características geométricas y topológicas
Son altamente no variantes con diferentes fuentes y no toman en cuenta rotaciones o traslaciones.
Las más comunes usan carreras y bahías (strokes and bays), intersección de líneas y relación de
ángulos entre líneas.

Figura 2.7 Características geométricas y topológicas


Fuente: (Setchell 1997).

2.2.4. Redes neuronales

Las redes neuronales son esquemas que pretenden imitar la arquitectura del cerebro. Se componen
32
de unidades básicas llamadas neuronas que básicamente reciben una entrada vectorial, donde cada
componente se multiplica por un factor correspondiente conocido como peso, con el objetivo de
activar una neurona que procesa la suma ponderada de las entradas mediante la función de
activación para entregar una salida. Según (Fernández y Consuegra, 2005) sirven para representar
eficazmente cualquier función que resultara muy compleja en términos algebraicos, y también en
procesos de clasificación de patrones. Los pesos asociados a cada neurona se pueden ajustar durante
la fase de entrenamiento por medio de algoritmos de retro propagación o back propagation los
cuales usan métodos basados en el descenso del gradiente de una función de error para minimizarlo.
En general, bajo el esquema de un sistema de aprendizaje supervisado, una red neuronal se
compone de una capa de entrada (input layer), una capa de salida (output layer) y una o más capas
ocultas (hidden layers). La capa de entrada tendrá una neurona para cada característica del vector de
entrada.
Para el reconocimiento óptico de caracteres la capa de salida tendrá una neurona asignada a cada
posible carácter (Setchell, 1997). Cuando un vector de entrada, producto de la segmentación de
caracteres previa, es ingresado a la capa de entrada, la neurona de salida que proporciona la
respuesta más acertada es la que identifica al carácter, es decir a la clase que corresponde. Cada
neurona o perceptrón posee una función de activación que hace uso de los pesos antes mencionado.

33
Figura 2.8 Reconocimiento óptico de caracteres utilizando una red neuronal
Fuente: (Setchell 1997).

34
Cada neurona o perceptrón posee una función de activación que hace uso de los pesos antes
mencionados. Típicamente la función de activación usada en una red neuronal suele ser sigmoide.
Open CV implementa las funciones de activación Identity, Symmetrical Sigmoid y Gaussian.

ax
B∗1−e
f ( x )= ax (2.6)
1+e

Figura 2.9. Función de activación Symmetrical sigmoid


Fuente: (Open CV Dev Team, 2015).

Si toma como entrada la Figura 2.10 para una red neuronal dedicada al reconocimiento de
caracteres alfanuméricos, determinar la clase a la que pertenece seria poco preciso puesto que dicha
entrada podría pertenecer a la clase numérica “dos” o a la clase alfabética “2”. Por tanto, para
incrementar la precisión del reconocimiento, se puede usar una red neuronal dedicada al
reconocimiento de caracteres letras y otra al reconocimiento de caracteres números.

Figura 2.10. Carácter de entrada


35
Fuente: https://amzn.to/2UvTarP

El entrenamiento de una red neuronal es realizado con:


 Un conjunto de entrenamiento, training set que posee las entradas y las correspondientes
salidas que serán aplicadas en la red neuronal. Este conjunto es usado para ajustar los pesos W n y V n
, de manera que se obtengan las respuestas correctas en la predicción.
 Un conjunto de validación, validation set, usado para evitar el sobre entrenamiento y
garantizar la capacidad de generalización de la red neuronal. Este conjunto no se usa para ajustar los
pesos, sino para verificar si existe algún incremento en la precisión, tras terminar el entrenamiento,
al mostrar a la red neuronal un conjunto antes no conocido. Si la precisión con el training set
incrementa, pero disminuye o se mantiene con el validation set, entonces la red se está
sobreentrenando y no se debe seguir con el entrenamiento, es decir ya se ha encontrado un modelo
apropiado.
 Un conjunto de prueba, test set, usado únicamente la precisión predictiva de la red neuronal.
Es decir, para poder medir los resultados de un modelo obtenido.
Los conjuntos de entrenamiento y validación son disjuntos, y usados en secuencia hasta encontrar el
modelo más preciso para la red, respetando el número de iteraciones establecido. El modelo con
menor error de validación es entonces utilizado para los datos del conjunto de prueba.

2.2.5. Algoritmo Tesseract


Tesseract es un motor OCR open-source desarrollado por HP entre los años 1984 y
1994.Nacio como un proyecto de tesis doctoral de investigación en los laboratorios de HP, en
Bristol, y gano fama al ser un posible “add-on” para la línea HP de scanners. Existía una gran
motivación en su desarrollo por el hecho de que en aquellos días los motores OCR estaban en plena
infancia. Después de trabajar en un proyecto conjunto los laboratorios HP en Bristol y la división de
scanners HP en Colorado, Tesseract tuvo un incremento significativo en precisión frente a OCR’s
comerciales. En 2005 HP libero Tesseract como código abierto, por lo que hoy en día se constituye
como una solución ampliamente usada en varios servicios de OCR.

Figura 2.11. Placa recortada para ser reconocido por Tesseract


36
Fuente: https://bit.ly/3dLWXbx

2.2.6. Árbol de decisión

Al igual que K-NN, es una técnica de minería de datos y su aprendizaje es inductivo y no


supervisado. Los patrones o atributos a evaluar de un carácter de entrada son los nodos del árbol,
mientras que los resultados son las hojas.
Terminada la construcción del árbol y su estructura, y si estas son eficientes, la técnica puede llegar
a ser más efectiva en costo computacional que K-NN, según se explica en (Fernández y Consuegra,
2005).
Se debe recalcar que es necesario detallar la manera en la que se recorrerá y también que se
pueden implementar algoritmos de poda con el objetivo de reducir la complejidad y realizar una
búsqueda más rápida. De igual manera se pueden agregar nuevas hojas para incrementar la
precisión del reconocimiento.

37
38
Figura 2.12. Recorrido de un árbol de decisión para OCR
Fuente: Elaboración propia
2.5. Conclusiones del capitulo

El análisis vehicular mediante visión artificial ha incrementado su popularidad y su uso a


medida que el número de vehículos en ciudades grandes ha crecido notablemente. Se ha
encomendado a sistemas de tratamiento de imágenes el cumplimiento de varias tareas como la
detección de incidentes y reconocimiento de vehículos, obteniendo resultados favorables para sus
usuarios además de extender el uso de dichos sistemas.

Sin duda uno de los usos de estos sistemas es el reconocimiento de placas vehiculares
(License Plate Recognition). Existen diversas técnicas para llevar a cabo esta tarea, tomando en
cuenta que la misma involucra sub tareas como la detección de una placa vehicular en una imagen
dada y el reconocimiento de los caracteres que contiene. De acuerdo a la condiciones en las que el
sistema será implementado y tomando en cuenta lo mencionado anteriormente, dentro del
proyecto se utiliza el algoritmo K-NN como el método para el reconocimiento de caracteres ,
debido a que a pesar de ser un clasificador simple y versátil al mismo tiempo, su aprendizaje
supervisado basado en la memorización de los datos, será útil al momento de detectar los caracteres
con la tipografía boliviana, así como el de excluir aquellas letras características de la placa como el
nombre “BOLIVIA” o pequeños detalles dentro de la región del texto, también considerar que esta
técnica ofrece una tasa de reconocimiento considerablemente precisa, no obstante como ya se
describió en los puntos anteriores definir una técnica general para todo el sistema no es
exactamente posible, debido a los cambios en las condiciones de operación , sin embargo, el trabajo
es desarrollado para operar de la forma más robusta posible.

39
CAPÍTULO 3

PROPUESTA DE PROYECTO DE GRADO

3.1. Esquematización del proyecto

El presente proyecto de grado pretende dar solución al problema central identificado


anteriormente en el apartado del planteamiento del problema, basado en un caso de estudio (un
pequeño sector para el análisis y la comprobación del funcionamiento del sistema a pequeña escala)
de la siguiente forma:

 En primera instancia, se pretende instalar cámaras de vigilancia en cada sector o zona de


estacionamiento que funcionarán como sensores que identificarán los espacios disponibles de
estacionamiento para cada sector (caso de estudio). Estas cámaras emitirán señal de video a un
computador para que las imágenes captadas sean procesadas. En la Figura 3.1 se muestra una
ilustración de la implementación de la cámara en un estacionamiento público.

Figura 3.1. Estacionamiento con cámaras de seguridad incorporada


Fuente: 123RF (2020)

40
 Se implementará también en el diseño, una cámara en la entrada de la universidad que va a
detectar la placa del vehículo si pertenece a un estudiante, docente, administrativo o visitas
externas. Para este fin, se hará una selección de una cámara de vigilancia que tenga mejores
características y contribuya al proyecto de mejor manera. A continuación, en la Figura 3.2 se
muestra una ilustración del funcionamiento de reconocimiento de placas.

Figura 3.2. Ilustración sistema de reconocimiento de placas


Fuente: Elipse (2020)

 En el proyecto también está contemplado la elaboración e implementación de una base de datos,


la cual contendrá, valga la redundancia, los datos de cada matrícula, es decir, a qué persona le
pertenece, si es administrativo, docente o estudiante (Carrera, semestre).
 Se incorporará en la entrada de la Universidad, una pantalla ubicada estratégicamente para que el
conductor pueda visualizar y ubicar sin problemas el sector de estacionamiento que se le asignó y si
hay o no plazas de estacionamiento en la zona. En la Figura 3.3 se muestra una ilustración de lo que
se mostraría en la pantalla.

Figura 3.3. Ilustración de indicación de sector de parqueo asignado

41
Fuente: Parking (2020)

42
3.2. Definición de los elementos para el sistema de visión artificial

El diseño del sistema como bien se esquematizó anteriormente, requiere de una red de
dos cámaras y un monitor, todos ellos deben estar conectados a la misma red de Internet para
que la computadora que procese las imágenes pueda tener acceso al video de ambas cámaras en
tiempo real.
Al mismo tiempo el servidor de la base de datos también debe estar en la misma red para verificar
la identidad de la persona a quien corresponda la placa. De esta forma, al comprobar la identidad de
la persona en el parqueo el sistema permitirá su acceso mostrándole un espacio disponible en el área
de estacionamiento.

3.2.1. Análisis de ubicación de las cámaras


Para determinar la ubicación de las cámaras es necesario conocer específicamente el
propósito de cada una de ellas, para esto se tiene los siguientes esquemas
Para referirnos a las funciones de cada cámara, se designa a cada una de ellas de la siguiente forma:
Cámara A: Cámara que envía el video de la información de las placas de los vehículos que ingresan
al parqueo en tiempo real.
Cámara B: Cámara que envía información sobre el área de estacionamiento disponible en tiempo
real.

3.2.2.1.Cámara para el ingreso

Figura 3.4. Esquema de la ubicación de la cámara de ingreso


Fuente: Elaboración propia

43
Como se puede apreciar en la Figura 3.4, la cámara “A” debe extraer la información dela
placa del vehículo que ingresa al parqueo, esto indica que esta cámara debe ubicarse a una distancia
cercana al punto de ingreso, de tal forma que el lente de la cámara pueda enfocar segmentar su área
de visión en la placa.
En base a esto, los criterios a considerar para determinar la altura de instalación son los siguientes:
A. Altura

A.1.Muy baja. - Instalar la cámara a baja altura trae consigo los siguientes inconvenientes:
 El campo de visión puede ser obstruida por personas que invadan la escena de captura de
la cámara.
 Debido a la baja altura, esta queda expuesta a manipulaciones e incluso robos por parte de
otras personas.
 Si el espacio donde esta queda instalada estorba al funcionamiento de otros dispositivos
cerca, entonces puede ser retirada rápidamente.

A.2.Muy Alta. - En caso de instalar la cámara en una posición muy alta, también trae problemas
 Dificulta el mantenimiento y las reparaciones

 La inclinación se hace más grande y reducimos su área de visión

 Los objetos y escenas alcanzadas se ven pequeñas

 La altura permite ganar mayor rango de visión, sin embargo, si la función que cumple la cámara
es de extraer información precisa como es el caso del presente proyecto, se requerirá de una cámara
más potente y esto se refleja directamente en costos, por ejemplo, las cámaras con funciones que
integran un sistema de lectura de matrículas (LPR) que pueden leer directamente las placas de los
autos en una avenida o autopista.

B. Dimensiones de la altura de los automóviles


Debido a que el sistema es implementado en el interior de una universidad se considera que
los automóviles que ingresan pertenecen al grupo de tipo urbanos y familiares, en la siguiente Tabla
se puede observar las diferentes alturas de este tipo de vehículos, así como los modelos y otras
dimensiones pertenecientes a ellos.

44
Tabla 3.1. Promedio de anchura y longitud de coches urbanos 2019

Modelo Longitud [m] Anchura [ m ]


Abarth 500 3.666 1.627
Citroën C1 3.466 1.615
Fiat 500 3.571 1.627
Fiat Panda 3.653 1.643
Ford Ka+ 3.941 1.704
Hyundai i10 3.665 1.660
Kia Picanto 3.595 1.595
Mitsubishi 3.795 1.665
Opel Adam 3.698 1.720
Opel Karl 3.675 1.604
Peugeot 108 3.475 1.615
Renault Twingo 3.595 1.646
SEAT Mii 3.557 1.641
Skoda Citigo 3.597 1.645
Smart Foro 2.695 1.663
Smart Forfour 3.495 1.665
Suzuki Celerio 3.600 1.600
Toyota Aygo 3.465 1.615
Volkswagen 3.600 1.645
Fuente: https://n9.cl/wd88o

En la Tabla 3.1 se observa las dimensiones de modelos de vehículos urbanos medido en


metros [m], así como el promedio de altura de la carrocería de los mismos que corresponde a 1,5
metros.

45
Tabla 3.2 Promedio de dimensiones de coches familiares 2019
Modelo Longitud [m] Anchura [m] Altura [m]
Dacia Logan Break 4.492 1.733 1.550

Ford Focus Sportbreak 4.668 1.825 1.481

Honda Civic Tourer 4.535 1.770 1.480


Hyundaii30
4.485 1.780 1.500
CrossWagon
Kia Ceed Tourer 4.600 1.800 1.465
MercedesCLA Shooting
4.630 1.777 1.435
Brake
Opel Astra Sports
4.698 1.814 1.535
Tourer
Peugeot 308 SW 4.585 1.804 1.471
Renault Clio Sport
4.267 1.732 1.445
Tourer
Renault Megane Sport
4.567 1.804 1.507
Tourer
Seat León ST 4.535 1.816 1.454
Skoda Fabia Combi 4.262 1.732 1.467
Skoda Octavia Combi 4.659 1.814 1.465
Toyota Corolla Touring
4.653 1.790 1.445
Sports
Volkswagen Golf
4.562 1.799 1.481
Variant
Promedio de
altura 4.547 1.786 1.479

Fuente: https://n9.cl/wd88o

En la Tabla 3.2 se observa las dimensiones de modelos de vehículos familiares medidos en


metros [m], así como el promedio de altura de la carrocería de los mismos que es de 1,5 [m].
En ambas tablas se puede evidenciar que el promedio de altura de la carrocería de los
vehículos tanto familiares como urbanos es de 1,5 [m], este valor permite realizar el cálculo
correspondiente a la altura de instalación de la cámara A.
Debido a la funcionalidad que debe cumplir la cámara considerando los criterios
mencionados y el promedio de altura de las carrocerías, un buen desempeño de la cámara se adecúa
con la instalación de la misma a una altura de 0,6 [m]. Según los criterios anteriores esta altura es
considerada vulnerable, ya que da lugar a robos o manipulaciones externas, no obstante, se
considera este valor para fines de demostración y validación en su funcionamiento.

46
3.2.2.2. Cámara para el parqueo

Figura 3.5. Esquema de instalación de la cámara B


Fuente: Elaboración propia

En la Figura 3.5. se observa la función que desempeña la cámara B, que a diferencia de la


anterior esta tiene un rango de visión más amplia; La cámara B debe extraer información de la
disponibilidad del área donde los vehículos irán a estacionarse después de ser inspeccionados en la
entrada. Debido a esta función, la cámara requiere instalarse a una altura cuyo rango de visión le
permita capturar un escenario favorable al procesamiento de las imágenes enviadas.

De acuerdo con este parámetro se toma los siguientes criterios


A. Altura
A.1. Muy baja
 Debido a la función de la cámara B, esta no puede instalarse a una altura baja, ya que su rango de
visión se limitaría a capturar las características de los automóviles y no así la carrocería completa
dentro de un área limitada.
 Su instalación a baja altura se vería perjudicada con la manipulación de terceros obstaculizando
su función.
A.2. Muy alta
 Instalar la cámara a una elevada altura permite que su escenario de captura sea más amplio.

47
 La función asignada a esta cámara no demanda una excelente precisión en cuanto a la
extracción de información ya que su objetivo se encuentra dentro de la inspección y existencia o no de un
objeto.

A diferencia de la función en la cámara A, esta no requiere tomar en cuenta el dato


correspondiente a la altura del coche, no obstante, es necesario conocer el promedio de las
dimensiones del largo y ancho que estos tienen; basándose en las tablas 1 y 2 este promedio se
resume con la siguiente tabla:

Tabla 3.3 Promedio de las dimensiones de coches familiares y urbanos 2019

Autos urbanos [m]


promedio de largo 3,6
promedio de ancho 1,6
Autos familiars [m]
promedio de largo 4,5
promedio de ancho 1,8
Fuente: https://n9.cl/wd88o

Con los valores de la Tabla 3.3 es posible calcular el área promedio que debe observarse
para identificar la existencia de un vehículo.

Autos urbanos:

Área: 3,6 x 1,6 = 5,76 [m2]


Autos familiares:

Área: 4,5 x 1,8 = 8,1 [m2]


En el presente proyecto se pretende validar el funcionamiento del sistema verificando 3
espacios disponibles, lo cual incrementa el área de inspección, se toma como área por automóvil
parqueado el valor de 8 [m2] multiplicando el mismo por 3 se tiene un valor de 24 [m 2] mismos que
estarán comprendidos dentro del campo de visión de la cámara B.
Para esta área de visión es recomendable instalar la cámara a una altura de 5[m].

48
3.2.3. Evaluación de cámaras adecuadas para el sistema

Existen dentro del mercado una variedad de cámaras con diferentes funciones integradas
cuyas aplicaciones por lo general son usadas como sistemas de vigilancia, grabaciones o incluso
para fines de investigación en el campo de la visión artificial. A continuación, se analiza algunas de
ellas para luego seleccionar la que mejor se adapte para el lograr el objetivo del presente trabajo.
Básicamente existen dos tipos de cámaras las analógicas y las IP.
A. Cámaras analógicas. - Son aquellas cámaras que se usaron por mucho tiempo con un circuito
cerrado CCTV (Circuito Cerrado de Televisión), actualmente estas se siguen usando en diferentes
aplicaciones; la imagen que sale de estas son de tipo analógica, el video se envía sobre cable a
VCRs o DVRs, utilizando las normas más comunes que son NTSC (National Televisión System
Committee, en español Comisión Nacional de Sistemas de Televisión) o PAL B (Phase Alternating
Line en español línea de Fase Alternada) permitiendo su conexión directa al televisor.

B. Cámaras IP. – Las cámaras IP son cámaras cuyas imágenes de salida pueden ser visualizadas por
internet o en una red local.
Este tipo de dispositivo pueden ser interconectadas mediante un router o switch a la red, por
medio de un puerto ethernet con un terminal RJ45 utilizando un cable UTP.
Dentro de esta clasificación también existen las cámaras IP WIFI, que no requieren de un cable para
acceder a ellas, poseen una antena que hace posible su comunicación directamente con una
computadora o móvil conectada a la red. Esta característica facilita las instalaciones en lugares
donde se complica su implementación.

Figura 3.6. Kit de instalación para cámaras analógicas y cámara IP


Fuente: https://n9.cl/2ptty

49
Considerando las características funcionales, es posible realizar un resumen indicando las
ventajas y desventajas de las mismas.
Tabla 3.4. Ventajas y desventajas Cámaras IP vs Cámaras analógicas
Tipo de cámara Ventajas Desventajas

-Al depender de internet, se debe


Son más económicas que contar con una conexión estable y
Cámara IP las CCTV libre de interferencias
-Otros dispositivos como
inhibidores de frecuencias podrían
afectar la red donde están
-Ofrecen más cualidades a conectadas y dejarlas sin
menor precio comunicación
-Facilidad en su
mantenimiento, mas -Al ser un dispositivo conectado
económico y no requiere a la red puede ser hackeado
obras
-Pueden conectarse a
internet y tener acceso a
ellas
en cualquier parte y en
cualquier momento
-Facilidad de
integración a otros sistemas
-Al no requerir de cables
puede instalarse donde
se desee

-Al estar conectadas por -Un sistema CCTV es más caro


cable no dependen de de instalar debido a que
Cameras Analógicas
una red externa es necesario realizar obras
-No existe lugar para la -Las cámaras CCTV
inhibición de la señal, por definitivamente son más caras
parte de dispositivos que una cámara IP
externos
Fuente: Elaboración propia

Es evidente que la mejor opción para el desarrollo del presente proyecto son las cámaras IP;
su fácil instalación, características funcionales, seguridad, escalabilidad y costos permiten optimizar
el desarrollo del trabajo y posibilita el diseño de un sistema más eficiente.

Sin embargo, esta elección no significa que las cámaras analógicas queden fuera de
cualquier proyecto, estas son usadas para otro tipo de aplicaciones, sus funciones, características y
requisitos para su implementación no se ajusta a los parámetros requeridos en el diseño del sistema.

50
3.2.4. Selección de las cámaras a implementar en el sistema

Existen muchos modelos de cámaras IP en el mercado, cada una de ellas se


diferencia en precio, resolución de imagen, comunicación, seguridad y precio.
Según lo mencionado anteriormente y esquematizado en las Figuras 3.4 y 3.5, se
requieren 2 cámaras para el sistema.

Para cumplir el propósito del proyecto se requiere de cámaras con las siguientes características:

A. 2 megapíxeles de resolución o más, para capturar los detalles.


B. Lente de 2.5 mm o más, para extraer mayor información del entorno.
C. Visión nocturna a corto o mediano alcance, 10 metros o más es ideal.
D. Considerando que las cámaras se instalaran en el exterior estas deben contar con una
certificación IP.
E. El sistema está pensado para conectarse por medio de cables (UTP), por tanto, las cámaras
deben contar con un puerto para red.
F. Considerando que los equipos se implementan dentro de la universidad, estos deben
ajustarse a la red instalada internamente; la misma cuenta con un switch que contiene
tecnología (POE), por tanto, las cámaras también requieren de este tipo de complemento.

Tomando en cuenta estos requerimientos, las cámaras que se ajustan al proyecto son las de
tipo bullet o domo, independientemente de la marca estas permitirán la visualización de las
áreas designadas y el cumplimiento de su función en el sistema.

51
3.2.5. Topología de red para la instalación de las cámaras

Una topología de red es una configuración geométrica de la disposición de las estaciones


conectadas. Hoy en día, existen 5 topologías de red básicas: malla, estrella, árbol, bus y anillo.

Figura 3.7. Topologías de red


Fuente: Elaboración propia

A. Malla. - En esta configuración cada nodo está conectado a todos los otros nodos, de esta forma la
comunicación puede transmitirse por diferentes caminos, y si la red está conectada por completo no
tendrá ningún tipo de interrupciones en la transmisión. Por lo general se lo usa como una opción en
aplicaciones de redes inalámbricas (Wireless) y redes cableadas (Wired).
B. Estrella. - Todas las estaciones están conectadas a un punto central denominado concentrado,
para la transmisión de información esta debe pasar con el punto central para efectuar las
comunicaciones. Por lo general se lo usa en redes locales.

C. Árbol. – Esta topología es una derivación de la configuración tipo estrella, son un conjunto de
ellas conectadas entre sí por medio de concentradores para unir la red. Por lo general se lo usa en
aplicaciones de televisión por cable.
D. Bus. – Todas las estaciones están directamente conectadas a un solo canal. Es decir, cada host
tiene un cable común y la comunicación es directa, sin embargo, la ruptura del enlace principal hace

52
que todas las estaciones conectadas a él queden inhabilitadas.
E. Anillo. - Se caracteriza por su conexión dedicada, cada dispositivo punto a punto se une a sus
dos vecinos adyacentes lado a lado. La información viaja de estación en estación hasta llegar a su
destino.

Por lo general se lo usa en redes de área amplia WAN (Wide Area Network) o redes de área
local LAN (Local Area Network).
La implementación del proyecto actual debe adaptarse a la topología de red de la Universidad que
corresponde al tipo de “malla extendida”, así como a las características que tienen los elementos
que conforman la misma (switchs, routers etc.). La configuración malla extendida se caracteriza por
ser de tipo árbol, por tanto, considerando las definiciones anteriores, los equipos que integran el
sistema para la visión por computador se conectan a la red por medio de una configuración tipo
estrella.

3.2.5.1.Esquema de la red del sistema de cámaras

Figura 3.8. Esquema de red instalada


Fuente: Elaboración propia

En la Figura 3.8 se puede apreciar la red correspondiente al sistema de visión, conformada


por elementos que constituyen una configuración tipo estrella, también es evidente que esta misma
va unida a la configuración ya instalada en la universidad, (elementos dentro del recuadro color
verde). Los elementos que se ven dentro de esta imagen son los siguientes:

53
A. Cámara A.- Cámara IP tipo domo cuyas características se encuentran en la Tabla Nº 3.3. esta
cámara envía las imágenes que corresponden a los móviles que ingresan al parqueo. Estas imágenes
son enviadas por medio del switch de interconexión.
B. Cámara B.- Cámara IP con características similares al tipo A, esta cámara envía las imágenes del
espacio disponible en el área de parqueo. Las mismas también son enviadas por medio del switch de
interconexión.

C. CPU. - Computadora donde se instalan los programas para el desarrollo de los algoritmos de
visión, donde se ejecuta el software del sistema y la comunicación con el controlador del actuador
que cede el paso a los vehículos registrados.
D. NVR. - Este elemento graba todo lo que las cámaras A y B capten a su alrededor en función a su
ubicación, al mismo tiempo envía el video a un monitor conectado por un cable VGA (Video
Graphics Array, o Matriz de gráficos de vídeo) o HDMI (“High Definition Multimedia Interface”),
o Interfaz Multimedia de Alta Definición). En la imagen puede evidenciarse que esta conexión es
opcional, ya que lo que en realidad debe visualizarse en el sistema es el resultado de los algoritmos
de procesamiento aplicado a las imágenes enviadas por las cámaras, esto para indicar la
información de la persona que está ingresando y si existe o no un espacio disponible para su
estacionamiento.
Por tanto, si se desea ampliar este sistema es posible conFigurar el NVR para conectar por red
un nuevo monitor ubicado en un ambiente de administración o vigilancia.
E. Switch. - Este dispositivo es parte de la red implementada dentro de la universidad, es la estación
de interconexión que permite que los otros componentes se comuniquen. En la Figura 3.8 se
observa su conexión con las cámaras A, B, el CPU, el NVR y la red de la Universidad la cual
dependiendo de la aplicación tendrá un switch principal y otros secundarios.
F. Router wifi. - Este componente es el punto de acceso a Internet, y por medio del cual, todos los
elementos del sistema se interconectan en una red local para su funcionamiento.

G. Monitor. - Conectado directamente al CPU de procesamiento por medio de un cable HDMI, en él


se puede visualizar el sistema resultante al procesamiento aplicado a las imágenes. Tal operación
permite mostrar en la pantalla la información de la persona en función a la placa de su auto
(administrativo, docente, estudiante o visita) y posteriormente la sección del área libre en el parqueo
para estacionarse.

3.2.6. Selección del lenguaje y herramienta de programación del sistema


54
En esta sección se analiza, las ventajas y desventajas de dos de las herramientas más usadas
para ejecutar algoritmos de procesamiento de imágenes, MATLAB y Open CV, así como también
se define el lenguaje a utilizar para la programación del sistema.

3.2.6.1.Herramienta para el procesamiento de imagen


Para definir la herramienta a usar en el proyecto propuesto, se describe algunos elementos que
integran las funciones respectivas.

A. Ventajas de usar MATLAB

A.1. MATLAB para la visión artificial. - Desde el punto de vista computacional una imagen es
tratada como una matriz de pixeles, y es así como MATLAB guarda y procesa las imágenes, en
forma de matriz como vectores unidimensionales (m x n), donde cada elemento de la matriz es un
pixel.
La caja de herramientas de procesamiento que tiene M soporta imágenes binarias, en escala
de grises, RGB y también imágenes indexadas.
En RGB la matriz es tridimensional y esta es representada como (m x n x N) donde
(m, n) son los parámetros bidimensionales y N es el parámetro RGB (rojo, verde y azul) que toma
valores entre (1,2,3), donde cada pixel hace referencia a un color.

Figura 3.9. Representación de una imagen en forma de matriz


Fuente: https://n9.cl/a0f7j

A.2.Poder computacional en la biblioteca de matrices. - MATLAB no solo procesa las imágenes


como una matriz multidimensional, sino también hace un gran uso del algebra lineal en varios de
sus algoritmos. Muchas de sus rutinas de algebra lineal son bastante optimas y muy rápidas al
momento de hacer operaciones con matrices.

A.3.El toolbox de MATLAB. -Matlab ofrece una “caja de herramientas” de procesamiento de

55
imagen, una caja de herramientas de visión por computadora, estadística y aprendizaje automático,
lo cual da lugar a la implementación de una gran variedad de algoritmos.

A.4.Visualización y depuración. - Como ventaja se encuentra la facilidad que ofrece al momento de


escribir código, y la visualización de los resultados, gran parte de su entorno es integrado y
dinámico
permitiendo incrementar la productividad en el desarrollo.

A.5.Excelente documentación. - Gran parte de todas la funciones y algoritmos están documentadas,


existiendo ejemplos de aplicaciones y soluciones a problemas dentro del campo de la visión por
computadora. Esto permite que la codificación sea mucho más rápida al momento de desarrollar nuevos
algoritmos.

A.6.Comunidad científica. - Existe una gran participación académica utilizando MATLAB, muchas
de las investigaciones y demostraciones se comparten utilizando esta herramienta.

A continuación, vemos algunos ejemplos de la codificación en Matlab y Python. Como se


mencionó anteriormente las imágenes son tratadas como matrices, y MATLAB, asume que todos
los operadores aritméticos operan en matrices. De este modo trata la multiplicación de matrices o
vectores como multiplicación de matrices como tal.

56
Figura 3.10. Ejemplo de descripción básica del tratamiento de matrices en Matlab (2015a)
Fuente: Elaboración propia

En la Figura anterior se crean dos matrices de dimensiones 1x3 llamado “a”, y otro 1x3
llamado “b”. La línea de comando “a*b” intenta multiplicar ambas matrices, no obstante,
MATLAB envía un mensaje de error al usar solo (*) y sugiere utilizar (. *), lo cual es correcto ya
que utilizando punto (.) los elementos se multiplican uno a uno.

57
Al corregir el error y multiplicarlo nuevamente arroja la matriz resultado, debido a que el
comando (. *) multiplica elemento a elemento.
En la última línea de código se utiliza la función (transposer) que obtiene la transpuesta de la matriz
2 y luego multiplica esta con la matriz 1 utilizando el producto punto, el resultado aparece como 32,
evidentemente aplicando la operación (.)

B. Desventajas usar MATLAB

B.1. Los algoritmos que tiene MATLAB no pueden verse, por tanto, solo debe confiarse en que
todos ellos se están implementando de la manera correcta.
 Su costo es elevado, lo que implica que, compartir el código con otra persona que no cuenta
con la licencia no podrá utilizar el código.
B.2. Mathworks impone restricciones a la portabilidad del código realizado, esto significa que
una persona puede ejecutar su proyecto compilado en el ordenador de otra, pero es necesario que en
él tenga instalado el MCR (Matlab Component Runtime), y este mismo debe coincidir con la misma
versión de la aplicación portable. Al final esta compatibilidad de versiones representa un problema
ya que Matlab actualiza sus versiones cada 6 meses.

C. Ventajas de usar Open CV


C.1. Es gratis. - Open CV es una biblioteca que integra muchas funciones dedicadas al
procesamiento de imágenes, y se puede hacer uso de la misma de forma libre.

C.2. Visualización y depuración. - Posee bibliotecas más completas escritas en Python, también
integra funciones que facilitan la visualización de datos como matplotlib.

C.3. Creación de otras aplicaciones. - Open CV tiene varias bibliotecas escritas en Python, el
cual es un lenguaje muy popular que también es usado para la escritura de páginas web; Por
ejemplo, marcos como Django, Web2py y Flaske ayudan fácilmente a convertir el código en Open
CV en una API para una página web.

C.4. Plataformas y dispositivos. -Esta herramienta puede utilizarse dentro de un IDE (Integrated
Development Environment por sus siglas en inglés), o como el backend dentro su aplicación web.
Muchas aplicaciones de visión son desarrolladas usando esta biblioteca incluyendo aplicaciones
móviles.

58
C.5. Comunidad enorme. -A diferencia de la comunidad de Matlab que en su mayoría están
conformados por científicos e investigadores, Open CV es usado por una variedad de personas, de
distintos tipos de campos e industrias, desarrollando algoritmos para todo tipo de aplicaciones que
van desde el entretenimiento hasta la investigación combinando algoritmos de machine learning y
deep learning logrando optimizar el desempeño en el procesamiento de imágenes

D. Desventajas de Open CV

D.1.La documentación es débil, lamentablemente no cuenta con una variedad de ejemplos para
empezar a codificar, y esta dificultad incrementa cuando la persona está iniciando en el campo del
desarrollo de algoritmos para visión artificial.
D.2.Open CV está escrito en C/C++ por tanto si desea modificar su código fuente es necesario un
conocimiento muy sólido en estos lenguajes.

Considerando las ventajas y desventajas de cada herramienta, y lo de lo que el proyecto requiere se


tiene lo siguiente:
 La adquisición de la licencia para MATLAB tiene un costo elevado, e independientemente que la
universidad cuente con ella, el proyecto se limita a ser implementado o ejecutado en otras
computadoras para el avance de futuros trabajo se investigación sobre la base del proyecto.
 Las codificaciones de los algoritmos elaborados para el sistema de visión deben estar libres de
restricciones en cuestión de compatibilidades para su compilación.

 El sistema requiere que la ejecución del programa sea en tiempo real y un procesamiento con el
mínimo de retardo posible. De hecho, MATLAB se hace más lento cuando el código no se escribe
de la forma indicada.

En efecto, gran parte de los requerimientos necesarios para el presente trabajo, señalan que
la mejor opción es “Open CV” como biblioteca libre para el desarrollo del algoritmo, debido a sus
ventajas, ajustes a los objetivos planteados y su gran aporte en cuanto a proporcionar un entorno de
desarrollo fácil de utilizar y altamente eficiente.

59
3.2.6.2.Lenguajes de programación
Si bien Open CV está escrita originalmente en C/C++ también se la puede utilizar en
varios lenguajes como Java, Objective C, Python y C#.
A diferencia de MATLAB, ya que este tiene su propio lenguaje llamado lenguaje M, pero
también puede llamar funciones y subrutinas escritas en C o Fortran.

Figura 3.11. Ejemplo de descripción básica del tratamiento de matrices en Python


Fuente: Elaboración propia.

En este código se importa el paquete NumPy y se lo asigna al objeto np, creando dos arrays;
La forma en la que Python crea matrices es utilizando NumPy empezando np.array () que se
interpreta como “desde adentro buscar array”, luego pasa una lista al constructor de la matriz que
recibe los elementos que se especifican dentro de los corchetes

En la línea 4 se multiplican los dos vectores “vec1” y “vec2” y el resultado es una matriz
con los elementos 4,10 y 18 iguales al resultado de MATLAB.

Como es evidente MATLAB exige que las dimensiones de las matrices se alineen
para realizar la multiplicación, mientras que en Python el paquete NumPy es
flexible. Esto se debe a que las matrices unidimensionales en MATLAB son tratadas como
matrices a diferencia de Python.

Python es un lenguaje de “scripting” (secuencia de comandos para hacer referencia a un


programa relativamente simple) de alto nivel con una sintaxis muy sencilla, y orientado a objetos
para realizar cualquier programa, desde aplicaciones de escritorio hasta servidores de red. Al ser un
lenguaje interpretado significa que el código Python puede migrarse a todas las plataformas de
sistemas operativos y arquitecturas de CPU existentes.

60
También existen distribuciones de Python para CPU y microcontroladores; De hecho, Python
puede comunicarse con otros microcontroladores incluyendo Arduino, con una interfaz muy sencilla.
Por todas estas y muchas razones más, Python es una excelente opción para usarla como el
lenguaje de programación para el desarrollo del presente trabajo.

Figura 3.12. Diferencias entre los ecosistemas de Python y Matlab


Fuente: https://pyzo.org/python_vs_matlab.html

A continuación, se presenta un resumen de los elementos seleccionados para el sistema


Tabla 3.5 Elementos y características del sistema

ID Componente Características Cantidad

*5 Megapíxeles
*120 [DB]/
*Lente 2.8 [mm]
*Visión nocturna 30 [m]
*Sistema Poe integrado
*IP67
1 1
Cámara A *Angulo de visión 104[º]

*5 Megapíxeles
*120 [DB]
*Lente 2.8 [mm]
*Visión nocturna 30 [m]
*Sistema Poe integrado
2 Cámara B *IP67 1
*Angulo de visión 104[º]

3 Tipo de red en la Malla extendida -


Universidad

4 Switch de la red Trend Net (POE) 1

5 Velocidad de ancho de 100/1000[Mbps] -


banda en la red UCB

6 Cable de red Categoría 5e 50 [m]

7 CPU Core i7 2.3 [GHz] / 1


61
12 [GB] RAM

Fuente: Elaboración propia

62
3.2.7. Selección del sistema para la gestión de base de datos
Una base de datos son estructuras de datos organizadas relacionadas entre sí, los cuales
permiten obtener información actualizada de una organización.
El propósito de una base de datos es permitir a las personas dar seguimiento a las cosas. La idea
principal de una base de datos es plasmar la información de situaciones reales por medio de
herramientas, en estructuras de datos organizados. Una de estas herramientas es los “modelos de
datos”, que describe de forma abstracta la manera de almacenamiento y extracción de los datos.

Para el desarrollo del presente proyecto se decide usar la versión mejorada del motor de base
de datos MySQL, MariaDB por las siguientes razones:

A. Mejoras en la velocidad para consultas complejas al momento de usar el motor de


almacenamiento Aria; Los datos de tablas temporales son cacheados en la memoria por este motor,
aumentando el rendimiento al uso del disco duro.
B. Permite añadir nuevas tablas estadísticas que ayudan a optimizar la base de datos.
C. Es posible tener más de 200 mil conexiones a MariaDB, debido a la mejora de su sistema
implementado, pool of threads de MySQL 6.0.
D. Posee mejoras y modificaciones con respecto a su velocidad y características frente a MySQL.

3.2.7.1. Gestión y conexión a MariaDB


Para el manejo de base de datos es necesario un software que permita la gestión de los
servidores de datos, en este caso MySQL y un software que dé lugar a la conexión con el mismo
para la manipulación de la información.
Los dos softwares para el desarrollo del trabajo son XAMPP y HeidiSQL XAMPP. - Es un
paquete de software libre, que consiste principalmente en el sistema de gestión de bases de datos
MySQL, el servidor web Apache y los intérpretes para lenguajes de script PHP y Perl. El nombre es
en realidad un acrónimo: X, Apache, MariaDB/MySQL, PHP, Perl.
HeidiSQL. - HeidiSQL, inicialmente conocido como MySQL-Front, es un software libre y de
código abierto que permite conectarse a servidores MySQL, así como Microsoft SQL Server y
PostgreSQL

63
Figura 3.13. Arranque de MySQL en el software Xampp
Fuente: Elaboración propia

Figura 3.14. Configuración del Software HeidiSQL


Fuente: Elaboración propia

64
La Figura 3.13 ilustra el arranque del servidor de base datos MySQL a través del puerto
3306 y el proceso Apache por medio del puerto 80 que es servidor web.
La Figura 3.14 muestra la forma de conFigurar la red con la aplicación de escritorio Heidi SQL, se
selecciona MariaDB, el usuario como root y el puerto que es el mismo a través del cual se conecta
el servidor MySQL, este mismo se ejecuta dentro de la computadora donde corre el programa del
procesamiento de las imágenes, lo cual es administrado como un local host. Es importante resaltar
que para conFigurar esta red el proceso anterior debe ejecutarse correctamente, es decir, Apache y
MySQL deben estar activos, de otra forma la aplicación no permite ninguna configuración.

Figura 3.15. Creación de una nueva base de dato


Fuente: Elaboración propia

Dentro de la Figura anterior se crea una nueva base de datos denominada “ucatólica” y
dentro, una Tabla llamada “peradmin”. La Tabla tiene 5 campos con un tipo de dato “String”
asignados a 4 de ellos; Nombres, Apellidos, Cargo y Placa y un campo ID de tipo “int”.
Para ejemplificar la Tabla se añade a la misma 4 registros con datos aleatorios. Para extraer
la información de forma específica se recurre al lenguaje SQL que es el que maneja MySQL como
por ejemplo la siguiente línea:
SELECT * FROM peradmin WHERE Placa='229 PSX', esta línea de código extrae la información de
la Tabla que lleva el nombre “peradmin”, los datos hacen referencia a la placa “229 PSX”.
Es este mismo lenguaje el que se utiliza más adelante para realizar la conexión de la base de
datos con el programa que contiene los algoritmos del procesamiento de imágenes utilizando el
65
lenguaje Python.

3.3. Diseño del sistema de visión artificial

3.3.1. Algoritmo de reconocimiento de placas

La estructura de todo el programa está basada en clases y archivos.py para hacer más eficiente el
código. El algoritmo para esta parte del sistema está dividido en dos partes:

 Algoritmo de entrenamiento para el reconocimiento de la tipografía de placas bolivianas.


 Algoritmo de reconocimiento de las placas usando los archivos de entrenamiento y clasificación.

El algoritmo KNN (K-Nearest Neighbour), K-N vecinos más cercanos en español, es uno de
los algoritmos de clasificación más sencillos usado para el aprendizaje supervisado. Consiste en
buscar las coincidencias más cercanas de los nuevos datos dentro del espacio de características. A
continuación, se muestra una imagen para explicar el algoritmo.

Figura 3.16. Algoritmo KNN (k-Nearest Neighbour)


Fuente: https://n9.cl/1t82d

En la imagen anterior, hay dos familias: círculos amarillos y morados. Se refiere a cada una
de ellas como una clase, en la imagen de ejemplo se las denomina “Clase A” y “Clase B” estas
mismas se encuentran distribuidas en un área llamada espacio de características. Un espacio de
características puede ser de N dimensiones, entonces en cada elemento requiere de N
características. En el ejemplo, el espacio tiene dos dimensiones (2D) por tanto cada elemento cuenta
con dos características “x1” y “x2” para su representación.
Ahora, suponiendo que se introduce el carácter encontrado en la escena tras el proceso de la
imagen, se convierte en el nuevo miembro en el espacio, que se muestra como una estrella roja, esta
66
debe ser agregada en una de las dos familias, o clases. Que en el presente proyecto representa a los
grupos alfanuméricos, es decir letras y números.
El método más simple es verificar su vecino más cercano, en la anterior ilustración queda claro que
el nuevo miembro pertenece a la clase B si tomamos K=1, el vecino más cercano, entonces el nuevo
dato se clasifica como clase B.

Para k=3, se considera 3 vecinos más cercanos, la Figura anterior muestra al nuevo elemento
con dos esferas moradas y una amarilla cerca, al parecer existe un elemento de cada familia que
tiene la misma cercanía al nuevo miembro, impidiendo su clasificación, por lo tanto esto requiere
tomar un valor superior con k=6 para definir al grupo al que pertenece el nuevo dato, y
evidentemente para este valor la estrella morada tiene menores distancias a los círculos morados, y
este se clasifica como clase B; Esto indica que para valores superiores de K, se crean limites más
suaves encerrando más predicciones en el espacio de características, además es necesario tomar en
cuenta que la definición de K no debe ser par, ya que es probable que exista un empate en los
cálculos. Llevando este algoritmo a la matemática los cálculos se hacen utilizando distancias
euclidianas si los valores se manejan con los mismos tipos de datos.

Este algoritmo basa su “aprendizaje” en la memorización de los datos de entrenamiento, que


permitirá más adelante detectar las letras extraídas de la placa y luego imprimirlas como texto para
su manipulación.
3.3.1.1.Algoritmo (KNN) para clasificación de caracteres

La implementación del algoritmo requiere de una previa clasificación de las clases y un


conjunto de datos correspondientes al entrenamiento.
Para definir las clases se realiza una imagen que contiene todas las letras del abecedario y
los números del 0 al 9, utilizando la tipografía de las placas bolivianas.

67
Figura 3.17. Letras y números para el entrenamiento del algoritmo
Fuente: Elaboración propia

La Figura 3.17 muestra algunos caracteres repetidos debido a la morfología de cada letra y
número, esto implica, que cuantos más caracteres en todas las formas posibles sean entrenados, el
algoritmo clasificará los textos de las placas con un nivel de predicción más alto.
La imagen de entrenamiento está conformada con 41 valores, cada una representa una clase
y son definidas por los valores equivalentes en ASCII introducidos por el usuario a través del
teclado al momento de entrenar los caracteres uno por uno.
La finalización satisfactoria de la anterior operación es confirmada por el mensaje
“ENTRENAMIENTO COMPLETO” en la consola de Python, generando dos archivos con los
nombres “clasificaciones.txt” y “imagenesclasificadas.txt” los cuales se usan para verificar la
predicción de nuevos elementos.

A continuación, se presenta el diagrama de flujo del algoritmo de entrenamiento y la


verificación.
Dentro de Python se cuenta con el algoritmo (KNN) usando la línea de código
cv2.ml.KNearest.create() creando un objeto para instanciar el uso de la misma, en este caso el
objeto es kn_cv
Para ejemplificar y demostrar el funcionamiento de todo el algoritmo se hace uso de dos
videos que sirven como las capturas de entrada para el sistema; Del primer video se extrae el texto
de la placa de un vehículo en movimiento y del segundo se evalúan los espacios para el parqueo.
Si bien, cada video se utiliza para ejemplificar el algoritmo en su desarrollo, también permite
demostrar paso a paso la aplicación de las funciones integradas en Open CV.
En el primer video se encuentra vehículos acercándose de frente a una velocidad promedio, cuya
matrícula es visualizada frontalmente en un escenario real donde existen motocicletas, otros
vehículos y también personas, el mismo video permite probar el algoritmo considerando los
elementos mencionados que constituyen la escena para el procesamiento de las imágenes.
El segundo video hace referencia a varios vehículos entrando y saliendo de un parqueo, estas
imágenes permiten evaluar por medio del algoritmo los espacios libes y ocupados para obtener la
cantidad de plazas disponibles dentro de la zona de estacionamiento.
Vale mencionar que estos videos tienen sus propias características que influyen en el desempeño del
algoritmo, como la iluminación, contrastes, colores, grises, cantidad de pixeles y velocidad de

68
fotogramas por segundo. No obstante, estos detalles permiten considerar un pre procesamiento en
las imágenes para obtener el número de placa de los autos y el resultado de la evaluación de los
espacios disponibles dentro de parqueo.

A. Diagrama de flujo del archivo caracteresKNN.py

69
70
Figura 3.18. Imagen original e imagen en escala binaria de los caracteres
Fuente: Elaboración propia

Los contornos verdes alrededor de cada letra en la imagen se dibujan cada vez que se presiona la tecla
correspondiente a la misma. Esta operación asigna valores a cada elemento en la imagen.

Figura 3.19 Ejemplos de caracteres reconocidos y extraídos de la imagen en escala binaria


Fuente: Elaboración propia

71
Figura 3.20 Valores asignados para la clasificación
Fuente: Elaboración propia

La Figura 3.20 corresponde a los datos de clasificación asignados a cada carácter de la


imagen de entrenamiento (ver Figura 3.18), es decir cada una es una familia dentro del espacio de
características.
Estos valores representan a su equivalente en código ASCII y mediante los datos de
entrenamiento permiten la predicción y asignación de un nuevo carácter a una de estas familias.
El siguiente diagrama de flujo carga una imagen de prueba para verificar el aprendizaje del
(KNN).
72
B. Diagrama de flujo del archivo pruebaKNN.py

73
74
75
76
Por medio del anterior algoritmo se puede comprobar si el (KNN) funciona para la
predicción de nuevos caracteres de entrada para su clasificación. Esta verificación trabaja con K=1,
el vecino más cercano.
Los resultados se muestran a continuación:

Figura 3.21 Pruebas del algoritmo KNN


Fuente: Elaboración propia

77
Cada imagen de prueba cargada arroja el resultado equivalente en pantalla, de esta manera
se puede afirmar que el algoritmo clasifica cada nuevo carácter de entrada recurriendo a sus datos
de entrenamiento para elegir a la instancia más cercana.

Tabla 3.6 Predicción del clasificador para cada texto de prueba

Texto de placa-
prueba Representación en ASCII de cada letra

1852PHD [[49.] [56.] [53.] [60.] [80.] [72.] [68.]]

2193ZPL [[50.] [49.] [57.] [51.] [90.] [80.] [76.]]

2138SDU [[50.] [49.] [51.] [56.] [83.] [68.] [85.]]

2918ZKT [[50.] [57.] [49.] [56.] [90.] [75.][84.]]

3917XCG [[51.] [57.] [49.] [55.] [88.] [67.] [71.]]

Fuente: Elaboración propia

Esto indica que, por ejemplo, para el inciso c:

2 el vecino más cercano es 50


1 el vecino más cercano es 49
3 el vecino más cercano es 51
8 el vecino más cercano es 56
S el vecino más cercano es 83
D el vecino más cercano es 68
U el vecino más cercano es 85

En la Figura 3.20 se muestra la asignación de valores para la clasificación de nuevas


instancias; Si convertimos el equivalente en ASCII de estos valores se obtiene efectivamente la
cadena 2138SDU.

Es necesario aclarar que la imagen de entrenamiento (ver Figura 3.17) puede contener
muchos más caracteres y de cualquier tipografía, en concreto cuanto más valores memorice el
algoritmo para su “aprendizaje”, la predicción de los nuevos elementos será más óptimo. En el
presente proyecto solo se requiere del abecedario y los números con la tipografía boliviana.
78
A continuación, se realizan pruebas asignando otros a valores a K, estas pruebas nos
permiten
verificar si el valor óptimo
para el algoritmo es K=1.

Para K=3

Figura 3.22 Pruebas del algoritmo KNN con K=3


Fuente: Elaboración propia

La Figura 3.22 muestra la detección del texto dentro de la imagen de prueba, y el algoritmo
calcula un texto igual a 3317ICC mismo que no coincide con el texto original diferenciando su
resultado en 3 caracteres. Las tres columnas corresponden a los tres valores más cercanos a cada
instancia, y las otras tres columnas corresponden a las distancias calculadas hacia cada caracter es decir los tres
vecinos más próximos a cada letra.

Para K=5:

Figura 3.23 Pruebas del algoritmo KNN con K=5


Fuente: Elaboración propia

La Figura 3.23 calcula un texto igual a 43G7PEE mismo que no coincide con el texto
original diferenciando su resultado en 4 caracteres. Las primeras cinco columnas corresponden a los
79
cinco datos más cercanos a cada letra y las siguientes cinco a las distancias calculadas para cada
estereotipo cercano, para este caso 5 vecinos más próximos.
En algunos casos el algoritmo trabaja de forma óptima y correcta con K=1, sin embargo,
este valor varía de acuerdo al tipo de clasificación que se desea predecir.

3.3.1.2. Algoritmo para el reconocimiento de placas

Para la lectura de las placas se sigue la siguiente estructura de archivos en Python, cada una
cuenta con clases y funciones que se relacionan entre sí para obtener el resultado.
Cada fichero contiene funciones las cuales son invocadas desde otros scripts para ejecutar
tareas específicas. Las sumas de todas estas tareas en conjunto permiten que el programa lea las
placas de la imagen de entrada.

Figura 3.24 Estructura de los ficheros Python para el algoritmo de reconocimiento de placas
Fuente: Elaboración propia

Seguidamente, se desarrolla el diagrama de flujo de cada archivo en Python y sus funciones,


80
explicando la relación que existe entre todos ellos con los demás ficheros.

A. Diagrama de flujo del archivo Main.py

Figura 3.25 Ejemplo, video de entrada al sistema


Fuente: Elaboración propia

81
El fichero Main.py captura los fotogramas de entrada a través de la cámara A, y
posteriormente llama a las otras clases del programa que procesan la imagen de entrada para obtener
el texto de la placa del vehículo.

B. Esquema del archivo Core.py

Figura 3.26 Estructura de las funciones del archivo Core.py


Fuente: Elaboración propia

Dentro de la Figura 3.26 se encuentra la estructura del archivo Core.py que inicia con la
función main, esta carga los datos de entrenamiento (KNN) terminado, y evalúa si este fue
entrenado satisfactoriamente. Seguidamente verifica si existe una imagen de entrada (capturas de la
cámara) para su lectura y proceso.
Continuando con el algoritmo, esta misma función invoca a su función “delimitarPlaca”
la cual recibe como parámetro la imagen de la placa y dibuja alrededor de ella un rectángulo color
rojo mostrando así que fue detectada.
Finalizando el programa, la función hace un llamado a su función “escribirNumPlaca”
que también recibe la imagen de la placa y escribe el texto que existe en ella sobre la escena del video.

82
B.1. Diagrama de flujo de la función main del archivo Core.py

83
84
B.2. Diagrama de flujo de la función “delimitarPlaca” del archivo Core.py

Figura 3.27 Delimitación rectangular de la placa encontrada, en la escena


Fuente: Elaboración propia

85
B.3. Diagrama de flujo de la función “escribirNumPlaca” del archivo Core.py

86
Figura 3.28 Texto de la placa escrito en la escena del video
Fuente: Elaboración propia

El algoritmo de la reciente función calcula el alto, ancho y las coordenadas de origen para
escribir el texto con respecto a las dimensiones de la escena. También realiza el cálculo de las
coordenadas del centro del área del texto en funciona la ubicación de la placa en la imagen, es decir
si la placa está en la parte superior de la escena entonces el texto se escribe por debajo, de lo
contrario se lo ubica encima.
En la Figura 3.28 también se muestra la detección de la placa del auto que corresponde al
video de entrada al sistema, como se mencionó anteriormente el algoritmo requiere de un
entrenamiento de letras con la tipografía que se desea detectar. La Figura 3.28, detecta una placa
que no corresponde a la tipografía entrenada, lo que indica que el algoritmo usa la clasificación de
los datos para aproximar la coincidencia de las letras leídas, lo cual se toma como válido porque la
tipografía detectada en la Figura 3.28 se encuentra dentro del tipo de letra estándar.

87
C. Esquema del archivo preproprecesamiento.py

Figura 3.29 Estructura de funciones del archivo Preprocesamiento.py


Fuente: Elaboración propia

La Figura 3.29 inicia con el archivo preproprecesamiento.py el cual recibe las imágenes
como parámetro, y procede a llamar a la función “extraerCanalValorHSV”, que lleva la imagen al
espacio de colores HSV (matiz, saturación y brillo). Este valor devuelto es utilizado por la función
“MáximoContraste” el cual aplica operaciones morfológicas de suma y resta en las imágenes, para
obtener el máximo contraste de la imagen que se encuentra en escala de grises.
Seguidamente elimina el ruido gaussiano de la escena del máximo contraste aplicando un
kernel de 5x5 y finaliza obteniendo la imagen en escala binaria calculando el umbral adecuado; Al
final el archivo devuelve dos imágenes, una en escala de grises y otra en binario (blanco y negro).

88
C.1. Diagrama de flujo de la función preprocesamiento del archivo preproprecesamiento.py

89
C.2. Diagrama de flujo de la función “extraerCanalValorHSV” del archivo preproprecesamiento.py

90
C.3. Diagrama de flujo de la función MáximoContraste del archivo
preproprecesamiento.py

91
Figura 3.30. Aplicación de operaciones morfológicas suma y resta de imágenes
Fuente: Elaboración propia

La Figura 3.30 revela el resultado de los procesos morfológicos aplicados. Los sumandos de
la operación suma, corresponden a la imagen en escala de grises y la diferencia entre la imagen de
entrada y la apertura de la imagen.
El minuendo de la operación resta corresponde a la imagen resultante anterior y el sustraendo es la
diferencia entre el cierre de la imagen de entrada y la imagen de entrada.

Figura 3.31 Resultado del proceso morfológico, imagen en grises, máximo contraste y contornos
Fuente: Elaboración propia

92
La Figura 3.31 expone las imágenes que el archivo Preprocesamiento.py
retorna como parámetros a los archivos que lo requieran. Lo último se realiza con el
objetivo de ajustar las luces y brillos de la escena de donde se pretende extraer el texto
de la placa.

D. Esquema del archivo DetectarPlacas.py

Figura 3.32 Estructura de funciones del archivo DetectPlates.py


Fuente: Elaboración propia

En la Figura 3.32 se presenta el esquema de funciones del archivo DetectarPlacas.py, este


programa recibe la escena original de la cámara en la función “placasenImagen” y junto a la función
“encontrarposiblesLetrasescena” identifica todos los posibles caracteres en la escena retornando una
cadena de los encontrados.
Esta cadena devuelta es enviada como parámetro a la función
“hallarlistadelistasdeLetrasCoincidentes” del fichero DetectChars.py, que retorna un vector de listas
donde cada lista es un grupo de caracteres posibles en la escena. Cada grupo en la lista es evaluado
con la función “extraerPlaca” que recibe la imagen original y el grupo de caracteres, devolviendo
como respuesta una posible placa en la escena.
Cada posible placa de retorno es añadida a una lista de posibles placas que luego son usadas
por el fichero DetectarLetras.py para extraer los posibles caracteres de las placas detectadas.

93
D.1. Diagrama de flujo de la función “placasenimagen” del archivo DetectarPlacas.py

86
87
Figura 3.33 Extracción de los bordes de la imagen
Fuente: Elaboración propia

88
Al procesar la imagen de entrada con la función preprocesamiento, se obtiene dos imágenes,
una en escala de grises y otra en escala binaria

Figura 3.34 Extracción de las posibles placas de la imagen


Fuente: Elaboración propia

89
Figura 3.35 Selección de factores ancho y alto de la matricula
Fuente: Elaboración propia

La Figura 3.35 revela la aplicación de los factores ancho y alto para definir el contorno de la
matrícula, la imagen superior de la Figura, es el resultado de aplicar un factor ancho de 0.7 y un
factor de alto igual a 1, se puede notar que con estos valores la placa no queda bien definida y en
consecuencia el texto no se extrae por completo.

90
En la imagen central se tiene el resultado para factores de 1.5 y 1.5 respectivamente, es
evidente que el factor para el ancho no se ajusta correctamente al contorno, finalmente los valores
que mejor definen la matrícula son 1.3 para el ancho y 1.5 para el alto.
Estas dos constantes son utilizadas dentro del algoritmo para delimitar el área de evaluación
(la placa del vehículo) y hallar el posible texto dentro de ella, además de usarlas como referencia
para dibujar el rectángulo alrededor de cada posible matricula.
En la Figura 3.33 se observa el proceso que realiza esta parte del algoritmo, el mismo halla
los contornos de la imagen, posteriormente se suavizan estos bordes para detectar los posibles
caracteres en la escena y seguidamente encontrar los caracteres coincidentes, luego estas listas se
evalúan para extraer todas las posibles placas.

En la Figura 3.34, se extraen todas las posibles placas de la imagen y se las añade a una lista
de posibles placas. Esta lista es enviada a la clase DetectarLetras.py para extraer todos los textos
posibles de las placas.

E. Esquema del archivo DetectarLetras.py

Figura 3.36 Estructura de funciones del archivo DetectarLetras.py


Fuente: Elaboración propia

La Figura 3.36 expone el esquema de interacción de las funciones dentro del programa en el
archivo DetercarLetras.py

91
Los diagramas de flujo que se muestran a continuación corresponden a la función
“cargarKNN”, cuyo propósito es el de cargar los archivos de entrenamiento para la lectura y
predicción de los nuevos caracteres que ingresen como posibles textos, y la función
“letrasenPlacas”. que se encarga de extraer todas las posibles letras presentadas en cada escena
entregada al archivo por medio de las capturas recibidas de la cámara A.
Luego las funciones complementarias son esquematizadas por medio de imágenes que representan
la recepción y envío de parámetros en cada paso.

E.1. Diagrama de flujo de la función “cargarKNN” del archivo DetectarLetras.py

Esta función carga los registros de los valores asignados a la clasificación y los datos del
entrenamiento de cada instancia.
Se asigna el valor de k=1, medir con el vecino más cercano y se ejecuta el algoritmo (KNN) para
clasificar los nuevos caracteres de entrada. Estos nuevos elementos se obtienen de la función
“encontrarPosiblesLetrasenPlaca” en forma de cadena de datos.

92
E.2. Diagrama de flujo de la función “letrasenPlacas” del archivo DetectarLetras.py

93
94
El diagrama de flujo anterior realiza lo siguiente:

95

Figura 3.37 Contornos de la imagen y ubicación de las posibles placas


Fuente: Elaboración propia

En la Figura 3.37 se encuentra el proceso de adaptación de la imagen de entrada, esta es pre-


procesada para obtener su equivalente en escala de grises y en binario, esta operación permite
mejorar el brillo y obtener un mejor contraste de la escena.

96
La Figura también enseña la ejecución del archivo DetectarLetras.py que procede a
encontrar todas las posibles placas de la escena, y seguidamente invocar a la función
“encontrarPosiblesLetrasenPlaca”, la misma envía a la función “verificarsiesLetra” dato tras dato para
comprobar si es un carácter, al final del proceso se retorna una lista de todos los caracteres posibles
encontrados.
Continuando el proceso la función “hallarlistadelistasdeLetrasCoincidentes” recibe esta lista
que contiene los posibles caracteres de la escena y crea una lista de grupos de caracteres
coincidentes con los registros de entrenamiento (algoritmo KNN). En otras palabras, se retorna una
lista de lista de caracteres coincidentes.

Figura 3.38 Parámetros y delimitación de los caracteres encontrados


Fuente: Elaboración propia

La Figura 3.38 muestra los parámetros que se considera dentro del programa para delimitar
cada uno de ellos dentro de un rectángulo verde. Estos valores también permiten obtener las
magnitudes del rectángulo que delimita cada posible placa.

Donde cada parámetro corresponde a:

H: Altura de la letra
A: Ancho de la letra
d: distancia entre letras
Dg: Diagonal de la letra

97
Figura 3.39 Lista de listas de caracteres coincidentes, limpieza del texto y texto final
Fuente: Elaboración propia

En la Figura 3.39 se evidencia grupos similares de caracteres, los cuales se asemejan a los
registros del entrenamiento.
Sin embargo, se requiere solo una cadena de caracteres coincidentes, y para lograr este
objetivo se pasa esta lista a la función “hallarlistadeletrasCoincidentes” que se encarga de retornar una
lista de valores coincidentes midiendo la distancia (función “distanciaentreLetras”) entre cada letra y
el ángulo entre ellas (función “anguloentreLetras”), esto para definir todos los elementos en la lista.
Al finalizar esta tarea se obtiene una lista de vectores de valores coincidentes, no obstante,
antes de extraer el texto limpiamos las letras que se encuentran superpuestas haciendo uso de la
función “limpiarLetrasSobrepuestas”.

Para extraer el texto final se toma la lista que contiene más instancias, mismas que se envían
como parámetro a la función “reconocerLetrasenPlaca” que devuelve una cadena de texto en
formato String para imprimirlo en la consola.

98
Figura 3.40. Texto de la placa leída en la consola de Python
Fuente: Elaboración propia

La Figura 3.40, presenta el texto extraído de la placa detectada en la escena (ver Figura 3.28)
es evidente la coincidencia con el texto impreso en la consola de Python.

3.3.2. Algoritmo para la detección de espacios en el parqueo


El algoritmo se desarrolla a partir de un programa que utiliza datos generados por otro
subprograma. El código del subprograma permite al usuario determinar las áreas de evaluación
dentro del parqueo. Luego estas regiones son extraídas del video por el sistema para determinar si el
espacio se encuentra o no disponible.

Figura 3.41 Estructura de los ficheros Python para el algoritmo de detección del parqueo
99
Fuente: Elaboración propia

100
La Figura 3.41 indica la estructura de los archivos de Python para el desarrollo del algoritmo
correspondiente a la evaluación de áreas libres en el parqueo. El archivo deteccion.py captura las
primeras capturas del video de entrada para mostrarlo en pantalla. Esta escena es utilizada para
delimitar con el mouse las regiones donde se desea avaluar la presencia de un vehículo. Con cada
región marcada se guardan las coordenadas del área en un archivo de extensión (.csv) en forma de
listas.

A. Diagrama de flujo del archivo selector_areas.py

101
Figura 3.42 Selección de las áreas de evaluación para el parqueo
Fuente: Elaboración propia.

102
B. Esquema del archivo detección.py

Figura 3.43 Estructura de las funciones del archivo detección.py


Fuente: Elaboración propia

En la Figura 3.43 se observa la forma en la que se relacionan las funciones del archivo
detección.py, el propósito de este es el de evaluar las regiones disponibles para los vehículos.

Con el fichero selector_areas.py se obtienen las coordenadas de las regiones de interés para
evaluar su disponibilidad (ver Figura 3.42), estas coordenadas son guardadas en un archivo de Excel
en forma de listas; La función “dibujarrectangulo” recibe las coordenadas y la imagen de donde
se extrajeron las sub áreas , por medio de un panel selector creado dentro del programa se establece
la cantidad de pixeles y brillos para la imagen, esto permite al programa definir la disponibilidad
de las áreas.

103
B.1. Diagrama de flujo del archivo deteccion.py

104
Figura 3.44 Evaluación y definición de parámetros en las regiones seleccionadas para el parqueo
Fuente: Elaboración propia

105
Las regiones marcadas anteriormente, se evalúan para determinar el número de plazas
disponibles en el parqueo, la Figura 3.44 expone dos lugares vacíos delimitándolos mismos con
rectángulos verdes. Al mismo tiempo se puede observar que al momento de ingresar un nuevo
vehículo a la región, el área “A1” se delimita con un rectángulo color rojo, mostrando que ese
espacio ya no está disponible imprimiendo una reducción en los espacios libres a solo 2.

La misma Figura también expone, el equivalente del video solo en blanco y negro,
mostrando solo los contornos de los vehículos, el propósito de esta escena es visualizar las luces y la
cantidad de pixeles blancos en el video. Estos parámetros son controlados por una ventana con
cuatro barras de control, las posiciones de estas permiten determinar los valores correspondientes a
los umbrales y cantidad de pixeles en un rango de máximos y mínimos, es decir se calibran las luces
de los fotogramas para que la evaluación de las áreas sean las correctas al momento de definir si
existen o no lugares libres para el estacionamiento. Parta la Figura 3.44 los parámetros se fijan en
un máximo de 598 pixeles blancos y un umbral máximo de iluminación de 86, estos valores indican
que para que un coche sea detectado debe estar por encima de los 598 pixeles y un umbral de
iluminación definido con 86, esto evita que el sistema detecte los espacios libres como ocupados
cuando el mismo no sea ocupado por un automóvil, (una persona, un animal, algún material que sea
puesto allí por el viento o incluso otro motorizado).

3.3.3. Interfaz gráfica del sistema

El resultado de la lectura de las placas a través de la cámara A, y los espacios libres para el
estacionamiento a través de la cámara B, se escriben de forma explícita una ventana actualizando
los valores del video en progreso.
La ventana que muestra el número de placa también imprime los datos de la persona a la que
corresponde, específicamente los nombres, apellidos y el cargo dentro de la universidad. También
muestra la cantidad de espacios libres en el parqueo, así como las asignaciones de lugar para cada
placa detectada.
La conexión a la base de datos se encuentra dentro del archivo interface.py que verifica la
placa obtenida de la escena con la base de datos, misma que contiene el número de placa de todas
las personas registradas.

106
A. Diagrama de flujo del archivo interface.py

El archivo interface.py recibe toda la información resultante del procesamiento de


imagen de ambas cámaras, al mismo tiempo es el archivo que contiene el programa de la interfaz
gráfica del sistema que permite la visualización de los datos, como resultado de la coincidencia del
número de placa registrado en la base de datos.
Esta interfaz también expone la cantidad de espacios libres y ocupados en el parqueo, así como el
número asignado a cada vehículo que ingresa a la Universidad.

107
108
A.1. Diagramas de flujo de las funciones de recepción de datos del archivo interface.py

Los valores correspondientes a los espacios libres en el parqueo y los índices de referencia
de cada área son pasados como parámetro al archivo Core.py y por medio de este se envían los
mismos parámetros al archivo interface.py, en donde tales valores son almacenados en variables
globales para mostrarlos en la ventana principal del programa. (Ver Figura 3.47)

109
Figura 3.45 Ventana de inicio del sistema
Fuente: Elaboración propia

Figura 3.46 Ventana de visualización de datos del sistema


Fuente: Elaboración propia

3.3.4. Integración de ambos sistemas

Anteriormente se explicó y esquematizo el funcionamiento de ambos sistemas por separado,


en todo lo anterior se observa que cada algoritmo tiene un fichero cuya tarea se reducen a obtener
información de su respectiva cámara, por tanto, para integrar ambos algoritmos se ubica el sistema
que corresponde al parqueo, dentro del fichero Main.py del sistema de reconocimiento de placas.
110
Figura 3.47 Esquema grafico de la integración del sistema
Fuente: Elaboración propia,

Las cámaras se conectan en el archivo Main.py y el sistema inicia ejecutando el fichero interface.py

111
3.4. Conclusiones del capítulo

Con toda la información que se presentó en el capítulo 3, primeramente, se demuestra la


importancia de la visión artificial como herramienta en la automatización de tareas de forma
inteligente, mejorando y volviendo más eficiente los sistemas que requieren de una supervisión
humana constante.

Para la implementación de las funciones que ofrece la visión computacional es necesario


considerar elementos y equipos que se complementen entre sí para entregar óptimos resultados al
momento de aplicarlos.

El algoritmo utilizado para alcanzar el objetivo en esta parte del proyecto (KNN), si bien es
el más básico para la clasificación dentro del aprendizaje supervisado, también resulta ser muy
eficaz dentro de los algoritmos de predicción y clasificación. Lo implementado en el capítulo
responde correctamente al entrenamiento con imágenes que contienen letras y números con la
tipografía de las placas en Bolivia, la predicción de las matrículas detectadas en el video de prueba
responden óptimamente a un entrenamiento que contiene el cálculo de las posibles distancias con el
carácter más cercano, es decir con k=1, no obstante se evidencio que el algoritmo tiene un coste
computacional al momento de su ejecución, ya que debe consultar constantemente una gran
cantidad de datos para realizar las clasificaciones, en el presente caso la clasificación se limitó a 10
números y 26 letras sin considerar la letra “Ñ”.

Por otro lado, el lenguaje Python permitió la inclusión de una variedad de funciones que
hicieron más eficiente el desarrollo del sistema, permitiendo, almacenar y escribir archivos, crear
vectores y matrices de forma espontánea redimensionar las mismas, cálculos aritméticos y entre
otros; La combinación de todas estas tareas hizo posible estructurar el sistema de una forma
ordenada y jerárquica.

En compensación a lo anterior el uso de la librería Open CV permitió la aplicación de


diversas funciones que ofrecieron soluciones basadas en algoritmos matemáticos, matrices y
vectores, tratamiento de imágenes, y entre otros, dentro del algoritmo se hizo énfasis en el uso de
los contornos, listas, operaciones morfológicas, imágenes en escala de grises e imágenes binarias.
El manejo de las imágenes en escala de grises reduce el uso de memoria de la computadora,
así como el tiempo de procesamiento de las imágenes.

112
113
CAPÍTULO 4

IMPLEMENTACIÓN DEL SISTEMA

EN EL CASO DE ESTUDIO

4.1. Instalación de la red del sistema

La implementación del sistema inicia con la selección de los espacios para instalar las
cámaras dentro de la universidad. En el capítulo 3 se seleccionó el tipo de cámara IP a utilizar, así
como los elementos del sistema (ver Tabla 3.5), en el mismo capítulo también se determinó las
respectivas alturas de instalación.

4.1.1. Ubicación e instalación cámara de ingreso

Figura 4.1. Instalación de la cámara de ingreso


Fuente: Elaboración propia

En la Figura 4.1 se observa la cámara de ingreso al establecimiento, la misma se encuentra


instalada a una altura de 1 [m] respecto del suelo.

114
La cámara tiene integrado un sistema POE (Power over Ethernet) alimentación a través de
ethernet en español, lo que indica que no requiere de un cable de poder para su alimentación
eléctrica.

4.1.2. Cámara del área de parqueo

Figura 4.2. Instalación de la cámara del área de parqueo


Fuente: Elaboración propia

En la Figura 4.2 se observa la instalación de la cámara correspondiente a la evaluación del


área del parqueo, al igual que la cámara de ingreso esta utiliza un sistema (POE), y se encuentra
instalada a una altura de 5 [m].

Los elementos instalados como parte del sistema son los siguientes:

Al igual que las cámaras las características de los elementos complementarios a la red
fueron seleccionadas en el capítulo 3, (ver Tabla 3.5).

115
A. Grabador (NVR) y disco duro

Figura 4.3. Integración del disco duro en el sistema NVR


Fuente: Elaboración propia

En la Figura 4.3 se muestra la conexión del disco duro dentro del grabador NVR
(Networking video recorder) grabador de video en red en español; El disco duro tiene una capacidad
de 2 [TB] para una semana de grabación. El grabador también tiene integrado un sistema (POE).

B. Cable de red

Figura 4.4. Cable de red categoría 5e


Fuente: Elaboración propia

En la Figura 4.4 se observa el cable de red categoría 5e para la instalación del sistema, se
adquirió 60 [m] del mismo para la conexión de la red.

116
4.1.1. Visualización de los videos en el monitor

4.1.3.1. Cámara de ingreso al parqueo

Figura 4.5. Captura de video de la cámara de ingreso


Fuente: Elaboración propia

En la Figura 4.5 se observa la captura del video por medio de la cámara ubicada en la
entrada, la conexión se la realiza por medio de la red y el software de control de la cámara instalada
en la computadora.
La dirección IP de esta cámara es: 198.162.1.106

4.1.3.2. Cámara de parqueo

Figura 4.6 Captura de video de la cámara del área del parqueo


Fuente: Elaboración propia

La Figura 4.6 muestra el área de evaluación para el parqueo de los vehículos. El área
117
es separada en secciones por medio de líneas y referencias marcadas con los textos A1, A2 y A3. El
propósito de estas referencias es que el conductor se dirija a la ubicación designada por el sistema.
Así mismo la cámara evalúa si la sección designada se encuentra o no disponible.
La dirección IP de esta cámara es: 198.162.1.107

4.1.2. Ejecución del algoritmo-reconocimiento de placas

Para iniciar la ejecución del algoritmo correspondiente a la detección de las placas, primero
se generan los archivos de asignación y clasificación algoritmo (KNN), estos archivos son
clasificaciones.txt e imagenesclasificadas.txt
Los mismos se generan tras el entrenamiento de la siguiente imagen con el valor de k=1

Figura 4.7 Imagen de entrenamiento del algoritmo


Fuente: Elaboración propia

En la Figura 4.7 se muestran las letras con la tipografía boliviana dentro de las placas de los
vehículos.
Al terminar la asignación de las letras con los pesos correspondientes al equivalente de cada
letra en código ASCII, se obtienen los archivos que sirven al algoritmo como una base de datos el
cual es consultado para predecir la letra reconocida en la escena.

118
Figura 4.8 Detección de placas de los vehículos de ingreso a la Universidad
Fuente: Elaboración propia

La Figura 4.8. expone la detección de las matrículas de los vehículos ingresando a la


universidad, la Figura también presenta el reconocimiento de las placas después de entrenar la
imagen con los caracteres correspondientes a la tipografía boliviana (ver Figura 4.7). El tiempo de
reconocimiento de cada placa es de 2 segundos obteniendo los caracteres de forma precisa.

4.1.3. Ejecución del algoritmo-verificación de espacios disponibles

Para el inicio de la ejecución del algoritmo de evaluación de áreas en el parqueo, primero se


seleccionan las áreas de interés para su detección y disponibilidad. Para la demostración se
seleccionan tres áreas para tres movilidades registradas en la base de datos, y una cuarta persona
también registrada, pero como visita.
Las selecciones de estas cuatro áreas pueden observarse en la Figura 4.10

119
Figura 4.8 Base de datos con placas registradas
Fuente: Elaboración propia

En la Figura 4.8 se encuentran los datos de las personas registradas en la base de datos,
dentro de esta Tabla también se registran los números de las placas. Los campos correspondientes
son nombres, apellidos, cargo y número de placa. La conexión con la base de datos se realiza de
forma automática al iniciar el sistema

Figura 4.9 Archivo generado por el sistema con el reporte de placas detectadas
Fuente: Elaboración propia

La Figura 4.9 expone un reporte como un archivo Excel generado por el sistema al finalizar
la lectura de ambos videos, la información coincide perfectamente con las placas registradas en la
base de datos (ver Figura 4.8). Este archivo al igual que la información correspondiente a las
coordenadas seleccionadas para el parqueo, se guardan en una carpeta dentro del directorio de los
ficheros del sistema. El mismo puede ser utilizado para fines de registro y control.
120
Figura 4.10 Selección de las áreas de interés para el parqueo A1, A2, A3 e invitado
Fuente: Elaboración propia

121
La Figura 4.10. presenta las áreas marcadas para evaluar la presencia de un vehículo, esta
imagen mostrada en la Figura corresponde al primer fotograma de la captura de la cámara del
parqueo. Al finalizar la selección el programa genera una lista de las coordenadas de las áreas
seleccionadas en la imagen. Esta lista puede observarse en la parte inferior de la Figura 4.10.
La lista es guardada como un archivo (.csv) dentro de una carpeta llamada datos, el cual
posteriormente es posible visualizarlo con el programa Excel.
La carpeta que contiene las coordenadas es cargada al sistema para su posterior ejecución.

Figura 4.11 Selección de las áreas de interés para el parqueo A1, A2, A3 e invitado
Fuente: Elaboración propia

La Figura 4.11 exhibe el resultado de la ejecución del algoritmo que evalúa las áreas
seleccionadas anteriormente, (ver Figura 4.9), la Figura también presenta los índices de cada región,
haciendo referencia a los espacios ocupados o libres.

122
Estos índices son escritos por el programa en función a la cantidad de regiones seleccionadas
para su inspección, el algoritmo usa esta referencia para designar la región libre a los vehículos de
ingreso. Para la evaluación de las áreas seleccionadas se establece un máximo de 1233 pixeles
blancos y un umbral de iluminación máximo de 533, de esta forma el conteo de pixeles debe superar
el valor anterior para ser detectado como un automóvil dentro del espacio del parqueo. Estos valores
se definen dentro del programa para evitar la manipulación de los mismos, previniendo de esta forma
el mal desempeño del sistema.

4.2. Ejecución del sistema

La secuencia de ejecución del sistema es la siguiente:

Para la ejecución del algoritmo es necesario que todos los archivos generados después del
entrenamiento, así como el archivo que contiene las coordenadas de las áreas seleccionadas para la
evaluación dentro del parqueo, se encuentren en la misma carpeta que contiene a todos los ficheros
123
Python del sistema. Dentro de estas consideraciones es imprescindible que los programas de gestión
del servidor y base datos se encuentren ejecutados previamente.

Figura 4.12. Funcionamiento final del sistema


Fuente: Elaboración propia

La Figura 4.12 expone el resultado de la integración de ambos algoritmos, en la Figura se


puede observar los datos de la matricula hallada, la cantidad de espacios libres y ocupados en el
parqueo y la asignación del lugar al vehículo de ingreso. Los datos mostrados en la ventana
coinciden perfectamente con el que está registrado en la base de datos (ver Figura 4.8).

124
4.3. Conclusión del capítulo

El sistema propuesto para el presente proyecto se enfoca en la inspección de las matrículas


vehiculares y el área del parqueo, este enfoque tanto para la primera y segunda cámara se adecuo en
función al alcance definido para el proyecto.
Ambas cámaras se instalaron con el fin de obtener los resultados esperados, la cámara en el
ingreso capturo las imágenes de forma nítida y con un buen contraste, a una velocidad de 25 frames
por segundo, las pruebas se realizaron durante el día, y no se requirió de un sistema de iluminación
externo.
El sistema propuesto implementado establece la conexión requerida con la red de la
universidad, esta conexión se realizó por medio del programa Python, para realizar esta operación
se requirió de los datos correspondientes al usuario y contraseña de la cámara, al mismo tiempo de
la dirección IP y el puerto de entrada.
La respuesta del sistema en cuanto a la detección de las áreas disponibles en el parqueo,
funciono de forma correcta, al principio se detectaban las sombras de los vehículos y de algunas
personas haciendo que se marque el lugar como ocupado, esto se solucionó mejorando el rango de
pixeles para la imagen y los umbrales de contraste.
Finalmente, la integración de ambos sistemas presentó los resultados esperados detectando
las placas de los vehículos de prueba, evaluando las áreas del parqueo y asignando los lugares los
vehículos de ingreso.

125
5. CAPÍTULO 5

COSTOS DEL PROYECTO

5.1. Costos de implementación del proyecto

Tabla 5.1 Costos de los materiales e implementación del proyecto

Ítem Componente Características Costo/u Cantidad Costo Bs

1 Cámara IP 5 megapíxeles (MP) 630 2 1260


POE

2 NVR 8 puertos 650 1 650


3 Switch 5 puertos 10/100Mpbs 0 1 200
4 Disco duro 2 TB 350 1 350
5 Cable de red Categoría 5e 4 60 240

2700

Costos de los servidores y


programas
6 Librería Open CV Versión 4 gratuito - 0
7 MySQL/MaríaDB Servidor de base de datos gratuito - 0
8 Apache Servidor web gratuito - 0

9 Heidi SQL Aplicación de escritorio gratuito - 0


para gestión de base de
datos

10 XAMPP Aplicación de escritorio gratuito - 0


para gestión de
servidores
0

Costo total del proyecto 2700

126
Ítem T Característica Cantida
Componente Costo/u Costo Bs
abl s d
Costosade equipos que recogen datos (considerando 240 espacios de estacionamiento)
5 megapíxeles
1 5.2 Cámara IP 630.0 1 630.0
(MP) POE
Cos
tos 2 megapíxeles
2 Cámara IP 420.0 80 33,600.0
de POE
los
3 NVR 32 canales 4,100.0 1 4,100.0
mat
4 eria NVR 64 canales 7,500.0 1 7,500.0
les
8 puertos gigabit
5 e Switch 600.0 10 6,000.0
POE
6 imp Disco duro 6 TB 1,700.0 10 17,000.0
lem
7 Cable de red Categoría 5e 580.0 4 2,320.0
enta
ció
Instalación de
8 n Mano de obra 140.0 80 11,200.0
cámaras
del
pro 32 Gb de RAM
9 yect Computador con tarjeta 9,326.0 4 37,304.0
gráfica de 4Gb
o
en 119,654.0
la
Costos de actuadores (Actuador de entrada y salida + pantalla)
Uni
Apertura de 4 a
vers
Actuador de 6 segundos,
10 ida 8,282.0 1 8,282.0
Fuente: entrada 60W, interface
d RS 485

15.6" LED
Pantalla de
11 interfaz Dual 3,410.0 1 3,410.0
entrada
serial/USB

11,692.0
Costos de los servidores y programas

12 Librería Open CV Versión 4 gratuito - 0

Servidor de base
13 MySQL/MariaDB gratuito - 0
de datos

14 Apache Servidor web gratuito - 0

Aplicación de
escritorio para
15 Heidi SQL gratuito - 0
gestión de base
de datos

Aplicación de
escritorio para
16 XAMPP gratuito - 0
gestión de 127
servidores
Para protección
Elaboración propia

5.2. Análisis de beneficios

Dentro del mercado es posible encontrar una gama de cámaras de vigilancia que tienen
integrado un sistema de reconocimiento de matrículas, estas son llamadas cámaras inteligentes
ANPR (automatic number plate recognition) o reconocimiento automático de matrículas, no
obstante, sus precios oscilan entre los $ 3000 y $ 6000 ya que cuentan con un software que permite
la detección de las placas hasta 3.5 [m] de distancia, detección de vehículos en movimiento,
sistemas embebidos para el control de actuadores y gestión de parqueo, que hace de esta cámara un
sistema muy completo.
Como se mencionó anteriormente los precios de estas cámaras inteligentes son muy
elevados, lo que supone una gran inversión para la infraestructura que lo requiera.
El presente proyecto implementado en el caso de estudio tiene un costo de Bs 2700 tomando
en cuenta que se instaló un sistema de dos cámaras a la red de la universidad.
Considerando la adquisición de cámaras con mayor resolución el proyecto aun resultaría
factible para implementarlo dentro de un parqueo, en contraste con las cámaras ANPR.

El sistema implementado si bien no utiliza componentes con precios elevados o con


características muy precisas responde de forma correcta en las pruebas de campo, detectando las
placas de los vehículos que ingresaron a la universidad (en total 4 vehículos) reconociendo e
identificando las placas de todos ellos extrayendo al mismo tiempo la información de cada persona
registrada en la base de datos. También responde adecuadamente a la evaluación de los espacios
dentro del parqueo extrayendo información de las áreas, asignando las plazas libres a los
vehículos de ingreso.
En la Tabla 5.2 se muestra un listado de componentes con sus respectivos precios, en caso
de implementación en todas las áreas de estacionamiento dentro de la Universidad, una
implementación real.
Por tanto, considerando lo anterior y tomando en cuenta los alcances del presente proyecto,
el sistema responde con lo propuesto para determinar su fiabilidad como un sistema de
reconocimiento de placas y evaluación de áreas libres en un parqueo.

128
6. CAPITULO 6

MARCO CONCLUSIVO

6.1. Conclusiones

En el desarrollo del presente proyecto se lograron cumplir los objetivos que fueron
planteados y se obtuvieron las siguientes conclusiones.

Los algoritmos de localización de la zona de la placa y del reconocimiento de placas de


vehículos constituyen una aplicación de los sistemas de visión artificial debido a las operaciones
y decisiones que el hardware y software usado tiene que realizar.

Un punto sensible en un sistema de visión artificial es la cámara ya que se encarga de captar


la información de la escena real mediante una imagen, debido al poco control que se tiene sobre la
iluminación tanto de forma artificial como natural afectan drásticamente el funcionamiento del
prototipo es por ello que se puede evidenciar que cuando existía ambiente de cielo despejado y
mucha intensidad de luz se introducía en la escena algunas anormalidades como son el caso de las
sombras, iluminación y matices.
Dentro del sistema propuesto los elementos funcionaron de forma correcta conectándose a la
red de la universidad para extraer información de las cámaras.

En el desarrollo del sistema se presentaron problemas primero relacionados con la detección


del texto en las placas, algunas matriculas tenían letras ilegibles y en algunos casos estas estaban
borrosas, esto se solucionó mejorando las imágenes de entrenamiento para el algoritmo agregando
letras de distinto tamaño y morfología, después de tal operación se presentaron mejoras en el
reconocimiento de algunas letras, sin embargo, las placas con texto borroso no tienen una detección
óptima.

Para limpiar los pequeños detalles de la placa como guiones, comas, líneas o incluso textos
extras, se crearon funciones dentro del algoritmo que primero validaban si la imagen contenía una
letra y luego se limpiaba la lista de caracteres extraídos de la misma, este proceso mejoro el
reconocimiento y la predicción de los caracteres.
129
Se verifica también que, para una mejora en la detección de la matrícula, es necesario que
esta se encuentre de forma perpendicular al suelo, cuanto más pequeño sea el ángulo mucho mejor.
Es decir que el vehículo no se encuentre inclinado.

La predicción de los textos en las placas funciono de forma óptima y precisa con un valor de
K=1 dentro de algoritmo de clasificación (KNN) para los cuatro vehículos de prueba, con un
tiempo de reconocimiento de 2 segundos.

Para la detección de las áreas en el parqueo, las sombras de algunos autos afectaron la evaluación de
la región, esto se solucionó ampliando el rango de pixeles blancos detectados en la imagen y los
umbrales de los contrastes.

Ambos subsistemas se desarrollaron usando las diversas librerías de Open CV en


combinación con el lenguaje Python, el procesamiento de las imágenes se basó en el uso de
matrices, vectores y operaciones morfológicas, esto permitió procesar las imágenes de forma
práctica y directa.

Para reducir el tiempo de procesamiento del algoritmo las imágenes fueron recortadas al área
de interés y manejadas en escala de grises, a 25 frames por segundo.

Con todo esto se puede concluir que el sistema alcanzo los objetivos en su totalidad
implementando conceptos de visión artificial, algoritmos de inteligencia artificial y programación.

6.2. Recomendaciones

Para mejorar el sistema se recomienda instalar la cámara de ingreso, en una posición que
enfoque de frente a la matrícula del vehículo.
Así mismo, se recomienda pintar una zona de inspección en la entrada para que la cámara
pueda extraer toda la información de la placa a una determinada distancia.
Si el sistema es puesto en marcha durante la noche, se recomienda usar cámaras con sensores
de luz o en caso de no contar con los recursos necesarios también es válido usar luces led que
iluminen el área de inspección.

130
La distancia máxima de detección para la matricula depende de la resolución que tenga la
cámara, sin embargo, una con 2 [MP] de resolución es lo mínimo recomendable.
Si el sistema será implementado en una infraestructura nueva se recomienda conocer a
detalle las características técnicas de la red (ancho de banda del internet, tipo de tecnología dentro
de sus elementos, tipo de topología de la red y entre otros), la falla de uno de los elementos pone en
riesgo toda la aplicación.
Se recomienda utilizar sistemas con tecnología (POE), esto reduce los costos al no utilizar
cables de poder para cada aparato.
El procesamiento de imágenes demanda de una buena tarjeta gráfica, así como un buen
procesador lo mínimo recomendable es de 2.3 [GHz] y 4 [GB] de memoria RAM.

6.3. Trabajos futuros


La continuación a este proyecto propone implementar el sistema de gestión de parqueo en
una zona que cubra áreas más amplias, considerando la inspección de lugares para docenas de autos,
y una extensa red de cámaras incluyendo servidores para gestionar los datos en gran parte de la
infraestructura de la universidad.
También se considera el uso de un sistema embebido que controle la barra en la entrada,
automatizando el ingreso de vehículos al campus de la universidad. Así mismo el de incorporar
algoritmos más robustos para el reconocimiento de las placas haciendo uso de redes neuronales y
procesos de aprendizaje no supervisado, permitiendo de esta forma detectar placas que sean de otros
países.

131
BIBLIOGRAFÍA

1. Setchell, C.J. (1997) Applications of computer Vision to Road-traffic Monitoring (Tesis doctoral
no publicada). University of Bristol

2. Sánchez, Á., & Ana Moreno; Vélez, J. (2015). Visión por computador.
3. Rosales, L. (2016). Diseño e implementación de un parqueo inteligente utilizando Arduino e
internet de las cosas. Universidad Politécnica Salesiana.

4. Radha, R. (2012). A novel approach to extract text from license plate of vehicles. Signal &
Image Processing.

5. Parking, Z.S. (2020). Sistema Guiado de Parking.

6. Paredes, J. C. (2015). Teoría y aplicación de la informática 2 (Visión Artificial).


7. Monzó R.S.i. (2014). Automatismos industriales. Conceptos y procedimientos.
8. Jin, L., Xian H., Bie, J., Sun, Y., Hou, H., y Niu, Q. (2012 Junio) License Plate Recognition
Algorithm for passenger cars in Chinese Residential Areas.

9. Iparkings. (2018). Casos de éxito- parqueos inteligentes.

10. Hinojosa, C. (2019). Semáforo Inteligente.


11. Gavilanes, J. (2020). Aplicaciones de la visión artificial.
12. Fernandez, C.J.S., y Consuegra, V.S. (2005). Reconocimiento óptico de caracteres (OCR)

13. Elipse, S. T. (2020). Control de acceso vehicular.


14. Draghici, S. (1997). A neural network based artificial visión system for license plate
recognition

15. Developer, C. (2017). Técnica de Machine Learning para la detección de objetos.


16. Comelli, P., Ferragina, P., Granieri, M., y Stabile, F. (1995, Nov). Optical recognition of motor
vehicle license plates.

17. Avendaño Marco, G. C. (2019). Desarrollo de un prototipo de control de espacios de


estacionamientos libres mediante el uso de visión artificial en el edificio de la Carrera de Ingeniería
en Sistemas Computacionales de la Universidad de Guayaquil.

18. Anagnostopoulos, C.-N, Anagnostopoulos, I., Psoroulas, I., Loumos, V., y Kayafas, E. (2008).
License Plate recognition from still images and video sequences.
19. 123RF. (2020). Cámara CCTV en Garaje de estacionamiento. sistema de cámara de seguridad
132
interior que opera en el área de garaje de estacionamiento subterráneo.html

20. Zunino, R., y Rovetta, S. (2000, Feb). Vector quantization for license-plate location and image
coding.

21. Lee, H.-J., Chen, S.-Y., y Wang, S.-Z (2004, Aug). Extraction and recognition of license plates
of motrocycles and vehicles on highways.

22. Hongliang, B., y Changping, L. (2004, Aug). A hybrid license plate extraction method based on
edge statistics and morphology

23. Wu, C., L. C., Weng, C.H., Kuan, T.S., y Ng, K (2005 Aug.) A license plate recognition
system. In machine learning and cybernetics, 2005.

24. Buch, N., Velastin, S., y Orwell, J. (2011, Sept). A review of computer vision techniques for
the analysis of urban.

25. Moreno, R. F. (2020, mayo 29). El parque automotor del país creció un 5.4% y Santa Cruz es la
ciudad con más vehículos en Bolivia.

133
ANEXOS

Anexo A. Archivo clasificaciones.txt (KNN) K=1 valores de asignación

4.900000000000000000e+01
7.800000000000000000e+01
7.100000000000000000e+01
7.200000000000000000e+01
5.100000000000000000e+01
8.900000000000000000e+01
4.900000000000000000e+01
7.800000000000000000e+01
4.900000000000000000e+01
5.100000000000000000e+01
8.300000000000000000e+01
4.900000000000000000e+01
6.900000000000000000e+01
5.500000000000000000e+01
6.800000000000000000e+01
5.200000000000000000e+01
6.900000000000000000e+01
6.600000000000000000e+01
5.200000000000000000e+01
7.800000000000000000e+01
4.900000000000000000e+01
7.100000000000000000e+01
5.100000000000000000e+01
7.200000000000000000e+01
7.800000000000000000e+01
5.300000000000000000e+01
6.800000000000000000e+01
8.300000000000000000e+01
7.300000000000000000e+01
5.100000000000000000e+01
6.700000000000000000e+01
4.900000000000000000e+01
7.200000000000000000e+01
7.100000000000000000e+01
7.800000000000000000e+01
5.500000000000000000e+01
6.600000000000000000e+01
6.800000000000000000e+01
8.400000000000000000e+01
7.000000000000000000e+01
8.000000000000000000e+01
8.200000000000000000e+01

134
8.900000000000000000e+01
6.900000000000000000e+01
7.300000000000000000e+01
7.800000000000000000e+01
7.600000000000000000e+01
8.900000000000000000e+01
8.500000000000000000e+01
7.500000000000000000e+01
9.000000000000000000e+01
6.700000000000000000e+01
8.800000000000000000e+01
7.100000000000000000e+01
6.600000000000000000e+01
5.000000000000000000e+01
5.600000000000000000e+01
5.200000000000000000e+01
8.000000000000000000e+01
6.600000000000000000e+01
6.500000000000000000e+01
5.100000000000000000e+01
5.700000000000000000e+01
5.000000000000000000e+01
7.200000000000000000e+01
5.300000000000000000e+01
4.900000000000000000e+01
6.700000000000000000e+01
6.800000000000000000e+01
5.600000000000000000e+01
5.500000000000000000e+01
5.400000000000000000e+01
5.500000000000000000e+01
5.300000000000000000e+0

135
Anexo B. Muestra del archivo imagenesclasificadas.txt (KNN) K=1 resultados de los cálculos
de las distancias a cada letra

0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
1.080000000000000000e+02 2.230000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 1.590000000000000000e+02
4.400000000000000000e+01 0.000000000000000000e+00
0.000000000000000000e+00 2.500000000000000000e+01
9.100000000000000000e+01 1.460000000000000000e+02
1.460000000000000000e+02 1.460000000000000000e+02
1.920000000000000000e+02 2.410000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.140000000000000000e+02
1.650000000000000000e+02 1.460000000000000000e+02
7.300000000000000000e+01 1.050000000000000000e+02
1.870000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
136
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.190000000000000000e+02 2.190000000000000000e+02
2.190000000000000000e+02 2.210000000000000000e+02
2.380000000000000000e+02 2.540000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
3.600000000000000000e+01 1.510000000000000000e+02
2.490000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
8.000000000000000000e+00 5.700000000000000000e+01
1.070000000000000000e+02 1.710000000000000000e+02
2.370000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 7.700000000000000000e+01
1.590000000000000000e+02 2.060000000000000000e+02
2.380000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
137
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 8.300000000000000000e+01
1.980000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 8.300000000000000000e+01
1.970000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 8.300000000000000000e+01
1.970000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 8.300000000000000000e+01
1.980000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 2.550000000000000000e+02
2.550000000000000000e+02 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 8.300000000000000000e+01
1.980000000000000000e+02 2.550000000000000000e+02

138
Anexo C. Imágenes para el entrenamiento y prueba del sistema

Fuente: Elaboración propia

139
Anexo D. Resultados negativos de puesta en marcha del reconocimiento de placas

Fuente: Elaboración propia


140
Anexo E. Estudio de flujo de vehículos de ingreso a la Universidad

Cómo complemento al presente proyecto de grado se realizó un estudio de flujo de vehículos


ingresantes a la Universidad Católica Boliviana Unidad Académica Santa Cruz de la Sierra, se
efectuó el levantamiento de datos durante una semana hábil en horas de la mañana hasta las 13:00
p.m. Considerando que aún no se retornó a clases presenciales normales en la Universidad, la
cantidad de estudiantes ingresados durante este levantamiento es parcial de lo que sería en épocas
normales, asimismo de docentes también. Durante el levantamiento de datos se pudo constar que la
mayoría de los ingresantes a la Universidad son del tipo estudiante, de las carreras de Ciencias de la
Salud como ser odontología, medicina fisioterapia y kinesiología puesto que estas carreras
requieren obligatoriamente de prácticas en la Universidad. Se consideró el ingreso de vehículos por
tipo de usuario: estudiantes, personal administrativo y personal docente, concluyendo así a las
siguientes gráficas mostradas a continuación. Las gráficas están filtradas por fecha, cada gráfica
pertenece a cada fecha del levantamiento de datos.

Fuente: Elaboración propia

141
Fuente: Elaboración propia

Fuente: Elaboración propia

142
Fuente: Elaboración propia

Fuente: Elaboración propia

143
Usuarios por Suma de
Fecha Cantidad
17/5/2021 40
Administrativo 13
Docente 3
Estudiante 24
18/5/2021 35
Administrativo 12
Docente 3
Estudiante 20
19/5/2021 35
Administrativo 14
Docente 3
Estudiante 18
20/5/2021 47
Administrativo 14
Docente 4
Estudiante 29
21/5/2021 41
Administrativo 11
Docente 3
Estudiante 27
Total general 198

Fuente: Elaboración propia

Fuente: Elaboración propia

144
Fuente: Elaboración propia

145
Anexo F. Registro de flujo de vehículos de ingreso a la Universidad (datos de muestra para condiciones
normales dentro de la universidad)

N° FECHA HORA PLACA USUARIO Cantidad


1 17/5/2021 07:07:00 2241XLU Estudiante 1
2 17/5/2021 07:12:00 4216IHI Estudiante 1
3 17/5/2021 07:14:00 1620EZL Estudiante 1
4 17/5/2021 07:17:00 2619UGL Estudiante 1
5 17/5/2021 07:19:00 3528GTS Docente 1
6 17/5/2021 07:21:00 4452AIE Estudiante 1
7 17/5/2021 07:24:00 3433KBY Estudiante 1
8 17/5/2021 07:26:00 3118CCL Docente 1
9 17/5/2021 07:28:00 3626KUL Estudiante 1
10 17/5/2021 07:31:00 4448KBN Estudiante 1
11 17/5/2021 07:33:00 4428BHD Estudiante 1
12 17/5/2021 07:36:00 2430GHU Administrativo 1
13 17/5/2021 07:41:00 3241XXU Estudiante 1
14 17/5/2021 07:48:00 4709FXS Administrativo 1
15 17/5/2021 07:50:00 2136XLX Estudiante 1
16 17/5/2021 07:52:00 3140XLU Administrativo 1
17 17/5/2021 07:55:00 2239LIH Estudiante 1
18 17/5/2021 07:58:00 4473YLX Administrativo 1
19 17/5/2021 07:59:00 6720CCU Administrativo 1
20 17/5/2021 08:00:00 5241IFL Administrativo 1
21 17/5/2021 08:01:00 5161ACY Estudiante 1
22 17/5/2021 08:03:00 4410GIG Estudiante 1
23 17/5/2021 08:04:00 1234LHG Administrativo 1
24 17/5/2021 08:06:00 1128XTD Administrativo 1
25 17/5/2021 08:10:00 2439XZI Estudiante 1
26 17/5/2021 08:12:00 2742XXF Administrativo 1
27 17/5/2021 08:15:00 4708TTU Estudiante 1
28 17/5/2021 08:18:00 4497PLX Administrativo 1
29 17/5/2021 08:20:00 4497PLH Estudiante 1
30 17/5/2021 08:23:00 4703HET Administrativo 1
31 17/5/2021 08:25:00 3345XHU Estudiante 1
32 17/5/2021 08:30:00 4120CBI Administrativo 1
33 17/5/2021 08:32:00 3121XXL Administrativo 1
34 17/5/2021 08:35:00 4709SUX Estudiante 1
35 17/5/2021 08:36:00 4218RUT Estudiante 1
36 17/5/2021 08:40:00 4430XFT Estudiante 1
37 17/5/2021 08:43:00 4552AKU Estudiante 1
38 17/5/2021 08:46:00 4060EAF Estudiante 1
39 17/5/2021 08:48:00 2307BFI Estudiante 1
40 17/5/2021 08:51:00 4465YRL Docente 1
146
41 18/5/2021 07:15:00 3792FRS Estudiante 1
42 18/5/2021 07:18:00 4100VAR Estudiante 1
43 18/5/2021 07:21:00 5162NRP Docente 1
44 18/5/2021 07:28:00 2030HUK Docente 1
45 18/5/2021 07:32:00 4042LIT Docente 1
46 18/5/2021 07:36:00 3623GAK Estudiante 1
47 18/5/2021 07:42:00 4451LMU Estudiante 1
48 18/5/2021 07:48:00 3346ZKI Administrativo 1
49 18/5/2021 07:52:00 5212TEK Administrativo 1
50 18/5/2021 07:55:00 4221XFI Estudiante 1
51 18/5/2021 08:00:00 4120GGN Administrativo 1
52 18/5/2021 08:02:00 2480RLN Administrativo 1
53 18/5/2021 08:04:00 4631XXI Estudiante 1
54 18/5/2021 08:06:00 2237HGZ Administrativo 1
55 18/5/2021 08:10:00 1374LZU Estudiante 1
56 18/5/2021 08:16:00 3924ZIH Administrativo 1
57 18/5/2021 08:18:00 5026LXZ Administrativo 1
58 18/5/2021 08:21:00 2041XLX Estudiante 1
59 18/5/2021 08:23:00 3875XVI Administrativo 1
60 18/5/2021 08:26:00 5144GHU Administrativo 1
61 18/5/2021 08:30:00 5549GZU Administrativo 1
62 18/5/2021 08:34:00 3048ZHI Estudiante 1
63 18/5/2021 08:36:00 5621HZM Administrativo 1
64 18/5/2021 08:39:00 4753GTL Administrativo 1
65 18/5/2021 08:41:00 3817AIS Estudiante 1
66 18/5/2021 08:48:00 5341ZIG Estudiante 1
67 18/5/2021 08:52:00 3068KBS Estudiante 1
68 18/5/2021 08:58:00 5217BNI Estudiante 1
69 18/5/2021 09:00:00 1114CLE Estudiante 1
70 18/5/2021 09:01:00 3849FTF Estudiante 1
71 18/5/2021 09:03:00 2033OTN Estudiante 1
72 18/5/2021 09:05:00 5648HUI Estudiante 1
73 18/5/2021 09:08:00 2545XLX Estudiante 1
74 18/5/2021 09:10:00 4240XFU Estudiante 1
75 18/5/2021 09:15:00 1132XHZ Estudiante 1
76 19/5/2021 07:08:00 2088URU Estudiante 1
77 19/5/2021 07:11:00 3315GHZ Estudiante 1
78 19/5/2021 07:13:00 4051TRN Estudiante 1
79 19/5/2021 07:16:00 4096UPG Estudiante 1
80 19/5/2021 07:22:00 4477LFB Docente 1
81 19/5/2021 07:26:00 2443LDC Docente 1
82 19/5/2021 07:31:00 5531XGZ Docente 1
83 19/5/2021 07:38:00 5594PYF Estudiante 1
84 19/5/2021 07:41:00 2936GIU Estudiante 1
85 19/5/2021 07:47:00 3742IRS Administrativo 1
86 19/5/2021 07:49:00 5182SAN Administrativo 1

147
87 19/5/2021 07:52:00 4250BTB Administrativo 1
88 19/5/2021 07:56:00 4269UPX Administrativo 1
89 19/5/2021 08:00:00 4197GHM Administrativo 1
90 19/5/2021 08:02:00 2741GIZ Administrativo 1
91 19/5/2021 08:03:00 3348AZU Administrativo 1
92 19/5/2021 08:08:00 2634LIV Administrativo 1
93 19/5/2021 08:11:00 1838YUT Administrativo 1
94 19/5/2021 08:16:00 2431XXT Administrativo 1
95 19/5/2021 08:22:00 3095EHN Administrativo 1
96 19/5/2021 08:28:00 4799NDY Administrativo 1
97 19/5/2021 08:36:00 2272FEI Administrativo 1
98 19/5/2021 08:46:00 2726GDP Administrativo 1
99 19/5/2021 08:52:00 4483ZPI Estudiante 1
100 19/5/2021 08:55:00 4812LGI Estudiante 1
101 19/5/2021 09:00:00 4721XHR Estudiante 1
102 19/5/2021 09:08:00 4552XGT Estudiante 1
103 19/5/2021 09:12:00 4041ZTH Estudiante 1
104 19/5/2021 09:16:00 3448LXI Estudiante 1
105 19/5/2021 09:21:00 1289AUX Estudiante 1
106 19/5/2021 09:21:00 4021XXI Estudiante 1
107 19/5/2021 09:23:00 3048GIP Estudiante 1
108 19/5/2021 09:26:00 2041XGB Estudiante 1
109 19/5/2021 09:28:00 5430XXF Estudiante 1
110 19/5/2021 09:30:00 5621XLU Estudiante 1
111 20/5/2021 07:00:00 3165APX Estudiante 1
112 20/5/2021 07:10:00 6582FSY Estudiante 1
113 20/5/2021 07:13:00 4181XGL Estudiante 1
114 20/5/2021 07:15:00 4112ZHX Estudiante 1
115 20/5/2021 07:17:00 1214HXZ Estudiante 1
116 20/5/2021 07:19:00 3411IEI Docente 1
117 20/5/2021 07:20:00 4473XZO Docente 1
118 20/5/2021 07:22:00 2434OFH Estudiante 1
119 20/5/2021 07:23:00 2436GIP Estudiante 1
120 20/5/2021 07:25:00 2645PGT Docente 1
121 20/5/2021 07:27:00 4524AMD Estudiante 1
122 20/5/2021 07:29:00 4765DIS Docente 1
123 20/5/2021 07:32:00 3863CUA Estudiante 1
124 20/5/2021 07:34:00 1863FZI Estudiante 1
125 20/5/2021 07:36:00 5794ACD Administrativo 1
126 20/5/2021 07:38:00 5798UBE Administrativo 1
127 20/5/2021 08:07:00 2897MAE Estudiante 1
128 20/5/2021 08:12:00 5995GAY Administrativo 1
129 20/5/2021 08:17:00 5872OTG Administrativo 1
130 20/5/2021 08:20:00 5322DMI Administrativo 1
131 20/5/2021 08:25:00 3817FZI Estudiante 1
132 20/5/2021 08:25:00 4989KSI Estudiante 1

148
133 20/5/2021 08:25:00 3639TPU Administrativo 1
134 20/5/2021 08:26:00 3492ABS Estudiante 1
135 20/5/2021 08:26:00 4157XRI Administrativo 1
136 20/5/2021 08:26:00 5881MKG Administrativo 1
137 20/5/2021 08:27:00 2521KKL Estudiante 1
138 20/5/2021 08:30:00 2987LKI Administrativo 1
139 20/5/2021 08:31:00 4709SOK Estudiante 1
140 20/5/2021 08:31:00 1125ENQ Administrativo 1
141 20/5/2021 08:32:00 4562SKS Administrativo 1
142 20/5/2021 08:35:00 2556GSA Administrativo 1
143 20/5/2021 08:40:00 6265SGP Estudiante 1
144 20/5/2021 08:40:00 2982ABZ Administrativo 1
145 20/5/2021 08:45:00 4049GZK Administrativo 1
146 20/5/2021 08:45:00 2985KPL Estudiante 1
147 20/5/2021 08:46:00 3457KCI Estudiante 1
148 20/5/2021 08:47:00 3487KIC Estudiante 1
149 20/5/2021 08:50:00 3889ALF Estudiante 1
150 20/5/2021 08:50:00 5152NRP Estudiante 1
151 20/5/2021 08:50:00 3615MLF Estudiante 1
152 20/5/2021 08:53:00 4726FFL Estudiante 1
153 20/5/2021 08:55:00 2307OPR Estudiante 1
154 20/5/2021 08:56:00 4269PDB Estudiante 1
155 20/5/2021 08:56:00 4692ZPC Estudiante 1
156 20/5/2021 08:56:00 2987FZR Estudiante 1
157 20/5/2021 09:00:00 5978APL Estudiante 1
158 21/5/2021 08:00:00 4520ALP Administrativo 1
159 21/5/2021 08:00:00 1291BEM Administrativo 1
160 21/5/2021 08:01:00 1515ZXA Administrativo 1
161 21/5/2021 08:09:00 4092LST Administrativo 1
162 21/5/2021 08:13:00 4488TUN Administrativo 1
163 21/5/2021 08:15:00 4465YRL Administrativo 1
164 21/5/2021 08:15:00 5014TYR Administrativo 1
165 21/5/2021 08:16:00 4451EPR Administrativo 1
166 21/5/2021 08:20:00 1819HPT Administrativo 1
167 21/5/2021 08:22:00 3105GAY Estudiante 1
168 21/5/2021 08:22:00 5838YPA Estudiante 1
169 21/5/2021 08:25:00 4436XLX Administrativo 1
170 21/5/2021 08:33:00 1423ARG Estudiante 1
171 21/5/2021 08:39:00 4451TOR Administrativo 1
172 21/5/2021 08:55:00 4761TZX Docente 1
173 21/5/2021 09:10:00 5005ZZA Estudiante 1
174 21/5/2021 09:13:00 5892ALF Docente 1
175 21/5/2021 09:19:00 3433KBY Estudiante 1
176 21/5/2021 09:25:00 4954ALP Estudiante 1
177 21/5/2021 09:32:00 5323FKQ Estudiante 1
178 21/5/2021 09:35:00 2395ACH Estudiante 1

149
179 21/5/2021 09:40:00 2567HCA Estudiante 1
180 21/5/2021 10:10:00 4331PRC Estudiante 1
181 21/5/2021 10:20:00 2454XFC Estudiante 1
182 21/5/2021 10:29:00 5429ART Estudiante 1
183 21/5/2021 10:38:00 1445PDI Docente 1
184 21/5/2021 11:00:00 2995BDI Estudiante 1
185 21/5/2021 13:15:00 2982GPB Estudiante 1
186 21/5/2021 13:29:00 3956YFB Estudiante 1
187 21/5/2021 13:45:00 2959BYF Estudiante 1
188 21/5/2021 14:15:00 4952BFB Estudiante 1
189 21/5/2021 14:25:00 2510YPH Estudiante 1
190 21/5/2021 15:20:00 2519CHI Estudiante 1
191 21/5/2021 15:35:00 1980BRA Estudiante 1
192 21/5/2021 15:40:00 1903DLT Estudiante 1
193 21/5/2021 15:59:00 2014ALP Estudiante 1
194 21/5/2021 16:30:00 4581ALF Estudiante 1
195 21/5/2021 16:35:00 4950PFS Estudiante 1
196 21/5/2021 16:36:00 4411FMU Estudiante 1
197 21/5/2021 16:39:00 3986RUT Estudiante 1
198 21/5/2021 16:45:00 3869RIU Estudiante 1
Fuente: Elaboración propia

150
El cronograma de actividades para el desarrollo del proyecto se muestra a continuación:

Fecha Duración Fecha Fin


N° Actividad Nombre de actividad
de en días
inicio
1 Actividad 1 Curso intensivo de capacitación 10-01-21 15 25-01-21
de manejo de base de datos
2 Actividad 2 Curso de capacitación
intensivo de programación 26-01-21 15 10-02-21
de sistemas con visión
artificial
3 Actividad 3 Análisis de software a 11-02-21 4 15-02-21
utilizar para la base de
datos
4 Actividad 4 Selección del software para el
diseño de la base de datos de 16-02-21 2 18-02-21
las placas de los vehículos
5 Actividad 5 Diseño y programación de la
base de datos para el caso de 19-02-21 10 01-03-21
estudio propuesto

6 Actividad 6 Evaluación del espacio 02-03-21 3 05-03-21


disponible de estacionamiento
del caso de estudio
7 Actividad 7 Análisis y selección de
equipos de cámaras y monitor 06-03-21 5 11-03-21
a utilizar de acuerdo a
características técnicas
Adquisición de los equipos en 12-03-21 21 02-04-21
8 físico a implementar en el caso
Actividad 8 de estudio

9 Actividad 9 Programación e
implementación de los 03-04-21 14 17-04-21
componentes del
sistema propuesto
10 Actividad 10 Pruebas y validación 18-04-21 15 03-05-21
de
funcionamiento
del sistema
Actividad 11 Análisis financiero del 04-05-21 14-05-21
11 proyecto propuesto

12 Actividad 12
21-05-21 10 31-05-21
151
Redacción y corrección de
conclusiones y recomendaciones
del documento.

152
El diagrama de Gantt de las actividades detalladas anteriormente, se muestran en el siguiente
gráfico

153
Anexo G. Ubicación de Switches y equipos implementados en la Universidad

Switch cámara A

Fuente: Elaboración propia


154
Anexo H. Cotización de inversión para implementación en la Universidad

155

También podría gustarte