Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ciencias Empresariales
2021
Resumen
Este proyecto se presenta para dar conformidad a los requisitos exigidos por la
Universidad del Bío-Bío en el proceso de titulación para la carrera de ingeniería civil
informática. El proyecto titulado “Reconocimiento automático de patentes
vehiculares a partir de video en tiempo real”
En el siguiente trabajo el tema principal a tratar es el sistema de reconocimiento
automático de patentes. En este proyecto se brindará una de las posibles soluciones a
un problema encontrado en la universidad del Bío-Bío específicamente en el
estacionamiento de la universidad, para abordar este problema se desarrollará un
software basado en código abierto, que sea de bajo costo y sea capaz de detectar
patentes de manera automática para poder registrar a los vehículos que entran y salen
del establecimiento.
El software funciona con Tensorflow que es una biblioteca de código abierto
desarrollada por Google que se utiliza para el aprendizaje automático como la
detección de objetos utilizando redes neuronales. También se utiliza un motor de
reconocimiento óptico de caracteres llamado Easyocr.
Para validar el software en su primera versión se realizaron una serie de pruebas con
distintos conjuntos de datos, concluyendo a través de estos resultados entregados que
el software sirve para la idea propuesta, pero tiene un camino de mejoras y
desarrollos que recorrer.
Palabras Claves: EasyOCR, Tensorflow, OpenCV, Técnicas OCRs, Algoritmos,
Reconocimiento, Patentes, Vehículos,
ii
Abstract
This project is presented in order to comply with the requirements demanded by the
Universidad del Bío-Bío in the degree process for the degree in computer science civil
engineering. The project entitled "Automatic recognition of vehicle patents from video
in real time"
In the following work, the main topic to be discussed is the automatic patent
recognition system. This project will provide one of the possible solutions to a
problem found in the Bío-Bío university specifically in the university parking lot. To
address this problem, open-source software will be developed that is low-cost and
capable of to detect patents automatically to be able to register the vehicles that enter
and leave the establishment.
The software works with TensorFlow which is an open-source library developed by
Google that is used for machine learning such as object detection using neural
networks. An optical character recognition engine called EasyOcr is also used.
To validate the software in its first version, a series of tests were carried out with
different data sets, concluding through these delivered results that the software
serves the proposed idea, but has a path of improvements and developments to go
through.
Keywords: EasyOCR, Tensorflow, OpenCV, OCR Techniques, Algorithms,
Recognition, Patents, Vehicles
iii
Índice General
Contenido
1.- INTRODUCCIÓN ........................................................................................................... 1
iv
4.- ESTADO DEL ARTE .................................................................................................... 16
5.1 Alcance.................................................................................................................. 24
restricciones:............................................................................................................ 25
5.2 Objetivo del Software .......................................................................................... 25
v
Costos de personal ................................................................................................... 30
Costo de desarrollo .................................................................................................. 31
Costos asociados al hardware y software .............................................................. 32
6.4 Conclusiones de Factibilidad .............................................................................. 32
Referencias....................................................................................................................... 65
vi
Índice de Tablas
Figura. 1 sistema Convencional ANPR………………………………………………………………… 6
Figura. 2 diagrama de Metodología Ciclo de vida o Cascada………………………………… 11
Figura. 3 diagrama de Metodología Incremental………………………………………………… 12
Figura. 4 estructura Red Neuronal Fuente: IBM El Modelo de Redes Neuronales……….. 21
vii
Índice de Figuras
TABLA 1: DETALLE CASO DE USO INICIAR SISTEMA ANPR ……………………………. 35
TABLA 2: DETALLE INICIO DE SECION ENCARGADO DE TURNO ……………………. 36
TABLA 3: DETALLE CASO DE USO REGISTRO NUEVO VEHICULO …………………… 37
TABLA 4: DETALLE CASO DE USO ADMINISTRADOR DEL SISTEMA ………………. 38
TABLA 5: DETALLE CASO DE USO REGISTRO DE NUEVOS USUARIOS ……………. 38
TABLA 6: DETALLE CASO DE USO MANTENCION DE LOS DATOS …………………… 39
TABLA 7: RESULTADOS PRUEBA 1 ………………………………………………………………… 42
TABLA 8: RESULTADOS PRUEBA 2 ………………………………………………………………… 45
TABLA 9: RESULTADOS PRUEBA 3 ………………………………………………………………… 47
viii
Capítulo 1
1.- INTRODUCCIÓN
El área central en el cual se enfoca este proyecto es la visión artificial y las redes
neuronales, que puede ser explicada es dos. El primer tema a tratar es el
procesamiento digital de imágenes, en el trabajo de Mery, D. (2004), Se define como
“proceso mediante el cual se toma una imagen y se produce una versión modificada
de esta imagen”, algunos ejemplos del procesamiento digital de una imagen son
cuando se quiere ciertos elementos de la imagen eliminando algún otro elemento o
cuando se realizan modificaciones dentro de esta para mejorar luminosidad, el
movimiento de la imagen, etc. El segundo tema que se analiza en el trabajo de Mery,
D. (2004), es el análisis de la imagen que se define como el proceso que a partir de
una imagen se pueden obtener mediciones, interpretaciones o tomar decisiones. El
análisis consiste en cinco etapas: la primera es la adquisición de la imagen que es
como obtenemos la imagen que se quiere estudiar, en segundo lugar el
preprocesamiento que busca mejorar la calidad de la imagen, en tercer lugar está la
segmentación que es la identificación exacta del objeto que queremos estudiar dentro
de la imagen, en cuarto lugar está la medición (extracción de características) donde
se realiza una medición objetiva de atributos de interés y en último lugar está la
interpretación (clasificación) de acuerdo a los valores que obtuvimos en el paso
anterior.
La visión por computadora es una tecnología usada a diario por muchas personas. Es
posible encontrarla en cámaras fotográficas o de video al momento de tomar una
fotografía, en teléfonos celulares para la detección de rostro entre otros usos, en
autopistas vehiculares para el control de vehículos. También se pueden encontrar en
las computadoras. Solo por nombrar algunos ejemplos.
Dentro de los muchos usos de la visión por computadora está el reconocimiento de
patrones, que consiste en la identificación de bordes, formas y configuración de
estructuras, el reconocimiento de patrones es utilizado dentro de muchas
1
aplicaciones informáticas una de ellas es el uso en sistemas de reconocimiento
automático de patentes.
2
Capítulo 2
2.- DEFINICIÓN DE LA INSTITUCIÓN
Misión:
La Universidad del Bío-Bío, a partir de su naturaleza estatal y publica, tiene por misión:
3
identidad cultural y la interculturalidad de las regiones del Biobío ñuble, y vinculada con
los requerimientos y desafíos de su territorio y del país.
Visión:
4
2.3 Estudio del problema y solución propuesta
5
FIGURA. 1 SISTEMA CONVENCIONAL ANPR
FUENTE: ELABORACIÓN PROPIA A PARTIR DE: PATEL, C., SHAH, D., & PATEL, A. (2013)
AUTOMATIC NUMBER PLATE RECOGNITION SYSTEM
6
2.4 Contexto del Problema
7
Capítulo 3
3.- DEFINICIÓN DEL PROYECTO
8
3.3 Detalle del Informe
Anteproyecto de titulo
- Revisión de la literatura sobre el reconocimiento automático de patentes
- Revisión de información sobre hardware electrónico de bajo costo, por ejemplo,
raspberry pi; lenguajes y librerías para Python, Open ALRP y otros softwares
necesarios para el desarrollo de la aplicación.
Proyecto de titulo
- Instalación de Python, Tensorflow, EasyOCR, Tesseract y en el sistema de
Windows
- Desarrollo del software para el reconocimiento automático de patentes
- montar el software desarrollado en una raspberry bi para su uso final
- configurar el sistema para el reconocimiento de patentes chilenas
- realizar pruebas de funcionamiento
- arreglo de errores de configuración y otros inconvenientes asociados al software
- hacer pruebas con el software exitoso y realizar evaluaciones finales sobre el
funcionamiento del software
9
Los principales trabajos realizados en el área de los sistemas ANPR, trabajan y sacan
provecho a la tecnología de visión artificial o como la llaman otros autores visión por
computadora, en el trabajo realizado por Alvear, Rosero, & otros (2017) se explica la
visión artificial en mayor detalle, esta tecnología está definida como la ciencia de
programar una computadora para que esta sea capaz de procesar ya sea imágenes o
videos y entender lo que está captando. Explicado de otra manera es la capacidad que
tiene una computadora de convertir en datos y darle una explicación a lo que está
captando, este principio es ocupado por todos los sistemas creados a través de visión
artificial, en el caso del reconocimiento automático de patentes el proceso es captar el
vehículo, realizar una segmentación de la imagen, obtener la patente, sacar los caracteres
y con los datos obtenidos realizar una acción.
10
3.4.2 Metodología Cascada
11
La metodología incremental es el ciclo de vida que se da en el desarrollo de software, en
el cual es proyecto se descompone es una serie de incrementos, el objetivo es obtener un
crecimiento progresivo de la funcionalidad. Es decir que por cada entrega del producto
este se va adaptando a lo requerido por el usuario final.
Uno de los pasos importantes para que la metodología incremental funcione de buena
manera, es ir realizando evaluaciones por cada una de las etapas y ver si estas dan los
resultados esperados y si apuntan al objetivo general del software, si esto no se cumpliera
se deben hacer los ajustes correspondientes e implementar las soluciones que se
requieran. En la Fig. 2.3 se muestra el modelo Diagrama de Metodología Incremental
12
3.4.4 Metodología Iterativa Incremental
La metodología usada en este proyecto será la iterativa incremental. Este método abarca
lo mejor de la metodología cascada y la metodología incremental.
En un desarrollo iterativo incremental el proyecto se planifica en diversos bloques
temporales llamados iteraciones, estos son mini proyectos, en todas las iteraciones se
repite cada uno de los procesos de trabajo para proporcionar un buen producto final. Este
método es el que mejor se abarca a este proyecto dado que cada etapa de este proyecto
requiere una atención especial de desarrollo y pruebas.
3.4.5 Herramientas
Tensorflow
Explicado en su web oficial Tensorflow.org. Tensorflow es una plataforma de código
abierto de extremo a extremo de multiplataforma la cual se utiliza para distintos tipos de
aprendizajes automáticos, cuenta con un sistema de bibliotecas, herramientas y recursos
proporcionados por la misma comunidad que permite a distintos investigadores innovar
en el área de aprendizaje automático y los desarrolles creen e implementen aplicaciones
con esta tecnología. Tensorflow es la tecnología de aprendizaje automático que cuenta
con más popularidad a nivel mundial para trabajar sobre machine learning.
Tensorflow también cuenta con grandes ventajas sobre la competencia, el proyecto de
Tensorflow es desarrollado por la multinacional Google y detrás de este se encuentra el
equipo de investigación de otro proyecto llamado Google Brain, que cuenta con alguno de
los expertos en Deep learning como Geoffrey Hinton y Alex Krizhevsky autores del primer
sistema basado en una red neuronal convolucional que gano la prueba ImageNet en 2012.
13
Python
Python es un lenguaje de programación interpretado de propósito general
multiplataforma y multiparadigma, este lenguaje hace mucho hincapié en la legibilidad
del código escrito.
La principal ventaja que da Python a la hora de trabajar sistemas de visión por
computadoras o redes neuronales es su gran amplitud de bibliotecas, librerías
relacionadas a este tema, además de ser un de los lenguajes predilectos para las
programaciones de esta tal como es el caso de Tensorflow.
LabelImg
LabelImg es una herramienta de anotación grafica de imágenes, está escrita en Python y
usa QT como su interfaz gráfica, las notas que se le realizan a la imagen son guardadas en
formato XML.
Esta herramienta es la principal para realizar el marcado de la información dentro de la
imagen con el objeto que se quiere reconocer, esta información es la que se usa
posteriormente para realizar el entrenamiento de redes neuronales
Numpy
Es una librería del lenguaje de programación Python esta librería será importante en el
desarrollo del proyecto ya que se utiliza para trabajar con matrices, proceso que es muy
utilizado en las redes neuronales también cuenta con una ventaja para la ciencia de datos
ya que es muy veloz y es muy importante a la hora de usar los recursos.
Cuenta con distintas funciones para trabajar en el dominio del algebra lineal, también
proporciona funciones matemáticas de alto nivel que operan en estas estructuras de
datos.
14
Matpotlib
Esta es una librería grafica de Python ampliamente ocupada y la más conocida por los
programadores para el machine learning, es una herramienta totalmente necesaria para
el uso de Tensorflow.
Pytorch
Esta es una librería de Python, la cual permite el cálculo eficiente en CPU y GPUS, esta
herramienta se utiliza para el aprendizaje profundo, esta usa cálculos matriciales y de
derivados masivos. Esta herramienta nos ayuda a sacar el máximo rendimiento de
nuestro procesador gráfico.
Jupyter Notebook
Esta herramienta es una aplicación web para crear documentos que pueden contener,
códigos, ecuaciones, visualizaciones y texto. Esta fue desarrollada por el proyecto Jupyter la
cual es una organización sin ánimo de lucro para desarrollar software de código abierto,
estándares abiertos y servicios para computación interactiva en decenas de lenguajes de
programación.
Aquí es donde se tendrá el entorno virtual y estará el código del software propuesto, también
será la plataforma para almacenar el código de las pruebas
15
Capítulo 4
4.- ESTADO DEL ARTE
Tambié n se verá el aná lisis de estos proyectos separados por cada uno de los temas para
el Reconocimiento automá tico de patentes.
En el proyecto realizado por Rojas, H. & Aravena, P. (2013), Presenta como solució n para
la segmentació n de patentes vehiculares distintas té cnicas de agrupamiento, con el
objetivo de que sean aplicables a sistemas ANPR existentes en la actualidad, esta
propuesta busca mejorar y buscar nuevas té cnicas de segmentació n debido a la gran
importancia que representa una buena detecció n, ya que es clave en cualquier sistema
ANPR para lograr un buen reconocimiento posterior.
16
Por otra parte, encontramos un estudio que presenta un mé todo basado en Matlab, el
proyecto realizado por Ceballos, J, (2012) En Madrid, Españ a, realiza el estudio del
reconocimiento automá tico de patentes a travé s de Matlab usando distintas té cnicas
matemá ticas para manejar la imagen captada por la cá mara, estas té cnicas son
ampliamente utilizadas y son las que utilizan distintas librerı́as de visió n artificial.
En el libro de Bradski, G. & Kaehler, A. (2008). Se explica que OpenCV es una librerı́a de
visió n artificial de có digo abierto. Esta librerı́a fue escrita en lenguaje de programació n C
y C++ y puede ser utilizada tanto en Linux como Windows o Mac OS X y se encuentra
disponible para otros lenguajes de programació n tales como Python, Ruby, Matlab, y otros
lenguajes.
OpenCV fue diseñ ado con un claro enfoque que son las aplicaciones en tiempo real, esta
librerı́a está pensada para aprovechar el má ximo rendimiento del equipo. Uno de los
objetivos principales es que esta librerı́a de visió n artificial sea lo bastante fuerte y lo
bastante sofisticada para que sea fá cil desarrollar aplicaciones de visió n bastante
sofisticadas en poco tiempo y con poca complejidad. La biblioteca de OpenCV tal como se
detalla en el libro cuenta con má s de 500 funciones que abarcan muchas á reas, una de
ellas es la seguridad donde entra el reconocimiento automá tico de patentes, tambié n se
explica que cuenta con una funció n bastante ú til a la hora de realizar estos sistemas que
es el “aprendizaje automático que se centra en el reconocimiento de patrones estadísticos y
técnicas de agrupación.”
Por otro lado, tenemos un estudio realizado por Chá vez, I. &, Pé rez, R, (2014). En Trujillo,
Perú . Que estudia el reconocimiento automá tico de patentes a travé s de las redes
neuronales para poder mejorar los actuales sistemas ANPR y llevarlos a un nivel casi
perfecto de reconocimiento, las redes neuronales son un modelo computacional inspirado
en el comportamiento observado en su homologo bioló gico, estos modelos
computacionales son capaces de aprender y se forman a sı́ mismo en lugar de que se les
dé una programació n explicita. Esto permitirı́a que el sistema ANPR por sı́ solo fuera
aprendiendo lo cual permitirı́a mejorar la detecció n de las patentes y a medida que el
sistema aprende se va adaptando a otros ambientes.
En otras aplicaciones má s limitadas y de uso a pequeñ a escala encontramos los sistemas
ANPR implementados en telé fonos inteligentes como se puede analizar en el proyecto
realizado por Capra, Capra, Aciti. &, Marone, (2012). En Buenos Aires, Argentina. Que
presentan una solució n para el control de estacionamiento una aplicació n ANPR para
telé fonos inteligentes que entre la ventaja de estos sistemas se destaca la facilidad de uso
17
y el poder acomodar el dispositivo para lograr captar de mejor manera la placa patente,
pero, ası́ como cuenta con ventajas tiene desventajas. Este no es un sistema automatizado
a la hora de detectar la patente, necesita del factor humano siempre para el
funcionamiento, tampoco puede ser usado a gran escala ni para zonas donde el
movimiento del automó vil sea elevado.
El proyecto realizado por Capra, Capra, Aciti & Marone (2012). Se propone como solució n
para el proceso de reconocimiento de la patente un escaneo ó ptico a travé s de un telé fono
18
inteligente para posteriormente hacer una segmentació n horizontal y vertical de la
imagen. La té cnica es hacer un preprocesamiento de la imagen original en una imagen con
realce de bordes aplicando un filtro prewitt, esto hace que se genere una alta intensidad
de bordes en un á rea pequeñ a producida por el contraste de los caracteres de una
matrı́cula. En los resultados experimentales se especificó que la identificació n de la
matricula en la banda fue de un 98%, un porcentaje bueno, el ú nico inconveniente con
respecto a otros mé todos es que este se hace de forma manual.
En el trabajo realizado por Parra, R & Regajo, R. (2006). se utiliza una té cnica de
localizació n vertical y horizontal basada en los colores y la saturació n de una determinada
á rea, el mé todo consiste en buscar zonas de baja saturació n dentro de la imagen ya que
se sabe que los colores claro tienen una baja saturació n mientras que el color blanco tiene
saturació n nula y la del negro esta indefinida.
Por lo tanto, se busca por cada pixel una baja saturació n teniendo un rango entre [0 1], de
esta manera se consideran solo los de menor valor, se eliminan zonas que no esté n entre
negro y blanco y aplicando ciertas restricciones sobre estas normas dependiendo de la
imagen logran detectar la placa patente. En los resultados experimentales para la etapa
del reconocimiento de la patente, se utilizaron 278 imá genes de muestra. Los porcentajes
de acierto para la localizació n vertical fue de un 90% mientras que la de la detecció n
horizontal el porcentaje de acierto fue de un 98%.
Con estos resultados se puede concluir que es una opció n viable para llevar a cabo esta
tarea dado su alto ı́ndice de placas detectadas.
19
4.3 Reconocimiento de los caracteres
En el reconocimiento de caracteres expresado de forma frecuente con la sigla OCR (del
inglé s OÓ ptica Character Recognition) es un proceso de digitalizació n de textos, estos
identifican automá ticamente sı́mbolos o caracteres y los convierten en datos, estos
sistemas que se explican en el trabajo de Aguilera, S, & Constenla, G. (2010). son un campo
de investigació n de los má s importantes en el á rea de reconocimiento de patrones, a pesar
de que se llevan varios añ os de investigació n los sistemas OCR está n muy por detrá s del
ser humano, estos no son capaces de distinguir ciertos caracteres similares o con
distorsió n, es por esto que no se puede esperar un 100% de efectividad.
Tesseract OCR Engine es un sistema de có digo abierto desde 2006, desarrollado por hp
en los añ os 1985 y 1995 y que actualmente se sigue desarrollando por Google, es un
sistema OCR de los má s valorados gracias a su alta precisió n, estuvo entre las mejores en
la prueba UNLV de 19951.
Estos sistemas son utilizados para el reconocimiento de manuscritos, reconocimiento de
datos estructurados, reconocimiento de matrículas entre otros.
20
FIGURA. 4 ESTRUCTURA RED NEURONAL FUENTE: IBM EL MODELO DE REDES NEURONALES
Una red neuronal se compone de distintas capas, principalmente tienen que haber tres
capas dentro de una red, la primera es la capa de entrada es donde se reciben todos los
datos por ejemplo si se quisiera saber el valor de una casa usando redes neuronales la
capa de entrada tendría valores como: cantidad de baños, metros cuadrados,
habitaciones, estacionamiento, etc. En segundo lugar, tenemos la capa oculta de esta capa
puede ser una o muchas capas, estas capas contienen unidades no observables. El valor
de cada unidad oculta es alguna función de los predictores, y en último lugar tenemos la
capa de salida que en este caso para el ejemplo puesto sería el valor de la casa padecido
por las redes neuronales basados en los datos de entrada.
La red aprende examinando los registros individuales, generando una predicción para
cada registro y realizando ajustes a las ponderaciones cuando esta realiza una predicción
que no corresponde con lo que se quiere obtener. Este proceso se repite muchas veces
hasta que se alcanza una red neuronal que cumpla con los requisitos establecidos.
21
4.5 Redes neuronales convolucionales
Núñez Sánchez (2016) explica que las redes neuronales convolucionales son un tipo de
red neuronales similares a las redes neuronales multicanal, la principal ventaja es que
cada parte de la red se entrena para realizar una tarea especifica, este tipo de red
neuronal está inspirada en el funcionamiento de la corteza visual del cerebro. Estas redes
se diseñaron para poder resolver los problemas de patrones, en este caso se usará para
resolver detección de objetos dentro de una imagen.
Las redes neuronales convolucionales al igual que las redes convencionales reciben datos
de entrada que se trasforman a través de un montón de capas de neuronas, pero en este
caso la entrada será una imagen representada en una matriz tridimensional que
contendrá valores numéricos de los pixeles. Estos datos son llevados por capas de
convolución que son una función que jugando con los valores de los pixeles es capaz de
producir una imagen.
22
Cada pixel nuevo que se va a generar se calcula colocando una matriz de numero llamada
filtro o kernel sobre la imagen de entrada original donde multiplicaremos o sumaremos
el valor de los vecinos lo cual no ira dando una nueva imagen, estos valores la ira
aprendiendo la red neuronal poco a poco para ir realizando un mejor trabajo
En resumen, entra una imagen la red aplica una serie de convoluciones y nos regresa una
nueva imagen llamada conjunto de mapa de características.
23
Capítulo 5
5.- REQUERIMIENTOS
5.1 Alcance
24
restricciones:
El proyecto está planificado para ser trabajado en una versión beta debido al poco tiempo
de desarrollo que tiene el proyecto. No se considera dejar el sistema implementado y
funcionando dentro del establecimiento,
El sistema manejara la información de todas las placas patentes de los automóviles que
ingresan o salen de la Universidad del Bío-Bío, esto permitirá tener mayor seguridad
dentro del estacionamiento, además de que permitirá llevar un registro claro y en tiempo
real de los vehículos que entran y salen.
A continuación, se muestra la lista con los componentes físicos con los que interactúa el
usuario
25
Software de código abierto Navegador
Id Nombre Descripción
RF_01 Registrar Datos El software deberá crear automáticamente un
registro en formato XML de todas las patentes
detectadas, almacenando la información de la
imagen de la patente, el código de patente y la
fecha
RF_02 Guardar Imagen El software deberá guardar la imagen de cada una
de las patentes detectadas a través de la cámara.
Esto lo realizara de manera automática.
RF_03 Inicio y fin del El usuario, o la persona que está encargada de la
programa vigilancia, será la encargada de iniciar el sistema y
de finalizarlo una vez termine la jornada
RF_04 Ingreso de El software admitirá el registro de cualquier
vehículos vehículo siempre y cuando se justifique la estancia
dentro del estacionamiento
RF_05 Detección de El software debe ser capaz de detectar distintos
patentes tipos de patentes, estas pueden ser camiones,
taxis, motos etc.
ID Nombre Descripción
RNF_01 Documentación Se tiene que tener claramente documentado el
del software código del software
26
RNF_02 Manual de El software deberá contar con un manual de
usuario usuario claramente detallado
RNF_03 Tiempo de El tiempo de detección del software una vez que
detección se acerca el vehículo a la entrada tendrá que ser
menor a 200ms. Esto con el objetivo de que el
sistema sea ágil
RNF_04 Mantenibilidad El software debe tener una alta mantenibilidad
y posibilidad de mejorarlo en el tiempo, esto a
través de un código bien ordenado y
documentado
RNF_05 Elementos de Se deberá anunciar los elementos de hardware
hardware necesarios para que el software cumpla con la
funcionalidad requerida
27
Capítulo 6
6.- Factibilidad
28
FIGURA. 7 VALORES DE COMPONENTES
FUENTE: MERCADOLIBRE.CL, PCFACTORY.CL, SOLOTODO.CL
29
real al usuario que va ingresando a la universidad. Esto permitirá automatizar el proceso
de registro además de añadir mayor seguridad dentro del estacionamiento.
El software contará con una interfaz de usuario muy sencilla para la persona que tenga
que manejar este sistema ya que esto nos asegura que el usuario se pueda familiarizar en
poco tiempo con el programa y se facilita la comprensión del sistema que se traducirá en
mayor eficiencia.
Esto traerá muchos aspectos positivos detallados a continuación.
Costos de personal
30
Costo de desarrollo
$ 7.861.103
31
Costos asociados al hardware y software
CAPITULO 7
7.- Análisis
32
7.1 Diagrama de flujo de datos
33
FIGURA. 9 DIAGRAMA DE FLUJO DE DATOS (SISTEMA COMPLETO) FUENTE: ELABORACIÓN
PROPIA A PARTIR DE: CEBALLOS JIMÉNEZ, S. E. (2012).
34
7.2 Casos de uso
35
FIGURA 11 CASO DE USO ADMINISTRADOR DEL SISTEMA
Responsable de la implementación:
36
Precondiciones: No posee
El actor El sistema
Responsable de la implementación:
El actor El sistema
37
1.- El actor ingresa su nombre y El sistema valida que los datos sean
contraseñas indicados para poder entrar correctos y da ingreso al menú principal
al sistema de reconocimiento automático
de patentes
Postcondición El usuario finalizando la jornada deberá
cerrar su sesión
Responsable de la implementación:
El actor El sistema
1.- El actor tendrá que ingresar los datos El sistema despliega un menú en el cual
de la persona a la cual quiere registrar aparecerán los datos a solicitar
2.- registrara además los datos del El sistema comprueba que los datos estén
vehículo ingresados correctamente y en el formato
solicitado
Postcondición No existe
38
TABLA 4: Detalle caso de uso Inicio de sesión administrador
Responsable de la implementación:
El actor El sistema
1.- El actor inicia sesión con el nombre de El sistema despliega un menú con
usuario y contraseña proporcionados opciones solo disponibles para el
administrador
Postcondición No aplica
Responsable de la implementación:
39
Precondiciones: No posee
El actor El sistema
Responsable de la implementación:
El actor El sistema
40
administrador en donde contara con
actualizar los datos o eliminar
Postcondición No aplica
*Todos los casos de usos descritos anteriormente son proyectados a una versión
final del software
Capítulo 8
8.- IMPLEMENTACION DEL SOFTWARE
En este capitulo se explica paso a paso como se implementa el software, los pasos que hay
que seguir, la estructura interna de cómo funciona y que es lo necesario para que este
funcione. Además, se presentan distintas pruebas realizadas al programa para poder
evaluar el funcionamiento, la precisión en las predicciones de la detección y ver la
efectividad con la que funcionaria aplicado en un ambiente real.
41
FIGURA. 12 ESQUEMA RECONOCIMIENTO AUTOMÁTICO DE PATENTES
42
Posteriormente a esto el programa inicia un motor de reconocimiento óptico de
caracteres el cual se encargará de darnos la información precisa sobre el texto encontrado
en la imagen. En este caso va a extraer las letras que componen
La salida será una cadena de texto que contendrá el texto exacto de la patente el que se
utiliza como clave en el sistema propuesto ya que esta es única e irrepetible.
43
FIGURA 13 EJEMPLO EXTRACCIÓN DE CARACTERÍSTICAS EN FPN FUENTE: REN, S., HE, K., GIRSHICK,
R., & SUN, J. (2015). FASTER R-CNN: TOWARDS REAL-TIME OBJECT DETECTION WITH REGION
PROPOSAL NETWORKS
El modelo SSD realiza la detección en múltiples capas de funciones, sin embargo, no utiliza
las primeras capas esto debido a la dificultad de poder detectar el objeto de una manera
rápida debido a la alta resolución de la imagen y la poca información que tiene de esta,
dado que aún no tiene la suficiente información extraída a través de las convoluciones, si
intentara detectar un objeto pequeño con una resolución demasiado grande y poca
información el porcentaje de fallo es demasiado grande y afectaría la velocidad de la
detección final.
FPN proporciona una vía de arriba abajo que utiliza para construir capas de mayor
resolución a partir de una capa rica en información, sin embargo, esto no garantiza tener
una ubicación precisa de los objetos, es por esto que se aplican conexiones laterales entre
44
las capas reconstruidas y las capas de características correspondientes para ayudar a
predecir la ubicación del objeto. También estas conexiones actúan como conexión de salto
para facilitar el entrenamiento
FIGURA 14 MODELO FPN CON CAPAS RECONSTRUIDAS Y CONEXIONES LATERALES FUENTE: REN, S., HE,
K., GIRSHICK, R., & SUN, J. (2015). FASTER R-CNN: TOWARDS REAL-TIME OBJECT DETECTION
WITH REGION PROPOSAL NETWORKS
En el camino de abajo hacia arriba FPN utiliza ResNet para construir. Esta se compone de
muchos módulos de convolución, a medida que se avanza. La dimensión espacial se
reduce a la mitad. La salida de cada módulo de convolución se etiqueta y luego se usa en
la ruta de arriba hacia abajo.
En el camina de arriba hacia abajo lo que se realiza es ir aplicación filtros de convolución
estos pueden ser de distintos tamaños, pero lo ideal es una de 1x1 esto para reducir la
profundidad del canal, esto nos creara el mapa de características utilizado para la
predicción del objeto.
A medida que se baja, se hace muestra ascendente de la capa anterior en 2 utilizando el
muestro ascendente de los vecinos mas cercanos. Nuevamente se aplica la convolución a
los mapas de características que correspondan.
45
Hay que tener claro que FPN sirve para extraer mapas de características sin embargo se
necesita unirlo a un detector de objeto, en este caso se usa RPN (Region Proposal
Network) en español red de propuesta de región, RPN aplica una ventana sobre los mapas
de características para realizar predicciones sobre la objetividad (detecta o no detecta un
objeto)
FIGURA 15 EJEMPLO DE DETECCIÓN USANDO PROPUESTAS RPN FUENTE: REN, S., HE, K., GIRSHICK,
R., & SUN, J. (2015). FASTER R-CNN: TOWARDS REAL-TIME OBJECT DETECTION WITH REGION
PROPOSAL NETWORKS
Para cada nivel de escala se aplica un filtro de convolución de 3x3 esto seguido de un filtro
de convolución separado de 1x1 para las predicciones de objetividad y la regresión del
cuadro limite. Estas capas convolucionales se denominan cabeza RPN. Este se aplica a
todas las capas de los mapas de características.
46
La eficiencia y buen funcionamiento de un sistema de detección de objetos que sea capaz
de ser utilizado de manera productiva, depende de que previamente se haya realizado un
excelente entrenamiento de lo que se quiere detectar, utilizando una buena arquitectura,
haciendo un buen ajuste de la red neuronal y utilizando un conjunto de datos
suficientemente amplio y que sea representativo del problema que se quiere solucionar.
Para entrenar la red neuronal se utilizarán dos conjuntos de datos, el primero es un
conjunto de datos llamado Car Licence Plate Detection creado por Larxel usuario de
kaggle. Este dataset este compuesto por 433 imágenes de automóviles con distintos tipos
de patentes con sus respectivas 433 etiquetas de la patente, el segundo sistema es un
dataset construido por el desarrollador de este proyecto Matias Zambrano el cual cuenta
con 1000 imágenes de automóviles con sus respectivas 1000 etiquetas de la zona de la
patente.
Es importante que el conjunto de datos sea variado, es decir que todos los objetos que se
quieran detectar tengan tomas desde varios ángulos, distinto tipo de iluminación, distinta
posición etc. Y también es importante que las imágenes no sean de un tamaño demasiado
excesivo.
Ejemplo de Etiqueta:
47
FIGURA 16 ETIQUETA DE UN COJUNTO DE ENTRENAMIENTO
Para la validación del sistema se cuenta con un conjunto de datos con 300 imágenes para
poner a prueba cada una de las etapas del sistema, además se ha propuesto una serie de
pruebas de reconocimiento a través de imágenes y en tiempo real para poder medir la
eficiencia del sistema.
48
8.4 Extracción de caracteres
49
delimitadores mínimos en el mapa binario después de establecer el umbral en la región
del carácter.
El RCNN usado se compone de 3 partes, la extracción de los caracteres la cual usa ResNet
que es la red neuronal residual, estas redes neuronales a medida que se profundiza en
vez de agregar capas simples agregan capaz residuales sin afectar el rendimiento de la
red, pero a su vez estas capas son capaces de aprender ciertas cosas las cuales ayudan a
obtener mejores resultados.
En segundo lugar, está el etiquetado de secuencia LSTM (Long Short-Term Memory) esta
también es una red neuronal recurrente, estas redes cuentan con conexiones de
retroalimentación este tipo de redes se ocupa para el reconocimiento de escritura, las
LSTM son capaces de clasificar, procesar, y hacer predicciones basadas en datos de series
de tiempo.
Por último, está la decodificación, para lo que se utiliza una técnica de conexión temporal
de clasificación usando una secuencia de datos con una red neuronal recurrente
8.5 Pruebas
Para poder probar que el software propuesto funciona de la manera esperada se llevaran
a cabo distintas pruebas y experimentos. Estas pruebas se diseñarán para probar una
funcionalidad en específico del software y probar el funcionamiento completo de este.
el objetivo de este estudio basado en verificar funcionalidades es analizar el software, la
capacidad de reconocimiento a la hora de capturar patentes, analizar el algoritmo de OCR
para extracción de caracteres. Además, permitirá detectar posibles defectos que tenga la
aplicación, se podrán prevenir estos defectos y de esta manera obtener una mejora
continua.
50
8.6.1 Prueba de reconocimiento de patentes a través de imágenes
Salida Esperada:
51
Resultados de la prueba:
Del total de predicciones realizadas por la red neuronal con un entrenamiento de 400
imágenes dio como resultado 237 sobre 300. Es decir que el porcentaje de acierto de la
primera red neuronal es de un 79%. Los principales errores a la hora de detectar la
patente de un automóvil fue la distancia a los que se encontraban ciertos vehículos en
distintas imágenes.
La segunda red neuronal con un entrenamiento de 1000 imágenes en las predicciones dio
como resultado 270 sobre 300. Es decir que el porcentaje de acierto de la red neuronal a
la hora de detectar una patente es de 90%. Este incremento a la hora de detectar una
52
patente se debe a que la red neuronal cuenta con mucha más información lo cual le
permite tener una precisión mucho más elevada a la hora de hacer la predicción sobre si
encuentra una patente dentro de la imagen.
Los resultados obtenidos en las pruebas con respecto a la configuración de la red
neuronal son bastantes satisfactorios, las tasas de acierto en la red neuronal entrenada
con 1000 imágenes fueron de 90% lo cual demuestra que el sistema funciona de la
manera esperada y podría ser aplicado como mecanismo de control.
53
Salida esperada:
Resultados de la Prueba:
Los resultados de este experimento son bastante satisfactorios de las 300 imágenes en el
100% de los casos se pudo extraer el texto de la imagen, aunque no en todas se pudo
obtener el resultado esperado, de las 300 imágenes tomadas como muestra, en el 92% de
los casos se obtuvo una predicción correcta esto quiere decir que de 300 imágenes se
extrajo correctamente la patente de 276 en tanto fallo en 24 ocasiones. Los caracteres sin
error en las predicciones fueron: 3,4,5,7,8,9, A, C, D, F, J, K, L, P, Q, R, S, U, V, X, Y. Los
caracteres que presentaron error fueron: 1,2,6, B, E, G, H, I, O, T, W, Z
El motivo del fallo a la hora de extraer el texto de la patente se debe a algunos motivos
encontrados muy específicos, el primero de ellos es el estado en el que se encuentra la
patente, cuando la patente se encuentra sucia, doblada o directamente dañada el
porcentaje de error se eleva bastante.
El segundo motivo que puede hacer fallar el algoritmo OCR son los propios caracteres
dentro de la patente, en el análisis se encontró que cuando se tiene que analizar imágenes
54
con caracteres con la letra B, O, G, Z a veces son confundidos con otras letras o números,
la letra B era confundida a veces por el número 8 o pro la letra E, la letra O era confundida
con un 0, La letra G era confundida con un 6 y la letra Z era confundida con un 2, este error
se encontró en un porcentaje menor al 8%. Dentro del análisis en otros casos muy
puntuales y más extraños se encontró que la red a veces confundía la letra w con la H, la
letra H con la M y el 1 lo confundía con una T o con una I.
Los resultados obtenidos de este análisis con respecto al funcionamiento del algoritmo
OCR son satisfactorios, el algoritmo es muy eficaz a la hora de extraer el texto que se
encuentra en la imagen, las tasas de acierto son de más del 90% lo que demuestra que es
bastante efectivo a la hora de realizar su trabajo y con respecto a los resultados negativos
la mayoría se dio cuando la patente analizada se encontraba en un estado defectuoso.
55
Salida esperada:
Resultados de la prueba:
A continuación, se muestra en la siguiente tabla los resultados obtenidos, para este
experimento se ocupó el modelo entrenado con el conjunto de datos de 1000 imágenes
que fue el de mejor resultado en el primer experimento.
56
CONJUNTO DE NO RECONOCIDAS RECONOCIDAS RECONOCIDAS %
DATOS
100 IMÁGENES 2 98 98%
CON PATENTES
100 IMÁGENES SIN 100 0 0%
PATENTES
TABLA 8: RESULTADOS PRUEBA 2
Como se muestra en la tabla la red neuronal es capaz de predecir con solvencia si dentro
de la imagen proyectada a través del celular se encuentra una patente los resultados son
claros. Cuando se proyectó una imagen que no contenía una patente el programa no
detecto nada por el contrario si la imagen contenía una patente la detectaba de inmediato
llegando a un 98% de acierto, además la red neuronal puede captar con precisión las
coordenadas de la patente lo cual es fundamental.
Por otra parte, el nivel de reconocimiento de patentes es mucho mayor que el obtenido
en el experimento de las fotografías, y esto tiene una clara explicación, el motivo de que
se detectara un porcentaje mejor de patentes en el experimento a través de un video en
tiempo real es que siempre estamos ocupando el mismo plano y una distancia similar
para el reconocimiento, lo cual en el caso del experimento con imágenes no se daba y esto
no es necesariamente malo, por el contrario es un efecto positivo ya que en este proyecto
el propósito del software es funcionar desde una posición fija para el control de vehículos,
por lo cual siempre estará reconociendo patentes en un plano muy similar y a una
distancia que no variara mucho.
Este experimento es una prueba del software completo, aquí se vera la real capacidad que
tiene el software en su primera versión para poder capturar una patente del video en
tiempo real, extraer el texto de dicha patente y posteriormente hacer un registro de lo
capturado, para esta prueba se hará uso de un conjunto de 200 imágenes usados en
57
pruebas anteriores las cuales se reflejaran en la cámara de video que está capturando a
través de un celular
Datos de entrada:
Salida esperada:
58
Resultados de la prueba:
59
Imágenes de la prueba:
60
Vehículos Patentes Patente(texto) Patente no
reconocidas Extraída con éxito detectada o mal
reconocida
30 29 27 3
Resultados de la prueba:
Analizando los resultados nos encontramos de que el reconocimiento automático de
patentes funciona en un nivel muy bueno, la red neuronal entrega resultados muy buenos
con un margen de error al momento de la detección menor al 1%, esto quiere decir que
el programa cumple su funciona un nivel excelente y dado a su bajo nivel de error lo
convierte en una solución viable para este problema.
61
En cuanto al reconocimiento óptico de los caracteres el nivel de error es mas elevado, en
la prueba llego al 10% de error y 90% de acierto. Esto tiene varias explicaciones. En
primer lugar, este porcentaje de error se puede deber a distintos factores como el uso de
una cámara con muy baja resolución para la prueba la cual no era capas de captar con
total claridad el texto de las placas patentes, en segundo lugar, los defectos que pueda
tener la placa pueden afectar el comportamiento de la red neuronal a la hora de leer el
texto de la patente y en tercer lugar cuando se presentan patentes dañadas es imposible
para la red adivinar cual es el texto faltante.
De todas formas, el porcentaje de texto reconocido en las patentes es elevado y se podría
mejorar aplicando distintas técnicas en torno a un 5% y un 9%.
62
Capítulo 9
9.- Conclusiones
63
de distintas librerías para la visión artificial y el manejo de redes neuronales, estas se
explican en el capítulo 3
Al realizar las pruebas al software se obtuvieron resultados muy consistentes y bastante
prometedores, el reconocimiento de patentes fue muy bueno por lo que podemos
considerar que el software se podría utilizar como una implementación viable para la
tarea propuesta, el porcentaje de error del programa en la prueba de ambiente real fue
menor al 1% que es un margen de error excelente, en el reconocimiento óptico de
caracteres el error fue del 10% pero considero que es un margen de error aceptable dado
que es muy difícil detectar por no decir imposible aun, patentes que se encuentren con
distintos tipos de daños como (rota, pintada, sucia, tapada etc.). aunque si es posible bajar
ese porcentaje de error a uno mas pequeño, que se encuentre entre el 1% - 5%.
Una interesante propuesta para futuros trabajos sería el de desarrollar nuestra propia
red neuronal de reconocimiento automático de caracteres enfocándonos por completo al
texto usado en las patentes de los vehículos que queremos detectar logrando de esta
manera llegar a niveles de detección muy buenos.
Otra propuesta interesante seria ver la forma de fusionar esta red neuronal de
reconocimiento de patentes con varios modelos de redes neuronales generando
aplicaciones predictivas avanzadas como por ejemplo detectar la patente del vehículo,
detectar el vehículo y detectar si el vehículo cumple con las dimensiones para entrar
debido a que algunos estacionamientos tienen ciertas restricciones.
64
Referencias
[2]. Patel, C., Shah, D., & Patel, A. (2013). Automatic number plate recognition
system (anpr): A survey. International Journal of Computer Applications, 69(9).
[6]. Aciti, C., Marone, J. A., Capra, J., & Capra, B. (2012). Una aplicación móvil
para el reconocimiento automático de matrículas de automóviles argentinos. In
XVIII Congreso Argentino de Ciencias de la Computación.
[7]. Chávez Loloy, E. D., & Pérez Roncal, A. C. (2014). Sistema inteligente para
la mejora del reconocimiento de matrículas de automóviles usando redes
neuronales bp.
65
[8]. Ramos, C. P., & Rodríguez, D. R. (2006). Reconocimiento automático de
matrículas. Universidad Carlos III de Madrid.
[13]. Bradski, G., & Kaehler, A. (2008). Learning OpenCV: Computer vision with
the OpenCV library. " O'Reilly Media, Inc.".
66
[17]. Fuente: https://tensorflow-object-detection-api-
tutorial.readthedocs.io/en/latest/training.html
[18]. Abadi, M., Barham, P., Chen, J., Chen, Z., Davis, A., Dean, J., ... & Zheng, X.
(2016). Tensorflow: A system for large-scale machine learning. In 12th {USENIX}
symposium on operating systems design and implementation ({OSDI} 16) (pp.
265-283).
[19]. Shukla, N., & Fricklas, K. (2018). Machine learning with TensorFlow.
Shelter Island, Ny: Manning.
[21]. Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-
time object detection with region proposal networks. Avance in neural information
processing systems, 28, 91-99.
[22]. Lin, T. Y., Dollár, P., Girshick, R., He, K., Hariharan, B., & Belongie, S. (2017).
Feature pyramid networks for object detection. In Proceedings of the IEEE conference
on computer vision and pattern recognition (pp. 2117-2125)
[23]. Kim, S. W., Kook, H. K., Sun, J. Y., Kang, M. C., & Ko, S. J. (2018). Parallel
feature pyramid network for object detection. In Proceedings of the European
Conference on Computer Vision (ECCV) (pp. 234-250).
[24]. Chen, B., Ghiasi, G., Liu, H., Lin, T. Y., Kalenichenko, D., Adam, H., & Le, Q.
V. (2020). Mnasfpn: Learning latency-aware pyramid architecture for object detection
on mobile devices. In Proceedings of the IEEE/CVF Conference on Computer Vision
and Pattern Recognition (pp. 13607-13616).
[25]. Yang, L., Zhang, X., Wang, L., Zhu, M., & Li, J. (2021). Lite-FPN for Keypoint-
based Monocular 3D Object Detection. arXiv preprint arXiv:2105.00268
67
68