Está en la página 1de 76

Universidad del Bío-Bío, Chile Facultad de

Ciencias Empresariales

Departamento de Sistemas de Información

Reconocimiento automático de patentes


vehiculares a partir de video en tiempo real

Proyecto de título presentado por


Matías Daniel Zambrano Méndez
alumno de la Carrera Ingeniería Civil Informática
Dirigida por Manuel E. Crisosto

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

2.- DEFINICIÓN DE LA INSTITUCIÓN .............................................................................. 3

2.1 Descripción de la empresa .................................................................................... 3

2.1.1 Antecedentes generales de la Empresa ................................................... 3


2.2 Descripción de la problemática ............................................................................ 4

2.3 Estudio del problema y solución propuesta ........................................................ 5

2.4 Contexto del Problema .......................................................................................... 7

3.- DEFINICIÓN DEL PROYECTO ...................................................................................... 8

3.1 Objetivo General .................................................................................................... 8

3.2 Objetivos Específicos ............................................................................................. 8

3.3 Detalle del Informe ................................................................................................ 9

3.4 Ambiente de Ingeniería de Software .................................................................. 10

3.4.1 Metodología de Desarrollo de Software................................................. 10


3.4.2 Metodología Cascada ............................................................................... 11
3.4.3 Metodología Incremental ........................................................................ 11
3.4.4 Metodología Iterativa Incremental ........................................................ 13
3.4.5 Herramientas ........................................................................................... 13

iv
4.- ESTADO DEL ARTE .................................................................................................... 16

4.1 Sistemas de identificación de patentes .............................................................. 18

4.2 Segmentación de caracteres ............................................................................... 19

4.3 Reconocimiento de los caracteres ...................................................................... 20

4.4 Redes neuronales................................................................................................. 20

4.5 Redes neuronales convolucionales .................................................................... 22

5.- REQUERIMIENTOS ..................................................................................................... 24

5.1 Alcance.................................................................................................................. 24

restricciones:............................................................................................................ 25
5.2 Objetivo del Software .......................................................................................... 25

5.3 Descripción Global del Producto ........................................................................ 25

5.3.1 Interfaz de Hardware .............................................................................. 25


5.3.2 Interfaz de Software ................................................................................ 25
5.4 Requerimientos Específicos................................................................................ 26

5.4.1 Requerimientos Funcionales del Sistema .............................................. 26


5.4.2 Requerimientos no Funcionales ............................................................. 26
5.4.3 Interfaces Externas de Entrada .............................................................. 27
5.4.4 Interfaces Externas de salida .................................................................. 27
6.- Factibilidad ................................................................................................................. 28

6.1. Factibilidad Técnica............................................................................................. 28

6.2. Factibilidad Operativa ......................................................................................... 29

6.3. Factibilidad Económica ....................................................................................... 30

v
Costos de personal ................................................................................................... 30
Costo de desarrollo .................................................................................................. 31
Costos asociados al hardware y software .............................................................. 32
6.4 Conclusiones de Factibilidad .............................................................................. 32

7.- Análisis ........................................................................................................................ 32

7.1 Diagrama de flujo de datos ................................................................................. 33

7.2 Casos de uso ......................................................................................................... 35

7.3 Definición casos de uso ....................................................................................... 36

8.- IMPLEMENTACION DEL SOFTWARE ....................................................................... 41

8.1 Reconocimiento de objetos ................................................................................. 41

8.1.1 Modelo Elegido para la detección y segmentación ............................... 43


8.2 Conjunto de entrenamiento ................................................................................ 46

8.3 Conjunto de datos para validar el sistema. ........................................................ 48

8.4 Extracción de caracteres ..................................................................................... 49

8.5 Pruebas ................................................................................................................. 50

8.6.1 Prueba de reconocimiento de patentes a través de imágenes ............. 51


8.6.2 Prueba de OCR Reconocimiento óptico de caracteres .......................... 53
8.6.3 Prueba de reconocimiento de patente a través de webcam ................. 55
8.6.4 Prueba de reconocimiento de patente y OCR a través de webcam...... 57
8.6.5 Prueba de software en ambiente real con vehículo en movimiento.... 59
9.- Conclusiones ............................................................................................................... 63

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

Figura 5 Ejemplo de Capa Convolucional…………………………………………………………………….. 22

Figura 6 ARQUITECTURA RED NEURONAL CONVOLUCIONAL………………………………………. 23

Figura. 7 valores de componentes……………………………………………………………………… 29


Figura. 8 diagrama de flujo de datos (comportamiento del software) …………………. 32
Figura. 9 diagrama de flujo de datos (sistema completo) ……………………………………. 33
Figura. 10 caso de uso usuario del sistema………………………………………………………… 34
Figura 11 caso de uso administrador del sistema……………………………………………….. 35
Figura. 12 esquema Reconocimiento Automático de Patentes…………………………………… 42

Figura 13 Ejemplo Extracción de Características en FPN……………………………………. 44


Figura 14 Modelo FPN Con Capas Reconstruidas y Conexiones laterales……………......... 45

Figura 15 Ejemplo de Detección Usando Propuestas RPN…………………………………. 46


Figura 16 Etiqueta Conjunto de Entrenamiento…………………………………………………………. 48

Figura. 17 modelo de Detección de Caracteres …………………………….…………………………… 49

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.

El sistema de reconocimiento automático de patentes ANPR (Automatic Number


Plate Recognition) por sus siglas en inglés, es una tecnología establecida que se
utiliza para captar la patente de un vehículo a través de imágenes o videos usando
visión artificial y reconocimiento óptico de caracteres, llevan varios años
desarrollándose causando un gran impacto comercial, estos se desarrollan para
distintos ámbitos dado la gran cantidad de vehículos circulando cada día tal como lo
explican Patel, C., Shah, D., & Patel, A. (2013). En su investigación.
En Chile el instituto nacional estadístico señalo en el año 2019 que el número de
vehículos con permiso para circular es de 5.718.409 por lo cual se hace indispensable
los sistemas ANPR para el control vehicular.
Estos sistemas en los últimos años han tomado una gran importancia impulsados por
la gran necesidad de aumentar la seguridad de las personas. Las técnicas para el
reconocimiento de las patentes van a depender del ambiente en el que se aplique,
esto debido a los distintos entornos de trabajo a los que se puede ver sometida la
aplicación, el método de una aplicación de ANPR para un peaje será distinto al método
de una carretera de alta velocidad.
En la información existente sobre los sistemas de reconocimiento automático de
patentes podemos encontrar múltiples formas de solución exitosa para este fin. Cada
una cuenta con sus fortalezas y debilidades, algunas soluciones son más sencillas que
otras presentadas, pero en ambos casos los resultados muchas veces son similares.
En este proyecto se propone un sistema ANPR para los estacionamientos de la
universidad del Bío-Bío para poder automatizar el registro de los vehículos que
ingresen a la universidad. Se buscará una alternativa que sea fácil de manejar e
implementar la cual sea aplicable y funcional con equipos de bajo costo, buscando
obtener resultados de reconocimiento de patentes lo más alto posible, para que sea
una aplicación que se pueda utilizar como una solución viable, a distintos problemas
que se presentan en el día a día como el de este proyecto sobre los estacionamientos
de la Universidad del Bio-Bio.

2
Capítulo 2
2.- DEFINICIÓN DE LA INSTITUCIÓN

En este capitulo se detalla toda la información de la institución para la cual se realizará el


proyecto, también se describe la problemática encontrada y la solución propuesta para
este caso.
Toda la información de la institución es obtenida a través de su página web oficial
www.ubiobio.cl.

2.1 Descripción de la empresa

2.1.1 Antecedentes generales de la Empresa


 Nombre: Universidad del Bío-Bío
 Dirección: Avda. Collao 1202 Casilla 5-C, Concepción, Bío-Bío
 Rubro: Educación Superior

Misión:

La Universidad del Bío-Bío, a partir de su naturaleza estatal y publica, tiene por misión:

Crear y trasmitir el conocimiento mediante la docencia, la investigación, la innovación,


la creación artística y la interacción con el entorno social en las diversas áreas del
conocimiento y la cultura, basada en la responsabilidad social y en los principios de
excelencia, pluralismo, transparencia y equidad de género.

Contribuir a la formación de ciudadanos con espíritu crítico, reflexivo y tolerante, así


como a la movilidad e integración social y al desarrollo sostenible, promoviendo la

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:

Ser una Universidad comprometida con su carácter estatal y birregional, innovadora,


inclusiva y compleja, con proyección nacional e internacional, que contribuye al
progreso sostenible de su territorio y sus habitantes, de excelencia en la formación de
personas y con sentido de equidad social y de género.

2.2 Descripción de la problemática

En los últimos años se ha dado en varias oportunidades el ingreso de vehículos


sospechosos a la Universidad del Bío-Bío en la sede Concepción, que no figuran en ningún
tipo de registro ni tampoco se sabe cuál es el motivo de su estancia en la universidad,
indico el profesor encargado del laboratorio CIMUBB de la Universidad del Bio-Bio Luis
Vera. “han ocurrido daños de diversas consideraciones y sustracción de objetos
personales y de gran importancia desde su interior, incluso el robo del automóvil”. (L.
Vera Quiroga, Concepción Chile, comunicación personal, 01 de noviembre de 2020).

La existencia de un registro digital actualizado en forma dinámica y automática, hace


posible cotejar los datos con los vehículos empadronados, y facilitaría gestionar una
mayor fiscalización de los vehículos desconocidos para asegurar los bienes de la
Universidad, de los usuarios, funcionarios, docentes y estudiantes.

Los datos adquiridos y registrados facilitaran la confección de reportes para la toma de


medidas de seguridad.

Para este proyecto se propone implementar un sistema de reconocimiento automático de


patentes el cual Funcionara en paralelo al actual método manual utilizado en la
universidad, asegurando un mayor control de los automóviles que ingresen a la casa de
estudio y proporcionando un sistema que garantice la seguridad de forma rápida y
automatizada.

4
2.3 Estudio del problema y solución propuesta

Los sistemas de reconocimiento automático de patentes (ANPR) nacen como solución a


distintas problemáticas que se dan hoy en día como el control de velocidades en una
carretera o el cobro de un peaje entre otras.
Estos problemas no pueden ser controlados directamente por el ser humano debido a la
magnitud que representan. Sería ineficiente.
Este sistema es una solución tecnológica que implementa todos los principios de la visión
artificial que es el área en el cual se centrara esta investigación. La visión artificial es un
recurso tecnológico que en los últimos años ha ganado mucho apoyo y se puede ver
implementado hoy por hoy en funciones de reconocimiento facial en teléfonos y
computadoras, corrección y ayuda en toma de fotografías, conteo y reconocimiento de
personas en entrada a Salones, Solo por nombrar algunos ejemplos de este impresionante
avance en el mundo de la tecnología.
En la investigación realizada por Patel, C., Shah, D., & Patel, A. (2013), se explica que los
algoritmos ANPR se suelen dividir en 4 pasos: primero capturar el vehículo a través de
un video, Segundo detectar la placa del vehículo, tercero hacer una segmentación de los
caracteres y cuarto reconocer los caracteres de la patente. La Fig. 2.1 muestra el Sistema
Convencional ANPR.

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

El problema se centra específicamente en el control del recinto de la Universidad del Bio-


Bio Campus de Concepción, como controlar quien ingresa o quien sale de la casa de
estudios en vehículo, llevar un registro de todo lo que sucede en cada una de las 3
entradas a los distintos estacionamientos del establecimiento: Hora de entrada, hora de
salida, cantidad de vehículos, etc.
Además, al existir varios accesos de entrada/salida no se puede saber si un vehículo sigue
en la universidad o abandono las instalaciones mientras el vigilante se ausenta de su
puesto o está atendiendo a un usuario, logran entrar y salir vehículos sin que pueda
definir si son funcionarios, estudiantes, visitas o proveedores. Facilitar que esta
información se registre en forma automática podría generar un mayor control vehicular
y gestionar otras medidas de seguridad de ser necesario.
La solución a este problema es implementar un sistema de reconocimiento automático de
patentes que sea capaz de captar, leer, identificar y registrar en una base de datos la
información captada.
El implementar un sistema de estas características, trae consigo ciertos costos asociados,
como la instalación de cámaras, computadoras más el software. Los cuales suelen ser de
alto costo.
Para esta investigación se propone implementar una solución de bajo costo basada en
software de código abierto y el uso de ordenadores de placa reducida (Raspberry pi). En
estos ordenadores se cargará el software el cual será adaptado y configurado
específicamente para el uso en la Universidad del Bio-Bio campus Concepción y, la cámara
para captar la patente a través de la captura de video.

7
Capítulo 3
3.- DEFINICIÓN DEL PROYECTO

3.1 Objetivo General

diseñar un sistema de reconocimiento automático de patentes para el estacionamiento


de la Universidad del Bio-Bio en la ciudad de Concepción, utilizando procesamiento de
imágenes digitales y redes neuronales, con el fin de reconocer patentes y extraer los
caracteres de identificación mediante un motor de reconocimiento óptico.

3.2 Objetivos Específicos

A. Revisar la literatura relacionada a los ANPR, Tensorflow, OCR Teseract, EasyOCR,


redes neuronales, redes neuronales convolucionales y algoritmos de visión
artificial
B. Análisis de los distintos sistemas existentes para el Reconocimiento automático
de patentes
C. Implementar un software para el reconocimiento automático de patentes en
Raspberry pi
D. Hacer evaluaciones del software tomando como parámetros otros sistemas de
reconocimiento automático de patentes para evaluar la confiabilidad del sistema

8
3.3 Detalle del Informe

• Descripción de los aspectos fundamentales de la Metodología a


Utilizar.

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

• Análisis de los Principales Trabajos Realizados en el área o tema


de la propuesta

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.

3.4 Ambiente de Ingeniería de Software

3.4.1 Metodología de Desarrollo de Software

Las metodologías de desarrollo de software es un marco de trabajo que se para poder


estructurar, planificar y controlar el proceso de desarrollo de un software, a lo largo del
tiempo se han ido creando muchos métodos y técnicas. Las metodologías de desarrollo
toman una gran importancia a día de hoy debido al impacto que ha generado el desarrollo
de software en la humanidad, pero esto no siempre fue así como se explica en la
investigación realizada por Bustos, R. (2003), en los años 1994 se realizó un estudio
dirigido por el Standish group a 350 empresas norteamericanas y los distintos proyectos
de desarrollo de software que había, los resultados eran desastrosos en el informe se
señala que “Dicho estudio arrojo que solo el 16.2% de los proyectos en pequeñas
compañías y el 9% en grandes compañías, finalizaban dentro de los costos y de los plazos
establecidos”. Este problema era precisamente porque no se acostumbraba a tener una
metodología de trabajo.
En este apartado se explicarán las metodologías relacionadas a este proyecto.

10
3.4.2 Metodología Cascada

La metodología de cascada tiene su origen en el año 1970 cuando el ingeniero Winston


W. Royce, propone una metodología para poder dar seguimiento al desarrollo de software
y poder detectar posibles errores en el diseño. Las principales características del método
cascada es que sigue una secuencia lineal, esto quiere decir que para pasar al siguiente
paso de desarrollo si o si tiene que haber terminado el paso anterior, este método permite
identificar cada etapa especifica en el desarrollo a la cual se le debe dar cumplimiento en
orden. La Fig. 2.2 muestra el Diagrama de Metodología Ciclo de Vida o Cascada

FIGURA. 2 DIAGRAMA DE METODOLOGÍA CICLO DE VIDA O CASCADA


FUENTE: RIVAS, C. I., CORONA, V. P., GUTIÉRREZ, J. F., & HERNÁNDEZ, L. (2015). METODOLOGÍAS
ACTUALES DE DESARROLLO DE SOFTWARE. REVISTA DE TECNOLOGÍA E INNOVACIÓN, 2(5), 980-986.

3.4.3 Metodología Incremental

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

FIGURA. 3 DIAGRAMA DE METODOLOGÍA INCREMENTAL.


FUENTE: INSTITUTO NACIONAL DE TECNOLOGÍAS DE LA COMUNICACIÓN. (2009). CURSO DE
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE

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

En este apartado se verá n los artı́culos y proyectos relacionados a la investigació n, estos


presentan los grandes avances y las distintas té cnicas utilizadas para desarrollar sistemas
ANPR que se acomodan a distintos ambientes.

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 á rea del reconocimiento automá tico de patentes (ANPR) se pueden encontrar


muchos proyectos realizados en los cuales se puede apreciar que existen una gran
variedad de metodologı́as para la detecció n y reconocimiento de patentes, la razó n por la
que existan muchas té cnicas para este propó sito es que un sistema ANPR no son
susceptibles a cambios de ambiente muy marcado, es por esto que cada aplicació n para
el reconocimiento de patentes lleva una configuració n especı́fica y se adapta al ambiente
en el que se requiere.
Estos sistemas son utilizados por entidades pú blicas de distintos paı́ses para el control
vehicular pero tambié n son utilizados por empresas privadas para el uso en cabinas de
peaje para el cobro automá tico de este, estaciones de servicio para llevar un registro de
conductores que se retiran sin realizar pagos, etc.

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.

4.1 Sistemas de identificación de patentes

En la literatura estudiada como tambié n en distintos proyectos relacionados a los


sistemas ANRP (Automatic Number Plate Recognition), se encuentran distintas
soluciones al momento de capturar la patente, algunos trabajos se basan en la
luminosidad, en la detecció n de bordes, en patrones o tambié n en los colores de la imagen.

Rojas, H, & Aracena, P. (2013). Desarrollaron un proyecto en el cual el algoritmo utilizado


para el reconocimiento automá tico de patentes se divide en 4 etapas: SIFT (puntos
caracterı́sticos y descriptores), Matching entre descriptores SIFT, Té cnicas de
agrupamiento (Clustering) y crecimiento de regiones. En la etapa de detecció n invariante
de puntos caracterı́sticos y descriptores de la imagen este detector trasforma datos de la
imagen en descriptores de esta forma se logra identificar las caracterı́sticas de la imagen.
Luego se realiza un matching entre los puntos caracterı́sticos y los descriptores SIFT
posteriormente en el agrupamiento se descartar los puntos que no sirven. En los
resultados experimentales el mé todo propuesto por este articulo alcanzo un 81% de
acierto por lo tanto se puede concluir que este mé todo no es muy fiable.

El proyecto realizado por Ceballos, J. (2012) el reconocimiento de la patente es a travé s


de la detecció n de bordes, esta té cnica es ampliamente utilizada en varias aplicaciones de
este tipo, consiste en detectar los bordes y los rangos en la imagen a travé s de distintas
té cnicas como sobel o canny, que son té cnicas usadas para la detecció n de bordes en una
imagen. el objetivo es ir recortando el á rea hasta detectar un rectá ngulo que es la figura
que define a una placa de matrı́cula vehicular.
En los resultados experimentales la tasa de reconocimiento global del sistema propuesto
alcanzo un 85,6% de detección de placas patentes, un resultado bueno para este sistema.

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.

4.2 Segmentación de caracteres


Para la segmentació n de caracteres tambié n se han desarrollado distintas té cnicas y
mé todos tales como el utilizado en el proyecto de Parra, R, & Regajo, R. (2006). Donde a
travé s de Matlab se realizan distintos aná lisis para obtener una estimació n del tamañ o de
las letras y ası́ lograr eliminar cualquier imperfecció n de la placa que pueda producir
algú n error en el resultado que se espera obtener.
Este método es de los más utilizados, también se puede aplicar un proceso similar con
opencv.

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.

4.4 Redes neuronales

Las redes neuronales son un paradigma de aprendizaje automático inspirado en el


cerebro, las redes neuronales son modelos simples del del funcionamiento del sistema
nervioso del ser humano, las unidades básicas son las neuronas las cuales se organizan
en capas.

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.

FIGURA 5. EJEMPLO DE CAPA CONVOLUCIONAL FUENTE: NÚÑEZ SÁNCHEZ (2016). DISEÑO DE


UN SISTEMA DE RECONOCIMIENTO AUTOMÁTICO DE MATRICULAS DE VEHÍCULOS MEDIANTE
UNA RED NEURONAL CONVOLUCIONAL.

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.

FIGURA 6. ARQUITECTURA RED NEURONAL CONVOLUCIONAL


FUENTE: DIEGO CALVO (2017): REDES NEURONALES CONVOLUCIONALES CNN

23
Capítulo 5
5.- REQUERIMIENTOS

Existen muchos sistemas de reconocimiento automá tico de patentes, en los cuales se


utilizan distintos mé todos y algoritmos creados para esta tarea especı́fica, se suelen
dividir en cuatro o má s etapas dependiendo de qué tan completo sea el sistema, pero son
4 las má s importantes. Las cuatro funciones principales de estos sistemas: Captar el
vehı́culo, Detectar la placa del vehı́culo, segmentació n de los caracteres en una imagen y
el reconocimiento de los caracteres.

5.1 Alcance

Debido a la actual falta de un sistema de registro vehicular en la universidad del


Bio-Bio para poder mantener un control sobre los vehículos que ingresan y salen
del campus concepción, se desarrollará un sistema de identificación automática
de patentes mediante el uso de visión por computadora, específicamente creando
un sistema de reconocimiento mediante redes neuronales permitiendo de esta
manera llevar un control moderno del estacionamiento de dicho establecimiento.
Este software será probado dentro de laboratorio mediante distintas pruebas
previamente definidas además se considera una prueba simulada en ambiente
como si se tratara del lugar de instalación final. El sistema será configurado en
idioma español, El proyecto tiene una duración estimada de 10 meses
comenzando desde el 15 de marzo y terminando el 17 de diciembre.
A) Un sistema de reconocimiento automático de patentes en una versión beta
B) Diseño preliminar de la interfaz gráfica de la aplicación
C) informe de pruebas de la aplicación
D) manual de usuario para el uso de la herramienta

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,

5.2 Objetivo del Software

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.

5.3 Descripción Global del Producto

5.3.1 Interfaz de Hardware

A continuación, se muestra la lista con los componentes físicos con los que interactúa el
usuario

Teclado Ratón Monitor Puertos USB

5.3.2 Interfaz de Software

Sistema Operativo Visualizador de imágenes Libro de Office


Raspberry pi OS

25
Software de código abierto Navegador

5.4 Requerimientos Específicos

5.4.1 Requerimientos Funcionales del Sistema

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.

5.4.2 Requerimientos no Funcionales

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

5.4.3 Interfaces Externas de Entrada

ID Nombre Interfaz Detalle


IE_01 Detección de automóvil Registro de la patente

5.4.4 Interfaces Externas de salida

ID Nombre de interfaz Salida


IS_01 Generar archivo de registro Pantalla
IS_02 Carpeta de imágenes Pantalla

27
Capítulo 6
6.- Factibilidad

6.1. Factibilidad Técnica

Para la Factibilidad de este proyecto es necesario trabajar con las herramientas


adecuadas tales como cámaras y computadoras que cumplan con los requisitos mínimos
para correr el software. Esta investigación tiene un tiempo estimado de 10 meses, además
se requerirán ciertos elementos para su realización, los cuales son detallados a
continuación.

• Computadora para el desarrollo del proyecto


• Ordenador de placa reducida raspberry pi 4
• Cámara compatible con raspberry pi 4
• Computadora para la administración del sistema ANPR
• Recursos humanos: Creador y desarrollador del proyecto
NOTA: Los recursos para financiar esta investigación correrán por cuenta del creador y
desarrollador del proyecto. No se considera la implementación, solo materiales para
desarrollar pruebas y evaluaciones de este proyecto

28
FIGURA. 7 VALORES DE COMPONENTES
FUENTE: MERCADOLIBRE.CL, PCFACTORY.CL, SOLOTODO.CL

6.2. Factibilidad Operativa

La Universidad del Bio-Bio necesita modernizar su sistema de registro, esta necesidad es


un hecho concreto ya que se han dado ciertos eventos en el último tiempo debido a la
mala gestión a la hora de realizar el registro.

Teniendo esta información es que se plantea como solución la construcción de un sistema


de reconocimiento automático de patentes que tenga la capacidad de registrar en tiempo

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.

A. Se disminuye el tiempo de registro al ingresar al estacionamiento


B. Se disminuye la posibilidad de que haya robos dentro del estacionamiento
C. Se obtiene un mayor control sobre las personas que entran o salen de la
universidad
D. Se puede saber con exactitud a la capacidad que se encuentra el
estacionamiento
E. Permite chequear los datos del vehículo en el ingreso al estacionamiento
Teniendo en cuenta todos los aspectos positivos que traería consigo este proyecto es
que la universidad está de acuerdo en que se realice este proyecto

6.3. Factibilidad Económica

Costos de personal

La propuesta de este proyecto no estima costo de personal, ya que no se tiene


presupuestado contratar personal para realizar este proyecto.

30
Costo de desarrollo

El sistema a desarrollar será a cargo de un alumno de la universidad del Bio-Bio en


proceso de titulación, es por este motivo y en acuerdo con la universidad es que los costos
asociados a realizar este proyecto son asumidos por el alumno.
Los gastos de este proyecto en tema de hardware fueron proporcionados por la
universidad del Bío-Bío, mientras que los otros costos son asumidos por el responsable
de este proyecto.
A continuación, se presenta la tabla con los costos aproximados que tendría este proyecto
considerando una situación real.

Valor (Mensual) Total

Gastos Técnicos $ 6.301.103


Costo del personal involucrado en
$ 1.000.000
desarrollo
Software de base y herramienta $ -

Costos de hardware (Solo se paga 1 vez) $ 301.103

Otros Costos (Luz, Agua, Oficina, Alimento) $ 240.000 $ 1.440.000

Costos de mantención $ 120.000 $ 120.000

$ 7.861.103

31
Costos asociados al hardware y software

El material de hardware necesario para la implementación de este proyecto esta


facilitado en parte por la universidad y el resto de componentes necesarios serán
asumidos por el alumno bajo decisión personal, por lo que no habrá costos asociados en
este apartado.
En cuanto al software el sistema este pensado para ser desarrollado con aplicaciones
100% gratuitas por lo cual tampoco habrá costos asociados en este apartado.

6.4 Conclusiones de Factibilidad

Después de los análisis de factibilidades económica, operativa y técnica se llega a la


conclusión de que el proyecto es viable en cada uno de los apartados de este estudio.
Económicamente el proyecto es de bajo costo, el equipo necesario para realizar este
proyecto es muy común por lo cual es fácil de conseguir, en cuanto a la factibilidad técnica
no es ningún inconveniente cada uno de los puntos tratados en este documento es
perfectamente obtenible y alcanzable.
Operativamente hablando se cuanta con todo el apoyo necesario para llevar a cabo el
proyecto y se espera cumplir cada uno de los aspectos positivos recopilados.

CAPITULO 7
7.- Análisis

32
7.1 Diagrama de flujo de datos

FIGURA. 8 DIAGRAMA DE FLUJO DE DATOS (COMPORTAMIENTO DEL SOFTWARE) FUENTE:


ELABORACIÓN PROPIA A PARTIR DE: CEBALLOS JIMÉNEZ, S. E. (2012).

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

Un caso de uso define una secuencia de acciones que proporcionaran resultados


observables. Los casos de uso proporcionan mucha información de interés como una
estructura que nos sirve para expresar requisitos funcionales en los procesos que tenga
el sistema. Estos pueden ser representados como un elemento grafico en un diagrama y
ser acompañado con una descripción del caso de uso en un documento textual.
El siguiente diagrama nos muestra el caso de uso para este sistema y las
intervenciones que tendrá que realizar tanto el administrador como el operador para
ejecutar con éxito el programa.

FIGURA. 10 CASO DE USO USUARIO DEL SISTEMA

35
FIGURA 11 CASO DE USO ADMINISTRADOR DEL SISTEMA

7.3 Definición casos de uso

TABLA 1: Detalle caso de uso iniciar sistema ANPR

Responsable de la implementación:

Caso de uso: Iniciar sistema ANPR

Descripción: el usuario a través de un ejecutable más un botón dentro de la interfaz


tendrá que dar inicio al sistema de reconocimiento automático de patentes

36
Precondiciones: No posee

Flujo de eventos: Básico

El actor El sistema

1.- El actor inicia la aplicación del El sistema comienza la detección


software a través del ejecutable para automática de patentes registrando a los
abrir la interfaz del programa vehículos que pasan por la zona de
detección
2.- una vez iniciado el programa da en un
botón inicio para empezar el
reconocimiento de patentes
Postcondición El usuario finalizando la jornada deberá
apagar el sistema

TABLA 2: Detalle inicio de sesión encargado de turno

Responsable de la implementación:

Caso de uso: Iniciar sesión encargado de turno

Descripción: el encargado de turno que le toque hacer el registro de los automóviles


que ingresan deberá iniciar sesión para llevar un control sobre el responsable en ese
turno
Precondiciones: debe tener creada una cuenta por el administrador del servicio

Flujo de eventos: Básico

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

TABLA 3: Detalle caso de uso Registro de un nuevo vehículo y conductor

Responsable de la implementación:

Caso de uso: registro de un nuevo vehículo y conductor

Descripción: el usuario a través de un ejecutable más un botón dentro de la interfaz


tendrá que dar inicio al sistema de reconocimiento automático de patentes,
Precondiciones: No tiene

Flujo de eventos: Básico

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:

Caso de uso: inicio de sesión administrador

Descripción: el administrador del sistema deberá ingresar con una cuenta y


contraseña generada por el programador para que este pueda ver el registro diario de
todos los autos que ingresaron, como para también hacer otro tipo de cambios dentro
del sistema
Precondiciones: No posee

Flujo de eventos: Básico

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

TABLA 5: Detalle caso de uso Registro de nuevos usuarios

Responsable de la implementación:

Caso de uso: Registro de nuevos usuarios

Descripción: el administrador del sistema será el encargado de registrar a nuevos


usuarios habilitados para poder iniciar el sistema

39
Precondiciones: No posee

Flujo de eventos: Básico

El actor El sistema

1.- El administrador registrara a un nuevo El sistema despliega un menú con


usuario para que pueda habilitar el opciones solo disponibles para el
sistema en su turno administrador en el cual registra a un
nuevo usuario
Postcondición No aplica

TABLA 6: Detalle caso de uso Mantención de los datos

Responsable de la implementación:

Caso de uso: Mantención de los datos

Descripción: el administrador será el encargado de actualizar los datos en caso de ser


necesario o eliminar datos que ya no se utilicen dentro del sistema
Precondiciones: tiene que haber un conducto + vehículo registrado o un usuario
registrado

Flujo de eventos: Básico

El actor El sistema

1.- El actor actualizara los datos o El sistema despliega un menú con


eliminara dependiendo de la situación opciones solo disponibles para el

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.

8.1 Reconocimiento de objetos

En este capítulo se describe la implementación del software para el reconocimiento


automático de patentes, se explican los distintos métodos utilizados paso a paso para
poder llegar a la ejecución del software.
El siguiente esquema describe con exactitud el proceso realizado para que el sistema
logre capturar los datos de una patente

41
FIGURA. 12 ESQUEMA RECONOCIMIENTO AUTOMÁTICO DE PATENTES

Como se puede observar en el diagrama, la entrada son imágenes de vehículos con


matrículas que se capturan a través de una cámara en tiempo real.
El software está hecho en base a una Red neuronal convolucional la cual está cargada de
información con un entrenamiento previamente realizado, por lo cual es capaz de
predecir si encuentra una patente o no, el entrenamiento de estas redes se realiza
utilizando un conjunto de datos de lo que se quiere detectar, dentro de estos datos se
identifica exactamente lo que se quiere detectar generando una etiqueta con coordenadas
que servirá para entrenar la red neuronal.
Es recomendable que los datos utilizados para entrenar una red neuronal convolucional
no sean de un tamaño excesivamente grande ya que cada pixel es una neurona con
información, para este proyecto se utilizaron imágenes de un máximo de 320 pixeles de
alto y 320 pixeles de ancho para hacer un sistema más efectivo.
Cuando se ingresa una imagen para su detección el programa detectará la patente del
vehículo y partirá un proceso de segmentación para poder separar cada uno de los
componentes que tiene la patente, en el caso de las patentes chilenas contienen mucha
información en la matricula por lo que identificar claramente los caracteres que se
quieren tiene una dificultad añadida

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.

8.1.1 Modelo Elegido para la detección y segmentación

El modelo elegido para realizar el entrenamiento pertenece al conjunto de modelos de


Tensorflow2 ModelZoo. ModelZoo es una colección de modelos de detección previamente
entrenados en el conjunto de datos COCO, en el conjunto de datos Kitti, el AVA v2.1
dataset the iNaturalist Species Detection Dataset entre otros.
El Nombre del modelo elegido es SSD MovileNet v2 320x320 este modelo de red neuronal
es construido de una forma piramidal llamada FPNLite (Feature Pyramid Network). Es
una red piramidal de funciones paralelas para la detección de objetos, en este tipo de red
genera múltiples capas de características con información de mejor calidad que la
pirámide de características normal para la detección de objetos.
El flujo de datos de la red FPN se compone de una vía que va desde abajo hacia arriba y
otra que viene desde arriba abajo. La vía ascendente es donde encontramos las capas de
convoluciones habituales las cuales sirven para la extracción de las características, cada
vez que se sube la resolución espacial de la imagen disminuye. Con mas estructuras de
alto nivel detectadas, aumenta el valor semántico de cada capa.

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.

8.2 Conjunto de entrenamiento

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

8.3 Conjunto de datos para validar el sistema.

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

La extracción de características es uno de los pasos mas fundamentales dentro de este


proceso, en este proyecto la red neuronal elegida para el reconocimiento óptico de
caracteres es EasyOCR (Easy Óptica Character Recognition) en español reconocimiento
óptico de caracteres fácil, esta red cuenta con la ventaja de que es rápida, fácil de utilizar
y tiene un buen nivel de precisión a la hora de leer los caracteres.
EasyOCR es compatible es compatible con mas de 80 idiomas, Este proyecto de
reconocimiento óptico de caracteres sigue un proceso tal como de describe en el siguiente
diagrama.

FIGURA 17 MODELO DE DETECCIÓN DE CARACTERES FUENTE:


HTTPS://WWW.ANALYTICSVIDHYA.COM/BLOG/2021/06/TEXT-DETECTION-FROM-IMAGES-USING-
EASYOCR-HANDS-ON-GUIDE/

Todo el aprendizaje profundo está basado en pytorch. El modelo de reconocimiento es un


RCNN (Convolutional recurrent neural network por sus siglas en inglés) esta es capaz de
detectar eficazmente el área donde se encuentra el texto al explorar cada región de
carácter. El cuadro delimitador de objetos se obtiene encontrando rectángulos

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

El primer experimento consiste en probar la capacidad que tiene la red neuronal de


detectar patentes a través de una fotografía. Se probará tomando un total de 300
imágenes de vehículos con patente chilena y al pasarlas por las redes neuronales
previamente entrenadas una con un conjunto de 400 imágenes y otra con un conjunto de
1000 imágenes se verá que cantidad de patentes fue reconocida correctamente además
de conocer que porcentaje de seguridad tiene a la hora de predecir dichas detecciones,
Ejemplo de prueba:
Datos de entrada:

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.

RED NEURONAL Cantidad Imágenes Correctas Incorrectas


de prueba
Entrenamiento de 300 237 (%) 63(%)
400 imágenes
Entrenamiento de 300 270(%) 30(%)
1000 imágenes
TABLA 7: RESULTADOS PRUEBA 1

8.6.2 Prueba de OCR Reconocimiento óptico de caracteres

En este segundo experimento se probará la capacidad de lectura y precisión del algoritmo


de OCR (Reconocimiento Óptico de Caracteres en español), para esta prueba se tiene un
conjunto de 300 imágenes con patentes, como entrada tendrá una imagen de una patente
y el algoritmo tiene que ser capaz de leer el texto que se encuentra en dicha imagen y
devolver la cadena de texto correspondiente a la patente del automóvil
Datos de entrada:

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.

8.6.3 Prueba de reconocimiento de patente a través de webcam

En este experimento se pondrá a prueba la capacidad de la red neuronal para detectar


patentes a partir de un video capturado por webcam en tiempo real, esta prueba será
realizada con un conjunto de datos de 200 imágenes, 100 de ellas contienen patentes y
100 de ellas no contienen patentes, de esta manera se busca probar la fiabilidad del
software a la hora de hacer predicciones.
Se espera recopilar información en esta prueba para corregir posibles problemas o
confusiones que pueda tener la red neuronal a la hora de hacer detecciones en tiempo
real.
Datos de entrada:

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.

8.6.4 Prueba de reconocimiento de patente y OCR a través de


webcam

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:

Imágenes Patentes Patente(texto) Patente no


reconocidas extraída con éxito detectada o mal
reconocida
200 190 158 10
TABLA 9: RESULTADOS PRUEBA 3

Cuando se analizan los resultados se observa que el reconocimiento de patentes es muy


similar a los experimentos anteriores en este caso se obtiene que en un 95% de los casos
la patente fue detectada lo cual equivale a 190 sobre 200.
A la hora de extraer el texto de la patente se nota una gran baja en la correcta extracción
de los caracteres a comparación del experimento realizado con imágenes, en este caso
solo se obtiene un 79% de reconocimiento correcto de los caracteres, esto se puede deber
a distintos motivos como la luminosidad a la hora que se realizó la prueba y el movimiento
presente a la hora de capturar la patente.

8.6.5 Prueba de software en ambiente real con vehículo en


movimiento.

La última etapa a experimentar para el proyecto es realizar detecciones en tiempo real


registrando las patentes detectadas en un estacionamiento, para esto se portó el
programa de desarrollo a una raspberry pi 4 y se montó en el estacionamiento de un
condominio.
Este experimento se realizo simulando un ambiente real el conjunto de datos que se logro
registrar fue de 30 vehículos, los resultados se muestran en la siguiente tabla

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

Los sistemas de reconocimiento de objetos, específicamente el de reconocimiento


automático de patentes son sistemas que se llevan mucho tiempo investigando y
diseñando distintas soluciones que satisfagan las distintas necesidades que se presentan
en esta área. Estos sistemas han resultado ser muy útiles para toda la industria automóvil
debido a que genera muchos beneficios para el desarrollador como para los usuarios es
por este motivo que cada vez se valoran mas este tipo de sistemas.
Analizando estos sistemas en distintas investigaciones, llegue a la conclusión de que en
primer lugar existen muchas formas de lograr el reconocimiento automático de las
patentes sin embargo estas distintas técnicas existentes apuntan a distintos objetivos.
Cada una de estas técnicas esta enfocada a lograr un tipo de detección en específico y
difícilmente un mismo programa se podría ocupar en distintas situaciones y lugares. En
segundo lugar, me percate de que muchos de estos sistemas que se aplican en chile
utilizan técnicas bastante antiguas para la detección de objetos y al aplicarse pequeñas
variaciones en la implementación podría afectar a todo el sistema Y en tercer lugar estos
sistemas suelen ser bastante costosos.
Tras examinar con detención todos estos puntos decidí desarrollar un sistema de
reconocimiento automático de patentes de bajo costo, que este desarrollado con la
tecnología mas nueva para el reconocimiento de objetos y no se vea tan afectado a los
cambios de entorno que sea sometido. El software se desarrolló con código abierto
utilizando redes neuronales y fue implementado sobre una computadora de bajo costo.
Este software desarrollado permite detectar con una precisión muy elevada las patentes
de automóviles incluso cuando es expuesto a cambios de ambiente, a la hora de reconocer
el texto de la patente los resultados también son muy buenos. Esta implementación se
llevo a cabo principalmente con las herramientas de Python y Tensorflow además del uso

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

[1]. Bustos, R. A. G. (2003). Métodos de desarrollo de software: El desafío


pendiente de la estandarización Software Development Methodologies: A Duel
Pending for Standardization. Theoria, 12(1), 23-42.

[2]. Patel, C., Shah, D., & Patel, A. (2013). Automatic number plate recognition
system (anpr): A survey. International Journal of Computer Applications, 69(9).

[3]. INSTITUTO NACIONAL DE TECNOLOGÍAS DE LA COMUNICACIÓN. (2009). CURSO DE


INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE

[4]. Rojas Henríquez, J., & Aracena Pizarro, D. (2013). Segmentación de


patentes vehiculares mediante técnicas de agrupamiento en ambientes externos.
Ingeniare. Revista chilena de ingeniería, 21(2), 172-184.

[5]. Ceballos Jiménez, S. E. (2012). Identificación y reconocimiento de


matrículas de automóviles con MATLAB.

[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.

[9]. Aguilera, S., & Constenla, G. (2010). Aplicación de Redes Neurales en el


reconocimiento óptico de caracteres. In XII Workshop de Investigadores en
Ciencias de la Computación.

[10]. Smith, R. W. (2013, February). History of the Tesseract OCR


engine: what worked and what didn't. In Document Recognition and Retrieval
XX (Vol. 8658, p. 865802). International Society for Optics and Photonics.

[11]. Fuente: https://www.ine.cl/estadisticas/economia/transporte-y-


comunicaciones/permiso-de-circulacion/parque-de-vehiculos Fecha: 01-12-
2020

[12]. Alvear-Puertas, Vanessa, Rosero-Montalvo, Paul, Peluffo-


Ordóñez, Diego, & Pijal-Rojas, José. (2017). Internet de las Cosas y Visión
Artificial, Funcionamiento y Aplicaciones: Revisión de Literatura. Enfoque
UTE, 8(Supl. 1), 244-256.

[13]. Bradski, G., & Kaehler, A. (2008). Learning OpenCV: Computer vision with
the OpenCV library. " O'Reilly Media, Inc.".

[14]. Mery, D. (2004). Visión por computador. Santiago de Chile. Universidad


Católica de Chile.

[15]. Núñez Sánchez-Agustino, F. J. (2016). Diseño de un sistema de


reconocimiento automático de matrículas de vehículos mediante una red
neuronal convolucional.

[16]. Fuente: https://www.tensorflow.org/

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.

[20]. Zaccone, G. (2016). Getting started with TensorFlow. Birmingham: Packt


Publishing.

[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

También podría gustarte