Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.3. Objetivos...............................................................................................................................7
1.4. Motivación............................................................................................................................8
1.5. Justificación..........................................................................................................................8
1.6. Delimitación..........................................................................................................................9
1.6.1. Límites................................................................................................................................9
1.6.2. Alcances.............................................................................................................................9
2.1. Introducción..........................................................................................................................11
BIBLIOGRAFÍA...................................................................................................................129
ANEXOS................................................................................................................................131
Índice de Figuras
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
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.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.
Figura 1.3. Instalaciones del caso de éxito en la Universidad Católica de Montevideo, Uruguay
Fuente: (iParkings, 2018)
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.
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.
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
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.
21
sistema. Además, se está contribuyendo al desarrollo tecnológico dentro de las instalaciones 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:
• 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.
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.
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.
26
Figura 2.2 Extracción de la región de la placa de un automóvil
Fuente: https://bit.ly/3dPhCLY
27
Figura 2.3 Ejemplo de imagen binarizada
Fuente: https://bit.ly/3dPhCLY
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.
29
Figura 2.5 Comparación de plantillas
Fuente: (Setchell, 1997).
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
√ 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
31
Figura 2.6 Búsqueda de la clase “X” en base a sus “K” vecinos más cercanos
Fuente: https://bit.ly/2UqJA9N
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
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.
37
38
Figura 2.12. Recorrido de un árbol de decisión para OCR
Fuente: Elaboración propia
2.5. Conclusiones del capitulo
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
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.
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.
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 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.
44
Tabla 3.1. Promedio de anchura y longitud de coches urbanos 2019
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
Fuente: https://n9.cl/wd88o
46
3.2.2.2. Cámara para el parqueo
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.
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:
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.
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
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
Para cumplir el propósito del proyecto se requiere de cámaras con las siguientes características:
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
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.
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.
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.
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.6.Comunidad científica. - Existe una gran participación académica utilizando MATLAB, muchas
de las investigaciones y demostraciones se comparten utilizando esta herramienta.
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.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.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.
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.
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.
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.
*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[º]
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:
63
Figura 3.13. Arranque de MySQL en el software Xampp
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.
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.
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:
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.
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.
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.
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.
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.
71
Figura 3.20 Valores asignados para la clasificación
Fuente: Elaboración propia
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:
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.
Texto de placa-
prueba Representación en ASCII de cada letra
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
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:
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.
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
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.
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
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
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.
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
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.
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.
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
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.
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.
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.
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.
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
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).
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
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
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
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.
112
113
CAPÍTULO 4
EN EL CASO DE ESTUDIO
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.
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.
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
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
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
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
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
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
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
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.
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.
124
4.3. Conclusión del capítulo
125
5. CAPÍTULO 5
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
Servidor de base
13 MySQL/MariaDB gratuito - 0
de datos
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
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.
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.
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.
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.
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.
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
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
139
Anexo D. Resultados negativos de puesta en marcha del reconocimiento de placas
141
Fuente: Elaboración propia
142
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
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)
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:
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
155