Curso
Ha pasado ya un tiempo desde que Google lanzó una API específica llamada Vision API para realizar tareas de visión por computador. La visión por computador estudia cómo un ordenador procesa una imagen. Para nosotros es sencillo extraer información útil de una imagen, pero ¿cómo lo hace un ordenador?
Imagina que le pasas a tu equipo una foto de un perro y, gracias a un software, el ordenador te devuelve que efectivamente es un perro. Ahí entra en juego la visión por computador. Es todo un mundo en sí mismo, y la Vision API ofrece multitud de utilidades para realizar estas tareas con total facilidad. Lo mejor es que desarrolladores sin experiencia previa en visión por computador pueden usar Vision API siguiendo su documentación.
Este tutorial pretende presentarte Vision API y cómo puedes llamarla desde código en Python.
Nota: Si antes de empezar quieres saber más sobre las APIs en general (desde la perspectiva de Python y de machine learning), aquí tienes algunos recursos excelentes:
¿Qué es la Vision API de Google? Una introducción más detallada
Google ha encapsulado sus modelos de machine learning en una API para que los desarrolladores puedan usar su tecnología de Vision. Vision API puede clasificar imágenes rápidamente en miles de categorías y asignarles etiquetas con sentido. Incluso detecta objetos individuales, caras y texto dentro de una imagen.
A grandes rasgos, la Vision API de Google te permite hacer dos cosas:
- Usar la API directamente desde tu código para realizar análisis de imágenes potentes y a escala.
- Crear modelos personalizados con la API para ganar flexibilidad según tu caso de uso.
Esta API es especialmente útil porque, a medida que avanza la profesión, la necesidad de perfiles "Full-Stack" crece muy rápido. Piensa en un caso en el que a un desarrollador web Full-Stack (es decir, que domina tecnologías de front-end y back-end) le piden crear una web que reciba imágenes y detecte de qué tipo son. Esto exigiría conocimientos sólidos de visión por computador (si no los tiene ya), porque deberá programar el back-end para que identifique correctamente cada imagen. Y supongamos que el plazo es ajustado.
En una situación así, si el desarrollador empieza desde cero a aprender visión por computador y luego implementa las tareas necesarias, probablemente no llegue a tiempo. En cambio, si usa modelos preentrenados y va aprendiendo los conceptos clave mientras desarrolla, es mucho más práctico. Ahí es donde la Vision API resulta especialmente útil. La API ofrece modelos de última generación ya entrenados para cubrir numerosos casos de uso reales en negocios.
El término "Full-Stack" también empieza a asociarse a roles como Machine Learning Engineer o Data Scientist. A un profesional Full-Stack de ML o ciencia de datos se le pide que diseñe y desarrolle, o al menos entienda, los procesos de negocio de extremo a extremo. Esto incluye "poner modelos en producción" como paso crucial: envolver el modelo en una API (o varias) y desplegarlo en el entorno de producción. El término producción variará según el caso, pero la idea y el marco general se mantienen. Vision API te permite entrenar eficientemente modelos de visión personalizados con AutoML Vision BETA.
¡Genial! A estas alturas ya deberías tener una buena visión general de Vision API. Un experimento sencillo que puedes hacer en la página de Vision es analizar tus imágenes favoritas y extraer información útil con su ayuda. Estos son los pasos:
- Ve a la página de Vision.
- Tiene una sección llamada "Try the API". Te permite arrastrar/subir una imagen en su interfaz.

- Cuando le pasas una imagen, te devuelve un montón de información sobre ella:
Como ves, Vision detecta muchas características de la imagen en muy poco tiempo. Explora también las demás pestañas para conocer aún más detalles.
Imagina realizar esta tarea sobre mil millones de imágenes. Usar una API así sería, sin duda, muy valioso. Ahora, veamos qué ofrece Vision API y algunos ejemplos de casos de uso reales que ya cubre.
¿Qué ofrece Vision API? Algunos casos de uso específicos
Vision API es conocida por su precisión. La documentación incluye una magnífica colección de tutoriales con una explicación muy detallada de la API. Pero a primera vista pueden resultar abrumadores. Para simplificar, verás algunos casos de uso que Vision API ya resuelve.
- Reconocimiento óptico de caracteres (OCR): Un clásico de la visión por computador que consiste en extraer texto de una imagen. Vision API integra métodos de última generación para hacerlo.
- Detección de propiedades de la imagen: Es la tarea que realizaste antes. Con Vision API puedes recuperar atributos generales de una imagen, como su color dominante.
- Detección de etiquetas: Anota una imagen con una etiqueta (o "tag") según su contenido. Por ejemplo, una foto de un perro puede devolver "perro", "animal" u otra etiqueta similar. Es un paso clave en la recuperación de información basada en contenido.
- Detección de rostros: Dada una o varias imágenes, el objetivo es detectar los rostros presentes. Tiene aplicaciones a gran escala, como en sistemas de vigilancia.
Estos son algunos casos en los que Vision API funciona de forma fluida, y puedes integrar cualquiera de ellos en tus aplicaciones en muy poco tiempo. Si quieres descubrir más casos de uso, no te pierdas estos tutoriales.
Vision API ofrece soporte para una amplia gama de lenguajes como Go, C#, Java, PHP, Node.js, Python, Ruby. En las siguientes secciones verás cómo usar Vision API en Python.
Librería cliente de Vision API para Python
El primer paso para usar la variante de Python de Vision API es instalarla. La mejor forma es con pip.
!pip install google-cloud-vision
Una vez completada la instalación, el siguiente paso es comprobar que todo ha ido bien.
from google.cloud import vision
Si la línea anterior se ejecuta sin errores, puedes continuar. Google ofrece una serie de tutoriales fantásticos sobre cómo usar Vision API en Python.
Ahora vas a crear una aplicación sencilla en Python capaz de detectar atributos generales de una imagen, como el color dominante.
Un caso práctico con Vision API en Python
Tu aplicación recibirá la ruta de una imagen como entrada y mostrará los atributos generales de esa imagen. Esto es útil cuando las imágenes están en el mismo ordenador donde se ejecuta la aplicación. Pero ¿y si necesitas leer una imagen de internet? Vision API también permite leer imágenes desde la web.
En este caso práctico abordarás el primer escenario. Adaptarlo para leer desde internet es cuestión de una línea de código.
Como siempre, empieza importando vision desde el módulo google.cloud.
from google.cloud import vision
El siguiente paso es llamar a ImageAnnotatorClient(), que incluye utilidades para extraer propiedades de imagen.
client = vision.ImageAnnotatorClient()
Es probable que aparezca un error si no has definido la variable de entorno GOOGLE_APPLICATION_CREDENTIALS. Estas librerías usan las Application Default Credentials (ADC) para localizar las credenciales de tu aplicación. Cuando tu código usa librerías como esta, el sistema busca tus credenciales.
Sigue este enlace para aprender a generar GOOGLE_APPLICATION_CREDENTIALS. El objetivo es generar un archivo client_secrets.json que usarás para la autenticación.
Cuando tengas client_secrets.json, ejecuta el siguiente código para definir la variable de entorno GOOGLE_APPLICATION_CREDENTIALS.
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="client_secrets.json"
Ahora, al ejecutar el código de abajo, no deberías obtener errores.
client = vision.ImageAnnotatorClient()
Ahora escribirás código para leer una imagen a partir de una ruta dada.

import io
path = 'Image.jpeg'
with io.open(path, 'rb') as image_file:
content = image_file.read()
Ya has cargado una imagen en tu espacio de trabajo. Ahora, instancia un objeto de tipo vision.types.Image y pasa content=content como argumento.
image = vision.types.Image(content=content)
Solo te quedan los últimos pasos de tu aplicación de detección de propiedades de imagen. En ellos:
- Llamarás a
client.image_propertiescon el argumento(image=image). - Guardarás la respuesta de
image_properties()en la variableresponsey extraerás las propiedades con el atributoimage_properties_annotationderesponse. - Mostrarás varias propiedades de la imagen con un formato legible.
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')
for color in props.dominant_colors.colors:
print('Fraction: {}'.format(color.pixel_fraction))
print('\tr: {}'.format(color.color.red))
print('\tg: {}'.format(color.color.green))
print('\tb: {}'.format(color.color.blue))
Podrías volver a encontrar errores si no has habilitado Vision API para tu proyecto. Activarla es muy sencillo y el propio error incluye instrucciones para hacerlo rápidamente.
Después de habilitar la API, tendrás que activar también la facturación para usar Vision API. Las utilidades de detección de propiedades de imagen cuestan solo 0,60 $. Con eso listo, el código se ejecuta correctamente y produce la salida.

¡Enhorabuena!
Has visto lo fácil que es usar Vision API y el tipo de utilidades que ofrece a un coste realmente bajo. Hoy en día, muchas empresas y organizaciones se benefician de esta API, ya sea con fines de negocio o de investigación. En este tutorial solo has arañado la superficie de Vision API, pero debería servirte como un buen punto de partida para usar APIs de machine learning en tus aplicaciones.
Asegúrate de revisar toda la suite de APIs de machine learning que ofrece Google, conocida como CloudML.
Con estas APIs, fáciles de llamar, puedes crear un montón de aplicaciones interesantes. Los enlaces a Vision API y CloudML incluyen una recopilación fantástica de tutoriales para que empieces a practicar enseguida. ¡Suerte!
Si te interesa saber más sobre procesamiento de imágenes, echa un vistazo al curso de DataCamp Convolutional Neural Networks for Image Processing.




