Detecta etiquetas en una imagen mediante la línea de comandos

En esta página, se muestra cómo enviar tres solicitudes de anotación y detección de características a la API de Vision mediante la interfaz de REST y el comando curl.

La API de Vision permite la integración sencilla de las tecnologías de reconocimiento de la visión de Google en las aplicaciones de desarrollador. Puedes enviar los datos de imagen y los tipos de características deseados a la API de Vision, que luego muestra una respuesta correspondiente en función de los atributos de imagen que te interesan. Para obtener más información sobre los tipos de características que se ofrecen, consulta la Lista de todas las características de la API de Vision.

Antes de comenzar

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.
    • Crea un proyecto de: Google Cloud

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  6. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  7. Habilita la API de Vision:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén más información para otorgar roles.

    gcloud services enable vision.googleapis.com
  8. Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto
    • USER_IDENTIFIER: Es el identificador de tu cuenta de usuario. Por ejemplo, myemail@example.com.
    • ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.
    • Crea un proyecto de: Google Cloud

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  13. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  14. Habilita la API de Vision:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén más información para otorgar roles.

    gcloud services enable vision.googleapis.com
  15. Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto
    • USER_IDENTIFIER: Es el identificador de tu cuenta de usuario. Por ejemplo, myemail@example.com.
    • ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.

Crea una solicitud de anotación de imagen

Después de completar los pasos de la sección Antes de comenzar, puedes usar la API de Vision para anotar un archivo de imagen.

En este ejemplo, se usa curl para enviar una solicitud a la API de Vision mediante la siguiente imagen:

URI de Cloud Storage

gs://cloud-samples-data/vision/using_curl/shanghai.jpeg

URL HTTPS:

https://console.cloud.google.com/storage/browser/cloud-samples-data/vision/using_curl/shanghai.jpeg

Imagen de una calle en Shanghái
Crédito de la imagen: Steve Long en Unsplash.

Crea el JSON de la solicitud

En el siguiente archivo request.json, se muestra cómo solicitar tres características de images:annotate y limitar los resultados en la respuesta.

Crea el archivo de solicitud JSON con el siguiente texto y guárdalo como un archivo de texto sin formato request.json en tu directorio de trabajo:

request.json

{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "gs://cloud-samples-data/vision/using_curl/shanghai.jpeg"
        }
      },
      "features": [
        {
          "type": "LABEL_DETECTION",
          "maxResults": 3
        },
        {
          "type": "OBJECT_LOCALIZATION",
          "maxResults": 1
        },
        {
          "type": "TEXT_DETECTION",
          "maxResults": 1,
          "model": "builtin/latest"
        }
      ]
    }
  ]
}

Envía la solicitud

Puedes usar curl y el contenido del cuerpo de request.json para enviar la solicitud a la API de Vision. Ingresa lo siguiente en la línea de comandos:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "x-goog-user-project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://vision.googleapis.com/v1/images:annotate -d @request.json

Interpreta la respuesta

Deberías ver una respuesta JSON similar a la que se muestra a continuación.

En el cuerpo JSON de la solicitud se especificó maxResults para cada tipo de anotación. Por lo tanto, en la respuesta JSON verás lo que se muestra a continuación:

Resultados de detección de etiquetas

  1. descripción: “Personas” (People), puntaje: 0.950
  2. descripción: “Calle” (Street), puntaje: 0.891
  3. descripción: “Modo de transporte” (Mode of transport), puntaje: 0.890
Imagen de una calle en Shanghái que contiene resultados de detección de etiquetas.
Crédito de la imagen: Steve Long en Unsplash (anotaciones agregadas).

Resultados de detección de texto

  • texto: 牛牛面馆\n
  • vértices: (x: 159, y: 212), (x: 947, y: 212), (x: 947, y: 354), (x: 159, y: 354)
Imagen de una calle en Shanghái que contiene resultados de detección de texto.
Crédito de la imagen: Steve Long en Unsplash (anotaciones agregadas).

Resultados de detección de objetos

  • nombre: “Persona” (Person), puntuación: 0.944
  • vértices normalizados: (x: 0.260, y: 0.468), (x: 0.407, y: 0.468), (x: 0.407, y: 0.895), (x: 0.260, y: 0.895)
Imagen de una calle en Shanghái que contiene resultados de detección de objetos.
Crédito de la imagen: Steve Long en Unsplash (anotaciones agregadas).

¡Felicitaciones! Enviaste tu primera solicitud a la API de Vision.

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página, borra el Google Cloud proyecto de que tiene los recursos.

Opcional: Revoca credenciales desde gcloud CLI.

gcloud auth revoke

¿Qué sigue?

  • Ve una lista de todos los tipos de funciones y sus usos.
  • Comienza a usar la API de Vision en el idioma que prefieras mediante una biblioteca cliente de esta API.
  • Usa las guías prácticas para obtener más información sobre funciones específicas, ver ejemplos de anotaciones y obtener anotaciones para un archivo o una imagen individuales.
  • Obtén más información sobre la anotación por lotes para imágenes y archivos (PDF, TIFF y GIF).
  • Explora una lista completa de las muestras de código de la biblioteca cliente.