pablo patricio bogarín - textscan final

21
PROYECTO DE INNOVACENTRAL TEXTSCAN La Manera más fácil y rápida de copiar un documento INTEGRANTES Luis Gabriel Ortiz Meaurio Derlis Florentín Pavón Alonso José Iván Sanabria Espínola ORIENTADORA Prof. Ing. De Los Ángeles Núñez Colegio Nacional Pablo Patricio Bogarin Dirección :Adm. Educ. Lic. Tomas Olmedo

Upload: ivan

Post on 01-Feb-2016

220 views

Category:

Documents


0 download

DESCRIPTION

entretenimiento

TRANSCRIPT

Page 1: Pablo Patricio Bogarín - TEXTSCAN Final

PROYECTO DE INNOVACENTRAL

TEXTSCANLa Manera más fácil y rápida de copiar un documento

INTEGRANTES➢ Luis Gabriel Ortiz Meaurio

➢ Derlis Florentín Pavón Alonso➢ José Iván Sanabria Espínola

ORIENTADORA

Prof. Ing. De Los Ángeles Núñez

Colegio Nacional Pablo Patricio Bogarin

Dirección :Adm. Educ. Lic. Tomas Olmedo

Año 2015

Page 2: Pablo Patricio Bogarín - TEXTSCAN Final

Índice

Resumen ………………………………………………………………………………2

Introducción……………………………………………………………………………3

Justificación del Problema……………………………………………………………3

Objetivos General y Específicos……………………………………………………..3

Hipótesis………………………………………………………………………………..3

Marco Teórico………………………………………………………………………….4

Metodología y Desarrollo……………………………………………………………..10

Resultados……………………………………………………………………………..11

Conclusión……………………………………………………………………………..12

Referencias y Bibliografía consultadas……………………………………………..13

Anexos………………………………………………………………………………….14

1

Page 3: Pablo Patricio Bogarín - TEXTSCAN Final

Resumen

Textscan será una app que permitirá el copiado y pegado de textos que quisiéramos

obtener de forma más fácil y sencilla en nuestros celulares inteligentes, esto se

logrará gracias a la tecnología OCR (Optical Character Recognition) que

básicamente en español significa el reconocimiento óptico de caracteres, es decir,

es el procedimiento que permite la digitalización de un texto a partir de un escaneo.

¿Cómo utilizaremos ésta tecnología para esta app? Es sencillo, utilizaremos la

aplicación TEXTSCAN para que la cámara del Smartphone funcione como el

escáner.

Para el desarrollo de la app implementaremos lenguajes de programación como

python, que se encuentra a nivel de generar compiladores, el mismo simplifica y

agiliza la programación, también es flexible y cuando escribes programas en Python

nunca debes preocuparte por detalles de bajo nivel, como manejar la memoria

empleada por tu programa.

El framework que posiblemente utilizaremos para esta app es el IONIC, un

framework gratuito de Open Source (Código Abierto) con base Apache Cordova,

construido con Sass y optimizado con Angular JS, estos tres últimos también son

frameworks para el desarrollo de aplicaciones móviles que utilizan las herramientas

web genéricas como Javascript, HTML5 y CSS, todos de código abierto.

El objetivo de IONIC es ejercer un modelo-vista-controlador (MVC) un patrón de

arquitectura de software que separa los datos y la lógica de negocio de una

aplicación de la interfaz de usuario y el módulo encargado de gestionar eventos y

comunicaciones. Entre las principales características de este framework, es la

inclusión de una interfaz de línea de comando, ya que podrás crear y compilar en

cualquier plataforma ya sea Android, iOS o Windows Phone.

2

Page 4: Pablo Patricio Bogarín - TEXTSCAN Final

Introducción

En la actualidad la tecnología avanza día a día, pero nosotros no la sabemos utilizar

o la utilizamos para actividades poco provechosas, entonces hoy se ha decidido

utilizar la tecnología para la educación y el más fácil acceso a las informaciones o

contenidos sujetos a una revista, documento o cualquier otra fuente de textos de

interés personal.

Justificación del Problema

Debido a los procesos numerosos que se necesitan para transportar o copiar un

documento utilizando una notebook o copiando los archivos en un pen drive, se

decidió agilizar ese mismo proceso utilizando solo un Smartphone.

De esta manera los interesados ya tendrán el texto deseado de manera que puedan

llevar y leer en el lugar y el tiempo que deseen, es decir, esta app te simplifica la

vida y te ahorra tiempo, ya que no tendrás que copiar palabra por palabra la

información, ni tampoco tendrás que usar una gran computadora para leerlo o

editarlo después, con esta app poseerás todo a mano, todo en tu Smartphone

Objetivo General

Desarrollar TEXTSCAN, una aplicación móvil que básicamente escanea el texto por

medio del enfoque de la cámara del Smartphone sobre la información deseada y la

aplicación se encarga de reconocer los caracteres y guarda el texto escaneado en

un documento de tipo .txt (archivo de texto simple).

Objetivos Específicos

Identificar los requerimientos de una aplicación Móvil

Implementar la aplicación móvil

Realizar pruebas de sistema pertinentes, una vez finalizado el desarrollo.

Hipótesis

Los estudiantes y/o empresarios que reciben una labor específica de copiar un

documento en un corto tiempo, tienen la dificultad de transcribir de manera exacta.

Para los que posean TEXTSCAN esto no será ningún inconveniente.

3

Page 5: Pablo Patricio Bogarín - TEXTSCAN Final

Marco Teórico

¿Qué es el OCR?

El OCR (Optical Character Recognition) es una tecnología que trata de emular la

capacidad del ojo humano para reconocer objetos. Concretamente es un software

que permite el reconocimiento óptico de los caracteres contenidos en una imagen

(documento escaneado o fotografía), de forma que estos se vuelven comprensibles

o reconocibles para un ordenador, obteniendo como resultado final un archivo en un

formato de texto editable. El formato del archivo de salida (txt, pdf, etc.) dependerá

de las posibilidades que ofrezca el software. ¿Cómo funciona el OCR? Para

reconocer los caracteres, el software inspecciona la imagen pixel a pixel, buscando

formas que coincidan con los rasgos de los caracteres. En función del nivel de

complejidad o grado de desarrollo del software, éste buscará coincidencias con los

caracteres y fuentes disponibles en el programa, o tratará de identificar los

caracteres a través del análisis de sus características, de forma que el

reconocimiento de los mismos no se limite exclusivamente a un determinado número

de fuentes. El OCR puede analizar los elementos del documento (bloques de texto,

imágenes, tablas…), examinando los espacios en blanco y descomponiendo el texto

en líneas, palabras y caracteres, de forma que el programa puede formular distintas

hipótesis y cotejarlas con los diccionarios contenidos por el mismo (actualmente los

programas contienen diccionarios en distintos idiomas), para formar palabras y

textos completos. Aunque actualmente el OCR puede llegar a mantener la estructura

de los documentos originales en el archivo de salida, e incluso reconocer caracteres

contenidos en documentos manuscritos, diagramas, partituras, etc., no hay que

olvidar que su nivel de efectividad sigue siendo limitado, lo que hace necesaria una

posterior revisión y corrección manual del texto generado. Actualmente existe en el

mercado una amplia oferta de software OCR, cuyo nivel de sofisticación y precio

está directamente relacionado con su precisión y efectividad en el reconocimiento de

caracteres.

4

Page 6: Pablo Patricio Bogarín - TEXTSCAN Final

¿Para qué se utiliza el OCR?

El OCR es una tecnología transversal, aplicable en distintos ámbitos y sectores para

la digitalización de formularios, documentos administrativos, informes, etc., ya que

las ventajas que ofrece son comunes para todos ellos. En el sector de la cultura, por

ejemplo en el ámbito de la preservación del patrimonio, el OCR se aplica

principalmente en los procesos de digitalización de documentos históricos, en

soporte papel o micro formas.

¿Qué es Python?

Python es un lenguaje de programación creado por Guido van Rossum a principios

de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses

“MontyPython”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que

favorece un código legible. Se trata de un lenguaje interpretado o de script, con

tipado dinámico, fuertemente tipado, multiplataforma y orientado a objetos.

Lenguaje interpretado o de script

Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa

intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina

que pueda comprender y ejecutar directamente una computadora (lenguajes

compilados). La ventaja de los lenguajes compilados es que su ejecución es más

rápida. Sin embargo los lenguajes interpretados son más flexibles y más portables.

Python tiene, no obstante, muchas de las características de los lenguajes

compilados, por lo que se podría decir que es semi interpretado.

En Python, como en Java y muchos otros lenguajes, el código fuente se traduce a

un pseudo código máquina intermedio llamado bytecode la primera vez que se

ejecuta, generando archivos .pyc o .pyo (bytecode optimizado), que son los que se

ejecutarán en sucesivas ocasiones.

5

Page 7: Pablo Patricio Bogarín - TEXTSCAN Final

Tipado dinámico

La característica de tipado dinámico se refiere a que no es necesario declarar el tipo

de dato que va a contener una determinada variable, Introducción 7 sino que su tipo

se determinará en tiempo de ejecución según el tipo del valor al que se asigne, y el

tipo de esta variable puede cambiar si se le asigna un valor de otro tipo.

Fuertemente tipado

No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es

necesario convertir de forma explícita dicha variable al nuevo tipo previamente. Por

ejemplo, si tenemos una variable que contiene un texto (variable de tipo cadena o

string) no podremos tratarla como un número (sumar la cadena “9” y el número 8).

En otros lenguajes el tipo de la variable cambiaría para adaptarse al comportamiento

esperado, aunque esto es más propenso a errores.

Multiplataforma

El intérprete de Python está disponible en multitud de plataformas (UNIX, Solaris,

Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos librerías

específicas de cada plataforma nuestro programa podrá correr en todos estos

sistemas sin grandes cambios.

Orientado a objetos

La orientación a objetos es un paradigma de programación en el que los conceptos

del mundo real relevantes para nuestro problema se trasladan a clases y objetos en

nuestro programa. La ejecución del programa consiste en una serie de interacciones

entre los objetos. Python también permite la programación imperativa, programación

funcional y programación orientada a aspectos.

6

Page 8: Pablo Patricio Bogarín - TEXTSCAN Final

¿Por qué Python?

Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple, clara

y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de librerías

disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una

aplicación en Python sea sencillo, muy rápido y, lo que es más importante, divertido.

La sintaxis de Python es tan sencilla y cercana al lenguaje natural que Python para

todos 8 los programas elaborados en Python parecen pseudocódigo. Por este

motivo se trata además de uno de los mejores lenguajes para comenzar a

programar. Python no es adecuado sin embargo para la programación de bajo nivel

o para aplicaciones en las que el rendimiento sea crítico. Algunos casos de éxito en

el uso de Python son Google, Yahoo, la NASA, Industrias Ligh&Magic, y todas las

distribuciones Linux, en las que Python cada vez representa un tanto por ciento

mayor de los programas disponible.

IONIC

Lo primero que me gustaría explicar, y de forma escueta, es qué es un MVC y de

qué se compone:

El MVC

El MVC (Model-View-Controller o Modelo-Vista-Controlador), es un patrón de diseño

que separa los datos, la lógica y las interfaces de usuario. Como su nombre indica,

está separado en tres componentes: Modelo, Vista y Controlador. Está basado en la

ideología de separación de conceptos y cumple perfectamente con los objetivos de

los patrones de diseño.

1.-Modelo

Es la capa encargada de los datos, es decir, la que se encarga de hacer peticiones a

las bases de datos para enviar o recibir información. Estas bases de datos pueden

estar alojadas de forma local en nuestra app o de forma remota en un servidor

externo.

7

Page 9: Pablo Patricio Bogarín - TEXTSCAN Final

2.-Vista

Se trata del código que nos permitirá presentar los datos que el modelo nos

proporciona, como ejemplo podríamos decir que en una aplicación es el código

HTML que nos permite mostrar la salida de los datos procesados.

3.-Controlador

Es la capa que sirve de enlace entre la vista y el modelo. Envía comandos al modelo

para actualizar su estado, y a la vista correspondiente para cambiar su presentación.

En el caso MVVM (Modelo Vista VistaModelo) la iteracción entre la vista y el

controlador será en los dos sentidos, el controlador muestra los datos en la vista y si

en la vista hay un cambio de datos, se actualiza el modelo automáticamente.

El frameworkIonic

IONIC es una herramienta, gratuita y open source, para el desarrollo de aplicaciones

híbridas basadas en HTML5, CSS y JS. Está construido con Sass y optimizado con

Angular JS .El objetivo de IONIC es ejercer un modelo vista-controlador (MVC),

un patrón basado en la ideología de separación de conceptos, que separa los datos,

la lógica y las interfaces de usuario.

Principales características

Alto rendimiento

La velocidad es importante. Tan importante que sólo se nota cuando no está en tu

app. Ionic está construido para ser rápido gracias a la mínima manipulación del

DOM, con cero jQuery y con aceleraciones de transiciones por hardware.

AngularJS&Ionic

Ionic utiliza AngularJS con el fin de crear un marco más adecuado para desarrollar

aplicaciones ricas y robustas. Ionic no sólo se ve bien, sino que su arquitectura

central es robusta y seria para el desarrollo de aplicaciones. Trabaja perfectamente

con AngularJS.

8

Page 10: Pablo Patricio Bogarín - TEXTSCAN Final

Centro nativo

Ionic se inspira en las SDK de desarrollo móviles nativos más populares, por lo que

es fácil de entender para cualquier persona que ha construido una aplicación nativa

para iOS o Android. Lo interesante, como sabéis, es que desarrollas una vez, y

compilas para varios.

Bonito diseño

Limpio, sencillo y funcional. Ionic ha sido diseñado para poder trabajar con todos

losdispositivos móviles actuales. Con muchos componentes usados en móviles,

tipografía, elementos interactivos, etc.

Un potente CLI

Con un sólo comando podrás crear, construir, probar y compilar tus aplicaciones en

cualquier plataforma.

Entre las principales características de IONIC, es la inclusión de una  interfaz de

línea de comando, ya que podrás crear y compilar tus aplicaciones en cualquier

plataforma. También tiene un alto rendimiento, a causa de una mínima manipulación

del DOM(estructura de objetos que genera el navegador cuando se carga un

documento), aceleraciones de transiciones y no trabaja con JQuery.

Unos de los rasgos más importantes y que caracterizan a IONIC es su diseño, ya

que es muy sencillo de manejar, funcional, limpio (característica muy importante

para los desarrolladores) y sobre todo optimizado para trabajar en casi todos los

dispositivos móviles actuales. Una funcionalidad que ha sido incluida hace poco es

la opción de poder desarrollar con el diseño de la interfaz Material Design, incluido

en el tan aclamado o no, versión de AndroidLollipop 5.0.

9

Page 11: Pablo Patricio Bogarín - TEXTSCAN Final

METODOLOGÍA Y DESARROLLO

Este proyecto se inicióel 9 de julio del 2015 para un taller sobre el concurso de

innovaciones tecnológicas que tendrá fin el 21 de septiembre del corriente.

Se realizó el trabajo de investigación, recolección de datos en los laboratorios de

informática del Colegio Nacional Pablo Patricio Bogarin en conjunto con los

profesores de informática.

Los instrumentos utilizados fueron cuaderno, bolígrafo, computadora, pen drive y

conexión a internet.

En la primera etapa se realizó la fundamentación del proyecto, los objetivos general

y específicos.

En la segunda fase del proyecto se investigó sobre la tecnología OCR, y luego

investigar sobre los lenguajes de programación para aplicaciones móviles.

En la tercera etapa del proyecto se decidió cuales serian las alternativas más

apropiadas para realizar la aplicación móvil.

En la cuarta y última fase que será el año entrante se realizará el desarrollo de la

aplicación.

Las técnicas aplicadas fueron lluvia de ideas y la recolección de datos.

10

Page 12: Pablo Patricio Bogarín - TEXTSCAN Final

RESULTADOS

Para la implementación de este proyecto de innovación tecnológica utilizaremos las

ideas posibles para solucionar los problemas de la actualidad, se ha decido

contribuir a la educación con el desarrollo de una app, basándose en las

herramientas de programación como python que es lenguaje interpretado o de script,

con tipado dinámico, fuertemente tipado, multiplataforma y orientado a objetos, el

frameworkionic, es un patrón de diseño que separa los datos, la lógica y las

interfaces de usuario. Para utilizar estas herramientas se ha tenido que averiguar e

interiorizarse de cada una de ellas para su correcta utilización.

El diseño de TEXTSCAN básicamente es la de contar con una interfaz muy intuitiva

y fácil de manejar, además de varias características, las funciones de entrada de

texto, la herramienta borrar y la de marcar, nos permitirán editar y modificar los

documentos para hacer todos los cambios y mejoras que consideremos oportunos.

Además ofreceremos la posibilidad de convertir los documentos a formato PDF y la

opción de poder compartir los documentos por correo electrónico.

Se ha tenido un tiempo de aproximadamente 50 días para la recolección de datos,

informaciones y soluciones, la forma en que se adquirió los conocimientos fue la

más conocida como la autodidacta utilizando la internet y también consultando con

amigos programadores y profesores del área.

No existe un amplio conocimiento en desarrollo de aplicaciones móviles en nuestro

sector académico, lo que genera una necesidad de una mayor investigación y un

grado de dificultad en este tipo de investigaciones.

11

Page 13: Pablo Patricio Bogarín - TEXTSCAN Final

CONCLUSIÓN

Se logrará la realización de una aplicación móvil que pueda escanear texto desde la

cámara para convertirlo en extensión .txt, siempre que podamos cumplir con la

siguiente condición, para convertir un documento escaneado en uno editable el

documento tendrá que estar en cualquiera de los formatos soportados (.jpg, .png, .gif

o PDF). Para escanearlo solo necesitaremos fotografiar con la cámara y,

preferiblemente, aumentar el contraste con alguna aplicación de edición de

fotografía.

Una vez escaneado y optimizado el documento, tendremos que  convertir el texto de

la imagen en editable utilizando la aplicación móvil. Cuando hayamos hecho esto ya

podremos subir el documento, el cual se habrá convertido a editable siempre y

cuando el contraste del texto y el fondo de la hoja contribuyan para que la aplicación

detecte los caracteres (letras), sabemos las limitaciones de una cámara, jamás

podríamos obtener los resultados como los que obtenemos con el ojo humano.

12

Page 15: Pablo Patricio Bogarín - TEXTSCAN Final

ANEXOS

14