Seleccionar página

[:es]

Qué es el reconocimiento óptico de caracteres

OCR son las siglas de Optical Character Recognition, y consiste en un procedimiento que permite extraer el texto de una imagen. En éste tutorial te damos la posibilidad de que tu app desarrollada en Android  Studio pueda “leer” imágenes, algo similiar a lo que hacen los escáneres.

Tesseract: La herramienta más potente

Tesseract es un motor de Reconocimiento Óptico de Caracteres (OCR) programado en C++ y actualmente mantenido por Google. Combinado con Leptónica, es posiblemente es uno de los más precisos que hay actualmente. No tiene una interfaz de usuario, lo añadiremos a nuestro proyecto Android Studio y trabajaremos con él como si de una API se tratase. Añadir Tesseract a nuestro proyecto puede ser algo costoso para algunos usuarios, por lo que con este tutorial pretendemos hacerlo lo más simple posible.

Software que necesitamos

Antes de empezar el proceso, debemos tener instalado en nuestro PC, en su última versión, lo siguiente:

Probablemente ya tenías instalado todo lo anterior, excepto el NDK. El Android NDK nos permite reutilizar código escrito en C++ a través de JNI(Java Native Interface) y hace que la ejecución sea en el procesador y no en la máquina virtual, lo que ahorra tiempo de ejecución.

También necesitaremos éste proyecto. Descárgalo y extráelo donde quieras. En él tenemos Tesseract y Leptónica.

Comienzo de la instalación

Paso 1: Ya que tenemos todo el material, ahora es cuando nos toca mojarnos. Lo primero que tenemos que hacer es compilar el NDK, un proceso muy parecido tanto como si usamos Windows o Linux.

Si usamos Windows:

Tenemos que añadir las siguientes variables de entorno:

JAVA_HOME = C:\Program Files (x86)\Java\jdk.8.0_60 (ruta del JDK)
NDK_PROJECT_PATH = C:\Users\USUARIO\Desktop\tess-two-master\tess-two (ruta del directorio tess-two que está dentro del proyecto que nos hemos descargado)

Ahora abriremos la línea de comandos, nos situaremos dentro de la carpeta del NDK (C:\android-ndk-r10e) y escribiremos: ndk-build.cmd

Si la variable de entorno NDK_PROJECT_PATH está correctamente declarada, empezará a compilarse (tarea que puede llevar entre 10 minutos hasta media hora o incluso más, en el peor de los casos).

Si usamos Linux:

En este caso será más simple, solo debemos situarnos con la línea de comandos en el directorio tess-two DENTRO del proyecto que nos hemos descargado, e introducir el comando: ndk-build.

Paso 2: Ya con el NDK compilado, vamos a crear un nuevo proyecto de Android Studio de prueba. No necesitaremos añadirle ninguna funcionalidad, éste será el último paso, cuando ya tengamos Tesseract correctamente integrado en nuestro proyecto.

Abriremos con el explorador de archivos nuestro nuevo proyecto y crearemos un subdirectorio dentro de él llamado libraries. Por ejemplo si nuestro proyecto se llama HolaMundo, debemos crear HolaMundo/libraries y copiar en él la carpeta tess-two de la que ya hemos hablado anteriormente.

Paso 3: Tenemos que modificar el archivo HolaMundo/libraries/tess-two/build.gradle. Borramos todo su contenido y lo modificamos por:

Configuración gradle Tesseract

Deberás modificar el classpath y algunas otras líneas si alguna de tus versiones es distinta. Para saber tu versión, abre el gradle de tu proyecto y consúltala ahí.

Paso 4: Estamos muy cerca, ya tenemos Tesseract en nuestro proyecto, ahora tenemos que indicárselo al gradle. Para ello, hay que modificar el settings.gradle de NUESTRO proyecto. Insistimos: HolaMundo/settings.gradle. No debemos confundir el gradle de nuestro proyecto con el del tess-two.

Lo abrimos y añadimos la siguiente línea:

Configuración gradle Tesseract 2

Paso 5: ¡Ya tenemos Tesseract en nuestro proyecto! Ahora sólo queda añadirle un idioma, y para ello vamos a descargar un proyecto ya creado que usa Tesseract llamado Simple-Android-OCR.

Primero en el nuestro vamos a crear un directorio assets en nuestra carpeta res. Una vez hecho esto vamos al directorio assets de la aplicación que nos acabamos de descargar y copiamos la carpeta tessdata, que contiene el archivo de idioma inglés, a nuestro directorio assets. ¡Ya tenemos Tesseract instalado completamente! Compila el proyecto y comprueba que no haya ningún error.

Vamos a sustituir el contenido de nuestro main por el de SimpleAndroidOCRActivity.java del proyecto que nos acabamos de descargar. También necesitaremos su archivo strings.xml y su layout.

Importante: No olvides añadir en el Manifest.xml los permisos para usar la cámara.

¡Ejecuta la aplicación y quédate asombrado con el potencial de Tesseract y el Reconocimiento óptico de caracteres (OCR)!

Si te gustaría que hiciésemos otro tutorial sobre como utilizarlo una vez instalado en Android Studio, háznoslo saber en los comentarios

[:]

×
Hola!! Bienvenido 2stapps.com

¿En qué podemos ayudarte?

Pin It on Pinterest