En esta página se explica cómo detectar texto en archivos mediante la API de reconocimiento óptico de caracteres (OCR) en el dispositivo aislado de Google Distributed Cloud (GDC).
El servicio de OCR de Vertex AI en el dispositivo aislado de GDC detecta texto en archivos PDF y TIFF mediante el método de la API BatchAnnotateFiles.
Antes de empezar
Antes de empezar a usar la API OCR, debes tener un proyecto con la API OCR habilitada y las credenciales adecuadas. También puedes instalar bibliotecas de cliente para ayudarte a hacer llamadas a la API. Para obtener más información, consulta Configurar un proyecto de reconocimiento de caracteres.
Detectar texto con solicitudes insertadas
El método BatchAnnotateFiles detecta texto de un lote de archivos PDF o TIFF.
Envías directamente el archivo del que quieres detectar el texto como contenido en la solicitud de la API. El sistema devuelve el texto detectado en formato JSON en la respuesta de la API.
Debe especificar valores para los campos del cuerpo JSON de su solicitud de API. En la siguiente tabla se describen los campos del cuerpo de la solicitud que debe proporcionar al usar el método de la API BatchAnnotateFiles para sus solicitudes de detección de texto:
| Campos del cuerpo de la solicitud | Descripción del campo |
|---|---|
content |
Los archivos con el texto que quieras detectar. Proporciona la representación en Base64 (cadena ASCII) del contenido de tu archivo binario. |
mime_type |
El tipo de archivo de origen. Debes asignarle uno de los siguientes valores:
|
type |
El tipo de detección de texto que necesitas del archivo. Especifica una de las dos funciones de anotación:
|
language_hints |
Opcional. Lista de idiomas que se van a usar para la detección de texto. El sistema interpreta un valor vacío en este campo como detección automática del idioma. No es necesario que defina el campo language_hints para los idiomas basados en el alfabeto latino.Si conoces el idioma del texto del archivo, puedes mejorar los resultados si lo indicas. |
pages |
Opcional. Número de páginas del archivo que se van a procesar para detectar texto. Puedes especificar un máximo de cinco páginas. Si no especificas el número de páginas, el servicio procesará las cinco primeras páginas del archivo. |
Hacer una solicitud a la API insertada
Envía una solicitud a la API preentrenada de OCR mediante el método de la API REST. De lo contrario, interactúa con la API preentrenada de OCR desde una secuencia de comandos de Python para detectar texto de archivos PDF o TIFF.
En los siguientes ejemplos se muestra cómo detectar texto en un archivo mediante OCR:
REST
Sigue estos pasos para detectar texto en archivos mediante el método de la API REST:
Guarda el siguiente archivo
request.jsonpara el cuerpo de la solicitud:cat <<- EOF > request.json { "requests": [ { "input_config": { "content": BASE64_ENCODED_FILE, "mime_type": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "image_context": { "language_hints": [ "LANGUAGE_HINT_1", "LANGUAGE_HINT_2", ... ] }, "pages": [] } ] } EOFHaz los cambios siguientes:
BASE64_ENCODED_FILE: la representación en Base64 (cadena ASCII) del contenido de tu archivo binario. Esta cadena empieza por caracteres similares a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.FEATURE_TYPE: el tipo de detección de texto que necesitas del archivo. Los valores permitidos sonTEXT_DETECTIONyDOCUMENT_TEXT_DETECTION.LANGUAGE_HINT: las etiquetas de idioma BCP 47 que se van a usar como sugerencias de idioma para la detección de texto, comoen-t-i0-handwrit. Este campo es opcional y el sistema interpreta un valor vacío como detección automática del idioma.
Haz la solicitud:
curl
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "x-goog-user-project: projects/PROJECT_ID" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://ENDPOINT/v1/files:annotateHaz los cambios siguientes:
TOKEN: el token de autenticación que has obtenido.PROJECT_ID: tu ID de proyecto.ENDPOINT: el endpoint de OCR que utilizas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
PowerShell
$headers = @{ "Authorization" = "Bearer TOKEN" "x-goog-user-project" = "projects/PROJECT_ID" } Invoke-WebRequest -Method POST -Headers $headers -ContentType: "application/json; charset=utf-8" -InFile request.json -Uri "ENDPOINT/v1/files:annotate" | Select-Object -Expand ContentHaz los cambios siguientes:
TOKEN: el token de autenticación que has obtenido.ENDPOINT: el endpoint de OCR que utilizas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
Python
Sigue estos pasos para usar el servicio de OCR desde una secuencia de comandos de Python para detectar texto en un archivo:
Instala la versión más reciente de la biblioteca de cliente de OCR.
Define las variables de entorno necesarias en una secuencia de comandos de Python.
Añade el siguiente código a la secuencia de comandos de Python que has creado:
from google.cloud import vision import google.auth from google.auth.transport import requests from google.api_core.client_options import ClientOptions audience = "https://ENDPOINT:443" api_endpoint="ENDPOINT:443" def vision_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return vision.ImageAnnotatorClient(credentials=creds, client_options=opts) def main(): creds = None try: creds, project_id = google.auth.default() creds = creds.with_gdch_audience(audience) req = requests.Request() creds.refresh(req) print("Got token: ") print(creds.token) except Exception as e: print("Caught exception" + str(e)) raise e return creds def vision_func(creds): vc = vision_client(creds) input_config = {"content": "BASE64_ENCODED_FILE"} features = [{"type_": vision.Feature.Type.FEATURE_TYPE}] # Each requests element corresponds to a single file. To annotate more # files, create a request element for each file and add it to # the array of requests req = {"input_config": input_config, "features": features} metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = vc.annotate_file(req,metadata=metadata) print(resp) if __name__=="__main__": creds = main() vision_func(creds)Haz los cambios siguientes:
ENDPOINT: el endpoint de OCR que usas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.BASE64_ENCODED_FILE: representación en Base64 (cadena ASCII) del contenido del archivo. Esta cadena empieza por caracteres similares a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.FEATURE_TYPE: el tipo de detección de texto que necesitas del archivo. Los valores permitidos sonTEXT_DETECTIONyDOCUMENT_TEXT_DETECTION.PROJECT_ID: tu ID de proyecto.
Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para detectar texto en el archivo:
python SCRIPT_NAMESustituye
SCRIPT_NAMEpor el nombre que le hayas dado a tu script de Python, comovision.py.