A API Vision detecta qualquer recurso próprios dela mesma em arquivos em PDF e TIFF no Cloud Storage.
A detecção de recursos de PDF e TIFF precisa ser solicitada usando a função files:asyncBatchAnnotate
, que executa uma solicitação off-line (assíncrona) e fornece o status dela usando os recursos operations
.
A saída de uma solicitação em PDF/TIFF é gravada em um arquivo JSON criado no bucket do Cloud Storage especificado.
Limitações
A API do Vision aceita arquivos PDF/TIFF de até 2.000 páginas. Arquivos maiores retornarão um erro.
Autenticação
As chaves de API não são compatíveis com solicitações files:asyncBatchAnnotate
. Consulte
Como usar uma conta de serviço para receber
instruções sobre a autenticação com uma conta de serviço.
A conta usada para autenticação precisa ter acesso ao bucket do Cloud
Storage especificado para a saída (roles/editor
,
roles/storage.objectCreator
ou superior).
É possível usar uma chave de API para consultar o status da operação. Para ver instruções, consulte Como usar uma chave de API.
Solicitações de detecção de recursos
No momento, a detecção de documentos em PDF/TIFF está disponível apenas para arquivos armazenados em buckets do Cloud Storage. Os arquivos JSON de resposta são salvos da mesma forma em um bucket do Cloud Storage.
Linha de comando
Para executar a detecção de texto em documentos PDF/TIFF, faça uma solicitação POST e informe o corpo apropriado:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/files:asyncBatchAnnotate -d "{ 'requests':[ { 'inputConfig': { 'gcsSource': { 'uri': 'gs://your-source-bucket-name/folder/multi-page-file.pdf' }, 'mimeType': 'application/pdf' }, 'features': [ { 'type': 'DOCUMENT_TEXT_DETECTION' } ], 'outputConfig': { 'gcsDestination': { 'uri': 'gs://your-bucket-name/folder/' }, 'batchSize': 1 } } ] }"
Em que:
inputConfig
: substitui o campoimage
usado em outras solicitações da API Vision. Além disso, contém dois campos derivados:gcsSource.uri
: o URI do Cloud Storage do arquivo em PDF ou TIFF (acessível para o usuário ou a conta de serviço que faz a solicitação)mimeType
: um dos tipos de arquivo aceitos (application/pdf
ouimage/tiff
)
outputConfig
: especifica os detalhes de saída. Além disso, contém dois campos derivados:gcsDestination.uri
: um URI válido do Cloud Storage. O bucket precisa poder ser gravado pelo usuário ou pela conta de serviço que faz a solicitação. O nome do arquivo seráoutput-x-to-y
, em quex
ey
representam os números de páginas em PDF/TIFF incluídos nesse arquivo de saída. Se o arquivo existir, o conteúdo dele será sobrescrito.batchSize
: especifica quantas páginas de saída precisam ser incluídas em cada arquivo JSON de saída.
Resposta:
Uma solicitação asyncBatchAnnotate
bem-sucedida retorna uma resposta com um único campo de
nome:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Esse nome representa uma operação de longa duração com um ID associado (por exemplo, 1efec2285bd442df
), que pode ser consultado usando a API v1.operations
.
Para recuperar sua resposta de anotação da Vision, envie uma solicitação GET para o endpoint v1.operations
, passando o ID da operação no URL.
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/operations/1efec2285bd442df
Se a operação estiver em andamento:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Quando a operação for concluída, o state
será exibido como DONE
e seus resultados serão gravados no arquivo do Cloud Storage especificado:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
O JSON no arquivo de saída é semelhante ao da solicitação de detecção de texto do documento da imagem, com a adição de um campo context
que mostra o local do PDF ou TIFF especificado e o número de páginas no arquivo:
output-1-to-1.json
Go
Antes de testar esta amostra, 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.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java 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 VisionJava.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, 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.
Python
Antes de testar esta amostra, 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.
gcloud
O comando gcloud
que você usa depende do tipo de arquivo.
Para realizar a detecção de texto em PDF, use o comando
gcloud ml vision detect-text-pdf
como mostrado no exemplo a seguir:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Para executar a detecção de texto em TIFF, use o comando
gcloud ml vision detect-text-tiff
como mostrado no exemplo a seguir:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
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.