A deteção de texto realiza o reconhecimento ótico de carateres (OCR), que deteta e extrai texto de um vídeo de entrada.
A deteção de texto está disponível para todos os idiomas suportados pela Cloud Vision API.
Peça a deteção de texto para um vídeo no Cloud Storage
Os seguintes exemplos demonstram a deteção de texto num ficheiro localizado no Cloud Storage.
REST
Envie uma solicitação de anotação de vídeo
O exemplo seguinte mostra como enviar um pedido POST para o método videos:annotate. O exemplo usa a Google Cloud CLI para criar um token de acesso. Para ver instruções sobre a instalação da CLI gcloud, consulte o
guia de início rápido da Video Intelligence API.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- INPUT_URI: um contentor do Cloud Storage que contém o ficheiro que quer anotar, incluindo o nome do ficheiro. Tem de
começar com
gs://.
Por exemplo:"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4", - LANGUAGE_CODE: [Opcional] Por exemplo, "en-US"
- 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": "INPUT_URI",
"features": ["TEXT_DETECTION"],
"videoContext": {
"textDetectionConfig": {
"languageHints": ["LANGUAGE_CODE"]
}
}
}
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 a resposta for bem-sucedida, a Video Intelligence API devolve o name para a 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.
- PROJECT_NUMBER: o número do seu projeto
- LOCATION_ID: a região da nuvem onde a anotação deve ocorrer. As regiões da nuvem suportadas são:
us-east1,us-west1,europe-west1easia-east1. Se não for especificada nenhuma região, é determinada uma região com base na localização do ficheiro de vídeo. - OPERATION_ID: o ID da operação de longa duração criada
para o pedido e fornecido na resposta quando iniciou a
operação, por exemplo,
12345...
Obtenha resultados de anotações
Para obter o resultado da operação, faça um pedido GET com 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:
"textAnnotations": [
{
"text": "Hair Salon",
"segments": [
{
"segment": {
"startTimeOffset": "0.833333s",
"endTimeOffset": "2.291666s"
},
"confidence": 0.99438506,
"frames": [
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.7015625,
"y": 0.59583336
},
{
"x": 0.7984375,
"y": 0.59583336
},
{
"x": 0.7984375,
"y": 0.64166665
},
{
"x": 0.7015625,
"y": 0.64166665
}
]
},
"timeOffset": "0.833333s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6333333
},
{
"x": 0.70234376,
"y": 0.6333333
}
]
},
"timeOffset": "1.041666s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6333333
},
{
"x": 0.70234376,
"y": 0.6333333
}
]
},
"timeOffset": "1.250s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6319444
},
{
"x": 0.70234376,
"y": 0.6319444
}
]
},
"timeOffset": "1.458333s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6333333
},
{
"x": 0.70234376,
"y": 0.6333333
}
]
},
"timeOffset": "1.666666s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6333333
},
{
"x": 0.70234376,
"y": 0.6333333
}
]
},
"timeOffset": "1.875s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6333333
},
{
"x": 0.70234376,
"y": 0.6333333
}
]
},
"timeOffset": "2.083333s"
},
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.70234376,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6
},
{
"x": 0.7992188,
"y": 0.6333333
},
{
"x": 0.70234376,
"y": 0.6333333
}
]
},
"timeOffset": "2.291666s"
}
]
}
]
},
{
"text": "\"Sure, give me one second.\"",
"segments": [
{
"segment": {
"startTimeOffset": "10.625s",
"endTimeOffset": "13.333333s"
},
"confidence": 0.98716676,
"frames": [
{
"rotatedBoundingBox": {
"vertices": [
{
"x": 0.60859376,
"y": 0.59583336
},
{
"x": 0.8952959,
"y": 0.5903528
},
{
"x": 0.89560676,
"y": 0.6417387
},
{
"x": 0.60890454,
"y": 0.64721924
}
]
},
"timeOffset": "10.625s"
},
...
]
}
Nota: o campo done só é devolvido quando o respetivo valor é True.
Não está incluído nas respostas para as quais a operação não foi concluída.
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
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.
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
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.
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 a deteção de texto para vídeo a partir de um ficheiro local
Os exemplos seguintes demonstram a deteção de texto num ficheiro armazenado localmente.
REST
Envie uma solicitação de anotação de vídeo
Para fazer anotações num ficheiro de vídeo local, certifique-se de que codifica 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 Google Cloud CLI para criar um token de acesso.
Para obter instruções sobre a instalação da CLI Google Cloud, consulte o
guia de início rápido da Video Intelligence API
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- "inputContent": BASE64_ENCODED_CONTENT
Por exemplo:
"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- LANGUAGE_CODE: [Opcional] Por exemplo, "en-US"
- 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": ["TEXT_DETECTION"],
"videoContext": {
"textDetectionConfig": {
"languageHints": ["LANGUAGE_CODE"]
}
}
}
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 a resposta for bem-sucedida, a Video Intelligence API devolve o name da sua operação. O exemplo acima mostra uma resposta deste tipo, em que project-number é o nome do seu projeto e operation-id é o ID da operação de longa duração criada para o pedido.
- OPERATION_ID: fornecido na resposta quando iniciou a operação, por exemplo,
12345...
Obtenha resultados de anotações
Para obter o resultado da operação, faça um pedido GET com 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:
- 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:
As anotações de deteção de texto são devolvidas como uma lista textAnnotations.
Nota: o campo done só é devolvido quando o respetivo valor é True.
Não está incluído nas respostas para as quais a operação não foi concluída.
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.