Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Integración de Form Recognizer en una Aplicación Flutter

El procesamiento de datos y documentos en formato físico, también conocido como OCR, ha experimentado un crecimiento sorprendente. La tarea tediosa (y propensa a errores) de extraer y comprender información de documentos impresos o escritos a mano, ha evolucionado mucho gracias a la integración de servicios innovadores como Form Recognizer de Azure, que emplea inteligencia artificial para lograr resultados con una eficiencia y precisión excepcionales.

Form Recognizer: Una mirada rápida

Dentro de la suite de servicios cognitivos de Microsoft Azure, Form Recognizer destaca como un servicio de inteligencia artificial (IA) basado en la nube. Su diseño se centra en analizar documentos físicos, tales como facturas, recibos, formularios, entre otros documentos, (matrículas incluidas) con el fin de extraer información valiosa de manera automática. Esta valiosa información pueden ser datos estructurados como números, fechas o nombres, o también la identificación de patrones específicos en los documentos. La versatilidad de Form Recognizer lo convierte en una solución poderosa y adaptable.

La potencia de Flutter

Por si aún no lo conocías, Flutter es el  framework de desarrollo de aplicaciones móviles de código abierto creado por Google, es una opción muy valorada por los desarrolladores que buscan construir aplicaciones móviles con interfaces de usuario atractivas y fluidas. Al brindar un diseño elegante y la habilidad de generar aplicaciones tanto para iOS como para Android desde un solo código base, Flutter tiene la simpatía tanto de las empresas como de los desarrolladores independientes.

Integración de Form Recognizer en Flutter

La integración de Form Recognizer de Azure en una aplicación Flutter puede parecer un desafío inicialmente, pero con las herramientas y recursos adecuados, puede transformarse en un proceso fluido y manejable. A continuación, te presento una guía detallada sobre cómo llevar a cabo esta integración de manera efectiva:

1. Configuración de un Servicio Form Recognizer en Azure

El punto de partida se centra en la creación y configuración de un recurso de Form Recognizer en tu cuenta de Azure.

 

Una vez que hayas terminado con la configuración del recurso, obtendrás las claves de acceso y el endpoint requeridos para autenticar las solicitudes.

Puedes acceder a la documentación para poder realizar las peticiones al servicio haciendo clic aquí.

2. Configuración del Proyecto Flutter

Ya sea creando un nuevo proyecto Flutter o abriendo uno existente, es importante asegurarse de tener instaladas las dependencias esenciales para llevar a cabo solicitudes HTTP y manejar las respuestas en formato JSON para poder realizar llamadas a la API de Form Recognizer. Utilizando paquetes como http o dio, podrás realizar dichas solicitudes, permitiéndote enviar imágenes o documentos que requieran análisis.

Nota: También existe un SDK para integrar este servicio en lenguajes como: C#, Python, Java o JavaScript

Las claves y el endpoint obtenidos en el primer paso serán tu credenciales para autenticar las solicitudes hacia el servicio Form Recognizer. En el ejemplo que os voy a mostrar, los he guardado en un archivo settings.json. Siendo «recognizerUrl», tu propio endpoint, «modelId» el tipo de modelo que deseas seguir a la hora de realizar el análisis, «subscriptionKey», una de las dos claves que te otorgan y «locale», el idioma del texto a analizar.

Nota: Es posible crear tu propio modelo personalizado, para más información, visita la documentación haciendo clic aquí.

3. Implementación de código en Flutter

En este ejemplo, vamos a agregar un botón que tras ser presionado, te abrirá la cámara del móvil, y una vez hayas sacado una fotografía, la mandará a analizar y mostrará el texto resultante por pantalla.

En primer lugar, vamos a importar los paquetes que vayamos a utilizar:

A continuación, creamos un método para leer el archivo JSON con las credenciales, en mi caso, estará ubicado dentro de una carpeta assets que he creado con anterioridad y además he añadido a mi archivo pubspec.yaml:

Como quiero que se cargue la información del JSON antes de que se inicie la aplicación creamos un método main asíncrono para realizar la carga de dicha información y una vez se cargue, se la pasamos al constructor de la pantalla, es importante asegurarse de que los «bindings» de Flutter se inicializan correctamente:

Ahora vamos a crear un método analyzeImage() que realizará todo el proceso de realizar una foto, mandarla a analizar y renderizar el texto resultante. Recomiendo separar todo proceso por secciones, pero para este ejemplo lo realizaré todo de una sentada.

En primer lugar, guardamos en «pickedFile» la imagen sacada por la cámara y extraemos una lista de byte, que será la que mandaremos a través de una solicitud POST para su análisis.

En el caso de que la API devuelva un estado 202, que significa que ha sido aceptada la petición de análisis, obtendremos el «apim-request-id» que nos entregará la cabecera de la respuesta para poder identificar la petición de análisis a la hora de pedir los resultados. Posteriormente, la aplicación esperará cinco segundos para que la IA tenga tiempo de analizar el contenido y seguidamente obtener los resultados realizando la petición GET de los resultados:

Finalmente, en caso de que la petición de los datos haya sido exitosa, comprobamos que exista el campo «content», ya que si la petición está en un estatus de «pending», no existirá. Y a la variable «result», que es la que se encargará de mostrar el texto en la pantalla, le asignaremos el texto respuesta del análisis y volvemos a renderizar la pantalla con un setState().

4. Aplicación Resultante

Conclusión

La integración del servicio Form Recognizer de Azure en una aplicación Flutter amplía considerablemente las posibilidades para automatizar la extracción de información valiosa desde documentos digitales hasta documentos en físico. A medida que la tecnología avanza, la conjunción entre la inteligencia artificial y las aplicaciones móviles continúa demostrando ser una poderosa manera de aumentar la eficiencia y la precisión en diversos ámbitos.

Si estás inmerso en el desarrollo de una aplicación Flutter y deseas incorporar la capacidad de analizar documentos físicos o digitales, no dudes en considerar la integración del servicio Form Recognizer de Azure. Con esta herramienta en tu conjunto de recursos de desarrollo, estarás capacitado para llevar tus aplicaciones móviles a un nivel completamente nuevo de funcionalidad y utilidad.

mm

Sobre Álvaro Ramos Martín

Desde que tengo memoria siempre he tenido un ordenador bajo el brazo, y gracias a la fascinación y curiosidad que tengo por la tecnología me animé a crear yo mismo sus aplicaciones. Tengo experiencia desarrollando para: React, React Native, Spring Boot y desde hace poco tiempo, Flutter, cuya forma de trabajo y desarrollo me ha fascinado desde el primer momento.
Esta entrada ha sido publicada en Flutter, Microsoft Azure, Microsoft Cognitive Services y etiquetada como , , . Enlace permanente .
Suscríbete a Piensa en Sofware desarrolla en Colores

Suscríbete a Piensa en Sofware desarrolla en Colores

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores