Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O serviço de reconhecimento óptico de caracteres (OCR) da Vertex AI no Google Distributed Cloud (GDC) isolado detecta texto em imagens usando o método da API BatchAnnotateImages. O serviço aceita arquivos JPEG e PNG para imagens.
Nesta página, mostramos como detectar texto em imagens usando a API OCR no
Distributed Cloud.
Antes de começar
Antes de começar a usar a API OCR, é preciso ter um projeto
com a API OCR ativada e as credenciais apropriadas.
Também é possível instalar bibliotecas de cliente para ajudar você a fazer chamadas para a API. Para mais informações, consulte Configurar um projeto de reconhecimento de caracteres.
Detectar texto de arquivos JPEG e PNG
O método BatchAnnotateImages detecta texto de um lote de arquivos JPEG ou PNG.
Você envia o arquivo de onde quer detectar o texto diretamente como conteúdo na solicitação da API. O sistema retorna o texto detectado resultante no formato JSON na resposta da API.
É preciso especificar valores para os campos no corpo JSON da solicitação de API. A tabela a seguir contém uma descrição dos campos do corpo da solicitação que você precisa fornecer ao usar o método da API BatchAnnotateImages para suas solicitações de detecção de texto:
Campos do corpo da solicitação
Descrição do campo
content
As imagens com texto a ser detectado. Você fornece a representação Base64 (string ASCII) dos dados da imagem binária.
type
O tipo de detecção de texto que você precisa da imagem.
Especifique um dos dois recursos de anotação:
TEXT_DETECTION detecta e extrai texto de qualquer imagem. A resposta JSON inclui a string extraída, palavras individuais e caixas delimitadoras.
DOCUMENT_TEXT_DETECTION também extrai texto de uma imagem, mas o serviço otimiza a resposta para textos e documentos densos. O JSON inclui informações de página, bloco, parágrafo, palavra e quebra de linha.
Opcional. Lista de idiomas a serem usados para a detecção de texto.
O sistema interpreta um valor vazio para esse campo como detecção automática de idioma.
Não é necessário definir o campo language_hints para idiomas baseados no alfabeto latino.
Se você souber o idioma do texto na imagem, definir uma dica vai melhorar os resultados.
Para informações sobre a representação JSON completa, consulte
AnnotateImageRequest.
Fazer uma solicitação de API
Faça uma solicitação à API pré-treinada de OCR usando o método da API REST. Caso contrário, interaja com a API pré-treinada de OCR usando um script Python para detectar texto em arquivos JPEG ou PNG.
Os exemplos a seguir mostram como detectar texto em uma imagem usando
OCR:
REST
Siga estas etapas para detectar texto em imagens usando o método da API REST:
Salve o seguinte arquivo request.json para o corpo da solicitação:
BASE64_ENCODED_IMAGE: a representação Base64 (string ASCII) dos dados da imagem binária. Essa string começa com caracteres semelhantes a /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.
FEATURE_TYPE: o tipo de detecção de texto que você
precisa da imagem. Os valores permitidos são TEXT_DETECTION ou DOCUMENT_TEXT_DETECTION.
LANGUAGE_HINT: as tags de idioma BCP 47 a serem usadas como
dicas de idioma para detecção de texto, como en-t-i0-handwrit. Este
campo é opcional, e o sistema interpreta um valor vazio como detecção automática
de idioma.
Adicione o seguinte código ao script Python que você criou:
fromgoogle.cloudimportvisionimportgoogle.authfromgoogle.auth.transportimportrequestsfromgoogle.api_core.client_optionsimportClientOptionsaudience="https://ENDPOINT:443"api_endpoint="ENDPOINT:443"defvision_client(creds):opts=ClientOptions(api_endpoint=api_endpoint)returnvision.ImageAnnotatorClient(credentials=creds,client_options=opts)defmain():creds=Nonetry:creds,project_id=google.auth.default()creds=creds.with_gdch_audience(audience)req=requests.Request()creds.refresh(req)print("Got token: ")print(creds.token)exceptExceptionase:print("Caught exception"+str(e))raiseereturncredsdefvision_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 requestsreq={"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)
BASE64_ENCODED_IMAGE: a representação Base64 (string ASCII) dos dados da imagem binária. Essa string começa com caracteres semelhantes a /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.
FEATURE_TYPE: o tipo de detecção de texto que você
precisa da imagem. Os valores permitidos são TEXT_DETECTION ou DOCUMENT_TEXT_DETECTION.
PROJECT_ID: o ID do projeto.
Salve o script Python.
Execute o script Python para detectar texto na imagem:
pythonSCRIPT_NAME
Substitua SCRIPT_NAME pelo nome que você deu ao
script do Python, como vision.py.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 UTC."],[[["\u003cp\u003eVertex AI's OCR service on Google Distributed Cloud (GDC) air-gapped uses the \u003ccode\u003eBatchAnnotateImages\u003c/code\u003e API to detect text in JPEG and PNG images.\u003c/p\u003e\n"],["\u003cp\u003eTo use the OCR API, users must have a project with the API enabled and appropriate credentials, potentially including installing client libraries.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eBatchAnnotateImages\u003c/code\u003e method requires the image data as Base64 encoded content within the API request and allows specifying the type of detection (\u003ccode\u003eTEXT_DETECTION\u003c/code\u003e or \u003ccode\u003eDOCUMENT_TEXT_DETECTION\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003elanguage_hints\u003c/code\u003e field in the API request is optional and allows users to specify the language of the text for improved detection accuracy, following BCP 47 language tag formatting.\u003c/p\u003e\n"],["\u003cp\u003eText detection can be performed via a REST API method or a Python script, both requiring authentication and the specification of an endpoint, project ID, and the Base64-encoded image.\u003c/p\u003e\n"]]],[],null,["# Detect text in images\n\nThe Optical Character Recognition (OCR) service of Vertex AI on\nGoogle Distributed Cloud (GDC) air-gapped detects text in images using the\n`BatchAnnotateImages` API method. The service supports JPEG and PNG files for\nimages.\n\nThis page shows you how to detect image text using the OCR API on\nDistributed Cloud.\n\nBefore you begin\n----------------\n\nBefore you can start using the OCR API, you must have a project\nwith the OCR API enabled and have the appropriate credentials.\nYou can also install client libraries to help you make calls to the API. For\nmore information, see [Set up a character recognition project](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vai-set-up-ocr).\n\nDetect text from JPEG and PNG files\n-----------------------------------\n\nThe `BatchAnnotateImages` method detects text from a batch of JPEG or PNG files.\nYou send the file from which you want to detect text directly as content in the\nAPI request. The system returns the resulting detected text in JSON format in\nthe API response.\n\nYou must specify values for the fields in the JSON body of your API request. The\nfollowing table contains a description of the request body fields you must\nprovide when you use the `BatchAnnotateImages` API method for your text\ndetection requests:\n\nFor information about the complete JSON representation, see\n[`AnnotateImageRequest`](/distributed-cloud/hosted/docs/latest/gdch/apis/vertex-ai/ocr/rest/v1/AnnotateImageRequest).\n\n### Make an API request\n\nMake a request to the OCR pre-trained API using the REST API\nmethod. Otherwise, interact with the OCR pre-trained API from a\nPython script to detect text from JPEG or PNG files.\n| **Note:** The `BatchAnnotateImages` API method only supports a single request per batch call.\n\nThe following examples show how to detect text in an image using\nOCR: \n\n### REST\n\nFollow these steps to detect text in images using the REST API method:\n\n1. Save the following `request.json` file for your request body:\n\n cat \u003c\u003c- EOF \u003e request.json\n {\n \"requests\": [\n {\n \"image\": {\n \"content\": \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-err\"\u003eBASE\u003c/span\u003e\u003cspan class=\"devsite-syntax-mi\"\u003e64\u003c/span\u003e\u003cspan class=\"devsite-syntax-err\"\u003e_ENCODED_IMAGE\u003c/span\u003e\u003c/var\u003e\n },\n \"features\": [\n {\n \"type\": \"\u003cvar translate=\"no\"\u003eFEATURE_TYPE\u003c/var\u003e\"\n }\n ],\n \"image_context\": {\n \"language_hints\": [\n \"\u003cvar translate=\"no\"\u003eLANGUAGE_HINT_1\u003c/var\u003e\",\n \"\u003cvar translate=\"no\"\u003eLANGUAGE_HINT_2\u003c/var\u003e\",\n ...\n ]\n }\n }\n ]\n }\n EOF\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eBASE64_ENCODED_IMAGE\u003c/var\u003e: the Base64 representation (ASCII string) of your binary image data. This string begins with characters that look similar to `/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==`.\n - \u003cvar translate=\"no\"\u003eFEATURE_TYPE\u003c/var\u003e: the type of text detection you need from the image. Allowed values are `TEXT_DETECTION` or `DOCUMENT_TEXT_DETECTION`.\n - \u003cvar translate=\"no\"\u003eLANGUAGE_HINT\u003c/var\u003e: the BCP 47 language tags to use as language hints for text detection, such as `en-t-i0-handwrit`. This field is optional and the system interprets an empty value as automatic language detection.\n2. [Get an authentication token](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-auth).\n\n3. Make the request:\n\n ### curl\n\n curl -X POST \\\n -H \"Authorization: Bearer \u003cvar translate=\"no\"\u003eTOKEN\u003c/var\u003e\" \\\n -H \"x-goog-user-project: projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n -d @request.json \\\n https://\u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e/v1/images:annotate\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eTOKEN\u003c/var\u003e: [the authentication token](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-auth) you obtained.\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: your project ID.\n - \u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e: the OCR endpoint that you use for your organization. For more information, [view service status and endpoints](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-status).\n\n ### PowerShell\n\n $headers = @{\n \"Authorization\" = \"Bearer \u003cvar translate=\"no\"\u003eTOKEN\u003c/var\u003e\"\n \"x-goog-user-project\" = \"projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e\"\n }\n\n Invoke-WebRequest\n -Method POST\n -Headers $headers\n -ContentType: \"application/json; charset=utf-8\"\n -InFile request.json\n -Uri \"\u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e/v1/images:annotate\" | Select-Object -Expand Content\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eTOKEN\u003c/var\u003e: [the authentication token](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-auth) you obtained.\n - \u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e: the OCR endpoint that you use for your organization. For more information, [view service status and endpoints](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-status).\n\n### Python\n\nFollow these steps to use the OCR service from a Python\nscript to detect text in an image:\n\n1. [Install the latest version of the OCR client library](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-install-libraries).\n\n2. [Set the required environment variables on a Python script](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vai-set-up-ocr#set-env-var).\n\n3. [Authenticate your API request](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-auth).\n\n4. Add the following code to the Python script you created:\n\n from google.cloud import vision\n import google.auth\n from google.auth.transport import requests\n from google.api_core.client_options import ClientOptions\n\n audience = \"https://\u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e:443\"\n api_endpoint=\"\u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e:443\"\n\n def vision_client(creds):\n opts = ClientOptions(api_endpoint=api_endpoint)\n return vision.https://cloud.google.com/python/docs/reference/vision/latest/google.cloud.vision_v1.services.image_annotator.ImageAnnotatorClient.html(credentials=creds, client_options=opts)\n\n def main():\n creds = None\n try:\n creds, project_id = google.auth.default()\n creds = creds.with_gdch_audience(audience)\n req = requests.Request()\n creds.refresh(req)\n print(\"Got token: \")\n print(creds.token)\n except Exception as e:\n print(\"Caught exception\" + str(e))\n raise e\n return creds\n\n def vision_func(creds):\n vc = vision_client(creds)\n image = {\"content\": \"\u003cvar translate=\"no\"\u003eBASE64_ENCODED_IMAGE\u003c/var\u003e\"}\n features = [{\"type_\": vision.https://cloud.google.com/python/docs/reference/vision/latest/google.cloud.vision_v1.types.Feature.html.Type.\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eFEATURE_TYPE\u003c/span\u003e\u003c/var\u003e}]\n # Each requests element corresponds to a single image. To annotate more\n # images, create a request element for each image and add it to\n # the array of requests\n req = {\"image\": image, \"features\": features}\n\n metadata = [(\"x-goog-user-project\", \"projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e\")]\n\n resp = vc.annotate_image(req,metadata=metadata)\n\n print(resp)\n\n if __name__==\"__main__\":\n creds = main()\n vision_func(creds)\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eENDPOINT\u003c/var\u003e: the OCR endpoint that you use for your organization. For more information, [view service status and endpoints](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vertex-ai-api-status).\n - \u003cvar translate=\"no\"\u003eBASE64_ENCODED_IMAGE\u003c/var\u003e: the Base64 representation (ASCII string) of your binary image data. This string begins with characters that look similar to `/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==`.\n - \u003cvar translate=\"no\"\u003eFEATURE_TYPE\u003c/var\u003e: the type of text detection you need from the image. Allowed values are `TEXT_DETECTION` or `DOCUMENT_TEXT_DETECTION`.\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: your project ID.\n5. Save the Python script.\n\n6. Run the Python script to detect text in the image:\n\n python \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003eSCRIPT_NAME\u003c/span\u003e\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eSCRIPT_NAME\u003c/var\u003e with the name you gave to your\n Python script, such as `vision.py`."]]