En esta página, se muestra cómo detectar texto en archivos con 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 con el método de la API BatchAnnotateFiles.
Antes de comenzar
Antes de que puedas comenzar a usar la API de OCR, debes tener un proyecto con la API de OCR habilitada y las credenciales adecuadas. También puedes instalar bibliotecas cliente para ayudarte a realizar llamadas a la API. Para obtener más información, consulta Configura un proyecto de reconocimiento de caracteres.
Detecta texto con solicitudes intercaladas
El método BatchAnnotateFiles detecta texto de un lote de archivos PDF o TIFF.
Envías el archivo desde el que deseas detectar texto directamente como contenido en la solicitud a la API. El sistema muestra el texto detectado resultante en formato JSON en la respuesta de la API.
Debes especificar valores para los campos en el cuerpo JSON de tu solicitud a la API. En la siguiente tabla, se incluye una descripción de los campos del cuerpo de la solicitud que debes proporcionar cuando usas el método de la API BatchAnnotateFiles para tus solicitudes de detección de texto:
| Campos del cuerpo de la solicitud | Descripción del campo |
|---|---|
content |
Los archivos con texto para detectar. Proporcionas la representación en Base64 (cadena ASCII) del contenido de tu archivo binario. |
mime_type |
El tipo de archivo fuente. Debes configurarlo en 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 |
Es opcional. Lista de idiomas para usar en la detección de texto. El sistema interpreta un valor vacío para este campo como detección automática de idioma. No es necesario configurar el campo language_hints para los idiomas que se basan en el alfabeto latino.Si conoces el idioma del texto en el archivo, configurar una sugerencia mejora los resultados. |
pages |
Es opcional. La cantidad de páginas del archivo que se procesarán para la detección de texto. La cantidad máxima de páginas que puedes especificar es cinco. Si no especificas la cantidad de páginas, el servicio procesa las primeras cinco páginas del archivo. |
Realiza una solicitud a la API intercalada
Realiza una solicitud a la API previamente entrenada de OCR con el método de la API de REST. De lo contrario, interactúa con la API previamente entrenada 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 con OCR:
REST
Sigue estos pasos para detectar texto en archivos con el método de la API de REST:
Guarda el siguiente archivo
request.jsonpara el cuerpo de tu 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": [] } ] } EOFReemplaza lo siguiente:
BASE64_ENCODED_FILE: Es la representación en Base64 (cadena ASCII) del contenido de tu archivo binario. Esta cadena comienza con caracteres que se ven similares a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.FEATURE_TYPE: El tipo de detección de texto que necesitas del archivo. Los valores permitidos sonTEXT_DETECTIONoDOCUMENT_TEXT_DETECTION.LANGUAGE_HINT: Las etiquetas de idioma BCP 47 para 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 de idioma.
Realiza 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:annotateReemplaza lo siguiente:
TOKEN: el token de autenticación que obtuviste.PROJECT_ID: ID del proyecto.ENDPOINT: El extremo de OCR que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.
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 ContentReemplaza lo siguiente:
TOKEN: el token de autenticación que obtuviste.ENDPOINT: El extremo de OCR que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.
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 cliente de OCR.
Configura las variables de entorno necesarias en una secuencia de comandos de Python.
Agrega el siguiente código a la secuencia de comandos de Python que creaste:
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)Reemplaza lo siguiente:
ENDPOINT: El extremo de OCR que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.BASE64_ENCODED_FILE: Es la representación en Base64 (cadena ASCII) del contenido de tu archivo. Esta cadena comienza con caracteres que se ven similares a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.FEATURE_TYPE: El tipo de detección de texto que necesitas del archivo. Los valores permitidos sonTEXT_DETECTIONoDOCUMENT_TEXT_DETECTION.PROJECT_ID: ID del proyecto.
Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para detectar texto en el archivo:
python SCRIPT_NAMEReemplaza
SCRIPT_NAMEpor el nombre que le diste a tu secuencia de comandos de Python, comovision.py.