Visión de computador y revisión de facturas

Contexto

El cliente en este caso es una empresa de servicios públicos domiciliarios. Uno de los procesos más importantes para la empresa es el de facturación porque es vital para asegurar el ingreso de los recursos financieros. La facturación es realizada por ciclos, que es una forma de agrupar a los clientes de acuerdo con su ubicación. Se tienen 40 ciclos de facturación y en cada uno de ellos se generan en promedio 60.000 facturas. La empresa de servicios públicos debe garantizar que la factura cumpla con algunos requisitos mínimos de ley y que presente la información al cliente de manera clara y correcta.

Descripción del problema

Como parte del proceso de calidad de facturación, se necesitaba revisar el mayor número posible de facturas en formato PDF antes de enviarlas a imprimir. Algunas de las tareas de inspección visual eran:

  • Revisar que aparezca correctamente dibujados los histogramas asociados a cada servicio.
  • Validar que aparezcan los elementos dinámicos que se programaron para agregar en la factura.
  • Determinar si el consumo actual presenta alguna anomalía. Es decir, si el consumo actual está por encima del consumo promedio en más de cierto porcentaje definido, puesto que podría haber una anomalía y en consecuencia una posible reclamación del cliente.
  • Verificar que aparezcan las firmas autorizadas.

Teniendo en cuenta el alto número de facturas a revisar, se hacía necesario automatizar esta inspección visual.

Descripción de la solución

Para resolver este problema se desarrolló una solución digital basada en visión de computador que realiza automáticamente y con un alto nivel de precisión las siguientes operaciones:

  • Identificar si los histogramas están bien
  • Verificar que los elementos de ley estén completos

La solución por si sola separa las facturas malas para que luego un equipo especial se enfoque en encontrar la causa de los errores y los corrija desde la raíz.

Se utilizó un marco de trabajo especial para proyectos de machine learning llamado CRISP-DM que incluye las etapas de: entendimiento del negocio, entendimiento de los datos, preparación de los datos, modelación, evaluación y despliegue.

Dado que se utilizaron técnicas de identificación de objetos, en la etapa de preparación de los datos fue necesario preparar un conjunto de datos inicial, etiquetando una muestra significativa de facturas de todos los tipos posibles. Este etiquetado generó unos archivos XML, los cuales se utilizaron para el entrenamiento de la red neuronal. Se tuvieron algunos retos, como por ejemplo que la ubicación y el tamaño de los histogramas podría cambiar en diferentes épocas del año. Así mismo el color del histograma varía para cada municipio.

También fue necesario realizar aumentación de datos con el fin de incrementar la capacidad del modelo de reconocer diferentes variaciones de los objetos. Esta aumentación se logra haciendo transformaciones a las imágenes originales. Las transformaciones comprenden, pero no están limitadas a rotaciones sobre diferentes ejes de la imagen, distorsiones sobre la imagen, agregaciones de ruido gaussiano, cambios en el contraste, escalado a diferentes escalas, brillo y saturación, estiramientos y recortes.

En la etapa de modelación se decidió utilizar una arquitectura basada en redes neuronales convolucionales o Convolutional Neural Networks. Una red neuronal convolucional es un tipo de red neuronal artificial donde las neuronas corresponden a campos receptivos de una manera muy similar a las neuronas en la corteza visual primaria (V1) de un cerebro biológico. Este tipo de red es una variación de un perceptrón multicapa, sin embargo, debido a que su aplicación es realizada en matrices bidimensionales, son muy efectivas para tareas de visión artificial, como en la clasificación y segmentación de imágenes, entre otras aplicaciones.

Para la construcción de la red neuronal sobre la que se construyó la solución se utilizó como punto de partida la arquitectura You Only Look Once (YOLO) v3 . YOLO es una red neuronal diseñada para la detección de objetos, de manera que no solo predice las etiquetas de clase, sino que también detecta la ubicación de los objetos.

Para YOLO, la detección es un problema de regresión simple que toma una imagen de entrada y aprende las probabilidades de clase y las coordenadas del cuadro delimitador.

Luego en la etapa de evaluación del modelo, la métrica utilizada para evaluar la detección de objetos fue el “mean average precisión” o mAP. Para implementar el cálculo de mAP es necesario iniciar con la predicción resultante del modelo CNN de YOLO.

Los hiper-parámetros utilizados en el modelo son:

  • Normalización de lotes (batch normalization): después de cada convolucional se realiza un proceso de normalización, esto ayuda a entrenar más rápido y reduce la variación entre unidades (y la variación total también).
  • Funciones de activación: YOLOv3 usa funciones Leaky ReLU como funciones de activación. Estas funciones son una ligera modificación de la función de activación de ReLU. La idea detrás de Leaky ReLU es evitar la llamada “muerte de neuronas” cuando un gran número de activaciones se convierte en 0.
  • Anchors: son las bounding boxes que se calculan del COCO Dataset utilizando el agrupamiento k-means. El ancho y la altura de los cuadros se calcularán a partir del agrupamiento basado en centroides. Las coordenadas centrales del recuadro en relación con la ubicación de la aplicación del filtro se predicen utilizando una función sigmoide.

Para validar los modelos entrenados se utilizan imágenes no vistas por la red durante la etapa de entrenamiento, pero de distribución similar en cuanto a ubicación de los histogramas, tipografía, etc. Para lograr generalidad en la detección de histogramas en posiciones no comunes o cambios inesperados en las facturas, es necesario que el conjunto de entrenamiento contenga facturas “defectuosas” con histogramas en diferentes órdenes, diferentes posiciones y con ausencias de histogramas. Esto le dará generalidad al modelo. Es importante mencionar que, al tratarse de un problema de detección de objetos con varias clases, éstas deben estar balanceadas.

En resumen, los dos modelos basados en la arquitectura de la red YOLOv3 identificaron histogramas y objetos de ley con un porcentaje superior al 95%.

Beneficios para el negocio

Al automatizar la inspección de facturas utilizando inteligencia artificial, el negocio logró aumentar el porcentaje de revisión al 100%, revisando en promedio 60.000 facturas en cuestión de minutos, cuando antes revisaban menos del 5% del total y tomaban varios días ocupando a varias personas. Esta solución redujo significativamente los costos del proceso operativo e incremento su eficacia.

Tecnologías utilizadas

  • Computación en la Nube
  • Machine learning y visión de computador.

Artículos relacionados

Mantenimiento basado en condición para plantas de bombeo utilizando gemelos digitales y detección de anomalías

Esta solución permite hacer mantenimiento basado en condición en plantas de bombeo de agua utilizando un algoritmo de detección de anomalías en series de tiempo que se construyen en tiempo real a partir de los datos obtenidos de los sensores.

Solución para pronóstico de la demanda futura

Solución para pronóstico de la demanda futuraSe desarrolló una solución que permite utilizar un modelo de pronóstico de la demanda con el fin de hacer más eficiente la planeación futura de la capacidad.

Solución para gestión de certificados de energía renovable

Esta solución permite automatizar las tres etapas del proceso de venta de certificados: 1.Generación de los certificados. 2.Venta de los certificados. 3.Redención de los certificados.

Realidad aumentada para ver redes subterráneas de transporte de gas

Esta solución permite ver las redes subterráneas de transporte de gas por medio de la cámara del celular, incluso sin conexión a internet, facilitando las tareas de operación y mantenimiento

Visión de computador e inspección de redes eléctricas

Esta solución de visión de computador automatiza la revisión de fotos de la infraestructura eléctrica tomadas con drones y la generación de órdenes de mantenimiento