El servicio de reconocimiento óptico de caracteres (OCR) de Vertex AI en Google Distributed Cloud (GDC) aislado detecta texto en imágenes con el método de la API de BatchAnnotateImages
. El servicio admite archivos JPEG y PNG para imágenes.
En esta página, se muestra cómo detectar texto en imágenes con la API de OCR en Distributed Cloud.
Antes de comenzar
Antes de 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 en archivos JPEG y PNG
El método BatchAnnotateImages
detecta texto en un lote de archivos JPEG o PNG.
Envías directamente el archivo del que deseas detectar texto como contenido en la solicitud de la API. El sistema devuelve el texto detectado resultante en formato JSON en la respuesta de la API.
Debes especificar valores para los campos del 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 de BatchAnnotateImages
para tus solicitudes de detección de texto:
Campos del cuerpo de la solicitud | Descripción del campo |
---|---|
content |
Son las imágenes con el texto que se detectará. Proporcionas la representación en Base64 (cadena ASCII) de los datos de la imagen binaria. |
type |
Es el tipo de detección de texto que necesitas de la imagen. Especifica una de las dos funciones de anotación:
|
language_hints |
Opcional. Lista de idiomas que se usarán para la detección de texto. El sistema interpreta un valor vacío para este campo como detección automática del idioma. No es necesario que configures el campo language_hints para los idiomas basados en el alfabeto latino.Si conoces el idioma del texto en la imagen, establecer una sugerencia mejora los resultados. |
Para obtener información sobre la representación completa en JSON, consulta AnnotateImageRequest
.
Realiza una solicitud a la API
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 en archivos JPEG o PNG.
En los siguientes ejemplos, se muestra cómo detectar texto en una imagen con OCR:
REST
Sigue estos pasos para detectar texto en imágenes con el método de la API de REST:
Guarda el siguiente archivo
request.json
para el cuerpo de tu solicitud:cat <<- EOF > request.json { "requests": [ { "image": { "content": BASE64_ENCODED_IMAGE }, "features": [ { "type": "FEATURE_TYPE" } ], "image_context": { "language_hints": [ "LANGUAGE_HINT_1", "LANGUAGE_HINT_2", ... ] } } ] } EOF
Reemplaza lo siguiente:
BASE64_ENCODED_IMAGE
: Es la representación en Base64 (cadena ASCII) de los datos de la imagen binaria. Esta cadena comienza con caracteres que se parecen a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
.FEATURE_TYPE
: Es el tipo de detección de texto que necesitas de la imagen. Los valores permitidos sonTEXT_DETECTION
oDOCUMENT_TEXT_DETECTION
.LANGUAGE_HINT
: Son las etiquetas de idioma BCP 47 que se usarán 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.
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/images:annotate
Reemplaza lo siguiente:
TOKEN
: El token de autenticación que obtuvistePROJECT_ID
: el ID de tu proyectoENDPOINT
: Es 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/images:annotate" | Select-Object -Expand Content
Reemplaza lo siguiente:
TOKEN
: El token de autenticación que obtuvisteENDPOINT
: Es 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 y detectar texto en una imagen:
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) image = {"content": "BASE64_ENCODED_IMAGE"} features = [{"type_": vision.Feature.Type.FEATURE_TYPE}] # Each requests element corresponds to a single image. To annotate more # images, create a request element for each image and add it to # the array of requests req = {"image": image, "features": features} metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = vc.annotate_image(req,metadata=metadata) print(resp) if __name__=="__main__": creds = main() vision_func(creds)
Reemplaza lo siguiente:
ENDPOINT
: Es 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_IMAGE
: Es la representación en Base64 (cadena ASCII) de los datos de la imagen binaria. Esta cadena comienza con caracteres que se parecen a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
.FEATURE_TYPE
: Es el tipo de detección de texto que necesitas de la imagen. Los valores permitidos sonTEXT_DETECTION
oDOCUMENT_TEXT_DETECTION
.PROJECT_ID
: el ID de tu proyecto
Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para detectar texto en la imagen:
python SCRIPT_NAME
Reemplaza
SCRIPT_NAME
por el nombre que le diste a tu secuencia de comandos de Python, comovision.py
.