Reconocimientos de KIIDs: un caso de aplicación de visión artificial en RPA

Automatización RPA multi-OS: ¿funcionan tus robots en cualquier sistema operativo?
07/12/2017
Jidoka reconocida por Gartner como “Representative Vendor” en su informe Market Guide for Robotic Process Automation Software
01/02/2018
Mostrar todo

Reconocimientos de KIIDs: un caso de aplicación de visión artificial en RPA

Aunque esté previsto que el recién estrenado 2018 sea el año de la llegada de la Inteligencia Artificial al mundo del RPA, honestamente no podemos afirmar que hayamos encontrado hasta ahora muchos casos de aplicación o ejemplos concretos de robots donde se demuestre su funcionalidad. ¡Aún queda tanto recorrido para la automatización sin necesidad de acudir a tecnologías cognitivas!

Nos ha parecido interesante mostrar un ejemplo real de la necesidad del uso de visión por computador en un escenario RPA: la captura de datos de un PDF por parte de un equipo de backoffice (BPO).

El problema es el siguiente:

La comisión europea, de acuerdo a la directiva UCITS IV, ha obligado a las sociedades de inversión que distribuyen Fondos de Inversión a publicar un documento conocido como KIID (Key Investor Information Document) o Documento de Datos Fundamentales para el Inversor. El objetivo es simplificar la información más relevante de un Fondo, de modo que resulte mucho más sencilla y comprensible para los inversores. El KIID es un fichero, generalmente en PDF, donde han de reflejarse los datos clave del Fondo en cuestión:

  • Objetivo del fondo y la política de inversión.
  • Costes y gastos asociados.
  • Rentabilidad histórica.
  • El perfil de riesgo del fondo.

Dado que este documento tiene que actualizarse constantemente, las empresas comercializadoras de los Fondos (bancos y sociedades de inversión), están obligadas a capturar dicha información para integrarla en sus bases de datos y poder ofrecerla así a los clientes en sus propios sistemas. Al tratarse de un trabajo repetitivo, mecánico y de gran volumen (más de 100.000 documentos actualizados varias veces al año), su gestión suele estar externalizada a través de servicios de BPO, por lo que constituye un caso de negocio idóneo para su automatización mediante un robot Jidoka que capture y gestione esta información. Y ese fue el reto que nos trasladó un cliente y, como es habitual, resolvimos con éxito.

La mayor parte de esta información está estructurada, siendo posible programar reglas basadas en patrones para su captura desde el PDF con excepción del dato del perfil de riesgo del Fondo. Para este perfil se utiliza una escala de 1 a 7 (ordenada de menor a mayor riesgo) que se muestra de forma visual al cliente, indicando claramente qué nivel de riesgo tiene el fondo. Con la circunstancia de que, al utilizar un esquema visual, cada gestora de fondos ha utilizado su propia forma de identificarlo, tal y como puede apreciarse en la siguiente imagen, donde pueden observarse hasta seis ejemplos distintos:

El reto por lo tanto consistía en utilizar técnicas de visión artificial que detectaran el número asociado a ese nivel de riesgo con precisión absoluta, dada la sensibilidad del dato para el inversor.

En el siguiente video mostramos el robot Jidoka implementado.

El robot utiliza una primera técnica para identificar tablas dentro del documento, y una vez que ha identificado la tabla se asegura que está compuesta de números, detectando qué número es el que está marcado. Pero hay KIIDs donde los números no están encuadrados en una tabla, por lo que debe utilizar un segundo método basado en localizar colores.

Lógicamente el robot no “ve” la escala de riesgo de la misma forma que un humano. Necesitamos adaptar el documento y convertirlo en algo “visible” para una máquina. Estas adaptaciones pueden asimilarse a lo que nuestro cerebro, salvando aún las distancias, realiza sobre la información que llega a nuestros ojos en forma de luz.

El robot toma el documento PDF y lo transforma en imagen para, posteriormente, transformarla en números, vectores y matrices, una información mucho más adecuada para él. En el ejemplo anterior, hemos enseñado al robot a encontrar la escala de riesgo usando las dos técnicas de visión citadas anteriormente.

En la primera, el robot busca patrones en la imagen que se asemejen a una tabla. Erosiona, dilata e incluso realiza el binario de la imagen en busca de este patrón, descartando aquellos patrones que no encajan dentro de unos parámetros iniciales (ancho, alto, posición en la página, etc.). El resultado de este análisis puede estar aún constituido por varias tablas, presentes en el documento, aunque sólo una sea la escala de riesgo.

¿Cómo reconocer entonces cuál de estas tablas es la correcta? La respuesta es, de nuevo, observándola. Recorriendo la imagen y analizando sus características. En el caso de la escala de riesgo, tendrá una característica principal: un color predominante (valores de riesgo no seleccionados) y al menos otro color secundario (el valor marcado). Este color secundario es el interesante. Una vez conocido, el robot centra su atención en la casilla correcta y ya sólo falta extraer el número de la casilla marcada utilizando un OCR.

Hay casos en los que el método anterior no consigue encontrar estos patrones o no hay certeza de que uno de ellos sea el correcto. Normalmente esto ocurre cuando el diseño del KIID no es el habitual, de forma que la escala de riesgo no es una tabla más o menos regular. Para estos casos, hemos implementado un segundo método que es capaz de “filtrar” la imagen por un color determinado, que se utiliza como parámetro. Este color es precisamente el color en que está marcado el nivel de riesgo en la escala. Se trata de algo así como centrar la atención sólo en esas áreas, considerando el resto “sin interés”. De nuevo, sólo queda extraer el valor de la escala de riesgo.

La combinación de ambos métodos garantiza la extracción segura del nivel de riesgo.

Ambos métodos realizan procesos secundarios comunes para facilitar la visión del documento:

  • Erosión y Dilatación: que favorecen el realce o el enfoque de la imagen.
  • Binarización, para transformar la imagen en vectores y matrices comprensibles para el robot.
  • Conversión a escala de grises, que “elimina ruido” en documentos de baja resolución.
  • Filtro por colores.
  • Extracción de información de pixels.
  • Etc.

En Jidoka estamos continuamente a la búsqueda de nuevos desafíos ¿tienes algo para sorprender a nuestros robots software? Si es así no dudes en contactar con nosotros, aceptaremos el reto.

Víctor Ayllón
Víctor Ayllón
CEO de Jidoka. Socio fundador de Novayre, empresa tecnológica apasionada por la innovación software y la automatización. Desde los años 80 con un ZX Spectrum como compañero de juegos y en los 90 compañero de trabajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *