Detectar vários objetos

A API do Cloud Vision pode detectar e extrair vários objetos de uma imagem com a localização de objetos.

A localização de objetos identifica vários itens em uma imagem e fornece um LocalizedObjectAnnotation para cada um deles. Cada LocalizedObjectAnnotation identifica informações sobre o objeto, como a posição e os limites retangulares para a região da imagem que o contém.

Ela também identifica objetos significativos e menos proeminentes em uma imagem.

A informação do objeto é retornada apenas em inglês. Esses rótulos podem ser traduzidos com o Cloud Translation para vários idiomas.

Imagem de amostra

Por exemplo, a API pode retornar as seguintes informações e dados de localização delimitadores para os objetos na imagem acima:

Nome mid Pontuação Limites
Roda 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)
Roda de bicicleta /m/01bqk0 0.6345275 (0.5125398, 0.760708), (0.6256646, 0.760708), (0.6256646, 0.94601655), (0.5125398, 0.94601655)
Moldura /m/06z37_ 0.6207608 (0.79177403, 0.16160682), (0.97047985, 0.16160682), (0.97047985, 0.31348917), (0.79177403, 0.31348917)
Pneu /m/0h9mv 0.55886006 (0.32076266, 0.78941387), (0.43812272, 0.78941387), (0.43812272, 0.97331065), (0.32076266, 0.97331065)
Porta /m/02dgv 0.5160098 (0.77569866, 0.37104446), (0.9412425, 0.37104446), (0.9412425, 0.81507325), (0.77569866, 0.81507325)

No mid, há um identificador gerado por máquina (MID, na sigla em inglês), correspondente a uma entrada do Mapa de informações do Google. Para informações sobre como inspecionar valores mid, consulte a documentação da API Google Knowledge Graph Search.

Amostras de código

Para ver amostras em diversas linguagens de programação, consulte:

Solicitações de localização de objetos

Configurar projeto e autenticação do GCP

Localização de objetos

PowerShell

Para fazer uma solicitação de detecção de rótulos usando o Windows Powershell, faça uma solicitação POST para o endpoint https://vision.googleapis.com/v1/images:annotate e especifique OBJECT_LOCALIZATION como valor de features.type.

É possível transmitir as imagens de duas maneiras: como um URI do Google Cloud Storage ou como um URL HTTPS ou HTTP com acesso público. Consulte Como fazer solicitações para saber mais informações.

Para mais informações sobre como configurar o corpo da solicitação, consulte a documentação de referência de AnnotateImageRequest.

$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 fazer uma solicitação de detecção e localização de objetos, faça uma solicitação POST para o endpoint a seguir:

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

Especifique OBJECT_LOCALIZATION como valor do campo features.type.

É possível transmitir as imagens de duas maneiras: como um URI do Google Cloud Storage ou como um URL HTTPS ou HTTP com acesso público. Consulte Como fazer solicitações para saber mais informações.

Para mais informações sobre como configurar o corpo da solicitação, consulte a documentação de referência de AnnotateImageRequest.

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"

Resposta da localização de objetos

Quando a "Localização de objeto" é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON:

Resposta:

{
  "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
              }
            ]
          }
        }
      ]
    }
  ]
}
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação da API Cloud Vision
Precisa de ajuda? Acesse nossa página de suporte.