O rastreamento de objetos acompanha objetos detectados em um vídeo de entrada. Para fazer uma solicitação de rastreamento de objetos, chame o método annotate
e especifique OBJECT_TRACKING
no campo features
.
Uma solicitação de rastreamento de objeto anota o vídeo com os rótulos apropriados de entidades e locais espaciais detectados em um vídeo ou segmentos de vídeo. Por exemplo, um vídeo de veículos atravessando um sinal de trânsito pode produzir rótulos como "carro", "caminhão", "bicicleta", "pneus", "luzes", "janela" e assim por diante. Cada rótulo pode incluir uma série de caixas delimitadoras, com cada caixa delimitadora tendo um segmento de tempo associado que contém uma diferença de horário que indica a diferença de duração desde o início do vídeo. A anotação também contém outras informações da entidade, inclusive um ID da entidade que pode ser usado para saber mais sobre a entidade na API Google Knowledge Graph Search (em inglês).
Rastreamento de objetos vs. detecção de rótulos
O rastreamento de objetos é diferente da detecção de rótulos, pois a detecção de rótulos fornece rótulos sem caixas delimitadoras, enquanto o rastreamento de objetos fornece os rótulos de objetos individuais presentes em um determinado vídeo junto de caixas delimitadoras de cada instância de objeto a cada etapa.
Várias instâncias do mesmo tipo de objeto são atribuídas a diferentes instâncias da mensagem ObjectTrackingAnnotation
, em que todas as ocorrências de uma determinada faixa de objeto são mantidas na própria instância de ObjectTrackingAnnotation
. Por exemplo, se houver um carro vermelho e um carro azul por cinco segundos em um vídeo, a solicitação de rastreamento retornará duas instâncias de ObjectTrackingAnnotation
. A primeira instância conterá
a localização de um dos dois carros, por exemplo, o carro vermelho, enquanto a
segunda conterá os locais do outro.
Solicitar rastreamento de objetos para um vídeo no Cloud Storage
As amostras a seguir demonstram o rastreamento de objetos em um arquivo localizado no Cloud Storage.
REST
Enviar a solicitação de processo
Veja a seguir como enviar uma solicitação POST
para o método annotate
.
O exemplo usa o token de acesso de uma conta de serviço configurada para o projeto
usando a Google Cloud CLI. Para instruções sobre como instalar a CLI do Google Cloud,
configurar um projeto com uma conta de serviço
e receber um token de acesso, consulte o
Guia de início rápido da Video Intelligence.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- INPUT_URI: STORAGE_URI
Por exemplo:
"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: o identificador numérico do seu projeto do Google Cloud
Método HTTP e URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
Corpo JSON da solicitação:
{ "inputUri": "STORAGE_URI", "features": ["OBJECT_TRACKING"] }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Se a solicitação for bem-sucedida, a API Video Intelligence retornará o name
da sua operação. O exemplo acima mostra um exemplo dessa resposta, em que PROJECT_NUMBER
é o número do projeto e OPERATION_ID
é o ID da operação de longa duração criado para a solicitação.
Ver os resultados
Para receber os resultados da solicitação, envie um GET
usando o nome da operação retornado da chamada para videos:annotate
, conforme mostrado no exemplo a seguir.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- OPERATION_NAME: o nome da operação, conforme retornado 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 projeto do Google Cloud
Método HTTP e URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Fazer o download dos resultados da anotação
Copie a anotação da origem e a cole no bucket de destino: consulte Copiar arquivos e objetos
gcloud storage cp gcs_uri gs://my-bucket
Observação: se o URI de saída do GCS for fornecido pelo usuário, a anotação será armazenada nesse URI.
Go
Java
Node.js
Para autenticar no Video Intelligence, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
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 Video Intelligence 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 Video Intelligence para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página de bibliotecas de cliente e acesse a Documentação de referência do Video Intelligence para Ruby.
Solicitar rastreamento de objetos para vídeo de um arquivo local
As amostras a seguir demonstram o rastreamento de objetos em um arquivo armazenado localmente.
REST
Enviar a solicitação de processo
Para realizar a anotação em um arquivo de vídeo local, codifique em base64 o conteúdo do arquivo de vídeo.
Inclua o conteúdo codificado em base64 no campo inputContent
da solicitação.
Para informações sobre como codificar o conteúdo de um arquivo de vídeo em base64, consulte Codificação em Base64.
Veja a seguir como enviar uma solicitação POST
para o método videos:annotate
. O exemplo usa o token de acesso para
uma conta de serviço configurada para o projeto usando a Google Cloud CLI. Para
instruções sobre como instalar a Google Cloud CLI, configurar um projeto com um serviço
conta e obter um token de acesso, consulte a
Guia de início rápido do Video Intelligence.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- inputContent: BASE64_ENCODED_CONTENT
Por exemplo:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: o identificador numérico do projeto do Google Cloud
Método HTTP e URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
Corpo JSON da solicitação:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["OBJECT_TRACKING"] }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Se a solicitação for bem-sucedida, a Video Intelligence retornará o name
para sua operação. Veja a seguir um exemplo dessa resposta, em que PROJECT_NUMBER
é o número do projeto e OPERATION_ID
é o ID da operação de longa duração criada para a solicitação.
Ver os resultados
Para receber os resultados da solicitação, envie um GET
usando o nome da operação retornado da chamada para videos:annotate
, conforme mostrado no exemplo a seguir.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- OPERATION_NAME: o nome da operação, conforme retornado 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 projeto do Google Cloud
Método HTTP e URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Go
Java
Node.js
Para autenticar no Video Intelligence, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Outras linguagens
C#: Siga as Instruções de configuração do C# na página de bibliotecas de cliente e acesse a Documentação de referência do Video Intelligence para .NET.
PHP Siga as Instruções de configuração para PHP na página de bibliotecas de cliente e acesse a Documentação de referência do Video Intelligence para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência do Video Intelligence para Ruby.