Detecta varios objetos

La API de Cloud Vision permite detectar y extraer varios objetos en una imagen con la ubicación de objetos.

La ubicación de objetos permite identificar varios objetos en una imagen y proporciona una LocalizedObjectAnnotation para cada objeto en ella. Cada LocalizedObjectAnnotation identifica la información sobre el objeto, su posición y los límites rectangulares para la región de la imagen que contiene el objeto.

La ubicación de objetos identifica objetos importantes y menos destacados en una imagen.

La información del objeto se muestra solo en inglés. Cloud Translation puede traducir etiquetas en inglés en muchos otros idiomas.

Imagen de muestra

Por ejemplo, la API puede mostrar la siguiente información y limitar los datos de la ubicación para los objetos en la imagen anterior:

Nombre mid Puntuación Límites
Rueda de bicicleta /m/01bqk0 0.89648587 (0.32076266, 0.78941387), (0.43812272, 0.78941387), (0.43812272, 0.97331065), (0.32076266, 0.97331065)
Bicicleta /m/0199g 0.886761 (0.312, 0.6616471), (0.638353, 0.6616471), (0.638353, 0.9705882), (0.312, 0.9705882)
Rueda de bicicleta /m/01bqk0 0.6345275 (0.5125398, 0.760708), (0.6256646, 0.760708), (0.6256646, 0.94601655), (0.5125398, 0.94601655)
Marco de fotos /m/06z37_ 0.6207608 (0.79177403, 0.16160682), (0.97047985, 0.16160682), (0.97047985, 0.31348917), (0.79177403, 0.31348917)
Neumático /m/0h9mv 0.55886006 (0.32076266, 0.78941387), (0.43812272, 0.78941387), (0.43812272, 0.97331065), (0.32076266, 0.97331065)
Puerta /m/02dgv 0.5160098 (0.77569866, 0.37104446), (0.9412425, 0.37104446), (0.9412425, 0.81507325), (0.77569866, 0.81507325)

mid contiene un identificador generado por una máquina (MID) que corresponde a la entrada Grafo de conocimiento de Google de una etiqueta. Para obtener más información sobre la inspección de valores de mid, consulta la documentación API de búsqueda del Grafo de conocimiento de Google.

Muestras de código

Para obtener muestras en varios lenguajes de programación, consulta:

Solicitudes de ubicación de objetos

Configura tu proyecto de GCP y la autenticación

Ubicación de objetos

PowerShell

Para realizar una solicitud de detección de etiquetas con Windows PowerShell, envía una solicitud de POST al extremo https://vision.googleapis.com/v1/images:annotate y especifica OBJECT_LOCALIZATION como el valor de features.type.

Las imágenes se pueden pasar de una de dos maneras: como un URI de Google Cloud Storage; como un HTTPS de acceso público o una URL HTTP. Consulta Realiza solicitudes para obtener más información.

Consulta la documentación de referencia de AnnotateImageRequest para obtener más información sobre cómo configurar el cuerpo de la solicitud.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'requests': [
        {
          'image': {
            'source': {
              'imageUri': 'https://cloud.google.com/vision/docs/images/bicycle_example.png'
            }
          },
          'features': [
            {
              'type': 'OBJECT_LOCALIZATION'
            }
          ]
        }
      ]
    }" `
  -Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content

Comando curl

Para realizar una solicitud de detección y localización de objetos, envía una solicitud POST al siguiente extremo:

POST https://vision.googleapis.com/v1/images:annotate

Especifica OBJECT_LOCALIZATION como el valor de campo de features.type.

Las imágenes se pueden pasar de una de dos maneras: como un URI de Google Cloud Storage; como un HTTPS de acceso público o una URL HTTP. Consulta Realiza solicitudes para obtener más información.

Consulta la documentación de referencia de AnnotateImageRequest para obtener más información sobre cómo configurar el cuerpo de la solicitud.

curl -X POST \
     -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)  \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
      'requests': [
        {
          'image': {
            'source': {
              'imageUri': 'https://cloud.google.com/vision/docs/images/bicycle_example.png'
            }
          },
          'features': [
            {
              'type': 'OBJECT_LOCALIZATION'
            }
          ]
        }
      ]
    }" "https://vision.googleapis.com/v1/images:annotate"

Respuesta de ubicación de objetos

Si la solicitud de ubicación de objetos se realizó de forma correcta, el servidor mostrará un código de estado HTTP 200 OK y la respuesta en formato JSON.

Respuesta:

{
  "responses": [
    {
      "localizedObjectAnnotations": [
        {
          "mid": "/m/01bqk0",
          "name": "Bicycle wheel",
          "score": 0.89648587,
          "boundingPoly": {
            "normalizedVertices": [
              {
                "x": 0.32076266,
                "y": 0.78941387
              },
              {
                "x": 0.43812272,
                "y": 0.78941387
              },
              {
                "x": 0.43812272,
                "y": 0.97331065
              },
              {
                "x": 0.32076266,
                "y": 0.97331065
              }
            ]
          }
        },
        {
          "mid": "/m/0199g",
          "name": "Bicycle",
          "score": 0.886761,
          "boundingPoly": {
            "normalizedVertices": [
              {
                "x": 0.312,
                "y": 0.6616471
              },
              {
                "x": 0.638353,
                "y": 0.6616471
              },
              {
                "x": 0.638353,
                "y": 0.9705882
              },
              {
                "x": 0.312,
                "y": 0.9705882
              }
            ]
          }
        },
        {
          "mid": "/m/01bqk0",
          "name": "Bicycle wheel",
          "score": 0.6345275,
          "boundingPoly": {
            "normalizedVertices": [
              {
                "x": 0.5125398,
                "y": 0.760708
              },
              {
                "x": 0.6256646,
                "y": 0.760708
              },
              {
                "x": 0.6256646,
                "y": 0.94601655
              },
              {
                "x": 0.5125398,
                "y": 0.94601655
              }
            ]
          }
        },
        {
          "mid": "/m/06z37_",
          "name": "Picture frame",
          "score": 0.6207608,
          "boundingPoly": {
            "normalizedVertices": [
              {
                "x": 0.79177403,
                "y": 0.16160682
              },
              {
                "x": 0.97047985,
                "y": 0.16160682
              },
              {
                "x": 0.97047985,
                "y": 0.31348917
              },
              {
                "x": 0.79177403,
                "y": 0.31348917
              }
            ]
          }
        },
        {
          "mid": "/m/0h9mv",
          "name": "Tire",
          "score": 0.55886006,
          "boundingPoly": {
            "normalizedVertices": [
              {
                "x": 0.32076266,
                "y": 0.78941387
              },
              {
                "x": 0.43812272,
                "y": 0.78941387
              },
              {
                "x": 0.43812272,
                "y": 0.97331065
              },
              {
                "x": 0.32076266,
                "y": 0.97331065
              }
            ]
          }
        },
        {
          "mid": "/m/02dgv",
          "name": "Door",
          "score": 0.5160098,
          "boundingPoly": {
            "normalizedVertices": [
              {
                "x": 0.77569866,
                "y": 0.37104446
              },
              {
                "x": 0.9412425,
                "y": 0.37104446
              },
              {
                "x": 0.9412425,
                "y": 0.81507325
              },
              {
                "x": 0.77569866,
                "y": 0.81507325
              }
            ]
          }
        }
      ]
    }
  ]
}