Desarrollando soluciones Computer Vision

La visión por computadora, o #CV (Computer Vision) es un método exploratorio de imágenes por medio de la inteligencia artificial (#IA) que entrena a las computadoras para interpretar y comprender el mundo visual. Permite analizar fotos y/o vídeos con equipos tales como cámaras y que a partir de algoritmos de análisis pueden identificar y clasificar objetos que sirven para tareas tales como:

  • Reconocimiento de patrones/comportamientos
  • Procesamiento e interpretación de imágenes de video vigilancia
  • Análisis de imágenes multiespectrales
  • Modelado y reconstrucción 3D
  • Visión por computador en ciudades inteligentes para controles

¿Como puedo usar Azure para realizar desarrollos de Inteligencia Artificial?

#Microsoft ofrece servicios cognitivos a través de su plataforma #Azure por medio de su suite “Azure Cognitive Services“, desde donde se pueden analizar imágenes por medio de tecnología de CV, como también trabajar con Lenguaje y Voz.

Los servicios que se ofrecen tienen SDK y API disponibles. Para el caso puntual de esta nota, la parte de visión, actualmente cuenta con tres servicios:

  • Azure Computer Vision : para usar algoritmos de análisis de imágenes avanzados preexistentes.
  • Azure Custom Vision para crear, mejorar e implementar sus propios clasificadores de imágenes.
  • Rostro : para utilizar algoritmos faciales avanzados preexistentes para detectar y reconocer rostros humanos.

Casos Prácticos

El uso típico de las herramientas de CV se basan en enviar una imagen y obtener información detallada sobre las diversas características visuales (y atributos) que se encuentran en ella. Pero estos son algunos usos interesantes que se le puede dar a la visión por computadora:

  • Etiquetar características visuales: obtenga atributos que puedan servir como metadatos para la imagen.
  • Detectar objetos: observar imágenes/vídeos y poder detectar objetos, un caso practico podría ser detectar un automóvil mal estacionado
  • Detectar marcas: observar imágenes/vídeos y poder detectar marcas comerciales, esto podría ser de utilidad para una empresa que desea comparar su posicionamiento en anaqueles de un supermercado respecto a su competencia
  • Detectar rostros: observar imágenes/vídeos y detectar a una persona, de gran utilidad para seguridad, controles de acceso o incluso para onboarding digital. En este punto es importante destacar que Azure posee un servicio mas complejo, llamado Face Service dentro Azure Cognitive Services que permite detectar emociones, poses de la cabeza o la presencia de máscaras faciales

En caso de que lo que esté desarrollando sea muy especifico, se provee una suite llamada Custom Vision. Este módulo se centra en la creación de modelos personalizados para la detección de objetos.

Por lo general, esto requeriría un conocimiento avanzado de las técnicas de aprendizaje profundo (#deeplearning) y un gran conjunto de datos de entrenamiento, pero el uso de Custom Vision Service nos permite lograr esto con menos imágenes y sin experiencia en ciencia de datos (#datascience)

Lectura de Documentos

Otra gran funcionalidad que permite la visión por computadora, es la de reconocer textos. Como parte de la suite de Azure existe un modulo basado en #OCR (Reconocimiento óptico de caracteres) que permite leer texto impreso y escrito a mano desde imágenes y como complemento existe un servicio orientado puntualmente a la lectura de formularios llamado Form Recognizer. Esta herramienta no solo permite interpretar los datos de un formularios, sino que posibilita el procesamiento inteligente de formularios y la creación de los flujos de trabajo de automatización para documentos como recibos y facturas.

Es una herramienta de gran utilidad para la digitalización de procesos de empresas que aun dependen de la recepción de recibos de pagos de sus clientes en papel, de manera que el modelo puede reconocer formatos de los recibos, extraer los atributos (fecha y hora del pago, monto, impuestos, etc) y cargarlos en sus sistemas informáticos corporativos.

La visión por computadora es de gran utilidad para la digitialización de las compañías y organizaciones gubernamentales, ya que permiten realizar tareas repetitivas y monótonas a un ritmo más rápido y con menos errores, lo que simplifica el trabajo de los humanos.