A API 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, a posição dele e 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. Com o Cloud Translation, é possível traduzir rótulos em inglês para vários outros idiomas.
Por exemplo, a API retorna as seguintes informações e dados de local delimitadoras para os objetos na imagem anterior:
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 mais informações sobre como inspecionar valores mid, consulte a documentação da API de pesquisa do Mapa de informações do Google
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho da API Cloud Vision em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
Teste a API Cloud Vision sem custos financeiros.Solicitações de localização de objetos
Configurar o projeto do Google Cloud e a autenticação
Se você ainda não criou um projeto do Google Cloud , faça isso agora. Expanda esta seção para instruções.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vision API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vision API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
- BASE64_ENCODED_IMAGE: a representação Base64 (string ASCII) dos dados da imagem binária. A string precisa ser semelhante à seguinte:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- RESULTS_INT: (opcional) um valor inteiro de resultados a serem retornados. Se você omitir o campo
"maxResults"
e o valor dele, a API vai retornar o valor padrão de 10 resultados. Esse campo não se aplica aos seguintes tipos de recursos:TEXT_DETECTION
,DOCUMENT_TEXT_DETECTION
ouCROP_HINTS
. - PROJECT_ID: o ID do projeto do Google Cloud .
- CLOUD_STORAGE_IMAGE_URI: o caminho para um arquivo de imagem válido em um bucket do Cloud Storage. Você precisa ter, pelo menos, privilégios de leitura para o arquivo.
Exemplo:
https://cloud.google.com/vision/docs/images/bicycle_example.png
- RESULTS_INT: (opcional) um valor inteiro de resultados a serem retornados. Se você omitir o campo
"maxResults"
e o valor dele, a API vai retornar o valor padrão de 10 resultados. Esse campo não se aplica aos seguintes tipos de recursos:TEXT_DETECTION
,DOCUMENT_TEXT_DETECTION
ouCROP_HINTS
. - PROJECT_ID: o ID do projeto do Google Cloud .
Detectar objetos em uma imagem local
Use a API Vision para detectar atributos em um arquivo de imagem local.
Para solicitações REST, envie o conteúdo do arquivo de imagem como uma string codificada em base64 no corpo da solicitação.
Para solicitações gcloud
e da biblioteca de cliente, especifique o caminho para uma imagem local na
sua solicitação.
REST
Antes de usar os dados da solicitação, faça as seguintes substituições:
Método HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON da solicitação:
{ "requests": [ { "image": { "content": "BASE64_ENCODED_IMAGE" }, "features": [ { "maxResults": RESULTS_INT, "type": "OBJECT_LOCALIZATION" }, ] } ] }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando abaixo:
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" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK
e a resposta no formato JSON.
Resposta:
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 } ] } } ] } ] }
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionGo.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
// localizeObjects gets objects and bounding boxes from the Vision API for an image at the given file path.
func localizeObjects(w io.Writer, file string) error {
ctx := context.Background()
client, err := vision.NewImageAnnotatorClient(ctx)
if err != nil {
return err
}
f, err := os.Open(file)
if err != nil {
return err
}
defer f.Close()
image, err := vision.NewImageFromReader(f)
if err != nil {
return err
}
annotations, err := client.LocalizeObjects(ctx, image, nil)
if err != nil {
return err
}
if len(annotations) == 0 {
fmt.Fprintln(w, "No objects found.")
return nil
}
fmt.Fprintln(w, "Objects:")
for _, annotation := range annotations {
fmt.Fprintln(w, annotation.Name)
fmt.Fprintln(w, annotation.Score)
for _, v := range annotation.BoundingPoly.NormalizedVertices {
fmt.Fprintf(w, "(%f,%f)\n", v.X, v.Y)
}
}
return nil
}
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.
/**
* Detects localized objects in the specified local image.
*
* @param filePath The path to the file to perform localized object detection on.
* @throws Exception on errors while closing the client.
* @throws IOException on Input/Output errors.
*/
public static void detectLocalizedObjects(String filePath) throws IOException {
List<AnnotateImageRequest> requests = new ArrayList<>();
ByteString imgBytes = ByteString.readFrom(new FileInputStream(filePath));
Image img = Image.newBuilder().setContent(imgBytes).build();
AnnotateImageRequest request =
AnnotateImageRequest.newBuilder()
.addFeatures(Feature.newBuilder().setType(Type.OBJECT_LOCALIZATION))
.setImage(img)
.build();
requests.add(request);
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {
// Perform the request
BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);
List<AnnotateImageResponse> responses = response.getResponsesList();
// Display the results
for (AnnotateImageResponse res : responses) {
for (LocalizedObjectAnnotation entity : res.getLocalizedObjectAnnotationsList()) {
System.out.format("Object name: %s%n", entity.getName());
System.out.format("Confidence: %s%n", entity.getScore());
System.out.format("Normalized Vertices:%n");
entity
.getBoundingPoly()
.getNormalizedVerticesList()
.forEach(vertex -> System.out.format("- (%s, %s)%n", vertex.getX(), vertex.getY()));
}
}
}
}
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionNode.js.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
// Imports the Google Cloud client libraries
const vision = require('@google-cloud/vision');
const fs = require('fs');
// Creates a client
const client = new vision.ImageAnnotatorClient();
/**
* TODO(developer): Uncomment the following line before running the sample.
*/
// const fileName = `/path/to/localImage.png`;
const request = {
image: {content: fs.readFileSync(fileName)},
};
const [result] = await client.objectLocalization(request);
const objects = result.localizedObjectAnnotations;
objects.forEach(object => {
console.log(`Name: ${object.name}`);
console.log(`Confidence: ${object.score}`);
const vertices = object.boundingPoly.normalizedVertices;
vertices.forEach(v => console.log(`x: ${v.x}, y:${v.y}`));
});
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionPython.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
def localize_objects(path):
"""Localize objects in the local image.
Args:
path: The path to the local file.
"""
from google.cloud import vision
client = vision.ImageAnnotatorClient()
with open(path, "rb") as image_file:
content = image_file.read()
image = vision.Image(content=content)
objects = client.object_localization(image=image).localized_object_annotations
print(f"Number of objects found: {len(objects)}")
for object_ in objects:
print(f"\n{object_.name} (confidence: {object_.score})")
print("Normalized bounding polygon vertices: ")
for vertex in object_.bounding_poly.normalized_vertices:
print(f" - ({vertex.x}, {vertex.y})")
Outras linguagens
C#: siga as instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência do Vision para .NET.
PHP: siga as instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência do Vision para PHP.
Ruby Siga estas instruções:Instruções de configuração do Ruby na página das bibliotecas de cliente e, em seguida, visite oDocumentação de referência do Vision para Ruby.
Detectar objetos em uma imagem remota
É possível usar a API Vision para realizar a detecção de recursos em um arquivo de imagem remoto localizado no Cloud Storage ou na Web. Para enviar uma solicitação de arquivo remoto, especifique o URL da Web do arquivo ou o URI do Cloud Storage no corpo da solicitação.
REST
Antes de usar os dados da solicitação, faça as seguintes substituições:
Método HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON da solicitação:
{ "requests": [ { "image": { "source": { "imageUri": "CLOUD_STORAGE_IMAGE_URI" } }, "features": [ { "maxResults": RESULTS_INT, "type": "OBJECT_LOCALIZATION" }, ] } ] }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando abaixo:
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" \
-d @request.json \
"https://vision.googleapis.com/v1/images:annotate"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK
e a resposta no formato JSON.
Resposta:
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 } ] } } ] } ] }
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionGo.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
// localizeObjects gets objects and bounding boxes from the Vision API for an image at the given file path.
func localizeObjectsURI(w io.Writer, file string) error {
ctx := context.Background()
client, err := vision.NewImageAnnotatorClient(ctx)
if err != nil {
return err
}
image := vision.NewImageFromURI(file)
annotations, err := client.LocalizeObjects(ctx, image, nil)
if err != nil {
return err
}
if len(annotations) == 0 {
fmt.Fprintln(w, "No objects found.")
return nil
}
fmt.Fprintln(w, "Objects:")
for _, annotation := range annotations {
fmt.Fprintln(w, annotation.Name)
fmt.Fprintln(w, annotation.Score)
for _, v := range annotation.BoundingPoly.NormalizedVertices {
fmt.Fprintf(w, "(%f,%f)\n", v.X, v.Y)
}
}
return nil
}
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.
/**
* Detects localized objects in a remote image on Google Cloud Storage.
*
* @param gcsPath The path to the remote file on Google Cloud Storage to detect localized objects
* on.
* @throws Exception on errors while closing the client.
* @throws IOException on Input/Output errors.
*/
public static void detectLocalizedObjectsGcs(String gcsPath) throws IOException {
List<AnnotateImageRequest> requests = new ArrayList<>();
ImageSource imgSource = ImageSource.newBuilder().setGcsImageUri(gcsPath).build();
Image img = Image.newBuilder().setSource(imgSource).build();
AnnotateImageRequest request =
AnnotateImageRequest.newBuilder()
.addFeatures(Feature.newBuilder().setType(Type.OBJECT_LOCALIZATION))
.setImage(img)
.build();
requests.add(request);
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (ImageAnnotatorClient client = ImageAnnotatorClient.create()) {
// Perform the request
BatchAnnotateImagesResponse response = client.batchAnnotateImages(requests);
List<AnnotateImageResponse> responses = response.getResponsesList();
client.close();
// Display the results
for (AnnotateImageResponse res : responses) {
for (LocalizedObjectAnnotation entity : res.getLocalizedObjectAnnotationsList()) {
System.out.format("Object name: %s%n", entity.getName());
System.out.format("Confidence: %s%n", entity.getScore());
System.out.format("Normalized Vertices:%n");
entity
.getBoundingPoly()
.getNormalizedVerticesList()
.forEach(vertex -> System.out.format("- (%s, %s)%n", vertex.getX(), vertex.getY()));
}
}
}
}
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionNode.js.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
// Imports the Google Cloud client libraries
const vision = require('@google-cloud/vision');
// Creates a client
const client = new vision.ImageAnnotatorClient();
/**
* TODO(developer): Uncomment the following line before running the sample.
*/
// const gcsUri = `gs://bucket/bucketImage.png`;
const [result] = await client.objectLocalization(gcsUri);
const objects = result.localizedObjectAnnotations;
objects.forEach(object => {
console.log(`Name: ${object.name}`);
console.log(`Confidence: ${object.score}`);
const veritices = object.boundingPoly.normalizedVertices;
veritices.forEach(v => console.log(`x: ${v.x}, y:${v.y}`));
});
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API VisionPython.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
def localize_objects_uri(uri):
"""Localize objects in the image on Google Cloud Storage
Args:
uri: The path to the file in Google Cloud Storage (gs://...)
"""
from google.cloud import vision
client = vision.ImageAnnotatorClient()
image = vision.Image()
image.source.image_uri = uri
objects = client.object_localization(image=image).localized_object_annotations
print(f"Number of objects found: {len(objects)}")
for object_ in objects:
print(f"\n{object_.name} (confidence: {object_.score})")
print("Normalized bounding polygon vertices: ")
for vertex in object_.bounding_poly.normalized_vertices:
print(f" - ({vertex.x}, {vertex.y})")
gcloud
Para detectar rótulos em uma imagem, use o comando gcloud ml vision detect-objects
, como mostrado no exemplo a seguir:
gcloud ml vision detect-objects https://cloud.google.com/vision/docs/images/bicycle_example.png
Outras linguagens
C#: siga as instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência do Vision para .NET.
PHP: siga as instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência do Vision para PHP.
Ruby: siga as instruções de configuração do Ruby na página das bibliotecas de cliente e visite adocumentação de referência do Vision para Ruby.
Testar
Tente detectar e localizar objetos com a ferramenta a seguir. É possível usar a imagem já especificada (https://cloud.google.com/vision/docs/images/bicycle_example.png
) ou determinar sua própria imagem. Envie a solicitação selecionando Executar.
Corpo da solicitação:
{ "requests": [ { "features": [ { "maxResults": 10, "type": "OBJECT_LOCALIZATION" } ], "image": { "source": { "imageUri": "https://cloud.google.com/vision/docs/images/bicycle_example.png" } } } ] }