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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.
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
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
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.
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
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
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 <
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.
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.
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