Tradicionalmente el reconocimiento automático de imágenes ha sido una tarea difícil, basada en algoritmos deterministas y con una gran tasa de errores. Para entendernos, se necesitaba crear algoritmos de propósito específico y orientados a reconocer tipos concretos de información en las imágenes.
Sin embargo, y como ya informamos aquí hace bastante tiempo, la disciplina pegó un gran salto cualitativo hace cosa de dos años cuando el "Deep learning" se empezó a volver algo del día a día. Todas las grandes empresas comenzaron a invertir en esta tecnología de Inteligencia Artificial (AI) que es capaz de obtener resultados sorprendentes.
Estos nuevos sistemas son capaces no solo de aprender por sí mismos a reconocer objetos, sino que también son capaces de dotarlos de significado y manejar conceptos abstractos, no solo cosas materiales.
Ahora Google acaba de liberar su Cloud Vision API, que nos habilita como desarrolladores para crear aplicaciones potentes que son capaces de ver y reconocer la realidad, pero además, son capaces de entender lo que están viendo .
Esta API nos aísla de toda la complejidad matemática que hay detrás de esta inteligencia y habilita el que la usemos a través de una API de tipo REST muy sencilla. La API funciona muy rápido a la hora de clasificar las imágenes en categorías muy concretas, en detectar caras y las emociones que reflejan, e incluso es capaz de leer textos en muchos idiomas directamente desde una fotografía.
Entre otras cosas permite, a partir de una imagen, hacer cosas como estas:
- Detectar la entidad principal: un coche, un perro, un edificio, una persona joven.... es decir, te dice rápidamente qué tipo de entidad predomina en la foto que le indicas. Con esto hacer clasificación automática de imágenes es un juego de niños.
- Detección facial: indica en dónde se encuentran las caras de la gente y algunas partes concretas de éstas (boca, ojos, nariz...). También te puede decir si están contentas, riéndose, tristes, preocupadas... Por privacidad no permite usarla para reconocer personas concretas (aunque seguro que puede hacerlo ).
- Localización de puntos de interés: puede reconocer infinidad de monumentos, paisajes naturales, etc... y decirte no solo cuál se ve en la foto (por ejemplo, la Torre Eiffel) sino darte además la geo-localización del mismo.
- Reconocimiento de escritura: reconoce texto en diversos idiomas y te dice qué pone en las fotografías y en qué idioma está escrito.
- Reconocimiento de logos: reconoce los logos de las marcas más populares y su ubicación en la imagen, de modo que podemos, por ejemplo, clasificar productos de manera automática.
- Censura de imágenes: si estamos creando un servicio en el que los usuarios pueden subir sus propias fotografías, la API nos permite determinar si las imágenes contienen "contenido no apropiado", es decir, desnudos, violencia, etc...
La verdad es que la cantidad de aplicaciones que abre es inmensa, y se le puede sacar muchísimo partido.
Actualmente debes enviar la imagen junto con la petición REST, pero en la próxima versión podrás albergarla en Google Drive (y probablemente en otras ubicaciones).
Un ejemplo espectacular que ha desarrollado Google como prueba de uso es un pequeño robot GoPiGo basado en Raspberry Pi que con tan solo unos cientos de líneas de código en Python es capaz de moverse por la casa e ir reconociendo todo lo que se va encontrando en su camino. Merece la pena verlo:
De momento la API está en "Preview" y es totalmente gratuita, pero en el futuro tendrá un precio por poder usarla aunque, conociendo a Google, seguro que existe una capa de precios gratuita muy generosa, así que ¿por qué no probarla?: Google Vision API