Pablo Patricio Bogarín - TEXTSCAN Final
Pablo Patricio Bogarín - TEXTSCAN Final
Pablo Patricio Bogarín - TEXTSCAN Final
TEXTSCAN
La Manera ms fcil y rpida de copiar un documento
INTEGRANTES
Luis Gabriel Ortiz Meaurio
Derlis Florentn Pavn Alonso
Jos Ivn Sanabria Espnola
ORIENTADORA
Prof. Ing. De Los ngeles Nez
Ao 2015
ndice
Resumen 2
Introduccin3
Justificacin del Problema3
Objetivos General y Especficos..3
Hiptesis..3
Marco Terico.4
Metodologa y Desarrollo..10
Resultados..11
Conclusin..12
Referencias y Bibliografa consultadas..13
Anexos.14
Resumen
Textscan ser una app que permitir el copiado y pegado de textos que quisiramos
obtener de forma ms fcil y sencilla en nuestros celulares inteligentes, esto se
lograr gracias a la tecnologa OCR (Optical Character Recognition) que
bsicamente en espaol significa el reconocimiento ptico de caracteres, es decir, es
el procedimiento que permite la digitalizacin de un texto a partir de un escaneo.
Cmo utilizaremos sta tecnologa para esta app? Es sencillo, utilizaremos la
aplicacin TEXTSCAN para que la cmara del Smartphone funcione como el
escner.
Para el desarrollo de la app implementaremos lenguajes de programacin como
python, que se encuentra a nivel de generar compiladores, el mismo simplifica y
agiliza la programacin, tambin 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 (Cdigo Abierto) con base Apache Cordova,
construido con Sass y optimizado con Angular JS, estos tres ltimos tambin son
frameworks para el desarrollo de aplicaciones mviles que utilizan las herramientas
web genricas como Javascript, HTML5 y CSS, todos de cdigo abierto.
El objetivo de IONIC es ejercer un modelo-vista-controlador (MVC) un patrn de
arquitectura de software que separa los datos y la lgica de negocio de una
aplicacin de la interfaz de usuario y el mdulo encargado de gestionar eventos y
comunicaciones. Entre las principales caractersticas de este framework, es la
inclusin de una interfaz de lnea de comando, ya que podrs crear y compilar en
cualquier plataforma ya sea Android, iOS o Windows Phone.
Introduccin
En la actualidad la tecnologa avanza da a da, pero nosotros no la sabemos utilizar
o la utilizamos para actividades poco provechosas, entonces hoy se ha decidido
utilizar la tecnologa para la educacin y el ms fcil acceso a las informaciones o
contenidos sujetos a una revista, documento o cualquier otra fuente de textos de
inters personal.
Objetivo General
Desarrollar TEXTSCAN, una aplicacin mvil que bsicamente escanea el texto por
medio del enfoque de la cmara del Smartphone sobre la informacin deseada y la
aplicacin se encarga de reconocer los caracteres y guarda el texto escaneado en
un documento de tipo .txt (archivo de texto simple).
Objetivos Especficos
Identificar los requerimientos de una aplicacin Mvil
Implementar la aplicacin mvil
Realizar pruebas de sistema pertinentes, una vez finalizado el desarrollo.
Hiptesis
Los estudiantes y/o empresarios que reciben una labor especfica de copiar un
documento en un corto tiempo, tienen la dificultad de transcribir de manera exacta.
Para los que posean TEXTSCAN esto no ser ningn inconveniente.
Marco Terico
3
Qu es el OCR?
El OCR (Optical Character Recognition) es una tecnologa 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 fotografa), 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. Cmo 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 funcin 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 travs del anlisis de sus caractersticas, de forma que el
reconocimiento de los mismos no se limite exclusivamente a un determinado nmero
de fuentes. El OCR puede analizar los elementos del documento (bloques de texto,
imgenes, tablas), examinando los espacios en blanco y descomponiendo el texto
en lneas, palabras y caracteres, de forma que el programa puede formular distintas
hiptesis 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 revisin y correccin manual del texto generado. Actualmente existe en el
mercado una amplia oferta de software OCR, cuyo nivel de sofisticacin y precio
est directamente relacionado con su precisin y efectividad en el reconocimiento de
caracteres.
Qu es Python?
Python es un lenguaje de programacin creado por Guido van Rossum a principios
de los aos 90 cuyo nombre est inspirado en el grupo de cmicos ingleses
MontyPython. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que
favorece un cdigo legible. Se trata de un lenguaje interpretado o de script, con
tipado dinmico, fuertemente tipado, multiplataforma y orientado a objetos.
Tipado dinmico
5
Fuertemente tipado
No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es
necesario convertir de forma explcita 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 nmero (sumar la cadena 9 y el nmero 8).
En otros lenguajes el tipo de la variable cambiara para adaptarse al comportamiento
esperado, aunque esto es ms propenso a errores.
Multiplataforma
El intrprete de Python est disponible en multitud de plataformas (UNIX, Solaris,
Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos libreras
especficas de cada plataforma nuestro programa podr correr en todos estos
sistemas sin grandes cambios.
Orientado a objetos
La orientacin a objetos es un paradigma de programacin en el que los conceptos
del mundo real relevantes para nuestro problema se trasladan a clases y objetos en
nuestro programa. La ejecucin del programa consiste en una serie de interacciones
entre los objetos. Python tambin permite la programacin imperativa, programacin
funcional y programacin orientada a aspectos.
Por qu Python?
Python es un lenguaje que todo el mundo debera conocer. Su sintaxis simple, clara
y sencilla; el tipado dinmico, el gestor de memoria, la gran cantidad de libreras
disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una
aplicacin en Python sea sencillo, muy rpido y, lo que es ms 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 pseudocdigo. Por este
motivo se trata adems de uno de los mejores lenguajes para comenzar a
programar. Python no es adecuado sin embargo para la programacin de bajo nivel
o para aplicaciones en las que el rendimiento sea crtico. 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 gustara 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 patrn de diseo
que separa los datos, la lgica y las interfaces de usuario. Como su nombre indica,
est separado en tres componentes: Modelo, Vista y Controlador. Est basado en la
ideologa de separacin de conceptos y cumple perfectamente con los objetivos de
los patrones de diseo.
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 informacin. Estas bases de datos pueden
estar alojadas de forma local en nuestra app o de forma remota en un servidor
externo.
2.-Vista
Se trata del cdigo que nos permitir presentar los datos que el modelo nos
El frameworkIonic
IONIC es una herramienta, gratuita y open source, para el desarrollo de aplicaciones
hbridas 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 patrn basado en la ideologa de separacin de conceptos, que separa los datos,
la lgica y las interfaces de usuario.
Principales caractersticas
Alto rendimiento
Centro nativo
Ionic se inspira en las SDK de desarrollo mviles nativos ms populares, por lo que
es fcil de entender para cualquier persona que ha construido una aplicacin nativa
para iOS o Android. Lo interesante, como sabis, es que desarrollas una vez, y
compilas para varios.
Bonito diseo
Limpio, sencillo y funcional. Ionic ha sido diseado para poder trabajar con todos
losdispositivos mviles actuales. Con muchos componentes usados en mviles,
tipografa, elementos interactivos, etc.
Un potente CLI
Con un slo comando podrs crear, construir, probar y compilar tus aplicaciones en
cualquier plataforma.
Entre las principales caractersticas de IONIC, es la inclusin de una interfaz de
lnea de comando, ya que podrs crear y compilar tus aplicaciones en cualquier
plataforma. Tambin tiene un alto rendimiento, a causa de una mnima manipulacin
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 ms importantes y que caracterizan a IONIC es su diseo, ya
que es muy sencillo de manejar, funcional, limpio (caracterstica muy importante para
los desarrolladores) y sobre todo optimizado para trabajar en casi todos los
dispositivos mviles actuales. Una funcionalidad que ha sido incluida hace poco es
la opcin de poder desarrollar con el diseo de la interfaz Material Design, incluido
en el tan aclamado o no, versin de AndroidLollipop 5.0.
METODOLOGA Y DESARROLLO
Este proyecto se iniciel 9 de julio del 2015 para un taller sobre el concurso de
innovaciones tecnolgicas que tendr fin el 21 de septiembre del corriente.
Se realiz el trabajo de investigacin, recoleccin de datos en los laboratorios de
informtica del Colegio Nacional Pablo Patricio Bogarin en conjunto con los
profesores de informtica.
Los instrumentos utilizados fueron cuaderno, bolgrafo, computadora, pen drive y
conexin a internet.
En la primera etapa se realiz la fundamentacin del proyecto, los objetivos general
y especficos.
En la segunda fase del proyecto se investig sobre la tecnologa OCR, y luego
investigar sobre los lenguajes de programacin para aplicaciones mviles.
En la tercera etapa del
10
RESULTADOS
Para la implementacin de este proyecto de innovacin tecnolgica utilizaremos las
ideas posibles para solucionar los problemas de la actualidad,
se ha decido
CONCLUSIN
11
Se lograr la realizacin de una aplicacin mvil que pueda escanear texto desde la
cmara para convertirlo en extensin .txt, siempre que podamos cumplir con la
siguiente condicin, 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 cmara y,
preferiblemente, aumentar el contraste con alguna aplicacin de edicin de
fotografa.
Una vez escaneado y optimizado el documento, tendremos que convertir el texto de
la imagen en editable utilizando la aplicacin mvil. 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 aplicacin
detecte los caracteres (letras), sabemos las limitaciones de una cmara, jams
podramos obtener los resultados como los que obtenemos con el ojo humano.
http://www.phonegapspain.com/que-es-y-como-empezar-con-ionic-framework/
12
http://www.ticarte.com/tags/ionic
www.ceibal.edu.uy/contenidos/areas.../aportes/ python_para_todos.pdf
www.kultura.ejgv.euskadi.eus/r46-19123/es/.../pildora- OCR-2.pdf
http://dev.laptop.org/~edsiper/byteofpython_spanish/ch01s02.html
ANEXOS
13
14