Introducción

La API de visión de Google Cloud Platform (GCP) permite a los desarrolladores integrar capacidades de análisis de imágenes en sus aplicaciones. Esta API utiliza modelos de aprendizaje automático para detectar y extraer información de imágenes, como la detección de objetos, el reconocimiento de texto (OCR), la clasificación de imágenes y más.

Objetivos de Aprendizaje

Al final de este tema, deberías ser capaz de:

  1. Comprender las capacidades y características de la API de visión.
  2. Configurar y autenticar el uso de la API de visión en un proyecto de GCP.
  3. Realizar operaciones básicas con la API de visión, como la detección de etiquetas y el reconocimiento de texto.
  4. Implementar ejemplos prácticos utilizando la API de visión.

  1. Capacidades de la API de visión

La API de visión ofrece varias funcionalidades clave:

  • Detección de etiquetas: Identifica objetos, lugares, actividades y más dentro de una imagen.
  • Reconocimiento de texto (OCR): Extrae texto de imágenes, incluyendo texto manuscrito.
  • Detección de rostros: Identifica rostros humanos y sus características, como emociones.
  • Detección de logotipos: Reconoce logotipos de marcas conocidas.
  • Detección de puntos de referencia: Identifica lugares geográficos y puntos de interés.
  • Propiedades de la imagen: Analiza propiedades de la imagen como colores dominantes.

  1. Configuración y autenticación

Paso 1: Crear un proyecto en GCP

  1. Accede a la Consola de Google Cloud.
  2. Crea un nuevo proyecto o selecciona uno existente.

Paso 2: Habilitar la API de visión

  1. En la consola de GCP, navega a API & Services > Library.
  2. Busca "Vision API" y haz clic en Enable.

Paso 3: Configurar la autenticación

  1. Navega a API & Services > Credentials.
  2. Crea una nueva clave de cuenta de servicio:
    • Haz clic en Create credentials y selecciona Service account key.
    • Selecciona una cuenta de servicio existente o crea una nueva.
    • Descarga el archivo JSON de la clave.

Paso 4: Configurar las variables de entorno

Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS para que apunte al archivo JSON descargado:

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your-service-account-file.json"

  1. Uso de la API de visión

Instalación del cliente de la API

Para interactuar con la API de visión, necesitas instalar el cliente de la API. Si estás utilizando Python, puedes instalar el cliente con pip:

pip install google-cloud-vision

Ejemplo práctico: Detección de etiquetas

A continuación, se muestra un ejemplo de cómo usar la API de visión para detectar etiquetas en una imagen.

Código de ejemplo

from google.cloud import vision
import io

def detect_labels(path):
    """Detecta etiquetas en una imagen."""
    client = vision.ImageAnnotatorClient()

    with io.open(path, 'rb') as image_file:
        content = image_file.read()

    image = vision.Image(content=content)
    response = client.label_detection(image=image)
    labels = response.label_annotations

    print('Labels:')
    for label in labels:
        print(label.description)

# Reemplaza 'path/to/your/image.jpg' con la ruta a tu imagen
detect_labels('path/to/your/image.jpg')

Explicación del código

  1. Importar la biblioteca: Importamos el cliente de la API de visión.
  2. Crear un cliente: Creamos una instancia de ImageAnnotatorClient.
  3. Leer la imagen: Leemos la imagen desde el disco.
  4. Crear un objeto de imagen: Creamos un objeto Image con el contenido de la imagen.
  5. Realizar la detección de etiquetas: Llamamos al método label_detection y obtenemos las etiquetas.
  6. Imprimir las etiquetas: Iteramos sobre las etiquetas y las imprimimos.

Ejemplo práctico: Reconocimiento de texto (OCR)

Código de ejemplo

from google.cloud import vision
import io

def detect_text(path):
    """Detecta texto en una imagen."""
    client = vision.ImageAnnotatorClient()

    with io.open(path, 'rb') as image_file:
        content = image_file.read()

    image = vision.Image(content=content)
    response = client.text_detection(image=image)
    texts = response.text_annotations

    print('Texts:')
    for text in texts:
        print(text.description)

# Reemplaza 'path/to/your/image.jpg' con la ruta a tu imagen
detect_text('path/to/your/image.jpg')

Explicación del código

  1. Importar la biblioteca: Importamos el cliente de la API de visión.
  2. Crear un cliente: Creamos una instancia de ImageAnnotatorClient.
  3. Leer la imagen: Leemos la imagen desde el disco.
  4. Crear un objeto de imagen: Creamos un objeto Image con el contenido de la imagen.
  5. Realizar la detección de texto: Llamamos al método text_detection y obtenemos el texto.
  6. Imprimir el texto: Iteramos sobre los textos y los imprimimos.

  1. Ejercicios prácticos

Ejercicio 1: Detección de logotipos

Escribe un script que utilice la API de visión para detectar logotipos en una imagen.

Solución

from google.cloud import vision
import io

def detect_logos(path):
    """Detecta logotipos en una imagen."""
    client = vision.ImageAnnotatorClient()

    with io.open(path, 'rb') as image_file:
        content = image_file.read()

    image = vision.Image(content=content)
    response = client.logo_detection(image=image)
    logos = response.logo_annotations

    print('Logos:')
    for logo in logos:
        print(logo.description)

# Reemplaza 'path/to/your/image.jpg' con la ruta a tu imagen
detect_logos('path/to/your/image.jpg')

Ejercicio 2: Detección de puntos de referencia

Escribe un script que utilice la API de visión para detectar puntos de referencia en una imagen.

Solución

from google.cloud import vision
import io

def detect_landmarks(path):
    """Detecta puntos de referencia en una imagen."""
    client = vision.ImageAnnotatorClient()

    with io.open(path, 'rb') as image_file:
        content = image_file.read()

    image = vision.Image(content=content)
    response = client.landmark_detection(image=image)
    landmarks = response.landmark_annotations

    print('Landmarks:')
    for landmark in landmarks:
        print(landmark.description)

# Reemplaza 'path/to/your/image.jpg' con la ruta a tu imagen
detect_landmarks('path/to/your/image.jpg')

Conclusión

En este tema, hemos explorado las capacidades de la API de visión de GCP, cómo configurarla y autenticarla, y cómo utilizarla para realizar tareas comunes como la detección de etiquetas y el reconocimiento de texto. También hemos proporcionado ejemplos prácticos y ejercicios para reforzar los conceptos aprendidos. Con esta base, estarás preparado para integrar capacidades avanzadas de análisis de imágenes en tus aplicaciones utilizando la API de visión de GCP.

© Copyright 2024. Todos los derechos reservados