A funcionalidade de seguimento de objetos segue objetos detetados num vídeo de entrada. Para fazer um pedido de acompanhamento de objetos, chame o método annotate
e especifique OBJECT_TRACKING
no campo features
.
Para entidades e localizações espaciais detetadas num vídeo ou em segmentos de vídeo, um pedido de acompanhamento de objetos anota o vídeo com as etiquetas adequadas para estas entidades e localizações espaciais. Por exemplo, um vídeo de veículos a atravessar um sinal de trânsito pode gerar etiquetas como "carro", "camião", "bicicleta", "pneus", "luzes", "janela" e assim sucessivamente. Cada etiqueta pode incluir uma série de caixas delimitadoras, com cada caixa delimitadora a ter um segmento de tempo associado que contém um desvio de tempo que indica o desvio de duração desde o início do vídeo. A anotação também contém informações adicionais sobre a entidade, incluindo um ID da entidade que pode usar para encontrar mais informações sobre a entidade na API Google Knowledge Graph Search.
Acompanhamento de objetos vs. deteção de etiquetas
A monitorização de objetos difere da deteção de etiquetas. A deteção de etiquetas fornece etiquetas sem caixas delimitadoras, enquanto a monitorização de objetos fornece as etiquetas dos objetos individuais presentes num determinado vídeo, juntamente com a caixa delimitadora de cada instância de objeto em cada passo de tempo.
São atribuídas várias instâncias do mesmo tipo de objeto a diferentes instâncias da mensagem ObjectTrackingAnnotation
, onde todas as ocorrências de uma determinada faixa de objeto são mantidas na respetiva instância de ObjectTrackingAnnotation
. Por exemplo, se houver um carro vermelho e um carro azul a aparecer durante 5 segundos num vídeo, o pedido de acompanhamento deve devolver duas instâncias de ObjectTrackingAnnotation
. A primeira instância vai conter as localizações de um dos dois carros, por exemplo, o carro vermelho, enquanto a segunda vai conter as localizações do outro carro.
Peça o acompanhamento de objetos para um vídeo no Cloud Storage
Os exemplos seguintes demonstram a monitorização de objetos num ficheiro localizado no Cloud Storage.
REST
Envie o pedido de processamento
O exemplo seguinte mostra como enviar um pedido POST
para o método annotate
.
O exemplo usa o token de acesso para uma conta de serviço configurada para o projeto
com a CLI do Google Cloud. Para ver instruções sobre como instalar a Google Cloud CLI, configurar um projeto com uma conta de serviço e obter um token de acesso, consulte o início rápido do Video Intelligence.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- INPUT_URI: STORAGE_URI
Por exemplo:
"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: o identificador numérico do seu Google Cloud projeto
Método HTTP e URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
Corpo JSON do pedido:
{ "inputUri": "STORAGE_URI", "features": ["OBJECT_TRACKING"] }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Se o pedido for bem-sucedido, a Video Intelligence API devolve o name
da sua operação. O exemplo acima mostra uma resposta deste tipo, em que PROJECT_NUMBER
é o número do seu projeto e OPERATION_ID
é o ID da operação de longa duração criada para o pedido.
Obtenha os resultados
Para obter os resultados do seu pedido, envie um GET
, usando o nome da operação devolvido da chamada para videos:annotate
, conforme mostrado no exemplo seguinte.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- OPERATION_NAME: o nome da operação, conforme devolvido pela API Video Intelligence. O nome da operação tem o formato
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
- PROJECT_NUMBER: o identificador numérico do seu Google Cloud projeto
Método HTTP e URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Transfira os resultados das anotações
Copie a anotação da origem para o contentor de destino: (consulte o artigo Copie ficheiros e objetos)
gcloud storage cp gcs_uri gs://my-bucket
Nota: se o URI do GCS de saída for fornecido pelo utilizador, a anotação é armazenada nesse URI do GCS.
Go
Java
Node.js
Para se autenticar no Video Intelligence, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Idiomas adicionais
C#: Siga as instruções de configuração do C# na página das bibliotecas cliente e, em seguida, visite a documentação de referência da Video Intelligence API para .NET.
PHP: Siga as instruções de configuração do PHP na página das bibliotecas cliente e, em seguida, visite a documentação de referência da Video Intelligence API para PHP.
Ruby: Siga as instruções de configuração do Ruby na página das bibliotecas cliente e, em seguida, visite a documentação de referência da Video Intelligence API para Ruby.
Peça o acompanhamento de objetos para vídeo a partir de um ficheiro local
Os seguintes exemplos demonstram a deteção de objetos num ficheiro armazenado localmente.
REST
Envie o pedido de processamento
Para fazer anotações num ficheiro de vídeo local, codifique em base64 o conteúdo do ficheiro de vídeo.
Inclua o conteúdo codificado em base64 no campo inputContent
do pedido.
Para obter informações sobre como codificar em base64 o conteúdo de um ficheiro de vídeo, consulte o artigo
Codificação base64.
O exemplo seguinte mostra como enviar um pedido POST
para o método videos:annotate
. O exemplo usa a chave de acesso para uma conta de serviço configurada para o projeto através da CLI do Google Cloud. Para ver instruções sobre como instalar a CLI Google Cloud, configurar um projeto com uma conta de serviço e obter um token de acesso, consulte o início rápido do Video Intelligence.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- inputContent: BASE64_ENCODED_CONTENT
Por exemplo:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: o identificador numérico do seu Google Cloud projeto
Método HTTP e URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
Corpo JSON do pedido:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["OBJECT_TRACKING"] }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Se o pedido for bem-sucedido, o Video Intelligence devolve o name
para a sua operação. O exemplo seguinte mostra uma resposta deste tipo, em que PROJECT_NUMBER
é o número do seu projeto e OPERATION_ID
é o ID da operação de longa duração criada para o pedido.
Obtenha os resultados
Para receber os resultados do seu pedido, tem de enviar um GET
, usando o nome da operação devolvido da chamada para videos:annotate
, conforme mostrado no exemplo seguinte.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- OPERATION_NAME: o nome da operação, conforme devolvido pela API Video Intelligence. O nome da operação tem o formato
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
- PROJECT_NUMBER: o identificador numérico do seu Google Cloud projeto
Método HTTP e URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
Go
Java
Node.js
Para se autenticar no Video Intelligence, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Idiomas adicionais
C#: Siga as instruções de configuração do C# na página das bibliotecas cliente e, em seguida, visite a documentação de referência da Video Intelligence API para .NET.
PHP: Siga as instruções de configuração do PHP na página das bibliotecas cliente e, em seguida, visite a documentação de referência da Video Intelligence API para PHP.
Ruby: Siga as instruções de configuração do Ruby na página das bibliotecas cliente e, em seguida, visite a documentação de referência da Video Intelligence API para Ruby.