Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
MÉTODO AUTOMÁTICO PARA EXTRAER INFORMACIÓN DE ÓRDENES DE COMPRA DE LA FERRETERÍA HERRAMIENTAS Y SUMINISTROS
ANDRÉS MAURICIO GIL CARDENAS 625726
ASESOR
JUAN CARLOS BARRERO
UNIVERSIDAD CATÓLICA DE COLOMBIA
FACULTAD DE INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS
MODALIDAD TRABAJO DE INVESTIGACIÓN TECNOLÓGICA
BOGOTÁ D.C.2020
2
3
NOTA DE ACEPTACIÓN
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
Firma Jurado 1
_______________________________
Forma Jurado 2
_______________________________
Juan Carlos Barrero Calixto
Asesor
4
Tabla de contenido
1. Resumen 9
2. INTRODUCCIÓN 10
3. PLANTEAMIENTO DEL PROBLEMA 11
Pregunta problema 12
4. JUSTIFICACIÓN 13
5 . OBJETIVOS 14
5.1 Objetivo general 14
5.2 Objetivos específicos 14
6. ALCANCES Y LIMITACIONES 15
6.1 Alcances 15
6.2 Limitaciones 15
7. MARCO DE REFERENCIA 16
7.1 Marco Teórico 16
7.1.1 Redes neuronales 16
7.1.2 Redes Neuronales Convolucionales 17
7.1.2 Exhaustividad (Recall) 18
7.1.3 Precisión 19
7.1.4 F1-Score 19
7.1.5 Extracción de características 19
7.1.6 Leave One Out Cross-Validation (LOOCV) 20
7.2 Marco conceptual 25
7.2.2 Aprendizaje de máquina (Machine Learning) 25
7.2.3 Aprendizaje Profundo (Deep Learning) 25
7.2.4 Automatización 26
7.2.5 OCR 26
7.2.7 Detección de objetos en imágenes 26
7.2.8 Convolución Atroz (Atrous convolutions) 26
7.2.10 K-Fold Cross-Validation 27
7.2.11 Afilado de imagen 27
7.2.12 Binarización de una imagen 28
7.3. ESTADO DEL ARTE 30
7.3.1 Automatic Segmentation and Recognition of Bank Cheque Fields 30
5
7.3.2 VEHICLE LOGO RECOGNITION BASED ON VEHICLE REGION AND
MULTI-SCALE FEATURE FUSION 31
7.3.3 Pattern Recognition 32
7.3.4 Reconocimiento de Caracteres en Imagen Digital, una Aplicación al
Reconocimiento Automático de Placas de Vehículos 33
7.3.5 CNN-based multilingual handwritten numeral recognition: A Resultados
procesos evaluados 35
fusion-free approach 35
7.3.6 OCR binarization and image pre-processing for searching historical documents
37
7.3.7 Food Image Recognition by Using Convolutional Neural Networks (CNNs) 39
7.3.8 Detección de logos en imágenes mediante Redes Convolucionales 40
8. METODOLOGÍA 42
8.1 Conjunto de datos 43
8.2 Preprocesamiento 43
8.3 Extracción de características 44
8.4 Muestreo 44
8.5 Clasificación 44
8.6 Medidas de desempeño 45
8.7 Validación de Resultados 45
9. Diseño metodológico 46
10. Características del equipo 56
11. RESULTADOS 57
12.Conclusión 61
13.Trabajos futuros 62
14. BIBLIOGRAFÍA 63
6
Lista de figuras
Figura 1. Redes Neuronales 12
Figura 2. Realización producto matricial 13
Figura 3. Aplicación de Subsampling 14
Figura 4. Ejemplo de aplicación on del algoritmo K-NN básico 18
Figura 5. Distancia euclidiana 19
Figura 6. Clasificador SVM 20
Figura 7. Clasificador SVM plano 22
Figura 8. SSD Mobilenet Layered Architecture 23
Figura 9. Convolución atroz 26
Figura 10. Filtro de cheque 28
Figura 11. Segmentación de cheque 28
Figura 12. Estructura de la red 30
Figura 13. Ejemplo de la transformación 31
Figura 14. Muestra procesamiento de imagen 29
Figura 15. Extracción de número del código postal 34
Figura 16. Binarización texto 36
Figura 17. Esquema modelo de red 37
Figura 18. Metodología 40
Figura 19. Archivo digital 42
Figura 20. Binarización de imagen 43
7
Figura 20. reducción de imagen 46
Figura 21. Orden de compra con etiquetas 47
Figura 22. XML de imagen 019.pdf.png 48
Figura 23. Mapa de etiquetas 50
Figura 24. Orden de compra clasificada 50
Figura 25. Aplicación de ocr en región 51
Figura 26. Extracción de caracteres 55
Figura 27. Medidas de desempeño SSD MobileNet V1 FPN 640x640 56
Figura 28. Medidas de desempeño SSD MobileNet V2 FPV Lite 640x640
56
Figura 29. Pérdida de modelo MobileNet V1 FPN 640x640 58
Figura 30. Pérdida de modelo MobileNet V1 FPN 640x640 59
Figura 31. MobileNet V1 FPN 640x640 59
Figura 32. Pérdida de modelo SSD MobileNet V2 FPV Lite 640x640 60
8
Lista de tablas
Tabla 1. Evaluación de desempeño 30
Tabla 2. Comparación de resultados 31
Tabla 3. Resultados procesos evaluados 32
Tabla 4. Resultado de las pruebas 34
Tabla 5. Comparativa del reconocimiento numérico 36
Tabla 6. Reconocimiento de palabras 37
Tabla 7. Matriz de fusión y tasas de reconocimiento por BoF en las
imágenes de prueba 39
Tabla 8. Matriz de confusión 40
Tabla 9. Cantidad de órdenes de compra 45
Tabla 10. Medidas de desempeño: precisión 51
Tabla 11. Medidas de desempeño: recall 52
9
1. Resumen
En el presente proyecto nos enfocaremos en el área de financiera de La Ferretería
Herramientas y suministros SAS, ya que es allí donde se realiza el proceso de
selección de la orden de compra, escaneo de esta misma y su almacenamiento
en un servidor de la empresa con su respectiva carpeta para facilitar una futura
búsqueda. Se propone diseñar un método automático utilizando aprendizaje
profundo (deep learning) implementando la arquitectura Mobilenet-ssd para
extraer las características y elementos que permitan identificar las órdenes de
compra, con esto, este método automático permitirá reconocer a la empresa
generadora de órdenes de compra mediante su logo y el número del documento
impreso en esta misma para así ubicarla en una carpeta única para cada
empresa.
Este método se propone para el área de financiera que es donde se realiza la
factura electrónica la cual debe tener entre sus documentos adjuntos la orden de
compra, con este método se busca agilizar y mantener mayor orden sobre el
proceso de escanear las órdenes de compra que se reciban de los clientes.
Para el desarrollo de este proyecto se planteó una metodología a desarrollar en 7
partes: Construcción del conjunto de datos, preprocesamiento, extracción de
características, muestreo, clasificación, medidas de desempeño y validación de
los resultados.
Palabras claves: Aprendizaje profundo, Sistema de clasificación, Algoritmo,
Mobilenet-ssd.
10
2. INTRODUCCIÓN
El orden y clasificación de los archivos es muy importante para las empresas ya
que es un recurso de suma importancia, además de que un archivo ordenado
garantiza el flujo y la disposición de los archivos “si los archivos se encuentran
bien organizados no tendrán los funcionarios que partir de cero, o invertir tiempo
y recursos en búsqueda infructuosa de información, elevando los costos de
operación, produciendo ineficiencia, atraso, confusión y, en general, una
deficiente administración1”.
La empresa La Ferretería Herramientas y Suministros SAS, dedicada a la venta
de productos de construcción, tanto a clientes naturales como a grandes
compañías (siendo esta última su principal fuente de ingresos), consta de 32 de
trabajadores enfocados en distintas áreas como: ventas, financiera, logística y
recursos humanos.
Debido al creciente número de clientes y aumento en las ventas de los clientes
más antiguos de la Ferretería, en este proyecto de investigación tecnológica se
propone un diseñar un método que permita clasificar y almacenar órdenes de
compra con el fin de agilizar el proceso de almacenamiento de órdenes de compra
en el archivo digital ya que en la actualidad solo un empleado realiza esta función,
esto se convierte en una necesidad de primer orden: al optimizar este proceso el
personal de trabajo podrá emplear su fuerza de trabajo en otras labores, lo cual le
representa una ganancia monetaria a la empresa. Además, implementar esta
herramienta puede despertar interés en otras microempresas del sector.
1 Llamoza, Diana, and Elisa Freschi. n.d. “IMPORTANCIA DE LA ORGANIZACIÓN DE DOCUMENTOS.” IMPORTANCIA DE LA ORGANIZACIÓN DE DOCUMENTOS. https://www.academia.edu/11056093/IMPORTANCIA_DE_LA_ORGANIZACIÓN_DE_DOCUMENTOS.
11
3. PLANTEAMIENTO DEL PROBLEMA
En la Ferretería Herramientas y Suministros SAS los clientes emiten sus órdenes
de compra para realizar el pedido de los productos que requieran, cada una de
estas se deben imprimir y firmar por el trabajador responsable de alistar los
productos solicitados, luego de que la orden de compra es firmada, esta se debe
almacenar en el archivo digital de la empresa.
La Ferretería en la actualidad cuenta con aproximadamente 400 clientes, y cada
cliente cuenta con una carpeta dentro del archivo digital, esto hace que sea muy
extensa la labor de almacenar cada orden de compra y los encargados de
digitalizar la orden de compra que se encuentran en la bodega no siempre pueden
utilizar los computadores ya que estos son utilizados por empleados que se
encargan de otras tareas dentro de la empresa como lo son la gestión del
inventario, remisionar o ingresar facturas de compra. Si bien el creciente número
de clientes y órdenes de compra es una ventaja para la Ferretería, el
almacenamiento de estos documentos cada vez es más lento, presentando un
desafío al momento de almacenar y buscar órdenes de compra.
Esta orden de compra tiene campos como: el nombre de la empresa, logo, NIT,
fecha de realización entre otros. Esta orden de compra al no poseer un formato
establecido hace que cada empresa maneje formatos diferentes, dando como
resultado que la ubicación del logo e información que se desea extraer de la orden
de compra varíe, esto hace que no se pueda realizar una plantilla para lograr
extraer esta información, por lo cual se requiere aplicar distintos métodos para la
extracción de la información como lo pueden ser OCR, redes neuronales o
information retrieval.
12
Pregunta problema
¿Qué elementos se deben considerar para implementar un método automático
para extraer información de órdenes de compra almacenadas en el archivo
digital de la ferretería herramientas y suministros?
13
4. JUSTIFICACIÓN
Debido al crecimiento de las ventas, el flujo de órdenes de compra ha aumentado
en una gran cantidad. Mantener en orden dicha pila de documentos se ha
convertido en una tarea tediosa y de difícil rastreo de documentos específicos.
La labor de ordenamiento, clasificación y almacenamiento está colapsada. La
fuerza de trabajo de esta empresa está derrochando cantidades de tiempo y
energía en este proceso generando retrasos en sus entregas y desorden en la
oficina.
Es por esto que diseñar un método automático que permite extraer esta
información es necesario. La realización de este método servirá como insumo
para el posterior desarrollo de una aplicación la cual beneficiará al área de
facturación logrando reducir el tiempo utilizado para almacenar las órdenes de
compra en el archivo digital, por lo cual el trabajador tendrá mayor tiempo para
realizar sus otras labores, adicional a esto se evitarán errores al momento de
adjuntar la orden de compra a la factura electrónica obteniendo así un ahorro de
dinero ya que la corrección de la factura electrónica tiene un costo.
Debido a que el proceso de almacenar las órdenes de compra en el archivo
digital puede llegar a tomar bastante tiempo, en algunas ocasiones ocurre que la
empresa no puede facturar debido a la falta de este documento y que por política
de algunos clientes solo aceptan facturas en fechas específicas, esto puede
incurrir en pérdidas para la empresa, con este método automático se busca dar
soporte a las personas responsables de la facturación permitiéndoles tener un
archivo digital ordenado y donde se puede
Gracias a los avances en el aprendizaje de máquina, diseñar un método que
permita extraer información de manera automática de las órdenes de compra
permite dar un paso inicial al desarrollo de un software que permita automatizar la
tarea del almacenamiento no solo de órdenes de compra sino a otros documentos.
14
5 . OBJETIVOS
5.1 Objetivo general
Implementar un método automático mediante algoritmos de aprendizaje de
máquina para la extracción de información en órdenes de compra almacenadas
en el archivo digital de La Ferretería herramientas y suministros SAS.
5.2 Objetivos específicos
5.2.1 Construir un dataset a partir de las órdenes de compra almacenadas en
el archivo digital de La Ferretería para el entrenamiento de los algoritmos.
5.2.2 Diseñar un método automático a partir de técnicas de aprendizaje de
máquina para la extracción de información de las órdenes de compra de La
Ferretería.
5.2.3 Desarrollar el método automático aplicando algoritmos de aprendizaje de
máquina al dataset para extraer la información de las órdenes de compra.
5.2.4 Evaluar el desempeño y eficacia del método automático para la
clasificación de órdenes de compra a partir de las medidas de desempeño:
exactitud, precisión, valor f1 y sensibilidad.
15
6. ALCANCES Y LIMITACIONES
6.1 Alcances
Se desarrollará un método automático que permita identificar y extraer
información de las órdenes de compra escaneadas y digitales de La Ferretería
Herramientas y Suministros, entre estos datos la empresa desea identificar el
logo de la empresa y variables como el NIT, la fecha de la orden de compra, la
forma de pago, observaciones para la entrega del material entre otros para su
posterior almacenamiento.
6.2 Limitaciones
Para realizar los objetivos propuestos se tendrá en cuenta las siguientes
limitaciones:
● El tamaño del dataset dependerá de la cantidad de órdenes de compra
que nos permita utilizar la Ferretería.
● Para el entrenamiento de los algoritmos sólo se tendrá en cuenta las
órdenes de compra que lleguen a la Ferretería.
● Este método automático se aplicará únicamente a órdenes de compra
almacenadas en el archivo digital de la ferretería, pero se deja abierta la
posibilidad para que la ferretería si así lo desea en un futuro busque
implementar un software que le permita aplicar este método no solo a
órdenes de compra, sino a otros documentos de carácter contable como
lo son las remisiones o facturas de compra.
● En este proyecto solo se diseñará un método capaz de reconocer las
órdenes de compra según las características extraídas, pero se deja
abierta la posibilidad de que si La Ferretería lo desea implemente un
software donde pueda aplicar este método no solo a órdenes de compra
sino también a otros documentos contables como los son facturas o
remisiones.
16
7. MARCO DE REFERENCIA
7.1 Marco Teórico
7.1.1 Redes neuronales
Las redes neuronales son la implementación de un aprendizaje de máquina, en
el cual se reciben una serie de valores de entrada y cada una de estas llega a un
nodo llamado neurona. Estas neuronas están agrupadas por capas y cada una
posee un valor numérico con el cual modifica la entrada recibida, los resultados
que se obtienen pasan a la siguiente capa y así hasta llegar al final de la red.
Figura 1: Redes Neuronales
Fuente: Industria 4.0 Disponible en <
https://www.atriainnovation.com/que-son-las-redes-neuronales-y-sus-funciones/>
Al alcanzar el final se obtiene una salida la cual será la predicción calculada por
la red, la complejidad de sus funciones se puede dar por la cantidad de capas que
posea.2
2 Atria Innovation. 2019. “Qué son las redes neuronales y sus funciones.” Qué son las redes neuronales y sus funciones. https://www.atriainnovation.com/que-son-las-redes-neuronales-y-sus-funciones/.
17
7.1.2 Redes Neuronales Convolucionales
Su diferencia con las redes neuronales convencionales inicia en el procesado de
la imagen, se crean las “convoluciones” las cuales consisten en tomar distintos
grupos de píxeles cercanos de la imagen e ir operándolos generando un
producto escalar contra una matriz llamada kernel, se crea un kernel por cada
filtro que se desee aplicar.
Figura 2: Realización producto matricial
Fuente: ¿Cómo funcionan las Convolutional Neural Networks? Disponible en
<https://www.aprendemachinelearning.com/como-funcionan-las-convolutional-
neural-networks-vision-por-ordenador/>
A partir de la imagen original se generan distintas capas por cada convolución
aumentando el número de neuronas en una gran cantidad. Cada convolución o
filtro que se realiza genera una imagen nueva en la cual se van representando
distintas características de la imagen original.
18
Para poder manejar esta gran cantidad de neuronas generadas después de
cada convolución es necesario realizar una reducción de estas de tal manera
que para realizar la siguiente capa no requiera una gran cantidad de
procesamiento, este proceso se le llama Subsampling en el cual de cada imagen
filtrada se extraen las características más destacables de esta.3
Figura 3: Aplicación de Subsampling
Fuente: ¿Cómo funcionan las Convolutional Neural Networks? Disponible en
<https://www.aprendemachinelearning.com/como-funcionan-las-convolutional-
neural-networks-vision-por-ordenador/
7.1.2 Exhaustividad (Recall)
La métrica de Recall o exhaustividad está hecha para informar sobre la cantidad
que el modelo de machine learning es capaz de identificar. Está dada por la
cantidad de resultados positivos correctos dividido por el número de todas las
muestras.
3 Na8. 2018. “¿Cómo funcionan las Convolutional Neural Networks? Visión por Ordenador.” aprende Machine Learning. https://www.aprendemachinelearning.com/como-funcionan-las-convolutional-neural-networks-vision-por-ordenador/
19
7.1.3 Precisión
Esta métrica tiene capacidad de medir la calidad del modelo de machine learning
en tareas de clasificación dando un porcentaje de efectividad que se tendrá. Está
dada por el número de resultados positivos correctos dividido por el número de
todas las muestras.
7.1.4 F1-Score
Esta técnica combina las métricas de Recall y Precisión en un solo valor
comparando el rendimiento del modelo junto a la precisión de este mismo.4
7.1.5 Extracción de características
Para la identificación de una imagen es necesario la extracción de características
en distintas áreas de interés para lograr determinar con mayor precisión. Extraer
una gran cantidad de características aumenta la complejidad del clasificador y a
su vez puede afectar el rendimiento.5
4 Martinez Heras, Jose. 2019. “Precision, Recall, F1, Accuracy en clasificación.” Precision, Recall, F1, Accuracy en clasificación. https://www.iartificial.net/precision-recall-f1-accuracy-en-clasificacion/. 5 Díaz Sotolongo, Alejandro. n.d. “Extracción de características para el análisis de imágenes de mamografías.” Extracción de características para el análisis de imágenes de mamografías. https://www.monografias.com/trabajos93/extraccion-caracteristicas-analisis-imagenes-mamografias/extraccion-caracteristicas-analisis-imagenes-mamografias.shtml
20
7.1.6 Leave One Out Cross-Validation (LOOCV)
Es un método iterativo que consiste en un conjunto de entrenamiento de datos con todas
las características disponibles excepto una, donde la característica que no se toma se
utiliza para la validación, este proceso se repetirá según el número de características
variando el conjunto de entrenamiento con las características que se utilizan para la
validación. Al finalizar el entrenamiento se calcula el error con la fórmula: 6
𝐶𝑉(𝑛) =1
𝑛 ∑
𝑛
𝑖=1
(𝑦𝑖 − ��𝑖(−𝑖)
) 2
Donde el error se calcula por el promedio de los errores cometidos por cada
iteración realizado
7.1.7 K- vecinos más cercanos
También conocido como k-nearest neighbors (k-nn) es un algoritmo usado
ampliamente en el reconocimiento de patrones en un conjunto de datos y es
famoso por su simplicidad y baja tasa de error.
A diferencia de otros algoritmos, este no genera un modelo de aprendizaje con
los datos de entrenamiento, sino que el aprendizaje sucede en el mismo
momento en el que se prueban los datos de entrenamiento.7
El proceso que sigue el algoritmo es:
● Escoge el número de k y la distancia.
● Encuentra el k vecino más cercano de la muestra que se pretende
clasificar.
● Asigna la etiqueta de clase por votación mayoritaria.
6 Amat Rodrigo, Joaquín. 2020. “Validación de modelos predictivos: Cross-validation, OneLeaveOut, Bootstraping.” Validación de modelos predictivos: Cross-validation, OneLeaveOut, Bootstraping. https://www.cienciadedatos.net/documentos/30_cross-validation_oneleaveout_bootstrap. 7 Moujahid, Abdelmalik, Inaki Inza, and Pedro Larranaga. n.d. http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t9knn.pdf.
21
Figura 4: Ejemplo de aplicación on del algoritmo K-NN básico
Fuente K-Nearest Neighbours (KNN) Algorithm diponible en:
<https://images.app.goo.gl/jwAgSZjbeXFMcjgt7>
Donde se utiliza la distancia euclidiana para clasificar los k vecinos se da por:
Figura 5: Distancia euclidiana
Fuente Clasificadores K-NN Disponible en
<http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t9knn.pdf>
7.1.8 Máquinas de soporte vectorial (SVM)
22
Las máquinas de soporte vectorial es un algoritmo de aprendizaje supervisado
utilizado para solucionar problemas de clasificación y regresión mostrando un
mejor desempeño frente a otros algoritmos de aprendizaje de máquina .
Se emplean mayor mente para resolver problemas de clasificación y
reconocimiento de patrones en conjuntos de datos utilizando la función de kernel
, donde se emplea para determinar la clase de un dato de entrada.
Las SVM definen límites denominados rectas en dos dimensiones o planos
cuando son tres dimensiones.
Figura 6: Clasificador SVM
Fuente: classification of data by support vector machine (SVM).
dsiponible en <https://images.app.goo.gl/itx7YFRHBYe5Ahbz5>
Figura 7: Clasificador SVM plano
23
Fuente Exploring Support Vector Machine Acceleration with Vitis
Disponible en <https://images.app.goo.gl/xJRyaMAiMbPFvc1Z9>
El objetivo principal del algoritmo es encontrar un hiperplano que sea capaz de
maximizar el margen que separa las diferentes clases, por tanto si este método
se aplica a un conjunto de datos que contenga diferentes características se
podría predecir el comportamiento en nuevos datos de entrada.8
Estos hiperplanos están definidos por:
𝐻1: 𝑤 ∗ 𝑥1 + 𝑏 ≥ 1 𝑐𝑢𝑎𝑛𝑑𝑜 𝑦1 = +1
𝐻2: 𝑤 ∗ 𝑥1 + 𝑏 ≤ 1 𝑐𝑢𝑎𝑛𝑑𝑜 𝑦1 = −1
La distancia entre los hiperplanos está dada por:
𝑚 =|𝑤 ∗ 𝑥𝑖 + 𝑏|
||𝑤||=
1
||𝑤||
8 Y. Kung, S. n.d. Kernel Methods and Machine Learning. https://books.google.com.co/books?hl=es&lr=&id=aRcmAwAAQBAJ&oi=fnd&pg=PR17&dq=kernel+machine+learning&ots=Q0dGLmELUD&sig=N6wgXWgpjnz56g9RzLIhGxyva2M#v=onepage&q=kernel%20machine%20learning&f=false.
24
7.1.9 Keras
Keras es una librería desarrollada en Python utilizada para el aprendizaje
profundo y puede ejecutarse en Tensor flow, theano o CNKT(The microsoft
cognitive toolkit).Para el caso de Tensor flow utiliza la API tf.keras que le
permite dar mayo soporte a algunas características avanzadas de este.
.7.1.10 Mobilenet-ssd
Mobilenet -ssd es un modelo de detección de casilla múltiple de disparo único
(Single Shot Multibox Detector/SSD) utilizado principalmente para la detección
de objetos en imágenes, en donde permite reducir el tamaño del modelo y a su
vez mantiene la calidad del mismo este, a su vez, es un algoritmo muy popular
debido a que en general es más rápido que la red Faster RCN.
Esta red, es una red convolucional de una sola capa que aprende a predecir
según las etiquetas establecidas y a su vez clasificar estas.
Figura 8 SSD Mobilenet Layered Architecture
Fuente Object Detection using SSD Mobilenet and Tensorflow Object
Detection API : Can detect any single class from coco dataset
Dispnible en https://medium.com/@techmayank2000/object-detection-using-
ssd-mobilenetv2-using-tensorflow-api-can-detect-any-single-class-from-
31a31bbd0691
25
Entre sus diferencias podemos encontrar que respecto a otro tipo de redes
neuronales como las redes de propuesta regional (RPN),estas necesitan al
menos dos tomas para poder detectar objetos dentro de una imagen mientras
que SSD solo requiere de una para poder identificar múltiples objetos dentro de
la imagen.
7.2 Marco conceptual
7.2.2 Aprendizaje de máquina (Machine Learning)
“El aprendizaje de máquina es una forma de inteligencia artificial la cual
permite a un sistema aprender de los datos en lugar de aprender de la
programación explícita”. Un modelo de aprendizaje de máquina tiene
como propósito detectar patrones o comportamientos en un conjunto de
datos para que un computador pueda aprender de ellos y de esta manera
pueda elaborar algún tipo de predicción sobre los nuevos datos de
entrada. 9
7.2.3 Aprendizaje Profundo (Deep Learning)
El aprendizaje profundo es una rama del aprendizaje de máquina, que se define
como “como un algoritmo automático estructurado o jerárquico que emula el
aprendizaje humano con el fin de obtener ciertos conocimientos” y a diferencia
del aprendizaje de máquina, este no requiere un conjunto de datos de entrada
ya que es capaz de aprender por sí mismo. 10
9IBM. n.d. “¿Qué es Machine Learning?” ¿Qué es Machine Learning? https://www.ibm.com/ar-es/analytics/machine-learning?p1=Search&p4=43700053692634426&p5=b&cm_mmc=Search_Google-_-1S_1S-_-LA_ISA-_-datos%20%2Bmachine%20%2Blearning_b&cm_mmca7=71700000065289299&cm_mmca8=kwd-1097762210552&cm_mmca9=Cj0KCQjwoJX8BRCZARIsAEWBFMJ77. 10 SmartPanel. 2019. “¿Qué es el Deep Learning?” ¿Qué es el Deep Learning? https://www.smartpanel.com/que-es-deep-learning/.
26
7.2.4 Automatización
La automatización consiste en usar la tecnología para realizar tareas sin la
necesidad de las personas, la automatización se puede implementar casi en
cualquier sector que realice labores operativas o repetitivas.11
7.2.5 OCR
El OCR o reconocimiento óptico de caracteres es un sistema de reconocimiento
de texto impreso. Mediante el escaneo de un documento lo convierte en un mapa
de bits con el cual se comparan los espectros de luz y oscuridad para así
determinar los caracteres los cuales son reconocidos y convertidos a código
ASCII.12
7.2.7 Detección de objetos en imágenes
Consiste en un método de aprendizaje de máquina que es capaz de detectar
uno o varios objetos dentro de una imágen dando la posición del objeto y al
mismo tiempo resaltando el objeto encontrado.13
7.2.8 Convolución Atroz (Atrous convolutions)
La convolución atroz o convolución dilatada es un método de convolución del
Deep Learning en el cual se introduce un parámetro de tasa de dilatación en las
11RedHat. n.d. “¿Qué es la automatización?” ¿Qué es la automatización? https://www.redhat.com/es/topics/automation. 12Debitoor. n.d. “¿Qué es el sistema OCR?” ¿Qué es el sistema OCR? https://debitoor.es/glosario/ocr-escaneo. 13 Na8. 2019. “Modelos de Detección de Objetos.” Modelos de Detección de Objetos. https://www.aprendemachinelearning.com/modelos-de-deteccion-de-objetos/
27
capas convolucionales. Esto se realiza para lograr un campo de visión más
amplio sin aumentar el costo computacional.14
Figura 9: Convolución atroz
Fuente: https://towardsdatascience.com/types-of-convolutions-in-deep-learning-
717013397f4d
7.2.10 K-Fold Cross-Validation
La validación cruzada consiste en tomar un conjunto de datos originales y dividirlos en
dos conjuntos, un conjunto de entrenamiento y un segundo conjunto de validación. El
conjunto de entrenamiento se divide en K subconjuntos los cuales se tomarán como
conjuntos de prueba y el los datos restantes se toman como conjunto de pruebas, este
proceso se realiza K veces y al terminar se calcula la precisión y el error de cada
modelo creado y después calcula su promedio.15
7.2.11 Afilado de imagen
El afilado de una imagen es la técnica para aumentar la nitidez aparente de una
imagen, para aplicar esta técnica de manera correcta es necesario tener en cuenta
14 Pröve, Paul-Louis. n.d. “An Introduction to different Types of Convolutions in Deep Learning.” An Introduction to different Types of Convolutions in Deep Learning. https://towardsdatascience.com/types-of-convolutions-in-deep-learning-717013397f4d. 15 Delgado, Ronald. 2018. “Introducción a la Validación Cruzada (k-fold Cross Validation) en R.” Introducción a la Validación Cruzada (k-fold Cross Validation) en R, julio 18, 2018. http://rstudio-pubs-static.s3.amazonaws.com/405322_6d94d05e54b24ba99438f49a6f8662a9.html.
28
factores como la resolución, el tamaño de los detalles de la imagen y el tamaño de la
imagen en general.16
7.2.12 Binarización de una imagen
La binarización es un proceso que consiste en pasar una imagen a escala de grises,
consiguiendo así que los únicos valores posibles son verdadero o falso (1 p 0),
buscando reducir información de la misma con el fin de facilitar la extracción de
características.
7.2.14 Aprendizaje supervisado
El aprendizaje supervisado trabaja con un conjunto de datos intentado encontrar
una función que dadas las variables de entrada (input data), les asigne la etiqueta
de salida adecuada. El algoritmo se entrena con una partición del conjunto de
datos permitiendo así predecir los valores de salida
Algunos algoritmos que aplican el aprendizaje supervisado son:
● Árboles de decisión.
● Support Vector Machines (SVM).
● Clasificación de Naïve Bayes.
7.2.15 Aprendizaje no supervisado
A diferencia del aprendizaje supervisado, el aprendizaje no supervisado no
utiliza un conjunto de datos para entrenar el algoritmo, sino que aprende de los
datos de entrada.17
16 Guinness, Harry. n.d. “¿Qué es el Afilado de la Imagen?” ¿Qué es el Afilado de la Imagen? https://photography.tutsplus.com/es/tutorials/what-is-image-sharpening--cms-26627#:~:text=El%20afilado%20entonces%2C%20es%20una,nitidez%20aparente%20de%20la%20imagen.&text=Sustrae%20una%20copia%20borrosa%20. 17Gomez, Ramirez, and Juan Sebastian. 2019. “Evaluación de algoritmos de aprendizaje de máquina no supervisados sobre datos climáticos.” Evaluación de algoritmos de aprendizaje de máquina no supervisados sobre datos climáticos, 2019. https://repositorio.unal.edu.co/handle/unal/75848.
29
Algunos algoritmos que aplican el aprendizaje no supervisado son:
● K-nn
● Agrupamientos de co-ocurrencias
● Perfilado o profiling.
7.2.16 Labelimg
Labelimg es una herramienta de anotaciones gráficas escrita en Python. Esta
herramienta permite guardar en un archivo XML las anotaciones que se
realicen dentro de una imagen (región de interés), en donde se describe el
nombre y ubicación de la imagen y las coordenadas de la anotación.
30
7.3. ESTADO DEL ARTE
7.3.1 Automatic Segmentation and Recognition of Bank Cheque Fields
Es un método presentado por Vamsi Krishna Madasu de la escuela de ITEE,
Universidad de Queensland en enero del 2006, para la segmentación de
diferentes campos presentes en un cheque bancario como su texto, firma, monto
y logo, aplicando distintos pasos como la eliminación de fondo, eliminación de
línea base para mantener la integridad de la información en el cheque, logrando
así que se puedan segmentar y reconocer diferentes campos sin necesidad de
información anterior.18
Figura 10: Filtro de cheque
Fuente: Background elimination using boundary characteristics Disponible en
Automatic Segmentation and Recognition of Bank Cheque Fields
Figura 11: Segmentación de cheque
18 Krishna Madasu, Vamsi, and Brian Carrington Lovell. 2006. “Automatic Segmentation and Recognition of Bank Cheque Fields.” Automatic Segmentation and Recognition of Bank Cheque Fields (Australia), Junio, 2006. https://www.researchgate.net/publication/4215538_Automatic_Segmentation_and_Recognition_of_Bank_Cheque_Fields.
31
Fuente: Labeled regions of interest Disponible en Automatic Segmentation and
Recognition of Bank Cheque Fields
● Resultados
Method Database size Error rate
Fractals 300 45%
Fuzzy features 923 20%
All features 923 10%
Tabla 1: Evaluación de desempeño
7.3.2 VEHICLE LOGO RECOGNITION BASED ON VEHICLE REGION AND
MULTI-SCALE FEATURE FUSION
La universidad de Ho Chi Minh, Hoanh Nguyen el 31 de agosto del 2020 presenta
un método de aprendizaje profundo para el reconocimiento de logotipos de
vehículos. Se diseña una red para identificar la parte delantera y trasera del
vehículo, se aplica un método de Atrous Convolution para mejorar la detección
de la región del vehículo, luego de obtener la región, esta se segmenta para
extraer las características del vehículo, y esa segmentación es la que se usa
para el entrenamiento de la red para ubicar y clasificar exactamente los logotipos
de vehículos.19
Figura 12: Estructura de la red
19 NGUYEN, HOANH. 2020. “VEHICLE LOGO RECOGNITION BASED ON VEHICLE REGION AND MULTI-SCALE FEATURE FUSION.” VEHICLE LOGO RECOGNITION BASED ON VEHICLE REGION AND MULTI-SCALE FEATURE FUSION (Vietnam), Agosto 31, 2020. http://www.jatit.org/volumes/Vol98No16/12Vol98No16.pdf.
32
Fuente: The Structure of The Vehicle Region Detection Network Proposed in
This Paper Disponible en
<http://www.jatit.org/volumes/Vol98No16/12Vol98No16.pdf>
● Resultados
Methods Base network mAP (%) Inference time (s)
Faster R-CNN VGG-16 82.1 0.74
RestNet-50 85.3 0.92
YOLOv3 Darknet-53 83.0 0.20
RestNet-50 87.8 0.55
SSD VGG-16 80.2 0.24
RestNet-50 82.7 0.76
Proposed method Darknet-53 90.5 0.85
Tabla 2 : Comparación de resultados
7.3.3 Pattern Recognition
Se presenta STAN sequential transformation attention-based network for scene
text recognition (traducción) con lo cual se ajusta la distorsión de un texto
permitiendo una suave transformación la cual facilita la tarea de reconocimiento
33
, esto solo se aplica a las imágenes de texto cluyendo la posibilidad de
traducción, de escalar la imagen y de su rotación. 20
Figura 13: Ejemplo de la transformación
Fuente: Pattern Recognition Diponible en < https://sci-hub.do/downloads/2020-
10-22/c4/[email protected]#page=1&zoom=100,0,0>
● Resultados
Tabla 3 : Precisiones de reconocimiento
7.3.4 Reconocimiento de Caracteres en Imagen Digital, una Aplicación al
Reconocimiento Automático de Placas de Vehículos
20 Lin, Qingxiang, Canjie Luo, Lianwen Jin, and Songxuan Lai. 2020. “Pattern Recognition.” Pattern Recognition (China), Octubre 9, 2020. https://sci-hub.do/downloads/2020-10-22/c4/[email protected]#page=1&zoom=100,0,0
34
En este trabajo Ricardo Rolón Alonso de la Universidad Nacional del Este en
Paraguay muestra el desarrollo de un sistema de análisis de imagen capaz de
localizar y reconocer información de una placa de un vehículo en donde se busca
principalmente reconocer números y caracteres presentes en la imagen .
Este proyecto contó con una metodología por etapas, donde la primera etapa
consistió en procesar la imagen para resaltar algunas de las características, la
segunda etapa donde se extraen las características de interés y la última etapa
comparó esta la características extraídas con distintas clases para así lograr una
clasificación según los criterios establecidos por las clases.
Figura 14 Muestra procesamiento de imagen
Fuente: Thresholding específico de la aplicación Disponible en Reconocimiento
de Caracteres en Imagen Digital, una Aplicación al Reconocimiento Automático
de Placas de Vehículos
Utilizando un clasificador de mínima distancia se logró reconocer caracteres
alfanuméricos, con esto el sistema fue capaz de reconocer las letras entre la A y
la Z y los números entre el 0 y el 9.21
21 Rolón Alonso, Ricardo, and Vicente Domínguez Torres. n.d. “Reconocimiento de Caracteres en Imagen Digital, una Aplicación al Reconocimiento Automático de Placas de Vehículos.” Reconocimiento de Caracteres en Imagen Digital, una Aplicación al Reconocimiento Automático de Placas de Vehículos (Paraguay).
35
● Resultados
Procesos Evaluados Letras Números
Reconocimiento 98.5 % 95 %
Segmentación 99.3%
Tabla 4 : Resultado de las pruebas
7.3.5 CNN-based multilingual handwritten numeral recognition: A
Resultados procesos evaluados
fusion-free approach
El Departamento de Informática e Ingeniería del Instituto Indio de Tecnología
Dhanbad presenta un proyecto donde utilizando CNN desarrollaron un sistema de
reconocimiento numérico, en donde buscan reconocer los números que se
encuentran en diferentes escritos y también diferentes idiomas ya que en India
existen varios dialectos y formas de escribir.22
22 Gupta, Deepika, and Soumen Bag. 2020. “CNN-based multilingual handwritten numeral recognition: A fusion-free approach.” Expert Systems with Applications, Agosto 5, 2020. https://sci-hub.do/downloads/2020-10-16/eb/gupta2021.pdf#page=1&zoom=100,0,0.
36
Figura 15: Extracción de numero del codigo postal
Fuente Zip code numeral extraction. (a) Input postal image; (b) Gray-scale to
binary image; (c) Image after removing the connected components for which
height is greaterthan width; (d) Closed regions with filled foreground pixels; (e)
Extracted zip code region; and (f) Extracted zip code boxes Disponible en <
https://sci-hub.do/downloads/2020-10-
16/eb/gupta2021.pdf#page=1&zoom=100,0,0. >
● Resultados
37
Tabla 5: Comparativa del reconocimiento numérico
7.3.6 OCR binarization and image pre-processing for searching historical
documents
Este proyecto Maya R. Gupta, Nathaniel P. Jacobson, Eric K. Garcia de la
Universidad de Washington en Seattle consideran el problema de la binarización
de documentos como un paso previo al procesamiento para el reconocimiento
óptico de caracteres (OCR) con el propósito de buscar palabras clave en
documentos impresos históricos. donde consideran varias técnicas para la
eliminación del ruido al momento de binarizar, pre filtrado y post binarización de
la imagen.23
Figura 16: Binarización texto
23 Gupta, Maya, Nathaniel Jacobson, and Eric Garcia. 2007. “OCR binarization and image pre-processing for searching historical documents.” Pattern Recognition, Febrero, 2007.
38
Fuente: Binarized image samples Disponible en OCR binarization and image
pre-processing for searching historical documents
● Resultados
Tabla 6 :Reconocimiento de palabras
39
7.3.7 Food Image Recognition by Using Convolutional Neural Networks
(CNNs)
En este proyecto por parte del Departamento de Biosistemas e Ingeniería
Agrícola de la universidad estatal de Michigan presentan un método para el
reconocimiento de alimentos basado en redes neuronales convolucionales. Para
esto aplicaron una arquitectura con cuatro capas ocultas y tres agrupaciones
convolucionales, la primera capa utiliza un kernel de tamaño 7 x 7 para extraer
32 mapas de características, la segunda y tercera capa utilizan campos
receptivos de 5 x 5 y 3 x 3 resultando en 64 y 128 mapas de características. Se
logró una precisión de 74% aplicando este modelo de redes neuronales
convolucionales el cual no fue un porcentaje tan alto debido a la limitación en la
cantidad de datos para el entrenamiento.24
Figura 17: Esquema modelo de red
Fuente: Schematic of the architecture of a convolutional neural network model
Disponible en< https://arxiv.org/pdf/1612.00983.pdf>
24 Lu, Yuzhen. 2019. “Food Image Recognition by Using Convolutional Neural Networks (CNNs).” Food Image Recognition by Using Convolutional Neural Networks (CNNs) (USA), Febrero 25, 2019. https://arxiv.org/pdf/1612.00983.pdf.
40
Resultados
Tabla 7 :matriz de fusión y tasas de reconocimiento por BoF en las imágenes
de prueba
7.3.8 Detección de logos en imágenes mediante Redes Convolucionales
En facultad de matemáticas e informática de la universidad de Barcelona, Marc
Gonzalez Fernandez presenta una aplicación para dispositivos Android que
buscará lugares cercanos que pueden ofrecer descuentos, mediante el uso de
redes neuronales convolucionales para reconocer los logos de los distintos
lugares para así traer la información de sus descuentos, presenta una
comparativa de dos redes neuronales, una creada por ellos mismos y la segunda
es una red piramidal llamada AlexNet.25
25 González Fernández, Marc. 2017. “Detección de logos en imágenes mediante Redes Convolucionales.” Detección de logos en imágenes mediante Redes Convolucionales, Julio 3, 2017. http://diposit.ub.edu/dspace/bitstream/2445/120609/2/memoria.pdf.
41
● Resultados
Tabla 8 : Matriz de confusión
42
8. METODOLOGÍA
Para realizar el proceso de clasificación y extraer información de las órdenes de
compra, se realizarán 7 etapas que serán fundamentales para el desarrollo de
este proyecto.
● Etapa 1: Conjunto de datos
● Etapa 2: Preprocesamiento
● Etapa 3: Extracción de características
● Etapa 4: Muestreo
● Etapa 5: Clasificación
● Etapa 6: Resultados
● Etapa 7: Medidas de desempeño
Figura 18: Metodología
Fuente: Del autor
43
8.1 Conjunto de datos
En esta fase se construirá el conjunto de datos con órdenes de compra que se
tengan de manera digital o escaneada de La Ferretería Herramientas y
Suministros que contienen la información necesaria para hacer el entrenamiento
de máquina.
Para la construcción del conjunto de datos se utilizará el archivo digital que posee
la empresa de sus dos últimos años de diferentes empresas que son clientes de
la Ferretería.
Figura 19: Archivo digital
8.2 Preprocesamiento
En esta etapa se transformará la imagen de tal manera que facilite el proceso de
extracción de características aplicando técnicas como la mejora del contraste,
binarización, suavización y afilado.26
Figura 20: Binarización de imagen
26 Woods, Gonzaled. n.d. “Preproceso: mejora de la imagen.” Preproceso: mejora de la imagen. http://www.sc.ehu.es/ccwgrrom/transparencias/pdf-vision-1-transparencias/capitulo-2.pdf.
44
Fuente: Mathwaorks Disponible en
<https://es.mathworks.com/help/images/ref/im2bw.html>
8.3 Extracción de características
Dependiendo de los algoritmos seleccionados se realizará la extracción de la
información en las áreas de interés para la empresa, las cuales son el logo, nit,
número de orden de compra y la fecha en que fue generada.27
8.4 Muestreo
Para realizar el muestreo de este proyecto, con las órdenes de compra
suministradas por la Ferretería de todos los clientes, se dividirá el dataset en un
80% para entrenamiento y un 20% para la realización de las pruebas.Es
importante que el dataset sea variado para lograr un buen entrenamiento, ya
que si se tiene muchas imágenes de una misma empresa, esto puede provocar
que el modelo no se entrene de manera correcta y genere un porcentaje bajo de
asertividad.
8.5 Clasificación
Inicialmente se utilizará el método de detección de objetos en imágenes con el
fin de localizar las regiones de interés dentro de la orden de compra.
27 Blanco Garrido, Cristina. 2018. “Extracción de características para algoritmos de aprendizaje automático aplicado al reconocimiento de vehículos.” Extracción de características para algoritmos de aprendizaje automático aplicado al reconocimiento de vehículos (Madrid), Febrero, 2018. http://oa.upm.es/50271/1/TFG_CRISTINA_BLANCO_GARRIDO.pdf.
45
Para la etapa de clasificación se seleccionarán 2 algoritmos que permitan tanto
el reconocimiento del logo de la empresa como la extracción del nit, el número
de la orden de compra y la fecha en que fue generada.
Para el reconocimiento del logo se utilizará un algoritmo de aprendizaje profundo
más exactamente redes neuronales convolucionales y para el reconocimiento
del nit, el número de la orden de compra y la fecha en que fue generada se
utilizará OCR que nos permite extraer la información de estas tres variables
dentro de la orden de compra debido a que es capaz de extraer los caracteres
dentro de una imagen.
Una vez cada algoritmo esté entrenado, se realizará su respectiva etapa de pruebas en la cual se pretende validar con imágenes que no se usaron para el entrenamiento comprobar si el algoritmo realiza una buena clasificación o no.
8.6 Medidas de desempeño
En esta etapa utilizaremos las medidas de desempeño tales como exactitud,
precisión, puntaje f1 y sensibilidad para evaluar la precisión y error que obtuvo
cada uno de los algoritmos seleccionados.
8.7 Validación de Resultados
Para verificar el resultado presentado por el método se basará en la imagen de
la orden de compra como entrada, su clasificación y una métrica asociada a su
desempeño la cual nos indicará el porcentaje con el cual fue clasificada esa
orden de compra. Teniendo esto se puede realizar un análisis estadístico el cual
diga cuantas órdenes de compra se clasificará de manera correcta dando así un
indicio de su efectividad.
46
9. Diseño metodológico
9.1 Conjunto de datos
Para la construcción del conjunto de datos se incluyeron únicamente las órdenes
de compra de la Ferretería Herramientas y Suministros, escaneando aquellas
que se encuentran de manera física y también se incluyeron aquellas que se
encuentren de manera digital.
Para el entrenamiento del método se tuvieron en cuenta principalmente a los
cliente que más emiten órdenes de compra y que a su vez en esta se logre
identificar las regiones de interés ya que en algunas ocasiones puede suceder
que el formato utilizado en la orden de compra varía de manera significativa
respecto a los que ya se tienen, también es importante que para el entrenamiento
del algoritmo se debe tener un conjunto de datos variados que permita un mejor
entrenamiento y precisión al momento de clasificar las órdenes de compra.
En la tabla 9 se muestra a los clientes con el número de órdenes de compra que
se utilizaron tanto para entrenamiento como pruebas del método.
Tabla 9 Cantidad de órdenes de compra
Empresa # Órdenes de Compra
ACJ 40
CBRE 26
CELIK 183
CONFIPETROL 96
CONTEIN 48
CROIL 19
ISMOCOL 117
JMV 164
MINCIVIL 406
STORK 85
UT 147
AGGREKO 22
47
ARCOMAT 87
ABC INGENIERIA 107
CINE COLOMBIA 103
BRASERV 98
CANACOL 45
CONSORCIO SKHL 30
GEOMATRIX 40
1925
9.2 Preprocesamiento
En esta etapa se adecuaron todas las imágenes que se tienen de órdenes de
compra para facilitar el entrenamiento del algoritmo. Inicialmente se implementó
un algoritmo en Python utilizando la librería pdf2image que permite cambiar el
formato de cada uno de los documentos que se encuentran en el archivo digital
debido a que cuando se escanean las órdenes de compra, estas son almacenan
en formato pdf dificultando la extracción de sus características y posterior
procesamiento.
Luego de cambiar el formato de cada orden de compra de pdf a png, estas
imágenes se almacenan en carpetas diferentes según su emisor correspondiente
(empresa que emite orden de compra).
Posteriormente se redujo el tamaño de las imágenes de 5500x4250px a
600x600px como se ve en la figura 20, ya que este es el tamaño que se
recomienda para el modelo y se eliminó el ruido de la imagen utilizando opencv
con el fin de eliminar posibles elementos que afecten su posterior clasificación.
48
Figura 20 reducción de imagen
Fuente: del autor
9.3 Extracción de características
Para la extracción de las características se procedió a realizar un etiquetado en
las regiones de interés sobre el conjunto de datos utilizando la herramienta
labeling, entre las regiones seleccionadas tenemos: el logo de la empresa y
número de documento, luego de haber identificado y etiquetado cada una de las
regiones de interés como se muestra en la figura 21 y con el uso de la
herramienta labelimg se logra genera un archivo XML en donde se ve reflejada
las coordenadas de cada zona etiquetada dentro de la imagen junto con el
nombre de cada una de estas.
Figura 21 Orden de compra con etiquetas
600px
600px
5500px
4250px
49
Fuente: del autor
Estas coordenadas están dadas por xmin, ymin, xmax, ymax como se aprecia
en la figura 22, .
Figura 22 xml de imagen 019.pdf.png
Fuente: del autor
9.4 Muestreo
Luego de la extracción de las características se dividió el conjunto de datos
utilizando el método de muestreo simple, de esta manera se dividió el conjunto
de datos en 2 partes para así tener un conjunto de entrenamiento y un conjunto
para las pruebas. Se escogió la relación 70-30 que es la más usada en la
50
literatura y que tiene un buen ajuste al dataset que se está trabajando en este
proyecto, por lo cual el 70% de las imágenes queda en el conjunto de
entrenamiento y el 30% de las imágenes restantes serán usadas para realizar
las pruebas, luego de tener el conjunto dividido se crearán dos archivos:
train.recod y test.record que son necesarios para que la red neuronal pueda
entrenarse https://www.tensorflow.org/tutorials/load_data/tfrecord.
Figura conjunto de datos
Dado que la diferencia entre la cantidad de órdenes de compra varía respecto a
cada cliente se puede generar sesgos al entrenar el modelo o que se no se
obtenga el resultado esperado, debido a esto no se tomó la totalidad de las
órdenes de compra de MINCIVIL sino que solo se tomaron 200 órdenes para
evitar que el modelo se entrene mayormente con este tipo de orden de compra.
Fuente: del autor
9.5 Clasificación
Para la implementación de este método se utilizó la API de Tensor Flow con las
dependencias y librerías necesarias para el correcto entrenamiento del
algoritmo:
51
● jupiter notebook
● Matplotlib
● Tesoro Flow-gpu
● Pycocotools
● Opencv
● Labelimg
● Librerías para el experimento (pandas, numpy, operator, string, nltk,
tensor flow, opencv,pytessract,matplotlib,skimage).
Luego de realizar la configuración de Tensor Flow, también es necesario crear
un mapa de etiquetas, en donde este mapa de etiquetas se debe crear a partir
de las regiones identificadas en la sección de Extracción de Características.
Figura 23 Mapa de etiquetas
Fuente: del autor
Para este caso se implementó una red neuronal (SSD MobileNet) y para el
entrenamiento de la red se utilizaron los modelos pre entrenados SSD MobileNet
v2 y SSD MobileNet V1 FPN 640x640, proporcionados por Tensor Flow en su
colección de modelos pre entrenados en el conjunto de datos COCO permitiendo
así ahorrar tiempo y recursos informáticos, estos modelos son los que permitirán
hacer la detección de objetos dentro de las imágenes.
Se seleccionó este modelo debido a que por las limitaciones de la memoria de
la tarjeta de video que tiene el equipo utilizado para desarrollar este proyecto
descrito en la sección 10 no se logró implementar otros tipos de modelos como
lo son Resnet o Yolo v2, también se seleccionó la red neuronal (SSD MobileNet)
ya que permite entrenar modelos poco complejos en un menor tiempo respecto
a otros modelos como se ve en la figura 24.
52
Red Velocidad mAP
SSD MobileNet V1 FPN 640x640 48 29.1
SSD MobileNet V2 FPNLite 640x640
39 28.2
También se seleccionó esta red neuronal debido a su gran velocidad y capacidad
para detectar múltiples objetos ya que fue diseñada para su uso en dispositivos
móviles y esto permite reducir el tamaño del modelo y a su vez es capaz de
mantener la calidad del mismo.
Figura 24 Precisión vs Tiempo de ejecución
Fuente Evaluation of Deep Neural Networks for traffic sign detection systems
disponible en
file:///C:/Users/Andres/Downloads/PreprintTraffic_Sign_Detection__Neurocomp
uting_.pdf
53
Para el entrenamiento del modelo se cuenta con dos etapas fundamentales: la
primera se centra en la extracción de características mencionada anteriormente
y con base en esto se debe indicar el número de clases a identificar en la red
descritas en el mapa de etiquetas (figura 23), la segunda etapa es el
entrenamiento de la red donde se usa el archivo train.record que contiene los
datos necesarios para realizar el entrenamiento.
Figura 25 orden de compra clasificada
Fuente: del autor
Figura 25 Aplicación de OCR en región
Después de identificar en la primera etapa de clasificación el logo y la zona que
contiene el número de la orden (figura 25) se procede en una segunda etapa a
extraer el número de la imagen a través de una técnica de ocr utilizando la librería
de pytesrract para extraen los caracteres que identifican el número de la orden
de compra como se ve en la figura 26
Figura 26 Extracción de caracteres
54
Fuente: del autor
9.6 Medidas de desempeño
En esta etapa se mide el desempeño del algoritmo ya entrenado. Como se
mencionó anteriormente se utilizarán las medidas de desempeño exactitud,
precisión y valor f1 para cada una de las etiquetas que se tuvieron en cuenta en
la etapa de extracción de características.
Una vez entrenado el modelo se podrán visualizar los resultados obtenidos
utilizando el comando tensorboard --logdir=.
Figura 27 Medidas de desempeño SSD MobileNet V1 FPN 640x640
Fuente del autor
Figura 28 Medidas de desempeño SSD MobileNet V2 FPNLite 640x640
55
Fuente del autor
56
10. Características del equipo
El equipo disponible para la ejecución de este proyecto es un 1 computador de
mesa con procesador AMD Ryzen 5 3600, memoria RAM de 16GB, Tarjeta gráfica
gtx 950 de 2GB y al menos 500 GB de almacenamiento en disco duro.
57
11. RESULTADOS
Luego de seleccionar las empresas con mayor número de órdenes de compra
que se tienen tanto de manera digital como de manera física se logró reunir un
total de 1925 órdenes de compra como se ve en la tabla 9, de las cuales solo se
tomaron 1725 para tener un mejor balanceo entre todos los tipos de órdenes que
se tiene y evitar que el modelo se entrene principalmente con un solo tipo de
orden de compra.
Usando labelimg se extrajo las características de cada una de las órdenes de
compra, etiquetando tanto el logo de la empresa como el número de la orden y
así generar un archivo XML con las coordenadas las cuales delimitan su posición
dentro de la imagen, después de este etiquetado se generaron los archivos
train.record y test.record.
Tras configurar todo el entorno necesario para realizar la detección de objetos
con la red neuronal SSD-MOBILENET y los modelos pre entrenados SSD
MobileNet V1 FPN 640x640 y SSD MobileNet V2 FPV Lite 640x640 y dividiendo
el conjunto de datos en donde el 70% de las imágenes se utilizaron para el
entrenamiento y el 30% restante se destinó a las pruebas del algoritmo.
Para el modelo MobileNet V1 FPN 640x640 se logró un aprendizaje del 0.05
después de alcanzar una pérdida de 0.1 luego de 20000 pasos para el primer
modelo.
Figura 29 Pérdida de modelo MobileNet V1 FPN 640x640
58
Fuente del autor
Figura 30 Pérdida de modelo MobileNet V1 FPN 640x640
Fuente del autor
Mientras que para el modelo de SSD MobileNet V2 FPV Lite 640x640 aunque
se obtuvo una pérdida de 0.2 después de 30000 pasos logró un mayor
aprendizaje mayor obteniendo un 0.02.
Figura 31 MobileNet V1 FPN 640x640
Fuente: Del autor
Figura 32 Pérdida de modelo SSD MobileNet V2 FPV Lite 640x640
59
Fuente: Del autor
A Continuación, se presenta el reporte de desempeño del algoritmo utilizando
los dos modelos seleccionados
Tabla 10 Precisión de los modelos
Precisión
Modelo
precision/
maP
precision/
maP
IOU=0.5
precision/
maP
IOU=0.7
precision
/maP(SM
ALL)
precision
/maP(ME
DIUM)
precision/ma
P(LARGE)
SSD MobileNet V1 FPN
640x640 0,611 0,8690 0,726 0,3820 0,577 0,731
SSD MobileNet V2
FPNLite 640x640 0,497 0,805 0,544 0,338 0,492 0,459
Como se evidencia en la tabla 10, se logró una mejor precisión con el primer
modelo ya que es tuvo un resultado de 0.611 significando así que de cada 100
imágenes es capaz de identificar cerca de 61 de estas. Este valor aumenta de
manera significativa cuando se trata de detectar objetos dentro de la imagen ya
que con el 50% de margen de error logra identificar un 86% y con un margen de
70% logra identificar un 76%.
60
Mientras que el segundo modelo, aunque en promedio solo es capaz de
identificar cerca de 50 imágenes dentro de un conjunto de 100, este es capaz de
identificar aproximadamente 80 imágenes con un error del 50%
Tabla 11
Exhaustividad (Recall)
Modelo
recall/ma
P recall recall
recall
(SMALL)
recall(ME
DIUM)
recall(LA
RGE)
SSD MobileNet V1 FPN
640x640 0,639 0,699 0,699 0,462 0,652 0,802
SSD MobileNet V2
FPNLite 640x640 0,531 0,591 0,591 0,535 0,558 0,496
Tabla 12
F1-Score
Modelo precision/maP
SSD MobileNet V1 FPN 640x640 0,6247
SSD MobileNet V2 FPNLite 640x640 0,5134
F1-Score es una métrica comúnmente usada para evaluar algoritmos con
conjunto de datos de datos desbalanceados y ya que combina las métricas de
exhaustividad y precisión, esto nos da como resultado un porcentaje de
clasificación más general para cada uno de los modelos usados. De esta manera
se logra obtener un 62% para la clasificación de las imágenes en el primer
modelo y un 51% para el segundo modelo
61
12.Conclusión
A partir de los modelos seleccionados, se puede evidenciar que aunque son
modelos diseñados para la detección de objetos en conjuntos de datos sencillos,
en este caso fue posible identificar las regiones necesarias para poder clasificar
las órdenes de compra utilizadas en este proyecto aun teniendo limitaciones
como la del equipo utilizado descrito en la sección 10.
También se puede evidenciar que el con el primer modelo (MobileNet V1 FPN
640x640) fue posible identificar y clasificar las imágenes con una menor cantidad
de pasos logrando identificar de manera correcta un 60% de las imágenes,
mientras que el modelo (SSD MobileNet V2 FPNLite 640x640) solo es capaz de
identificar un 49% de las imágenes.
Por otro lado, para obtener un mejor resultado sobre el modelo entrenado es
necesario incluir mayor variedad de imágenes de órdenes de compra de los
clientes que cuentan con un menor número de estas y evitar que el modelo
entrene una clase más que otra.
Gracias a la metodología utilizada en este proyecto se hace posible que, si en
algún momento es necesario, se pueda incluir una mayor variedad de órdenes
de compra en donde se evidencie un logo y número de orden de compra.
62
13.Trabajos futuros
Luego de tener un modelo que es capaz de identificar órdenes de compra, se
abre la posibilidad de crear un software capaz de identificar no solo estos
órdenes de compra, sino que también sea capaz identificar y clasificar otro tipo
de documentos como lo son las remisiones o facturas de compra que también
son necesarias para la generación de la factura de venta electrónica.
63
14. BIBLIOGRAFÍA
Amat Rodrigo, Joaquín. 2020. “Validación de modelos predictivos:
Cross-validation, OneLeaveOut, Bootstraping.” Validación de modelos
predictivos: Cross-validation, OneLeaveOut, Bootstrapping.
https://www.cienciadedatos.net/documentos/30_cross-
validation_oneleaveout_bootstrap.
Atria Innovation. 2019. “Qué son las redes neuronales y sus funciones.”
Qué son las redes neuronales y sus funciones.
https://www.atriainnovation.com/que-son-las-redes-neuronales-y-sus-
funciones/.
Blanco Garrido, Cristina. 2018. “Extraccion de características para
algoritmos de aprendizaje automático aplicado al reconocimiento de
vehículos.” Extracción de características para algoritmos de aprendizaje
automático aplicado al reconocimiento de vehículos (Madrid), Febrero,
2018.
http://oa.upm.es/50271/1/TFG_CRISTINA_BLANCO_GARRIDO.pdf.
Debitoor. n.d. “¿Qué es el sistema OCR?” ¿Qué es el sistema OCR?
https://debitoor.es/glosario/ocr-escaneo.
Delgado, Ronald. 2018. “Introducción a la Validación Cruzada (k-fold
Cross Validation) en R.” Introducción a la Validación Cruzada (k-fold
Cross Validation) en R, julio 18, 2018. http://rstudio-pubs-
static.s3.amazonaws.com/405322_6d94d05e54b24ba99438f49a6f8662a
9.html.
Díaz Sotolongo, Alejandro. n.d. “Extracción de características para el
análisis de imágenes de mamografías.” Extracción de características
para el análisis de imágenes de mamografías.
64
https://www.monografias.com/trabajos93/extraccion-caracteristicas-
analisis-imagenes-mamografias/extraccion-caracteristicas-analisis-
imagenes-mamografias.shtml.
Gomez, Ramirez, and Juan Sebastian. 2019. “Evaluación de algoritmos
de aprendizaje de máquina no supervisados sobre datos climáticos.”
Evaluación de algoritmos de aprendizaje de máquina no supervisados
sobre datos climáticos, 2019.
https://repositorio.unal.edu.co/handle/unal/75848.
González Fernández, Marc. 2017. “Detección de logos en imágenes
mediante Redes Convolucionales.” Detección de logos en imágenes
mediante Redes Convolucionales, Julio 3, 2017.
http://diposit.ub.edu/dspace/bitstream/2445/120609/2/memoria.pdf.
Guinness, Harry. n.d. “¿Qué es el Afilado de la Imagen?” ¿Qué es el
Afilado de la Imagen?
https://photography.tutsplus.com/es/tutorials/what-is-image-sharpening--
cms-
26627#:~:text=El%20afilado%20entonces%2C%20es%20una,nitidez%2
0aparente%20de%20la%20imagen.&text=Sustrae%20una%20copia%20
borrosa%20.
Gupta, Deepika, and Soumen Bag. 2020. “CNN-based multilingual
handwritten numeral recognition: A fusion-free approach.” Expert
Systems with Applications, Agosto 5, 2020. https://sci-
hub.do/downloads/2020-10-
16/eb/gupta2021.pdf#page=1&zoom=100,0,0.
Gupta, Maya, Nathaniel Jacobson, and Eric Garcia. 2007. “OCR
binarization and image pre-processing for searching historical
documents.” Pattern Recognition, Febrero, 2007.
65
IBM. n.d. “¿Qué es Machine Learning?” ¿Qué es Machine Learning?
https://www.ibm.com/ar-es/analytics/machine-
learning?p1=Search&p4=43700053692634426&p5=b&cm_mmc=Search
_Google-_-1S_1S-_-LA_ISA-_-
datos%20%2Bmachine%20%2Blearning_b&cm_mmca7=717000000652
89299&cm_mmca8=kwd-
1097762210552&cm_mmca9=Cj0KCQjwoJX8BRCZARIsAEWBFMJ77.
JayJay. 2018. “Evaluar los modelos.” Evaluar los modelos.
http://datascience.esy.es/wiki/evaluar-los-modelos/.
Krishna Madasu, Vamsi, and Brian Carrington Lovell. 2006. “Automatic
Segmentation and Recognition of Bank Cheque Fields.” Automatic
Segmentation and Recognition of Bank Cheque Fields (Australia), Junio,
2006.
https://www.researchgate.net/publication/4215538_Automatic_Segmenta
tion_and_Recognition_of_Bank_Cheque_Fields.
Lin, Qingxiang, Canjie Luo, Lianwen Jin, and Songxuan Lai. 2020.
“Pattern Recognition.” Pattern Recognition (China), Octubre 9, 2020.
https://sci-hub.do/downloads/2020-10-
22/c4/[email protected]#page=1&zoom=100,0,0.
Llamoza, Diana, and Elisa Freschi. n.d. “IMPORTANCIA DE LA
ORGANIZACIÓN DE DOCUMENTOS.” IMPORTANCIA DE LA
ORGANIZACIÓN DE DOCUMENTOS.
https://www.academia.edu/11056093/IMPORTANCIA_DE_LA_ORGANI
ZACIÓN_DE_DOCUMENTOS.
Lu, Yuzhen. 2019. “Food Image Recognition by Using Convolutional
Neural Networks (CNNs).” Food Image Recognition by Using
Convolutional Neural Networks (CNNs) (USA), Febrero 25, 2019.
https://arxiv.org/pdf/1612.00983.pdf.
66
Martinez Heras, Jose. 2019. “Precision, Recall, F1, Accuracy en
clasificación.” Precision, Recall, F1, Accuracy en clasificación.
https://www.iartificial.net/precision-recall-f1-accuracy-en-clasificacion/.
Moujahid, Abdelmalik, I˜naki Inza, and Pedro Larra˜naga. n.d.
http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t9knn.pdf.
Na8. 2018. “¿Cómo funcionan las Convolutional Neural Networks?
Visión por Ordenador.” aprende Machine Learning.
https://www.aprendemachinelearning.com/como-funcionan-las-
convolutional-neural-networks-vision-por-ordenador/.
Na8. 2019. “Modelos de Detección de Objetos.” Modelos de Detección
de Objetos. https://www.aprendemachinelearning.com/modelos-de-
deteccion-de-objetos/.
NGUYEN, HOANH. 2020. “VEHICLE LOGO RECOGNITION BASED ON
VEHICLE REGION AND MULTI-SCALE FEATURE FUSION.” VEHICLE
LOGO RECOGNITION BASED ON VEHICLE REGION AND MULTI-
SCALE FEATURE FUSION (Vietnam), Agosto 31, 2020.
http://www.jatit.org/volumes/Vol98No16/12Vol98No16.pdf.
Pröve, Paul-Louis. n.d. “An Introduction to different Types of
Convolutions in Deep Learning.” An Introduction to different Types of
Convolutions in Deep Learning.
https://towardsdatascience.com/types-of-convolutions-in-deep-learning-
717013397f4d.
RedHat. n.d. “¿Qué es la automatización?” ¿Qué es la automatización?
https://www.redhat.com/es/topics/automation.
67
Rolón Alonso, Ricardo, and Vicente Domínguez Torres. n.d.
“Reconocimiento de Caracteres en Imagen Digital, una Aplicación al
Reconocimiento Automático de Placas de Vehículos.” Reconocimiento
de Caracteres en Imagen Digital, una Aplicación al Reconocimiento
Automático de Placas de Vehículos (Paraguay).
SmartPanel. 2019. “¿Qué es el Deep Learning?” ¿Qué es el Deep
Learning? https://www.smartpanel.com/que-es-deep-learning/.
Stanojevic, Mladen, and Sanja Vraneš. n.d. “Semantic Approach to
Knowledge Representation and Processing.” Semantic Approach to
Knowledge Representation and Processing.
https://www.igi-global.com/chapter/semantic-approach-knowledge-
representation-processing/35720.
Woods, Gonzaled. n.d. “Preproceso: mejora de la imagen.” Preproceso:
mejora de la imagen. http://www.sc.ehu.es/ccwgrrom/transparencias/pdf-
vision-1-transparencias/capitulo-2.pdf.
Y. Kung, S. n.d. Kernel Methods and Machine Learning.
https://books.google.com.co/books?hl=es&lr=&id=aRcmAwAAQBAJ&oi=
fnd&pg=PR17&dq=kernel+machine+learning&ots=Q0dGLmELUD&sig=N
6wgXWgpjnz56g9RzLIhGxyva2M#v=onepage&q=kernel%20machine%2
0learning&f=false.