SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer...

107
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS Autor: Carlos Bernabeu Juan Director: Juan Antonio Pérez-Campanero Anastasio Madrid Junio 2012

Transcript of SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer...

Page 1: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO EN INFORMÁTICA

SISTEMA INTELIGENTE DE INTERPRETACIÓN

DE FACTURAS

Autor: Carlos Bernabeu Juan

Director: Juan Antonio Pérez-Campanero Anastasio

Madrid

Junio 2012

Page 2: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,
Page 3: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

alumno

Proyecto Final de Carrera- Sistema Inteligente de Interpretación de

facturas

AUTORIZACIÓN PARA LA DIGITALIZACIÓN, DEPÓSITO Y DIVULGACIÓN EN ACCESO

ABIERTO ( RESTRINGIDO) DE DOCUMENTACIÓN

1º. Declaración de la autoría y acreditación de la misma.

El autor D. _____________________________________ , como _______________ de

la UNIVERSIDAD PONTIFICIA COMILLAS (COMILLAS), DECLARA

que es el titular de los derechos de propiedad intelectual, objeto de la presente cesión,

en relación con la

obra___________________________________________________________________

___________________________________________________________________1,

que ésta es una obra original, y que ostenta la condición de autor en el sentido que

otorga la Ley de Propiedad Intelectual como titular único o cotitular de la obra.

En caso de ser cotitular, el autor (firmante) declara asimismo que cuenta con el

consentimiento de los restantes titulares para hacer la presente cesión. En caso de

previa cesión a terceros de derechos de explotación de la obra, el autor declara que

tiene la oportuna autorización de dichos titulares de derechos a los fines de esta

cesión o bien que retiene la facultad de ceder estos derechos en la forma prevista en la

presente cesión y así lo acredita.

2º. Objeto y fines de la cesión.

Con el fin de dar la máxima difusión a la obra citada a través del Repositorio

institucional de la Universidad y hacer posible su utilización de forma libre y gratuita (

con las limitaciones que más adelante se detallan) por todos los usuarios del

repositorio y del portal e-ciencia, el autor CEDE a la Universidad Pontificia Comillas de

forma gratuita y no exclusiva, por el máximo plazo legal y con ámbito universal, los

derechos de digitalización, de archivo, de reproducción, de distribución, de

comunicación pública, incluido el derecho de puesta a disposición electrónica, tal y

1 Especificar si es una tesis doctoral, proyecto fin de carrera, proyecto fin de Máster o cualquier otro

trabajo que deba ser objeto de evaluación académica

Carlos José Bernabeu Juan

Page 4: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

como se describen en la Ley de Propiedad Intelectual. El derecho de transformación se

cede a los únicos efectos de lo dispuesto en la letra (a) del apartado siguiente.

3º. Condiciones de la cesión.

Sin perjuicio de la titularidad de la obra, que sigue correspondiendo a su autor, la

cesión de derechos contemplada en esta licencia, el repositorio institucional podrá:

(a) Transformarla para adaptarla a cualquier tecnología susceptible de incorporarla a

internet; realizar adaptaciones para hacer posible la utilización de la obra en formatos

electrónicos, así como incorporar metadatos para realizar el registro de la obra e

incorporar “marcas de agua” o cualquier otro sistema de seguridad o de protección.

(b) Reproducirla en un soporte digital para su incorporación a una base de datos

electrónica, incluyendo el derecho de reproducir y almacenar la obra en servidores, a

los efectos de garantizar su seguridad, conservación y preservar el formato. .

(c) Comunicarla y ponerla a disposición del público a través de un archivo abierto

institucional, accesible de modo libre y gratuito a través de internet.2

(d) Distribuir copias electrónicas de la obra a los usuarios en un soporte digital. 3

4º. Derechos del autor.

El autor, en tanto que titular de una obra que cede con carácter no exclusivo a la

Universidad por medio de su registro en el Repositorio Institucional tiene derecho a:

2 En el supuesto de que el autor opte por el acceso restringido, este apartado quedaría redactado en los

siguientes términos:

(c) Comunicarla y ponerla a disposición del público a través de un archivo institucional, accesible de

modo restringido, en los términos previstos en el Reglamento del Repositorio Institucional

3 En el supuesto de que el autor opte por el acceso restringido, este apartado quedaría eliminado.

Page 5: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

a) A que la Universidad identifique claramente su nombre como el autor o propietario

de los derechos del documento.

b) Comunicar y dar publicidad a la obra en la versión que ceda y en otras posteriores a

través de cualquier medio.

c) Solicitar la retirada de la obra del repositorio por causa justificada. A tal fin deberá

ponerse en contacto con el vicerrector/a de investigación

([email protected]).

d) Autorizar expresamente a COMILLAS para, en su caso, realizar los trámites

necesarios para la obtención del ISBN.

d) Recibir notificación fehaciente de cualquier reclamación que puedan formular

terceras personas en relación con la obra y, en particular, de reclamaciones relativas a

los derechos de propiedad intelectual sobre ella.

5º. Deberes del autor.

El autor se compromete a:

a) Garantizar que el compromiso que adquiere mediante el presente escrito no

infringe ningún derecho de terceros, ya sean de propiedad industrial, intelectual o

cualquier otro.

b) Garantizar que el contenido de las obras no atenta contra los derechos al honor, a la

intimidad y a la imagen de terceros.

c) Asumir toda reclamación o responsabilidad, incluyendo las indemnizaciones por

daños, que pudieran ejercitarse contra la Universidad por terceros que vieran

infringidos sus derechos e intereses a causa de la cesión.

d) Asumir la responsabilidad en el caso de que las instituciones fueran condenadas por

infracción de derechos derivada de las obras objeto de la cesión.

Page 6: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

6º. Fines y funcionamiento del Repositorio Institucional.

La obra se pondrá a disposición de los usuarios para que hagan de ella un uso justo y

respetuoso con los derechos del autor, según lo permitido por la legislación aplicable, y

con fines de estudio, investigación, o cualquier otro fin lícito. Con dicha finalidad, la

Universidad asume los siguientes deberes y se reserva las siguientes facultades:

a) Deberes del repositorio Institucional:

- La Universidad informará a los usuarios del archivo sobre los usos permitidos, y no

garantiza ni asume responsabilidad alguna por otras formas en que los usuarios hagan

un uso posterior de las obras no conforme con la legislación vigente. El uso posterior,

más allá de la copia privada, requerirá que se cite la fuente y se reconozca la autoría,

que no se obtenga beneficio comercial, y que no se realicen obras derivadas.

- La Universidad no revisará el contenido de las obras, que en todo caso permanecerá

bajo la responsabilidad exclusiva del autor y no estará obligada a ejercitar acciones

legales en nombre del autor en el supuesto de infracciones a derechos de propiedad

intelectual derivados del depósito y archivo de las obras. El autor renuncia a cualquier

reclamación frente a la Universidad por las formas no ajustadas a la legislación vigente

en que los usuarios hagan uso de las obras.

- La Universidad adoptará las medidas necesarias para la preservación de la obra en

un futuro.

b) Derechos que se reserva el Repositorio institucional respecto de las obras en él

registradas:

- retirar la obra, previa notificación al autor, en supuestos suficientemente justificados,

o en caso de reclamaciones de terceros.

Page 7: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

Madrid, a ……….. de …………………………... de ……….

ACEPTA

Fdo……………………………………………………………

Page 8: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,
Page 9: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

Autorizada la entrega del proyecto del alumno:

Carlos José Bernabeu Juan

EL DIRECTOR DEL PROYECTO

Juan Antonio Pérez-Campanero Anastasio

Fdo.:……………………………………………Fecha:……………/…………../……………

V°B° del Coordinador de Proyectos:

David Contreras Bárcena

Fdo.:……………………………………………Fecha:……………/…………../……………

Page 10: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,
Page 11: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

AGRADECIMIENTOS

Quiero agradecerle a mi Padre los valores que ha inculcado en mí.

A mi Madre por ayudarme y acompañarme en momentos en los que no estaba seguro,

y por darme los empujones necesarios para volver a despegar a lo largo de toda la

carrera.

Al resto de mi familia y amigos por ayudarme siempre y aconsejarme.

Page 12: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,
Page 13: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

I

SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS

Autor: Carlos Bernabeu Juan

Director: Juan Antonio Pérez-Campanero Anastasio

Entidad Colaboradora: ICAI, Universidad Pontificia de Comillas.

Figura 0.1 Aplicación en ejecución

Resumen del proyecto El objeto de este proyecto es el de crear un sistema sencillo para la informatización de

las facturas en las empresas mediante tecnología OCR, no sólo para la agilización del

proceso sino también para el ahorro en costes de personal.

Palabras clave: Digitalización facturas, sistema inteligente, interpretación de facturas,

facturas, interpretación, OCR.

Introducción

Actualmente las empresas ya sean pequeñas, medianas o grandes, tienen muchos

proveedores, de servicios o productos, y todos emiten facturas. Las facturas son el

comprobante oficial de una transacción económica entre dos partes. Es muy

importante para las empresas la gestión de las facturas, y para hacer las cosas más

sencillas, se intentan mantener en soporte informático, indexadas y en bases de datos

con seguridad ante posibles fallos.

La forma de pasar de soporte en papel a soporte informático es por medio de un

operario que lo único que hace es transcribir lo que ve en el papel al sistema

Page 14: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

II

informático de gestión de facturas. Este proceso además de añadir costes a la

empresa, no es llevado a cabo por todas las empresas, de hecho, las empresas que lo

hacen suelen tener un tamaño considerable, las medianas y pequeñas suelen dejar las

facturas archivadas en un formato perecedero, como puede ser el papel. Con el

desarrollo del sistema se va a conseguir una mayor aceptación del concepto de

informatización de las empresas, poniendo al alcance de todos la digitalización de las

facturas.

El sistema se ha desarrollado para cubrir las necesidades básicas de la digitalización de

las facturas.

Actualmente las empresas que tienen servicios parecidos desarrollados los ofrecen a

un precio que para las empresas pequeñas y medianas son incapaces de afrontar. Es

por ello que hemos desarrollado la herramienta con software libre, abaratando así los

costes de la aplicación.

Operatividad

El sistema inteligente de interpretación de facturas combina tecnología OCR, (Optical

Character Recognition), con una interfaz sencilla de utilizar y flexible que permite tanto

digitalizar las facturas como corregir datos erróneos y añadir comentarios a las facturas

digitales.

Se compone de cuatro módulos fundamentales, el primero se encarga de la carga y

captura de las secciones importantes de una factura, al conjunto de secciones

importantes en una factura las hemos llamado esqueleto. El segundo es el módulo

OCR, que se encargará de adquirir los datos de las partes de la imagen que hemos

seleccionado anteriormente como importantes. El tercer módulo es el de corrección

de errores, que se encarga de dar la opción al usuario de corregir cualquier tipo de

error que el OCR haya podido introducir. Y el último módulo es el de acceso a las bases

de datos, guardando los datos de cada factura en la base de datos de la empresa.

Todo el programa se desarrollará en Java, utilizando Eclipse como entorno de

desarrollo y para las bases de datos MySQL. Más adelante se detallará el porqué de la

elección de éstas tecnologías.

Page 15: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

III

Figura 0.2 Zonas de la aplicación

Desafíos técnicos

Los problemas que surgieron al abordar el proyecto estaban casi todos relacionados

con la elección de un sistema OCR. Al tener relativamente poco tiempo y el equipo

estar formado por una sola persona, la elaboración de un OCR desde cero y nuevo se

descartó inmediatamente. Los OCR existentes son, la mayoría, de pago y al no

disponer de un presupuesto no nos fue posible adquirir ninguna licencia. Los OCR que

utilizamos durante el desarrollo del sistema eran o versiones gratuitas de prueba o

OCR sin ningún soporte ni garantías.

Figura 0.3 Dificultades. Precisión del OCR

Finalmente encontramos una solución que nos aportaba tanto fiabilidad, tasa de

aciertos elevada, soporte y garantía de funcionamiento. Se trataba de un sistema en

fase beta por medio del cual ABBY FineReader, (uno de los motores OCR con mejores

prestaciones del mercado), estaba disponible para hacer Cloud Computing por medio

de una conexión a internet.

Page 16: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

IV

Conclusiones

Con este proyecto se demuestra que tecnología punta como puede ser el

procesamiento OCR de facturas, puede estar al alcance de las empresas que no

disponen del poder adquisitivo asociado a las empresas que suelen adquirir este tipo

de sistemas.

La tecnología OCR se puede aplicar a prácticamente todas las tareas de informatización

de archivos en una empresa, en particular a los procesos de informatización de

facturas, eliminando tareas monótonas y que no requieren cualificación dentro de la

empresa.

Con este proyecto se pone a disposición del 80% de las empresas españolas, las

PYMES, una solución sencilla de utilizar, fiable y barata, que servirá tanto para

aumentar el grado de informatización de la empresa, como ayudar a su crecimiento

futuro.

Referencias

[WWW01] ABBY OCR SDK Forum. http://forum.ocrsdk.com/

[WWW02] ABBY Developers. http://www.abbyy-developers.com/en:onlineocrsdk:start

[WWW03] Simple OCR Web Page. http://www.simpleocr.com/

[WWW04] Google Docs OCR. http://googlesystem.blogspot.com.es/2009/09/google-

docs-ocr.html

Page 17: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

V

INTELIGENT SYSTEM FOR THE INTERPRETATION OF INVOICES

Author: Carlos Bernabeu Juan

Supervisor: Juan Antonio Pérez-Campanero Anastasio

Affiliation: ICAI, Universidad Pontificia de Comillas.

Figure 0.1 Application Running.

Abstract The project’s objective is to create a simple OCR-based system for the interpretation of

invoices, not only to speed the process up but also to have less people in charge of this

matter on the organization, and therefore save money on a daily basis.

Keywords: OCR, intelligent system, invoice interpretation, invoice.

Introduction

Nowadays organizations have lots of service providers, and they all send different

invoices to the organization. Invoices are the official document needed to perform a

commercial transaction between two entities. The management of this invoices is very

important for the organization, they keep them safe on their databases.

Page 18: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

VI

The way to keep record of everything and to have the databases as up-to-date as

possible is to have people continuously transcribing from the paper invoice to the

informatics system. This process not only adds cost to the organization, but also is

commonly avoided in small businesses. In fact the organizations that actually perform

these tasks are big businesses, the small ones leave the invoices in the paper format.

With the developing of this project, we will achieve a higher acceptance of the concept

that is the computerization of the organizations, performing the invoice interpretation

at a very low cost.

Usage

Our system combines OCR technology, (Optical Character Recognition), with a easy-to-

use flexible interface, that will allow OCR processing and data correcting all in one

solution.

The system has four basic modules, the first module is in charge of uploading the

invoice into the system and then defining the important sections of that invoice, those

important sections contain the information that we want to save. The second module

is the OCR module, in charge of processing the invoice and capturing the information

in it. The third module is the one in charge of correcting any mistakes the OCR might

have had, giving the possibility of manual correction. The last module is the database

module, in charge of updating the databases with the new information.

The program will be developed in Java, with Eclipse as the developing environment

and MySQL as the database manager.

Page 19: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

VII

Figure 0.2 Sections of the application.

Technical difficulties

The biggest technical difficulty was the one related to the election of the OCR. We

didn’t have enough time to develop the OCR so we had to use one that already

existed. The problem with this technology is that it is very expensive, we didn’t have

any kind of budget so we couldn’t buy a license. During the development of the system

we used free trial versions of the OCR’s but the problem was that they didn’t include

all the features and didn’t offer any support.

Figure 0.3 Difficulties. OCR’s precission

Page 20: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

VIII

We finally found one that offered us reliability, support, and had a very high hit rate,

ABBY’s FineReader, (one of the best commercial OCR available nowadays). ABBY had

just launched a beta web page for developers to use the ABBY FineReader OCR using

cloud computing.

Conclusions

With our project we minimize the gap between technology and small businesses, and

we offer these businesses state-of-the-art technology for them to use on their

organizations at a very small price compared with the solutions in the global market.

OCR technology is so versatile it can be used virtually everywhere, from invoice

interpretation to car plate recognition. We offer the small businesses, (which form 80%

of the organizations), a simple, reliable, easy-to-use, and cheap solution to help them

save money and grow as part of the information technology society.

References

[WWW01] ABBY OCR SDK Forum. http://forum.ocrsdk.com/

[WWW02] ABBY Developers. http://www.abbyy-developers.com/en:onlineocrsdk:start

[WWW03] Simple OCR Web Page. http://www.simpleocr.com/

[WWW04] Google Docs OCR. http://googlesystem.blogspot.com.es/2009/09/google-

docs-ocr.html

Page 21: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

IX

ÍNDICE

1. Introducción .............................................................................................................................. 1

1.1 Ciclo de una factura ............................................................................................................. 1

2. Alcance del Proyecto ................................................................................................................ 3

2.1 Objetivos ............................................................................................................................. 3

2.2 Funcionamiento básico del sistema .................................................................................... 3

2.3 Tecnologías .......................................................................................................................... 4

2.3.1 Java .......................................................................................................................... 5

2.3.2 Eclipse ...................................................................................................................... 5

2.3.3 MySQL ..................................................................................................................... 6

2.3.4 OCR .......................................................................................................................... 7

2.3.5 Elección del OCR ...................................................................................................... 7

2.4 Metodología ........................................................................................................................ 9

3. Estado del Arte ....................................................................................................................... 11

3.1 Qué es un OCR ................................................................................................................... 11

3.1.1 Preproceso ............................................................................................................. 11

3.1.2 Segmentación ........................................................................................................ 12

3.1.3 Representación digital de la imagen ..................................................................... 12

3.1.4 Reconocimiento ..................................................................................................... 13

3.2 Tecnologías existentes ...................................................................................................... 14

3.3 Tecnologías en desarrollo.................................................................................................. 15

3.4 Empresas en el mercado ................................................................................................... 17

3.5 Situación actual ................................................................................................................. 21

4. Planificación ............................................................................................................................ 23

4.1 EDT .................................................................................................................................... 23

4.2 Descripción de paquetes de trabajo ................................................................................. 24

4.2.1 Definición............................................................................................................... 24

4.2.2 Análisis ................................................................................................................... 24

4.2.3 Programación ........................................................................................................ 25

Page 22: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

X

4.2.4 Control ................................................................................................................... 25

4.3 Organización del proyecto ................................................................................................ 26

4.3.1 Organigrama .......................................................................................................... 26

4.3.2 Descripción puestos de trabajo ............................................................................. 27

4.4 Planificación del proyecto ................................................................................................. 30

5. Estimación económica ............................................................................................................ 33

6. Diseño del sistema .................................................................................................................. 37

6.1 Modelo de casos de uso .................................................................................................... 37

6.2 Módulo de carga de facturas ............................................................................................ 38

6.2.1 Creación del esqueleto .......................................................................................... 41

6.3 Módulo OCR ...................................................................................................................... 43

6.3.1 OCR utilizado ......................................................................................................... 44

6.4 Módulo de corrección de errores...................................................................................... 46

6.4.1 Causas de fallos en los OCR ................................................................................... 46

6.5 Módulo de bases de datos ................................................................................................ 48

6.5.1 Proveedores .......................................................................................................... 49

6.5.2 Esqueletos ............................................................................................................. 49

6.5.3 Facturas ................................................................................................................. 51

7. Programación .......................................................................................................................... 53

8. Conclusiones y trabajos futuros ............................................................................................. 61

9. Bibliografía .............................................................................................................................. 63

Anexo A: Manual de usuario ...................................................................................................... 65

Page 23: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

1

1. INTRODUCCIÓN

Uno de los objetivos principales de las empresas es la digitalización de la información,

para obtener mayor rapidez, robustez y disponibilidad de los datos que maneja la

empresa. Una gran parte de esta información tiene que ver con facturas y con

información contable, por esta razón se necesitan soluciones informáticas a la hora de

pasar las facturas al ordenador y en definitiva al sistema informático de la empresa.

Según un estudio elaborado por Red.es en colaboración con el Instituto Nacional de

Estadística, prácticamente la totalidad de las empresas españolas tienen ordenador,

conexión a internet y correo electrónico. Ésta afirmación nos indica que una solución

informática a la gestión de facturas sería viable en cuanto a posibilidad de uso para

casi el 100% de las empresas españolas.

1.1 Ciclo de una factura La forma en que se gestionan las facturas ha sido siempre muy pesada, consumía

recursos humanos que podrían aprovecharse en otras tareas y además era una tarea

monótona y aburrida.

Figura 1: Ciclo de una factura

Page 24: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

2

En el momento de la recepción de la factura, un operario se encargaba incluirla en el

sistema de gestión existente en la empresa. Generalmente esta inclusión solía ser

tecleando a mano cada campo leído de la factura. Esto sin contar que algunas

empresas ni siquiera tenían software de gestión de facturas y lo que hacían al recibirlas

era archivarlas.

Nuestro proyecto se centra en la tarea del desarrollo de una solución capaz de obtener

los datos relevantes de una factura, de una manera sencilla y fiable, y pasarlos al

sistema informático. Éste tipo de soluciones están disponibles a un precio elevado en

el mercado, sólo accesibles a las empresas de gran tamaño.

Con nuestro proyecto el ciclo quedaría así:

Figura 2: Ciclo de una factura con nuestro sistema

Emisión de la Factura

Recepción de la Factura

Escaneado de la Factura

Procesamiento utilizando OCR

Inclusión automática en el sistema existente

en la empresa

Page 25: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

3

2. ALCANCE DEL PROYECTO

2.1 Objetivos Nuestro objetivo es la obtención de datos de las facturas de manera precisa y fiable,

eliminando la tarea manual de introducción de los datos de la factura en el ordenador,

añadiendo algunas funciones como la posibilidad de revisar las facturas en pantalla,

editar datos y previsualización de la factura que está siendo digitalizada.

Un segundo objetivo es, una vez hayamos introducido un tipo de factura en el sistema,

entrenar al programa para que, seleccionando el emisor de la factura, se centre en los

sectores de la factura que contienen información útil, de esta manera no es necesario

utilizar el OCR en la factura entera sino sólo en las zonas de interés.

El público objetivo para el que desarrollamos este sistema son en general empresas

medianas y pequeñas. El problema al que se enfrentan estas empresas es que la

mayoría del software que se desarrolla se hace para beneficio de grandes empresas

con suficiente poder adquisitivo como para permitirse las licencias de sus productos

software. Nosotros nos centraremos en un mercado que es mayoritario en todos los

países, el de las PYMES, ofreciendo una solución fiable a un precio asequible.

2.2 Funcionamiento básico del sistema El funcionamiento básico del sistema es muy predictivo. Se carga la imagen de una

factura, que previamente ha sido escaneada, y se da la opción de crear un ‘Esqueleto’,

que explicaré más adelante, se ejecuta el OCR, que se encargará de obtener los datos

de la imagen. Después de una serie de comparaciones y de verificaciones, se muestran

los datos recogidos de la imagen. Estos datos pueden modificarse en caso de error o

darles el visto bueno y guardarlos en la base de datos.

Page 26: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

4

2.3 Tecnologías

Para poder llevar a cabo nuestro proyecto utilizaremos la tecnología OCR.

Un OCR es un programa informático capaz de obtener caracteres de una imagen y

pasarlos a texto editable. En nuestro proyecto utilizaremos OCR ya existentes debido a

que la elaboración de un OCR requiere una dedicación igual o posiblemente superior a

la disponible para la elaboración del proyecto.

Existen muchos motores OCR en el mercado, como pueden ser: SimpleOCR, Tesseract,

JMajick, ASPRISE y ABBY. Los describiré con detalle más adelante.

Se programará en Java, por medio de ECLIPSE con MySQL y utilizando un OCR externo.

Page 27: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

5

2.3.1 Java

Java es un lenguaje de programación orientado a objetos que en los últimos años ha

sido el lenguaje más utilizado por los desarrolladores de software, en concreto hay

más de 9 millones de desarrolladores que lo utilizan. Su versatilidad, eficiencia ,

seguridad y portabilidad hacen de Java un lenguaje completo, robusto y a la vez

flexible. Se utiliza en todo tipo de industrias y plataformas, ya sea móvil, ordenador o

red.

Algunos datos que nos ofrece Oracle son que Java:

- se utiliza en 1.1 billones de ordenadores

- en 3 billones de teléfonos móviles

- se producen 31 veces más móviles con java que con android y Apple juntos.

-100% de los BlueRay incorporan java.

Además de todas las ventajas que el lenguaje ofrece a los desarrolladores, java está en

continuo desarrollo y cada vez la comunidad de soporte es mayor, siendo una de las

más activas de los últimos años. No solo se ha reconocido su eficacia en el mundo

laboral sino que también se enseña como primer lenguaje en las universidades y

centros educativos, lo cual indica que es un lenguaje completo y que tiene futuro.

2.3.2 Eclipse

Una vez que elegimos el lenguaje era muy importante elegir bien la plataforma de

desarrollo. Eclipse es una comunidad de individuos y organizaciones que tienen como

objetivo colaborar en un escenario sin ánimo de lucro desarrollando software de libre

distribución.

Se centra en varios lenguajes de programación incluyendo Java. Además de tener

varios ‘plugins’ como puede ser el de WindowBuilder de Google, que hace que la

programación sea sencilla y fluida.

Page 28: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

6

2.3.3 MySQL

MySQL se ha convertido en uno de los gestores de bases de datos más populares en

los últimos años. Esto se debe a sus altas prestaciones, fiabilidad y sencillez en el uso.

Además de ser uno de los más flexibles, funcionando en más de 20 plataformas

incluyendo Linux, Windows, Mac OS, Solaris, IBM AIX, entre otras.

Para diseñar las bases de datos, sus diagramas y para el control del servidor de bases

de datos utilizamos MySQL WorkBench, que es una herramienta para unificar el

diseño, la programación y la administración de las bases de datos de MySQL.

Page 29: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

7

2.3.4 OCR

En el transcurso del desarrollo del sistema y tras muchas pruebas e intentos, hemos

adoptado el OCR desarrollado por ABBY, ABBY FineReader, que hace uso del concepto

de procesamiento en la nube y analiza las imágenes online, devolviendo los resultados

en archivos de texto.

Aunque existen varias soluciones OCR que no requieren de internet para poder

funcionar, como es el caso de OCR de pago como ASPRISE o de libre distribución como

TESSERACT, nos hemos decantado por la solución de ABBY debido a que las otras

tecnologías debían ser complementadas con procesadores muy complejos para poder

obtener resultados fiables.

2.3.5 Elección del OCR

En un principio comenzamos con el OCR ofrecido por ASPRISE, que además incorpora

un SDK para Java. El funcionamiento del OCR es muy sencillo y predictivo, con llamadas

a clases con nombres muy descriptivos. Este motor funciona de manera más o menos

fiable cuando utilizamos imágenes que presenten texto muy claro, pero si

introducimos perturbaciones como puedan ser líneas horizontales o verticales que son

muy comunes en facturas, el OCR pierde fiabilidad de manera escandalosa. Quedó

descartado tras semanas de pruebas.

Tras el primer intento fallido con el OCR de ASPRISE, comenzamos a utilizar varios OCR

de software libre, como son el JMagick o el Tesseract. El primero lo descartamos por su

compleja adaptación a java. El segundo parecía prometer algo más sabiendo que era el

OCR que utiliza Google para los libros y, tras unos días de búsqueda de una solución a

cómo implementarlo para Java, encontramos una librería llamada Tess4j que es un

“wrapper” por medio de JNA para poder hacer uso del motor OCR Tesseract que está

programado en C++. Tras haber conseguido algo que parecía que iba a funcionar, sólo

quedaba implementarlo en Eclipse y probar su efectividad y eficiencia. Tesseract pese

a ser uno de los OCR de libre distribución que mejor tasa de aciertos tiene, necesita un

soporte y procesamiento muy grande y además perdía fiabilidad cuando la imagen

contenía líneas, igual que pasaba con ASPRISE.

Page 30: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

8

Tras varias semanas de búsqueda encontramos una solución beta aportada por ABBY,

una de las empresas más grandes en el sector, que ofrecía procesamiento online para

archivos no demasiado pesados. Tras varias pruebas y tras analizar los resultados

obtenidos, concluimos que era la solución que obtenía los mejores resultados y que,

aunque se convertía en un proceso algo más largo por el hecho de tener que

comunicarse online con el OCR, los resultados merecían el aumento del tiempo de

procesamiento.

En conclusión, la tecnología OCR está en continuo cambio y es debido a eso que las

soluciones existentes pueden tener un índice de aciertos alto en ciertas situaciones,

pero pueden fallar escandalosamente en otras. Por eso nos hemos decantado por la

solución ofrecida por ABBY, que a pesar de ser una beta, se comporta de manera fiable

y precisa en toda la batería de ejemplos probados.

Page 31: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

9

2.4 Metodología

La metodología seguida a lo largo de todo el desarrollo del proyecto ha sido una

metodología mixta, pero en la mayoría del tiempo en espiral. Como nuestro proyecto

se basa en el principio de que el OCR acierte, decidimos que lo mejor era centrar todo

el desarrollo entorno al correcto funcionamiento del motor OCR.

El ciclo comenzaba probando un motor OCR en nuestro sistema y, tras ver si

funcionaba o no, entonces se decidía si seguir adelante con el proyecto y desarrollar

los otros módulos o volver a la fase de búsqueda de otro OCR.

Una vez que decidíamos seguir adelante porque el OCR funcionaba, entonces

desarrollábamos un mini prototipo de la versión final, que sería el que determinaría si

definitivamente continuábamos con el proyecto.

El problema existente con esta técnica era que perdíamos muchas horas buscando un

motor OCR que funcionase y no avanzábamos en el grueso del proyecto, que era toda

la parte de creación del esqueleto, con lo cual decidimos cambiar la metodología.

Empezamos a desarrollar el sistema como si el OCR ya funcionase y con una tasa de

aciertos alta, desarrollamos la carga de facturas, la creación del esqueleto y dejamos

los métodos para la parte del OCR creados, con lo cual no había más que añadir el OCR

y adaptarlo a lo que ya había hecho.

Como la parte de corrección de errores dependía íntegramente de los datos devueltos

por el OCR, la dejamos para el final, junto con el acceso a base de datos para guardar

las facturas.

Para saber si el OCR era adecuado o no, desarrollábamos un pequeño prototipo como

el del principio con la única función de ver cómo se comportaba el OCR cuando le

indicábamos que procesase una imagen con texto como las que íbamos a utilizar en el

proyecto final. Una vez veíamos que el OCR se comportaba como era de esperar, se

añadía al proyecto y se volvía a probar, en caso de no ser del todo preciso se volvía a

repetir la búsqueda y adaptación de OCR.

Page 32: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

10

Hemos tenido que cambiar de OCR varias veces, debido a que por separado y con

imágenes con texto el OCR se comportaba de forma fiable, pero cuando lo incluía en el

proyecto y le decía que procesase una factura, fallaba.

Este tipo de fallos son comunes en los motores OCR gratuitos debido a que son

motores poco optimizados y que ante variaciones pequeñas en la imagen a procesar,

devuelven resultados completamente diferentes. Por ejemplo, en nuestro caso cuando

le pasábamos una factura con campos y con recuadros, el OCR fallaba porque no

entendía que eran esas líneas, cosa que no ocurre con un OCR comercial y optimizado.

Page 33: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

11

3. ESTADO DEL ARTE

Hoy en día hay varias empresas que ofrecen una solución muy parecida a la propuesta

en el proyecto, utilizando un sistema parecido y basándose en OCR también. Esto nos

hace llegar a la conclusión de que el proyecto tiene demanda y se basa en una idea

que está en auge, que es la digitalización de la información.

Generalmente las empresas que ofrecen un servicio de interpretación de facturas lo

hacen o bien con un OCR desarrollado por la propia empresa o con uno ya existente en

el mercado pero optimizado y mejorado por la empresa.

3.1 Qué es un OCR y qué tecnologías utiliza La tecnología OCR engloba a un conjunto de técnicas que complementándose entre sí,

se emplean para distinguir de forma automática los diferentes caracteres existentes.

La precisión de los OCR no llega al 100% y se sabe que cuantos más símbolos existen

en el alfabeto que el OCR maneja, menor es su fiabilidad.

Todo sistema OCR tiene 4 etapas bien diferenciadas: Preproceso, Segmentación,

Representación Digital de la Imagen y Reconocimiento.

3.1.1 Preproceso

En esta fase el objetivo es eliminar de la imagen todo lo que sean perturbaciones o

ruido, es decir, imperfecciones que no pertenezcan al carácter.

Page 34: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

12

3.1.2 Segmentación

En la segmentación tratamos de dividir en partes la imagen a procesar, intentando

separar entre caracteres, como es obvio, una imagen que contenga un texto continuo

será más difícil de analizar que otra que contenga texto delimitado por campos, como

puede ser un formulario.

Figura 3: Segmentación en un OCR

En los casos en los que no existen campos que delimiten los caracteres, para realizar la

segmentación es necesario conocer alguna característica más del texto, como puede

ser la longitud aproximada de cada carácter o la separación entre letra y letra.

3.1.3 Representación Digital de la Imagen

Una vez realizada la segmentación, se dispone de una imagen normalizada en la que

se encuentra la información susceptible de ser reconocida. Esta información se

encuentra en una matriz bidimensional de tantas dimensiones como componentes

tenga. La dimensión de estos vectores suele ser elevada y en esos casos ocurre lo que

se ha estudiado y llamado la “maldición de la dimensionalidad”, que provoca que los

resultados, independientemente del método de clasificación utilizado, sean malos. Por

ello se han desarrollado muchas técnicas de selección y extracción de características

mediante las cuales se obtiene una representación del objeto a reconocer más

eficiente.

Page 35: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

13

Eficiencia en este caso significa que con una representación más compacta, se

consigue un poder discriminativo igual o superior al que obtendríamos con la

representación original. Esto es importante porque reduce el tamaño de las muestras y

reduce el coste computacional. Algunos métodos de extracción de características y

representación digital son:

-PCA (Principal Component Analysis).

-LDA (Linear Discriminant Analysis).

-ICA (Independent Component Analysis).

-NDA (Non-Linear Discriminant Analysis).

3.1.4 Reconocimiento

El objetivo final del OCR es el de clasificar una imagen entre un conjunto de símbolos

posibles. Esto se lleva a cabo en esta última fase, por medio de definición de clases a

las que pueden pertenecer los objetos analizados.

Actualmente existen gran variedad de métodos de clasificación que han ido surgiendo

durante el desarrollo de los OCR. El más popular por su sencillez y gran versatilidad es

el KNN, o también llamado K-Nearest-Neighbours. El KNN funciona de la siguiente

manera: dado un conjunto de objetos de muestra de los cuales ya conoce su clase, y

dado un conjunto de objetos que aun no conocemos, se busca entre los objetos de

muestra para encontrar los K más parecidos al nuevo objeto, y se le asigna la clase más

numerosa entre los K objetos de muestra seleccionados.

Como es obvio y sabiendo cómo funciona el método KNN es necesario tener una base

de datos de imágenes de las que conocemos la clase, a este conjunto se le llama

conjunto de entrenamiento.

Page 36: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

14

3.2 Tecnologías existentes

Actualmente se han desarrollado tecnologías que permiten el procesado de

formularios manuscritos, eliminando la tarea de hacerlo manualmente. Se escanea el

documento y posteriormente se le aplica el OCR. Tras obtener los resultados un

operador debe corregir los posibles fallos cometidos por el OCR.

Figura 4: Procesado de un formulario manuscrito

Page 37: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

15

3.3 Tecnologías en desarrollo

Actualmente se están desarrollando tecnologías capaces de agilizar procesos del día a

día de las empresas, como puede ser el reconocimiento de campos en las facturas.

Existen dos tipos de tecnologías en este sector, las inteligentes y las no inteligentes.

Las inteligentes se diferencian en que tienen un proceso de aprendizaje por medio del

cual extraen los campos clave de las facturas de un proveedor para ahorrase tiempo de

procesamiento la siguiente vez que llegue una factura de ese proveedor. Esto lo

consigue utilizando la técnica que en este proyecto hemos bautizado como de creación

de Esqueletos.

Figura 5: Procesado de una factura

Page 38: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

16

Otro tipo de desarrollos que se están llevando a cabo son en el campo de la

identificación de matrículas de vehículos.

Figura 6: Procesado de una matrícula

Page 39: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

17

3.4 Empresas en el mercado

Las empresas son QUANTYCA SOFTWARE SOLUTIONS, PIXELWARE, SCANCIA entre

otras.

3.4.1 Quantyca Software Solutions

Es una empresa fundada en 2007 que da soluciones informáticas basadas en

tecnología punta a empresas pequeñas que de otra manera no podrían costeárselas.

Su producto estrella es el Contamática 100, que es un sistema de contabilidad basado

en la tecnología OCR, que analiza las facturas y las valida online. La licencia es de pago

por uso y tiene un precio de suscripción de 399€.

Los productos que ofrece son:

-NavegaDoc: Es un gestor de documentos inteligente que utiliza un buscador

para buscar información dentro de un documento.

-Contamática 100: Es el gestor online de facturas con un acierto del 100%.

-Contamática LowCost: Es el gestor online de facturas pero limitado a una

versión más básica.

Figura 7: Quantyca

Page 40: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

18

3.4.2 Pixelware

Empresa especializada en la gestión digital de expedientes, albaranes y facturas.

Ofrecen soluciones innovadoras y en evolución constante, utilizando tecnologías

pioneras.

Proporcionan aplicaciones personalizadas que cumplen las expectativas y

requerimientos del cliente.

El producto que ofrecen es la gestión de albaranes y facturas mediante OCR.

Figura 8: PixelWare

Page 41: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

19

3.4.3 Scancia

Desarrollado por VirtualSoftware, compañía española nacida en 1992 que desarrolla

sistemas informáticos, es un sistema de gestión integral y digital de facturas, contratos

y otros tipos de documentos. Se encarga de digitalizarlos, procesarlos y luego obtener

los datos en formato digital.

Figura 9: Scancia

Page 42: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

20

3.4.4 Neoscan

Software de procesamiento digital de facturas e integración con programas contables,

escanea la factura, procesa el documento con un OCR y guarda los datos procesados,

integrándolos con el sistema contable de la empresa.

Figura 10: NeoScan

Page 43: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

21

3.5 Situación actual

Todas las empresas del sector se centran en ofrecer una solución fiable pero muy cara,

y generalmente enfocada a empresas de gran tamaño con suficiente capital como para

comprar las licencias.

Según un informe elaborado por Red.es en colaboración con el Instituto Nacional de

Estadística indica que el 95% de las empresas españolas son las llamadas

Microempresas, es decir, empresas con menos de 10 empleados.

Figura 11: Gráfico de porcentaje de Microempresas en España

En el gráfico se muestra el total de microempresas frente al total de empresas en

España y el número de empleados en las microempresas.

Como podemos observar la gran mayoría de las empresas españolas son pequeñas y

con menos de 5 empleados, lo cual indica que una solución software cara para la

gestión de las facturas no sería aceptada por el mercado objetivo de las

microempresas.

El éxito radica en ofrecer una solución que cumpla con tres parámetros sencillos de

explicar pero difíciles de conseguir en la práctica:

-Sencillez: La aplicación debe ser intuitiva y fácil de usar, la mayoría de las

personas están familiarizadas con programas comerciales como puede ser el Microsoft

Word, Excel o Powerpoint. El objetivo es que la aplicación se parezca en cómo usarla a

dichos programas.

Page 44: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

22

-Fiabilidad: Una solución software que además requiere alta interacción del

usuario no sería muy exitosa debido a que la gente está adoptando nuestra solución

para ahorrar tiempo y recursos que podrían utilizarse en otras tareas. Nuestra solución

debe ser fiable y tener una tasa de aciertos cercana al 100%.

-Económica: Como ya hemos visto en los gráficos anteriores, la mayoría de las

empresas son microempresas, no disponen de suficiente capital como para estar

adquiriendo licencias caras. Gracias a que la aplicación está enfocada a utilizar

software de libre distribución y gratuito, no supondrá un coste elevado para las

empresas que decidan adquirirlo.

Page 45: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

23

4. PLANIFICACIÓN

En este apartado hemos realizado un Plan de Proyecto, que incluirá:

-Estructura de División del Trabajo: Organización del trabajo a realizar por

medio de un árbol invertido.

-Descripción de los diferentes Paquetes de Trabajo: Entradas, Procesos y

Salidas de información en el sistema.

-Organización del Proyecto: Cómo está estructurada la cadena de mando y qué

roles y perfiles son los necesarios para elaborar el proyecto.

-Planificación: Cómo está planificado el proyecto a lo largo de su desarrollo.

4.1 Estructura de División del Trabajo

Se va a proceder a organizar el trabajo a desarrollar mediante un árbol invertido,

donde se refleja las diferentes actividades que se irán realizando para el PGP final de la

aplicación a desarrollar del proyecto de fin de carrera.

Figura 12: Estructura de División del Trabajo

Aplicación Informática-Digitalize

A0. Definición del Proyecto

A1. Análisis del Problema

A2. Programación Control del Proyecto

Page 46: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

24

4.2 Descripción de los Paquetes de Trabajo

En esta sección se describen los diferentes paquetes definidos en la Estructura de

División del Trabajo, definiendo sus entradas, salidas y los procesos que tienen lugar

en cada paquete.

4.2.1 A0. Definición del Proyecto

Paquete de trabajo A0. Definición del proyecto

Entradas: -Pliego de Prescripciones Técnicas, (PPT)

- Requisitos de la aplicación

Procesos: - Lectura del Pliego de Prescripciones Técnicas (PPT)

- Extracción de información relevante

- Análisis de requisitos del cliente

- Definición del alcance de la tecnología a desarrollar

- Elaboración del planteamiento general

Salidas: - Definición del Proyecto

4.2.2 A1. Análisis del problema

Paquete de trabajo A1. Análisis del problema

Entradas: - Definición del Proyecto

Procesos: - Análisis de requisitos

- Definición de objetivos

- Definición de recursos y tecnologías a utilizar

Salidas: - Texto del Análisis del Problema

Page 47: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

25

4.2.3 A2. Programación

Paquete de trabajo A2. Programación

Entradas: - Definición del Proyecto

-Análisis del Problema

Procesos: - Desarrollo de la Aplicación basándonos en las entradas

Salidas: - Aplicación en fase de diseño y desarrollo

4.2.4 A3.Control del Proyecto

Paquete de trabajo A.3 Control del Proyecto

Entradas: -Pliego de Prescripciones Técnicas (PPT)

-Estructura de División del Trabajo

-Descripción de los Paquetes de Trabajo

-Presupuestos para el proyecto

-Planificación del proyecto

Procesos: -Establecer medidas de correcta finalización de cada

paquete de actividad

-Estipular reuniones de control y verificación

-Establecer medidas para la correcta entrega de

documentos parciales y finales en la fecha limite marcada

-Entrega de documentación aprobada y corregida

-Métricas de medida de calidad, económicas, técnicas y

del cumplimiento de fechas estipuladas

Salidas: - Plan de control del proyecto

Page 48: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

26

4.3 Organización del Proyecto

Como todo proyecto que sea de una complejidad y longitud considerable, debe haber

una estructura de toma de decisiones, por medio de la cual se establezca una

jerarquía.

En este apartado se expone esa estructura y se definen los roles de cada uno de los

implicados.

4.3.1 Organigrama

Diagrama 1: Organigrama del proyecto

Coordinador de Proyecto

Director de Proyecto

Jefe de Proyecto

Consultor

Línea discontinua:

Interviene

Page 49: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

27

4.3.2 Descripción de Puestos de Trabajo

Nombre del puesto Director del proyecto

Responsabilidades Planteamiento y Definición del Proyecto

Descripción

Posee la responsabilidad total del planeamiento teórico de las bases del proyecto. Su

firma certifica la calidad del proyecto así como su viabilidad.

Debe ser un Ingeniero

Conocer y controlar los temas tratados en el Proyecto

Miembro de la Universidad o miembro de una empresa que oferte el proyecto

Responsabilidades para con el proyecto

Definición del Proyecto

Firma del Proyecto

Responsable último del Proyecto

Page 50: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

28

Nombre del puesto Jefe de proyecto

Responsabilidades Planteamiento y ejecución correcta del

desarrollo del proyecto

Descripción

Posee la responsabilidad total del planeamiento y la ejecución del proyecto. Se

necesita que el jefe de proyecto posea una correcta combinación de las siguientes

habilidades:

Gran capacidad inquisitiva

Detección de problemas sin especificar

Resolución de conflictos interpersonales

Reconocimiento de riesgos que afectan directamente las probabilidades de

éxito del proyecto, y la constante medición, formal e informalmente de dicho

riesgo a lo largo del ciclo de vida del proyecto

Capacidad de reducir los riesgos significativamente

Capacidad de una política de comunicación abierta, asegurándose de que cada

participante tenga una oportunidad de expresar sus opiniones y

preocupaciones

Capacidad de tomar las decisiones necesarias para que el riesgo sea

controlado y la incertidumbre reducida al mínimo.

Responsabilidades para con el proyecto

Control y coordinación del proyecto

Control y coordinación del equipo de trabajo

Control de métricas

Presidir y coordinar de las reuniones del equipo de trabajo

Elaboración de la documentación

Comunicación entre cliente y equipo de trabajo

Cada decisión tomada por el encargado de proyecto debe involucrar un beneficio

Page 51: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

29

directo hacia el proyecto.

Nombre del puesto Consultor

Responsabilidades Elaboración de la sección asignada del

proyecto.

Descripción

Profesional capacitado que ofrezca soluciones a problemas o situaciones que aporten

valor. Capacitado y con experiencia en el área de tecnología y con conocimientos en el

rea de desarrollo de software, herramientas ofimáticas, redes y comunicaciones.

Requisitos a cumplir:

Conocimientos de Tecnologías de la información

Conocimientos básicos en consultoría informática

Conocimientos básicos de gestión de proyectos

Cursar último curso de Ingeniería Informática

Sus áreas de responsabilidad serán:

Elaboración de paquetes de trabajo asignados

Asistir a reuniones de control.

Page 52: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

30

4.4 Planificación del Proyecto

El proyecto comenzó oficialmente en Septiembre de 2011, fecha en la que

comenzamos a cursar 5º de IINF pero no se da comienzo real hasta el alta del

proyecto, que es en Noviembre, cuando firmamos la apertura del proyecto con

nuestro Jefe de Proyecto.

En esta sección se muestra con detalle la planificación seguida en estos meses de

trabajo.

Figura 13: Planificación del Proyecto

Page 53: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

31

Figura 14: Planificación del Proyecto

Page 54: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

32

El diagrama de Gant, con cada una de las tareas importantes resaltadas en negro,

(Definición del Proyecto, Análisis del Problema, Programación, Elaboración de la

Memoria y Control del Proyecto).

Figura 15: Diagrama de GANT

Page 55: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

33

5. ESTIMACIÓN ECONÓMICA

La estimación económica que describimos en esta sección está sujeta a varias

condiciones importantes que son necesarias para su correcto entendimiento.

La primera es que estamos estimando los cálculos basándonos en que un Consultor

cobra 20€ la hora de trabajo.

La segunda es que un Jefe de Proyecto cobra 30€ la hora de trabajo.

La tercera condición es que suponemos una implicación con total disponibilidad tanto

para el Consultor como para el Jefe de Proyecto, algo que no es real debido a que el

consultor es el alumno que realiza el proyecto y no siempre puede dedicarse

únicamente al proyecto. Y de la misma forma, el Jefe de Proyecto no tiene total

disponibilidad para el proyecto en cuestión debido a que es un profesor de la

universidad y tiene otras tareas que atender aparte del proyecto del que es jefe.

Teniendo estas condiciones en cuenta, y desglosando por horas invertidas para cada

paquete de trabajo definido previamente, la estimación de horas quedaría:

Page 56: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

34

Número de Horas por Paquete de Trabajo y Trabajador

Consultor Jefe de

proyecto

Director

de

Proyecto

Total

Definición del

proyecto

2h 2h 4h

Análisis del

problema

Análisis de

requisitos

23h 23h 46h

Análisis de

tecnologías a

emplear

25h 25h

Diagramas 15h 15

Programación Interfaz 60h 10h 70h

Lógica básica 60h 60h

Bases de

datos

10h 10h

Revisión

datos

procesados y

corrección de

errores

20h 20h

Implantación 60h 60h

Control del

proyecto

Reuniones

periódicas

1h 1h 2h

Memoria del

Proyecto

30h 30h

Pruebas y

corrección de

errores

20h 20h

Total 253 horas 106

horas

3 horas 362

horas

Tabla 1: Número de horas por paquete de trabajo

Page 57: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

35

Incorporando la tarifa del jefe de proyecto, la del director y la del consultor:

Tarifas de cada Trabajador

Consultor

Jefe de Proyecto

Director de Proyecto

20€/h 30€/h 25€/h

Tabla 2: Tarifas

Presupuesto por Trabajador

Consultor Jefe Proyecto Director Proyecto

Total

253h*20€/h 106h*30€/h 3h*25€/h

Total 5.060 € 3.180 € 75€ 8.315 €

Tabla 3: Presupuesto

Page 58: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

36

Page 59: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

37

6. DISEÑO DEL SISTEMA

El proyecto se ha desarrollado en java utilizando Eclipse y un ‘plugin’ llamado

WindowBuilder desarrollado por Google para el diseño de la interfaz gráfica.

El proyecto tiene varios módulos que permiten al usuario final realizar las tareas

definidas en el modelo de casos de uso.

6.1 Modelo de casos de uso

Crear Esqueleto de

Proveedor Nuevo.

Procesar una Factura

de un Nuevo

Proveedor.

Procesar una Factura

de un Proveedor

Existente.

Usuario

Figura 15: Modelo de Casos de Uso

Page 60: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

38

6.2 Módulo de selección y carga de facturas Es el primer módulo que desarrollamos y se encarga de la carga de una factura válida.

Las facturas pueden cargarse como imágenes normales (jpeg, bmp) o como imágenes

escaneadas (tiff). La factura se selecciona y se precarga en la aplicación, mostrándola

en la zona de visualización de la factura.

Figura 17: Inicio de la Aplicación

Page 61: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

39

Figura 18: Zonas de la Aplicación

Figura 19: Selección de la factura

Page 62: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

40

Una futura mejora para la aplicación podría ser el procesamiento de un lote de

facturas escaneadas, que es simplemente hacer que el uso continuado de la aplicación

no se vuelva algo pesado. Con esta mejora se consigue aumentar la rapidez con la que

procesamos facturas al igual que se aumenta en comodidad.

Una vez que hemos precargado la factura en el sistema, éste nos pregunta si la factura

es de un proveedor nuevo o uno del que ya hemos procesado alguna factura. En caso

de ser un proveedor nuevo vamos a tener que crear el llamado ‘Esqueleto’, que no es

más que un conjunto de coordenadas en las que con una probabilidad alta se van a

encontrar los datos relevantes para el usuario. En este momento entramos en la

sección de creación de esqueleto.

Figura 20: Precarga de la factura en el sistema

Page 63: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

41

6.2.1 Sección de creación de esqueleto

Un esqueleto se va a crear siempre vinculado a un proveedor o emisor de facturas.

Todas las facturas tienen una serie de campos clave, como pueden ser el emisor,

receptor, número de factura, fecha, cantidad base, impuestos y cantidad total. A estos

campos clave se les va a asociar un área en la imagen de la factura para que, en

próximas cargas de facturas de ese proveedor, el OCR se pueda centrar en analizar

sólo las zonas seleccionadas como importantes.

Figura 21: Creación del Esqueleto

Page 64: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

42

Cada zona la selecciona el usuario y de esa selección depende en gran medida la tasa

de aciertos del OCR. Cada zona se guarda en base de datos con 2 puntos que contienen

cada uno una coordenada ‘x’ y otra ‘y’. Estas coordenadas se generan al hacer drag-

and-drop sobre la factura. Más adelante se cargan las coordenadas para formar los

rectángulos con el área de la imagen que se debe analizar.

Figura 22: Esqueleto creado

Page 65: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

43

Una vez que el Esqueleto se ha creado con éxito, se guarda en la base de datos llamada

Esqueletos. Esta base de datos es la que contiene una referencia por cada proveedor

nuevo que emite una factura que después será analizada por nuestro sistema.

En el caso de que no sea necesaria la creación de un esqueleto, por ejemplo si el

proveedor ya tiene un esqueleto creado, al cargar la factura simplemente se selecciona

el proveedor que ha emitido la factura y automáticamente se cargan los datos de su

Esqueleto.

Figura 23: Selección de Proveedor

6.3 Módulo de OCR Tras cargar el esqueleto de un proveedor, pasamos al módulo más importante de

nuestro sistema, el módulo OCR. El OCR se va a encargar de analizar cada sección de la

factura que haya sido incluida como relevante y parte del esqueleto. Como ya

explicamos anteriormente, el módulo OCR es el que más cambios ha sufrido a lo largo

del ciclo de desarrollo del proyecto. En la versión final el OCR que hemos utilizado es el

que ha puesto ABBY a disposición de los desarrolladores en su web, es decir, lo que se

Page 66: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

44

quiera analizar hay que enviarlo a la web de ABBY y recibir los resultados en un archivo

de texto.

6.3.1 OCR utilizado

El OCR de ABBY se llama FIneReader y funciona de la siguiente manera: Antes de

aplicar el OCR se realiza un pre-procesamiento de la imagen cargada, de esta manera

se corrigen distorsiones en la imagen original, como pueden ser orientación, manchas

o simple ruido.

FineReader comienza el análisis de de la imagen desarrollando una estructura del

documento a analizar. Divide la página en bloques de texto, tablas e imágenes. Tras

hacer esto comienza el proceso de detección de líneas, palabras individuales y letras.

Cada pedazo de la imagen es comparado con una serie de patrones que definen con

una probabilidad alta una letra concreta. Todo esto es posible gracias a los algoritmos

desarrollados por ABBY, los ADRT, (ABBY’s Adaptive Document Recognition

Technology). FineReader determina la posición de cada letra en una palabra, cada

palabra en una línea como también las propiedades de cada página. Todas las

divisiones tanto lógicas como físicas, como puedan ser el encabezado, pie de página y

demás, se mantienen exactamente en el mismo lugar. FineReader tiene soporte para

37 de los 42 lenguajes OCR disponibles. Compara las palabras detectadas con las

existentes en sus diccionarios, lo cual asegura mejor tasa de aciertos.

En este módulo además de enviar las zonas de la factura a procesar y recibir los datos

procesados, todos los datos se pasan por un procesador propio de la aplicación que se

va a encargar de eliminar todo tipo de impurezas antes de mostrar lo analizado en la

zona habilitada para la recepción de datos en la aplicación.

El procesador se encarga de validar la integridad de los datos, validando formatos de

fecha, formatos de campos como pueden ser el CIF/NIF.

Page 67: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

45

Figura 24: Datos devueltos por el OCR

Como puede observarse la tasa de aciertos es muy alta, de hecho solo ha cometido

fallos al confundir algún 0 por un 3, todo lo demás es exactamente lo que le dijimos

que analizase. En éste caso en que se ha confundido, entraría en juego el siguiente

módulo, que es el de corrección de errores.

Page 68: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

46

6.4 Módulo de corrección de errores

El módulo de corrección de errores es un módulo que no debería existir, pero debido a

que la tecnología OCR aún no está garantizando el 100% de aciertos, es necesaria una

sección dedicada a la posibilidad de que el OCR falle.

6.4.1 Causas de los fallos en los OCR

Los ruidos o impurezas son problemas comunes en todas las áreas de procesamiento

digital de imagen, y en particular son bastante comunes en procesos OCR.

Generalmente son variaciones en el color donde no debería haber variación, aunque a

simple vista no parezca haber variación, es muy difícil conseguir que una zona de un

color sea uniforme y no contenga sombras.

Figura 25: Sombras en una imagen

El problema radica en que cuando nosotros miramos la imagen nos damos cuenta que

en la zona rosa, aunque haya variaciones y sombras, no hay información útil. No nos

pararíamos a mirar porqué existe variación porque sabemos que no contiene el texto

que es lo que queremos en realidad. Pero eso sólo ocurriría si el OCR fuese un cerebro

humano, entonces pasaría por alto esas variaciones. Al no ser así y sabiendo cómo

funciona la tecnología OCR que es, en definitiva, un comparador, nos damos cuenta

que el motor OCR sí se pararía a analizar esas variaciones, pudiéndose confundir y

errar en su predicción.

Page 69: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

47

Estas variaciones y ruidos no tienen porqué ser producto de un mal escaneado,

también pueden producirse por mala compresión como por ejemplo la compresión

producida por el algoritmo JPEG, que aunque ofrece altos grados de compresión,

pierde calidad y puede llegar a cambiar pixeles en la imagen.

Existen filtros que pueden reducir este tipo de problemas, mediante técnicas como la

fusión de pixeles para diluir el impacto ante cambios bruscos en color. Ésta técnica se

conoce como procesamiento digital de señales con filtros de baja frecuencia, lo que

significa que deja que las señales con frecuencias bajas y que cambian de manera

gradual con el tiempo pasen por el filtro, y bloquea aquellas señales de alta frecuencia

que cambian bruscamente.

Este tipo de filtros también tienen un problema, al fusionar pixeles puede darse la

situación de que la imagen se desenfoque y pierda claridad en los bordes, haciendo

una vez más que el OCR pierda efectividad.

Figura 26: Señales sin filtro (arriba y abajo a la izquierda), frente a señales tras pasar el

filtro (arriba y abajo a la derecha).

Una mejora en un futuro sería la de añadir distintos tipos de filtros a nuestra aplicación

para aumentar su tasa de aciertos y por consiguiente disminuir la de fallos.

Page 70: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

48

Figura 27: Sección de corrección de errores

6.5 Módulo de bases de datos

En el módulo de bases de datos lo que se hace es guardar los datos en la base de datos

MySQL. Es necesario que los datos que se vayan a guardar se validen y se verifiquen,

de tal manera que no pueda fallar el programa por un error de sintaxis SQL. Los

campos que se han definido como ‘String’ no es necesario validarlos pero aquellos

definidos como ‘Int’ o ‘Float’ o Date hay que asegurarse que tienen el formato

adecuado.

La base de datos se compone de tres tablas: Proveedores, Esqueletos y Facturas

Page 71: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

49

6.5.1 Proveedores

Ésta tabla contiene los datos de todos los proveedores que alguna vez han enviado una

factura y ésta se ha analizado y procesado en el sistema.

Figura 28: Combobox con los Proveedores o Emisores de Facturas

6.5.2 Esqueletos

La tabla de esqueletos contiene información de las zonas importantes de las facturas

de un proveedor. Al seleccionar un proveedor que ya existe en el sistema, éste

automáticamente carga los datos del esqueleto asociado a ese proveedor, mostrando

las zonas seleccionadas como importantes con diferentes colores en la factura.

Page 72: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

50

Figura 29: Sistema cargando el esqueleto de un proveedor

Page 73: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

51

6.5.3 Facturas

Ésta tabla contiene la información de la factura procesada, pudiéndola adaptar al

formato que el cliente exija. Al ya tener la factura en base de datos no se corre riego

de pérdida de información o de deterioro de la factura física.

Figura 30: Tablas en la base de datos.

Page 74: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

52

Page 75: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

53

7. PROGRAMACIÓN

El proyecto está programado en Java y se utilizó como entorno de desarrollo Eclipse.

Para la creación de la interfaz gráfica se ha utilizado el WindowBuilder de Google, que

es un pluggin de Eclipse para crear interfaces gráficas.

Nuestro proyecto consta de 10 clases, 6 de creación propia y 4 del OCR de ABBY:

- appGestionFacturas.java

- Esqueleto.java

- OCR.java

- PanelImagen.java

- Procesador.java

- Filtro.java

- Base64.java

- Client.java

- ProcessingSettings.java

- Task.java

Voy a describir las clases que hemos desarrollado en el proyecto

Page 76: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

54

appGestionFacturas.java

Es la clase principal y se encarga de inicializar todos los componentes de la interfaz

gráfica y de llamar en cada momento a cada una de las demás clases.

appGestionFacturas

1.Filtro.java

2.PanelImagen.java

3.Esqueleto.java 4.OCR.java

5.Procesador.java

Page 77: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

55

Filtro.java

Ésta clase se encarga de dar al usuario la opción de elegir una imagen de una factura a

cargar, pero teniendo en cuenta los formatos que están permitidos. En caso de no

haber elegido un formato correcto notificará al usuario mediante un cuadro de diálogo

emergente para que vuelva a elegir otra imagen.

Fragmento de código 1

public boolean accept(File f) { boolean r; int i= f.getName().lastIndexOf('.'); String s= f.getName().substring(i).toLowerCase();

if(s.equals(".jpg")==true|| s.equals(".gif")==true||s.equals(".tif")==true||s.equals(".bmp")==true)

{ r=true; }else { r=false; } return r; }

Page 78: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

56

PanelImagen.java

La clase PanelImagen.java es la encargada de todo el procesamiento gráfico en la imagen de la

factura, desde cargar la imagen hasta superponer la imagen con su esqueleto. Llegado el

momento ésta clase nos permitirá crear un esqueleto visualmente y directamente sobre la

imagen cargada. Para ello hemos tenido que redefinir el método paintComponent del

componente JPanel.

Fragmento de código 2

//Redefinimos el PaintComponent para adaptarlo a las necesidades de cada momento public void paintComponent(Graphics g) { this.g=g; if(sw3!=2)//Pinta la imagen inicial { super.paintComponent(g); g.drawImage(img, 0,0, this); } if(sw3==2)//Pintar el rectangulo definido por las coordenadas x,y,w,h en cada momento { int x=coordenadaX1; int y=coordenadaY1; int w=(coordenadaX2-coordenadaX1); int h=(coordenadaY2-coordenadaY1); super.paintComponent(g); //Queremos que se vea la factura por detrás, la pintamos g.drawImage(img, 0,0, this); g.setColor(Color.red); //Rectangulo g.drawRect(x, y, w, h); } if(sw4==1)//Pintar todos los rectángulos definidos { super.paintComponent(g); g.drawImage(img, 0,0, this); //Como son 7 pintamos los 7 rectángulos for(int i=0;i<7;i++) { g.setColor(color[i]); g.drawRect(x[i], y[i], w2[i], h2[i]); } } }

Page 79: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

57

Esqueleto.java

La clase Esqueleto.java es la encargada de inicializar el esqueleto asociado a un

proveedor nuevo, guardando las coordenadas de cada rectángulo asociado a un campo

clave en la base de datos de Esqueletos.

Fragmento de código 3

//SetNombre public void setNombre(String nombre) { this.nombreProveedor= nombre; } //SetNF va a inicializar las coordenadas del Número de Factura public void setNF(int x1,int y1,int x2,int y2) { this.NFx1=x1; this.NFy1=y1; this.NFx2=x2; this.NFy2=y2; } //SetF va a inicializar las coordenadas de la Fecha public void setF(int x1,int y1,int x2,int y2) { this.Fx1=x1; this.Fy1=y1; this.Fx2=x2; this.Fy2=y2; } //SetR va a inicializar las coordenadas del Receptor public void setR(int x1,int y1,int x2,int y2) { this.Rx1=x1; this.Ry1=y1; this.Rx2=x2; this.Ry2=y2; } //SetCIF va a inicializar las coordenadas del CIF/NIF public void setCIF(int x1,int y1,int x2,int y2) { this.CIFx1=x1; this.CIFy1=y1; this.CIFx2=x2; this.CIFy2=y2; }

Page 80: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

58

Fragmento de código 4

int retorno = stmt.executeUpdate(); //Ahora hay que añadir los datos del esqueleto stmt = conexion.prepareStatement("INSERT INTO pfc.esqueletos VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); stmt.setInt(1,indice); stmt.setString(2,nombreProveedor); stmt.setInt(3,NFx1 ); stmt.setInt(4,NFx2); stmt.setInt(5,NFy1); stmt.setInt(6,NFy2 ); stmt.setInt(7,Fx1 ); stmt.setInt(8,Fx2 ); stmt.setInt(9,Fy1); stmt.setInt(10,Fy2 ); stmt.setInt(11,Rx1); stmt.setInt(12,Rx2); stmt.setInt(13,Ry1); stmt.setInt(14,Ry2); stmt.setInt(15,CIFx1); stmt.setInt(16,CIFx2); stmt.setInt(17,CIFy1); stmt.setInt(18,CIFy2); stmt.setInt(19,Bx1); stmt.setInt(20,Bx2); stmt.setInt(21,By1 ); stmt.setInt(22,By2 ); stmt.setInt(23,IVAx1); stmt.setInt(24,IVAx2); stmt.setInt(25,IVAy1); stmt.setInt(26,IVAy2); stmt.setInt(27,Tx1); stmt.setInt(28,Tx2); stmt.setInt(29,Ty1); stmt.setInt(30,Ty2);

Page 81: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

59

OCR.java

OCR.java es la clase que llama a las clases de ABBY, en el paquete ‘com’, para procesar

las imágenes que necesitamos analizar.

Fragmento de código 5

public OCR(String app, String pass, String img, String txt) { Client restClient = new Client();

//El applicationId es el identificador de nuestra aplicación en ABBY.com

restClient.applicationId = app;

//El password es la contraseña de nuestra aplicación en ABBY.com

restClient.password = pass; //Aqui recogemos el path a la imagen a procesar String filePath = img; //Los resultados los devolverá en ese txt String outputFile = txt; //Comunicación con ABBY.com y procesado de las imagenes ProcessingSettings settings = new ProcessingSettings();

Page 82: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

60

Procesador.java

La clase Procesador.java va a analizar los datos obtenidos por el OCR de ABBY y se va a

encargar de eliminar caracteres extraños y poner los datos en formatos que sean

aceptados por la base de datos.

Fragmento de código 6

//Fecha, tiene que estar en formato MySQL AAAA-MM-DD auxiliar=datos[1].toString(); int j=0; String a=""; //contamos cuantos números hay for(int i=0;i<auxiliar.length();i++) { if(Character.isDigit(auxiliar.charAt(i))) { j++; int li= auxiliar2.length();

auxiliar2 = new StringBuffer(auxiliar2).insert(li, auxiliar.charAt(i)).toString();

}else { if(auxiliar.charAt(i)=='/'||auxiliar.charAt(i)=='-') { a=a+""+j; j=0; int li= auxiliar2.length();

auxiliar2 = new StringBuffer(auxiliar2).insert(li,"-").toString();

} } }

// 'a' va a contener un número por ejemplo 114, que significa que el día

//tiene una cifra, el mes también y el año cuatro, con lo cual hay que ponerlo siempre con dos cifras(añadiendo 0)

//y en formato AAAA-MM-DD a=a+""+j; //Añadimos 0 si es necesario if(a.equals("114")) { //Añado 0

auxiliar2 = new StringBuffer(auxiliar2).insert(0, '0').toString();

auxiliar2 = new StringBuffer(auxiliar2).insert(3, '0').toString();

//Lo pongo en formato SQL String dia=auxiliar2.substring(0, 2); String mes=auxiliar2.substring(3, 5);

String anio=auxiliar2.substring(6,10);

auxiliar2=""+anio+"-"+mes+"-"+dia; }

Page 83: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

61

8. CONCLUSIONES Y TRABAJOS FUTUROS

Vivimos en la Sociedad de las Tecnologías de la Información, hoy en día todo negocio

dispone de un ordenador o algo controlado por un ordenador. La información ya no

viaja en formatos tangibles, se mueve y fluye vía Internet y esto agiliza mucho la

comunicación entre las diferentes partes que intervienen en un comercio.

Aunque se han digitalizado muchos sectores de las empresas, aún quedan algunos que

siguen haciendo uso de medios físicos como el papel para diversas tareas, como puede

ser informar, o enviar una factura.

Las facturas son la base de todo negocio, sin ellas no se podría comprobar que en

algún momento existió una transacción económica entre dos partes, el comprador y el

vendedor. Son tan importantes que las empresas dedican secciones enteras de sus

organizaciones a su gestión, se reciben, se incluyen en el sistema contable de la

empresa y después se contabilizan. El proceso de incluir las facturas en el sistema de

una empresa es, en casi todos los casos manual, y absorbe recursos y tiempo.

Gracias a los avances en las tecnologías en general en los últimos años y en particular

en la tecnología OCR, ha sido posible el desarrollo de un sistema capaz de automatizar

el proceso de digitalización de las facturas.

El mercado de los sistemas de automatización de procesos del día a día de las

empresas es un mercado que está en crecimiento, es relativamente nuevo y hay pocos

competidores. De hecho, en el caso particular del software de proceso y análisis de

facturas, los proveedores se pueden contar con los dedos de las manos.

Es por esas razones por las que nos hemos centrado en desarrollar una herramienta

sencilla de utilizar, fiable, y que se puede mejorar en caso de querer comercializarla. La

herramienta está lejos de alcanzar una tasa de aciertos del 100%, pero se puede

conseguir para versiones futuras.

Page 84: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

62

El sistema está enfocado a empresas que no tienen capital suficiente como para

adquirir un software de primera calidad con soporte por parte de la empresa y con

actualizaciones periódicas. Ponemos al alcance de las PYMES un sistema sencillo de

utilizar, predictivo y fiable para informatizar aún más sus organizaciones y poder hacer

uso de las nuevas tecnologías, aunque no puedan permitirse el lujo de comprar las

costosas licencias de los productos existentes ahora mismo en el mercado.

Page 85: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

63

9. BIBLIOGRAFÍA

[CONT09] Contreras Bárcena, David. “Apuntes de Ingeniería del Software II de Ingeniería

Superior en Informática”. Universidad Pontificia Comillas de Madrid. Madrid 2009.

[MUÑO10] Muñóz García, Manuel. “Apuntes de Gestión de Proyectos Informáticos de

Ingeniería Superior en Informática”. Universidad Pontificia Comillas de Madrid. Madrid 2010.

[WWW01] Actualidad TIC. OCR. http://www.iti.es/media/about/docs/tic/02/2003-11-ocr.pdf

[WWW02] Google. www.google.es

[WWW03] Wikipedia. www.wikipedia.es

[WWW04] JNA wrapper for Tesseract OCR. www.tess4j.org

[WWW05]Quantyca Contamatica. http://www.quantyca.com/main/contamatica-100-

overview.html

[WWW06]Pixelware Sofware. http://www.pixelware.com/

[WWW07]Neoscan Software. http://www.neoscan.es/

[WWW08]Eclipse Windowbuilder. http://www.eclipse.org/windowbuilder/

[WWW09]Finereader Online OCR. ABBY.

http://finereader.abbyyonline.com/en/Help/WhatIsOCR

[WWW10]Resumenes PFC. IIT. Universidad Pontificia Comillas.

http://www.iit.upcomillas.es/pfc/resumenes/4c80a8886c773.pdf

[WWW11] Estudio de las tecnologías en las empresas españolas. Ministerio de Industria,

Turismo y Comercio.

http://www.osimga.org/export/sites/osimga/gl/documentos/d/20110905_ontsi_pemes_2011.

pdf

[WWW12] What is JAVA. http://www.java.com/en/about/

[WWW13] Eclipse Home Page. http://www.eclipse.org/org/

[WWW14] Ejemplos memoria PFC. Universidad Pontificia Comillas.

http://www.labcom.upcomillas.es/pfc/docs/EjemploMemoria.pdf

[WWW15]Java examples. MySQL. http://www.chuidiang.com/java/mysql/EjemploJava.php

[WWW16]Java Examples. http://todojava.awardspace.com/ejemplos-java.html

[WWW17]SimpleOCR’s Web Page. http://www.simpleocr.com/

Page 86: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

64

[WWW18] Google Docs OCR. Google.http://googlesystem.blogspot.com.es/2009/09/google-

docs-ocr.html

[WWW19] Tesseract OCR. Google. http://code.google.com/p/tesseract-ocr/

[WWW20] Jmagick OCR.

http://sourceforge.net/apps/mediawiki/jmagick/index.php?title=Main_Page

[WWW21] Installing Jmagick OCR.

http://sourceforge.net/apps/mediawiki/jmagick/index.php?title=Installing_JMagick

[WWW22] Metodología de Desarrollo de Software. Wikipedia.

http://es.wikipedia.org/wiki/Metodolog%C3%ADa_de_desarrollo_de_software

[WWW23] OCR en matrículas de automóviles. http://webs.uvigo.es/gpi-

rv/ficheros/pub/reports/cap2.pdf

[WWW24] UML Software. Gliffy. http://www.gliffy.com/uses/uml-software/

[WWW25] Java Examples. JDBC. http://www.devdaily.com/java/edu/pj/jdbc/jdbc0002

[WWW26] Java Examples. MySQL. RoseIndia. http://www.roseindia.net/jdbc/jdbc-

mysql/SetDate.shtml

[WWW27] Diagramas de Flujo Online.Techadictos. http://techadictos.com/crear-diagramas-

de-flujo-online/

[WWW28]ABBY OCR SDK Examples.

https://github.com/abbyysdk/ocrsdk.com/blob/master/Java/Abbyy.Ocrsdk.client/src/TestApp.

java

[WWW29]ABBY OCR Forum. http://forum.ocrsdk.com/

[WWW30]ABBY OCR Developers. http://www.abbyy-developers.com/en:onlineocrsdk:start

Page 87: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

65

ANEXO A

Manual de Usuario

SISTEMA INTELIGENTE DE INTERPRETACIÓN

DE FACTURAS

Autor: Carlos Bernabeu Juan

Director: Juan Antonio Pérez-Campanero Anastasio

Madrid

Junio 2012

Page 88: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

66

Page 89: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

67

Introducción

El Sistema Inteligente de Interpretación de Facturas es una herramienta software

diseñada para agilizar el proceso de digitalización de la información contenida en las

facturas. Éste proceso se basa en la tecnología OCR que, combinada con técnicas de

procesamiento de los datos obtenidos, permiten que el sistema sea fiable y eficiente.

En este manual se explicarán cada una de las opciones del sistema así como todas sus

posibles formas de utilización.

Page 90: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

68

Page 91: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

69

Elementos en la pantalla principal

Una vez que ejecutamos la aplicación se muestra la siguiente pantalla principal

Figura 31: Pantalla de Inicio

La aplicación muestra dos zonas claramente diferenciadas, una será la zona de carga y

previsualización de la factura a procesar, y la otra será la zona de trabajo, donde se

muestran los datos obtenidos por el OCR, se da la posibilidad de modificar datos por si

hay erratas, y se da la opción de guardar la factura en formato digital.

Page 92: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

70

Si analizamos con más detalle cada una de las zonas observamos que en la zona de la

previsualización de la factura también hay más elementos.

Figura 32: Zona de previsualización de la factura

En la zona donde se encuentra el 1 observamos un mensaje de bienvenida, en esa zona

se previsualizarán las facturas más adelante y ahí se seleccionarán las zonas

importantes de la factura (Esqueleto).

En la zona marcada con el 2 observamos una zona de texto, en ella se muestran los

mensajes de progreso de la aplicación, así como las acciones llevadas a cabo por el

usuario.

En la parte superior de la imagen se encuentra el 3. En la zona 3 está el panel de

creación de esqueletos, por medio del cual podremos seleccionar las zonas

importantes de la imagen.

Page 93: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

71

Seguimos analizando elementos y observamos que la zona de procesamiento de los

datos también tiene varios elementos.

Figura 33: Zona de proceso

La zona marcada con el número 1 es la zona más importante del sistema, contiene la

funcionalidad del sistema resumida en cuatro botones, de ésta manera se simplifica la

forma de uso del sistema.

La zona marcada con el 2 contiene los datos básicos que se van a procesar de la

factura, serán editables cuando estemos corrigiendo posibles errores de

procesamiento.

La zona 3 es la de comentarios de la factura, en esta zona se podrá añadir todo tipo de

notas para futuros procesamientos o para aclarar cuestiones relacionadas con la

factura.

Page 94: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

72

Page 95: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

73

Carga de una factura

La carga de facturas en el sistema es el primer paso para el procesamiento de la

factura.

Pinchamos en el botón “Seleccionar Factura”

Y aparece un cuadro de diálogo por medio del cual cargamos la factura.

Figura 34: Cuadro de diálogo para la selección de la factura

Page 96: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

74

Una vez seleccionada la factura pinchamos en abrir y la factura, si tiene un formato

válido, se cargará en el sistema y aparecerá en la zona de previsualización.

Figura 35: Factura en la zona de previsualización

Page 97: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

75

Sección de Creación de un Esqueleto

Automáticamente después de cargar la factura, el sistema muestra otro cuadro de

diálogo preguntando si la factura pertenece a un proveedor que aún no tiene un

esqueleto asignado o si pertenece a uno con el que ya se ha trabajado antes.

Figura 36: Cuadro de diálogo para entrar en la creación de un esqueleto

En caso de seleccionar la opción “Sí”, entraremos en la sección de creación de

esqueletos.

Page 98: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

76

Figura 37: Sección de creación de un esqueleto

Cuando entramos en la creación de esqueletos, automáticamente se activan los

botones que están en el panel de creación de un esqueleto.

Un esqueleto va a constar de 7 partes o zonas importantes, Número de Factura, Fecha,

Receptor, CIF/NIF, Base, Impuesto y Total.

Page 99: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

77

Para poder seleccionar cada una de estas áreas, se selecciona el área a definir en el

combobox de áreas.

Figura 38: Campos clave de la factura

Acto seguido se sitúa el cursor en la zona que se desea seleccionar y se pincha y

arrastra.

Figura 39: Selección de una zona importante en la factura

La zona seleccionada aparecerá en rojo, en caso de estar seguro de que esa es la zona

que se quería seleccionar, se pincha en guardar para guardar esa porción del

esqueleto.

Es muy importante que se seleccione con precisión el área importante, debido a que

en futuros procesamientos, la tasa de aciertos dependerá de lo preciso que sea el

esqueleto de esa factura.

Page 100: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

78

Tras repetir éste paso con los 7 elementos importantes de la factura, se debe

introducir un nombre para ese proveedor.

Una vez introducido el nombre, se pincha en “Finalizar” para guardar el esqueleto en

base de datos. Una vez finalizada la creación del esqueleto, se activa la opción de pasar

el OCR.

Figura 40: Botón de pasar OCR activado

Page 101: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

79

OCR

A la zona de procesamiento por medio de OCR se puede llegar de dos formas, o bien

cargando una factura y creando su esqueleto o bien cargando una factura y

seleccionando un esqueleto ya existente de un proveedor ya existente.

Figura 41: Cuadro de diálogo para la creación de un esqueleto

Cuando cargamos la factura, si seleccionamos la opción “No”, podremos acceder a la

sección de procesamiento OCR eligiendo el emisor de la factura, (proveedor), de la

base de datos de proveedores.

Figura 42: Selección del emisor de la factura

Page 102: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

80

Una vez seleccionado el proveedor, el sistema automáticamente carga el esqueleto

asociado a ese proveedor y muestra las zonas importantes en la imagen de la factura a

procesar.

Figura 43: Esqueleto del emisor seleccionado

En este momento el sistema ya está capacitado para pasar el OCR, con lo cual

pinchamos en el botón “Pasar OCR”.

Page 103: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

81

Tras esperar unos segundos a que el OCR procese la factura, se nos muestran los

resultados en la zona de recuperación de datos y se habilita el botón de corrección de

datos.

Figura 44: Datos devueltos por el OCR

Page 104: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

82

Page 105: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

83

Corrección de Datos

En caso de que en OCR no acierte, hay una opción que se habilita tras pasar el OCR, la

de corregir los datos.

Tras pasar el OCR pinchamos en el botón “Corregir Datos”

Tras seleccionar corregir datos, la aplicación permite que se editen los datos

recuperados por el OCR y habilita el botón de “Guardar”.

Figura 45: Datos en disposición de ser modificados

En caso de ser necesaria la corrección de datos basta con situarse en la caja de texto

del dato erróneo y modificarlo. También se pueden añadir comentarios.

Page 106: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

84

Figura 46: Datos corregidos y listos para ser guardados

Page 107: SISTEMA INTELIGENTE DE INTERPRETACIÓN DE FACTURAS · institucional de la Universidad y hacer posible su utilización de forma libre y gratuita ( ... accesible de modo restringido,

85

Guardar en memoria la factura

Una vez que hemos corregido los datos y hemos añadido los comentarios, podemos

guardar la factura en formato digital en memoria. Para ello pincharemos en el botón

“Guardar”, que guardará los datos de esa factura en base de datos.

Como durante todo el proceso, las acciones llevadas a cabo por el usuario quedarán

reflejadas en la zona de mensajes de la aplicación.

Figura 47: Área de mensajes de la aplicación mostrando información del guardado en base de

datos