Hola mundo: ¡puedo verte! Introducción a la visión artificial con Cognitive Services

Hace ya años que empecé a oír hablar del concepto de “visión artificial”, aunque entonces era un tema muy avanzado, casi ciencia ficción, perteneciente al ámbito de complejos laboratorios experimentales en prestigiosas universidades. Algo que, realmente, estaba fuera del alcance de desarrolladores que no estuviesen trabajando en complejos proyectos de investigación.

Hoy en día, gracias a la nube, disponemos de acceso a complejos algoritmos de inteligencia artificial de forma muy cómoda y rápida. Como ya he comentado en anteriores posts, Microsoft dispone de los Servicios Cognitivos de Azure, que nos permiten experimentar con estas tecnologías con bastante facilidad.

En este breve artículo vamos a hacer una primera aproximación a los servicios de visión artificial de los que disponemos en Cognitive Services, y realizaremos una pequeña aplicación, muy básica, que describa el contenido de una imagen. De esta forma, al igual que con el típico “hola mundo”, nos haremos una idea del código mínimo para tener una aplicación de este tipo funcionando. Así que empecemos:

Este artículo desarrolla un pequeño ejemplo, una aplicación de consola muy básica a la que pasamos una imagen que interpreta, usando los servicios cognitivos, y nos devuelve una descripción (no siempre acertada al 100%) de lo que ha podido “ver” el algoritmo. Puedes descargarla de mi cuenta de GitHub. Para utilizarla deberás configurar tu subscription key en el código.

1- Registro en Vision Services

Para empezar a trabajar con el API de Visión Artificial, es necesario que nos registremos y obtengamos un API Key. Para ello podemos ir a la web de Servicios Cognitivos de Azure y registrarnos.

Una vez hecho esto, obtendremos un Subscription Key, que debemos añadir en el header de las llamadas que hagamos al servicio.

2- Configuración de la petición

El API de Visión Artificial es, como en ocasiones anteriores, un servicio REST, por lo que el proceso es muy simple. Tan sólo debemos hacer una petición POST al servicio, pasando los parámetros requeridos, y obtendremos una respuesta en formato JSON.

Este servicio requiere de los siguientes datos:

  • Subscription Key en el header
  • Parámetros en la llamada (URL)
  • Imagen a procesar en el cuerpo de la petición


En otro artículo hablaremos más detenidamente de los parámetros, ya que dan mucho juego y permiten afinar mucho el reconocimiento y los resultados.

Por ejemplo, en visualFeatures le especificamos qué datos queremos que nos devuelva en la respuesta. Para esta aplicación nos interesa Description, que contiene la descripción de la imagen y las palabras clave que se hayan encontrado.

A continuación, cargamos la imagen y la guardamos en un array de bytes:

3- Adjuntando la imagen y llamada al servicio

La imagen que hemos cargado anteriormente es la que, a continuación, vamos a adjuntar como cuerpo de la petición.

4- Lectura de los resultados

Una vez obtenemos el resultado, podemos leer estos datos como cadena JSON, y utilizar la información que nos devuelve en sus propiedades.

Para este caso concreto nos interesa el contenido de la propiedad text, en el primer elemento de captions, en la propiedad description.

En description tenemos una descripción general de la imagen, que solicitamos en los parámetros de la petición. Está compuesta por una serie de palabras clave con sus porcentajes, y un texto general con la posible descripción de la imagen.

Te aconsejo que pruebes la aplicación, ya que aunque esta tecnología aún necesita mejorar mucho, los resultados son, en la mayoría de los casos, impresionantes. Como ejemplo, una prueba sencilla. Vamos a procesar la siguiente imagen:

Y, aquí, los resultados obtenidos:

Si exploráis el objeto devuelto, puede verse que incluso se atreve a decir cuántas personas, y de qué sexo y edades hay en la foto. Impresionante, ¿verdad?

En un próximo artículo profundizaremos más en este apasionante tema.

jose-manuel-morillas-fotoJosé Manuel Morillas Navarro

Analista Programador | Soluciones Microsoft | SOGETI ESPAÑA

Autor: ITblogsogeti

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software; Soluciones Microsoft y High Tech Consulting. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s