La API de Vision puede detectar cualquier característica de la API de Vision de archivos PDF y TIFF almacenados en Cloud Storage.
La detección de características desde PDF y TIFF debe solicitarse con la función files:asyncBatchAnnotate
, que realiza una solicitud sin conexión (asíncrona) y proporciona su estado con los recursos operations
.
El resultado de una solicitud de PDF o TIFF se escribe en un archivo JSON que se crea en el bucket de Cloud Storage especificado.
Limitaciones
La API de Vision acepta archivos PDF o TIFF de hasta 2,000 páginas. Los archivos más grandes mostrarán un error.
Autenticación
Las claves de API no son compatibles con las solicitudes files:asyncBatchAnnotate
. Consulta Usa una cuenta de servicio si deseas obtener instrucciones sobre la autenticación con una cuenta de servicio.
La cuenta que se use en la autenticación debe tener acceso al bucket de Cloud Storage que especifiques para la salida (roles/editor
, roles/storage.objectCreator
o uno superior).
Puedes usar una clave de API a fin de consultar el estado de la operación. Consulta Usa una clave de API para obtener instrucciones.
Solicitudes de detección de características
Por el momento, la detección en documentos PDF o TIFF solo está disponible para archivos almacenados en depósitos de Cloud Storage. Los archivos JSON de respuesta se guardan de manera similar en un bucket de Cloud Storage.
Para realizar la detección de texto en documentos PDF o TIFF, envía una solicitud de POST y proporciona el cuerpo de la solicitud correspondiente:
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 } } ] }"
Aquí:
inputConfig
: reemplaza el campoimage
que se usó en otras solicitudes a la API de Vision. Contiene dos campos secundarios:gcsSource.uri
: El URI de Cloud Storage del archivo PDF o TIFF (accesible para el usuario o la cuenta de servicio que realiza la solicitud)mimeType
: Es uno de los tipos de archivo aceptados,application/pdf
oimage/tiff
.
outputConfig
: Especifica los detalles del resultado. Contiene dos campos secundarios:gcsDestination.uri
: Es un URI de Cloud Storage válido. El usuario o la cuenta de servicio que realiza la solicitud debe poder escribir el bucket. El nombre del archivo seráoutput-x-to-y
, en el quex
yy
representan los números de página del archivo PDF o TIFF que se incluyen en ese archivo de salida. Si existe un archivo, se sobrescribirán sus contenidos.batchSize
: Especifica cuántas páginas de resultado se deben incluir en cada archivo JSON de resultado.
Respuesta:
Una solicitud asyncBatchAnnotate
correcta muestra una respuesta con un solo campo de nombre:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Este nombre representa una operación de larga duración con un ID asociado (por ejemplo, 1efec2285bd442df
), que se puede consultar mediante la API de v1.operations
.
Para recuperar tu respuesta de anotación de Vision, envía una solicitud GET al extremo v1.operations
y pasa el ID de operación en la 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
Si la operación se encuentra en curso:
{ "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" } }
Una vez que la operación se completa, el state
se muestra como DONE
, y los resultados se escriben en el archivo de Cloud Storage que especificaste:
{ "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 } } ] } }
El JSON en tu archivo de resultado es similar al de la solicitud de detección de texto de documento de una imagen, con la adición de un campo context
que muestra la ubicación del PDF o TIFF que se especificó y el número de páginas en el archivo:
output-1-to-1.json
Respuesta completa
{ "inputConfig": { "gcsSource": { "uri": "gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf" }, "mimeType": "application/pdf" }, "responses": [ { "fullTextAnnotation": { "pages": [ { "property": { "detectedLanguages": [ { "languageCode": "en", "confidence": 0.94 } ] }, "width": 612, "height": 792, "blocks": [ { "boundingBox": { "normalizedVertices": [ { "x": 0.12908497, "y": 0.10479798 }, ... { "x": 0.12908497, "y": 0.1199495 } ] }, "paragraphs": [ { ... }, "words": [ { ... }, "symbols": [ { ... "text": "C", "confidence": 0.99 }, { "property": { "detectedLanguages": [ { "languageCode": "en" } ] }, "text": "O", "confidence": 0.99 }, ... } ] } ], "text": "CONTENTS\n.\n1-1\nII-1\nIII-1\nList of Statistical Tables... \nHow to Use This Census Report ..\nTable Finding Guide .\nUser Notes .......\nStatistical Tables.........\nAppendixes \nA Geographic Terms and Concepts .........\nB Definitions of Subject Characteristics.\nData Collection and Processing Procedures... \nQuestionnaire. ........\nE Maps .................\nF Operational Overview and accuracy of the Data.......\nG Residence Rule and Residence Situations for the \n2010 Census of the United States... \nH Acknowledgments .....\nE\n*Appendix may be found in the separate volume, CPH-1-A, Summary Population and\nHousing Characteristics, Selected Appendixes, on the Internet at <www.census.gov\n/prod/cen2010/cph-1-a.pdf>.\nContents\n" }, "context": { "uri": "gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf", "pageNumber": 1 } } ] }
Antes de probar este código de muestra, sigue las instrucciones de configuración para Go que se encuentran en la Guía de inicio rápido de Vision sobre cómo usar las bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Go.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Antes de probar este código de muestra, sigue las instrucciones de configuración para Java que se encuentran en la Guía de inicio rápido de Vision sobre cómo usar las bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Java.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Antes de probar este código de muestra, sigue las instrucciones de configuración para Node.js que se encuentran en la Guía de inicio rápido de Vision sobre cómo usar las bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Node.js.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Antes de probar este código de muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de Vision sobre cómo usar las bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Vision para Python.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
El comando de gcloud
que uses dependerá del tipo de archivo.
Si quieres realizar la detección de texto en PDF, usa el comando
gcloud ml vision detect-text-pdf
como se muestra en el siguiente ejemplo:gcloud ml vision detect-text-pdf gs://
my_bucket /input_file gs://my_bucket /out_put_prefix Si quieres realizar la detección de texto en TIFF, usa el comando
gcloud ml vision detect-text-tiff
como se muestra en el siguiente ejemplo:gcloud ml vision detect-text-tiff gs://
my_bucket /input_file gs://my_bucket /out_put_prefix
C#: sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Vision para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Vision para Ruby.