Introducción a Google Vision API
Feb 26, 2022
Updated: Jun 24, 2026

Introducción a Google Vision API

Siempre me ha fascinado la inteligencia artificial. De hecho, en el pasado dicté algunos cursos en universidades de Medellín sobre el tema, y la materia es tan amplia y extensa que a veces los primeros acercamientos de una persona resultan abrumadores, y es probable que se rinda antes de construir algo tangible con IA. Por eso quise crear esta historia. Además, me servirá de memoria para una presentación que haré en el Google DevFest de Medellín.

Empecemos por lo básico. Quiero mostrarte una de las APIs de toda la suite de servicios en la nube que ofrece Google dentro de su producto Google Cloud Platform: Google Cloud Vision API. Como su nombre lo indica, es una API REST que te permite hacer un análisis detallado y un procesamiento profundo de imágenes. Si bien está disponible para casi todos los lenguajes modernos de programación, me ha parecido interesante entender cómo ponerla a funcionar con JavaScript y, afortunadamente, Google ofrece una librería oficial, el SDK @google-cloud/vision, que funciona perfectamente con Node.js.

¿Cómo funciona Google Cloud Vision API?

Aquí quiero corregir una idea equivocada que es muy común. Vision API no busca imágenes parecidas a la tuya en una galería gigante para luego copiarte sus etiquetas. Lo que hace es ejecutar tu imagen a través de modelos de aprendizaje profundo ya entrenados que Google preparó con cantidades enormes de imágenes etiquetadas. Esos modelos no comparan tu foto contra otras fotos, sino que reconocen los patrones que aprendieron durante el entrenamiento y producen predicciones directamente sobre tu imagen.

En la práctica, Vision API no es un solo modelo, sino una colección de funciones especializadas que puedes pedir por separado:

  • Label detection: etiqueta el contenido general de la imagen (perro, playa, comida, vehículo, etc.).
  • Object localization: detecta objetos y te devuelve además la caja delimitadora donde están.
  • Text detection y document text detection (OCR): extrae texto impreso o manuscrito de la imagen.
  • Face detection: detecta rostros y atributos como la expresión, sin identificar a la persona.
  • Landmark detection: reconoce lugares y monumentos conocidos.
  • Safe search: clasifica si una imagen contiene contenido sensible.

Cuando envías una imagen, eliges qué funciones quieres y la API devuelve cada predicción con un puntaje de confianza entre 0 y 1. Detrás de todo esto está la potencia de cómputo de los servidores de Google y años de entrenamiento de estos modelos, así que en muy pocas líneas de código tienes acceso a capacidades de visión por computadora que sería costosísimo construir desde cero.

Pongámoslo a funcionar en Node.js

Vamos a la parte práctica, que es justo lo que prometí. Primero necesitas un proyecto en Google Cloud con la Cloud Vision API habilitada y una cuenta de servicio cuyo archivo de credenciales JSON hayas descargado. Lo más sencillo es apuntar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS a ese archivo.

Nota: nunca subas tu archivo de credenciales JSON al control de versiones. Manténlo fuera de Git y, en producción, prefiere identidades gestionadas (Workload Identity) en lugar de claves descargadas.

Configura tus credenciales y crea el proyecto:

# Apunta a tu archivo de cuenta de servicio
export GOOGLE_APPLICATION_CREDENTIALS="/ruta/a/credenciales.json"

# Inicializa el proyecto e instala el SDK oficial
npm init -y
npm install @google-cloud/vision

Ahora un ejemplo mínimo de label detection. Como el SDK usa promesas, lo más cómodo es async/await:

// index.js
import vision from '@google-cloud/vision';

// El cliente toma las credenciales desde GOOGLE_APPLICATION_CREDENTIALS
const client = new vision.ImageAnnotatorClient();

async function detectLabels(filePath) {
  // labelDetection devuelve una promesa con un array; el primer elemento es la respuesta
  const [result] = await client.labelDetection(filePath);
  const labels = result.labelAnnotations ?? [];

  console.log('Etiquetas detectadas:');
  for (const label of labels) {
    // description es la etiqueta; score es la confianza entre 0 y 1
    console.log(`- ${label.description} (${(label.score * 100).toFixed(1)}%)`);
  }
}

detectLabels('./perro.jpg').catch(console.error);

Ejecuta el script con:

node index.js

Cada elemento de labelAnnotations trae una description (la etiqueta) y un score (la confianza). Por eso imprimimos el score como porcentaje: te ayuda a decidir, según tu caso de uso, a partir de qué umbral te interesa confiar en una etiqueta.

¿Y si tu imagen está en internet y no en tu disco? Puedes pasar directamente una URL pública o un objeto en Cloud Storage:

// También puedes analizar una imagen remota por su URL
const [result] = await client.labelDetection(
  'https://example.com/perro.jpg',
);

Tip: el mismo cliente expone métodos para las demás funciones, como textDetection (OCR), objectLocalization, faceDetection y landmarkDetection. La forma de llamarlos es la misma: pasas la imagen y recibes un array cuyo primer elemento es la respuesta.

Nota: el SDK @google-cloud/vision expone el cliente ImageAnnotatorClient con métodos como labelDetection, textDetection, faceDetection y safeSearchDetection. Los nombres de los campos en la respuesta pueden variar entre versiones mayores; revisa la referencia oficial para tu versión.

¿Cuánto cuesta?

Probablemente te estés preguntando si esto cuesta un ojo de la cara. La buena noticia es que, para empezar, no. Google Cloud Vision API ofrece una capa gratuita mensual por cada función (por ejemplo, label detection u OCR) y, superado ese umbral, cobra por bloques de unidades procesadas. En el momento de escribir esto, la referencia que solía circular era de alrededor de USD 1,50 por cada 1000 unidades, pero los precios y la estructura de la capa gratuita cambian con el tiempo.

Nota: revisa las cifras actuales en la página oficial de precios, ya que cambian con el tiempo: Precios de Cloud Vision API (cloud.google.com/vision/pricing). Los valores mencionados arriba son orientativos.

Así que no hay razón para no probar al menos esta API.

Alternativas

Vision API no es la única opción de visión artificial y procesamiento de imágenes que vas a encontrar. Hay alternativas interesantes que puedes comparar y usar:

  • Azure AI Vision (antes Azure Cognitive Services Computer Vision), el equivalente de Microsoft.
  • OCR.Space, una opción enfocada en OCR, útil y económica.

Algunas de estas alternativas pueden resultar más baratas, pero dependerá de tus necesidades específicas cuál y cuándo usar cada una. Te recomiendo comparar precios y capacidades directamente en la documentación oficial de cada proveedor.

Conclusiones

  • Google Cloud Vision API es una herramienta poderosa para el análisis y procesamiento de imágenes mediante modelos de aprendizaje profundo ya entrenados, no mediante búsqueda de imágenes similares.
  • Ofrece una capa gratuita por función y precios razonables, lo que la hace accesible para quien quiera experimentar (recuerda verificar las cifras vigentes).
  • Existen alternativas como Azure AI Vision y OCR.Space, y vale la pena comparar cuál se ajusta mejor a tu proyecto.

Ejercicios propuestos

  1. Habilita la Cloud Vision API en un proyecto de Google Cloud, configura GOOGLE_APPLICATION_CREDENTIALS y ejecuta el ejemplo de label detection con varias imágenes propias.
  2. Extiende el script para usar textDetection (OCR) sobre una imagen con texto e imprime el texto extraído.
  3. Compara Google Cloud Vision API con Azure AI Vision y OCR.Space, analizando ventajas, desventajas y cómo se ajustan a tus necesidades.

Resumen en 3 puntos

  1. Vision API ejecuta tu imagen a través de modelos de aprendizaje profundo ya entrenados que producen predicciones (etiquetas, objetos, texto, rostros) con un puntaje de confianza.
  2. Con el SDK oficial @google-cloud/vision y unas pocas líneas en Node.js ya tienes capacidades de visión por computadora funcionando.
  3. La API es accesible en costos y tiene alternativas como Azure AI Vision y OCR.Space que conviene evaluar según el proyecto.

Eso es todo, espero que este post te sea de utilidad y lo puedas aplicar a algún proyecto que tengas en mente.

Déjame un comentario si te sirvió, si quieres añadir alguna opinión o si tienes alguna duda. Y recuerda que si te gustó, también puedes compartirlo usando los links a las redes sociales aquí abajo. Buena suerte con tu próximo proyecto de visión artificial.

Sebastian Gomez

Sebastian Gomez

Creador de contenido principalmente acerca de tecnología.

Leave a Reply

0 Comments

Advertisements

Related Posts

Categorias