O serviço de reconhecimento ótico de carateres (OCR) da Vertex AI no
Google Distributed Cloud (GDC) air-gapped deteta texto em imagens através do método da API BatchAnnotateImages
. O serviço suporta ficheiros JPEG e PNG para imagens.
Esta página mostra como detetar texto em imagens através da API OCR no Distributed Cloud.
Antes de começar
Antes de poder começar a usar a API OCR, tem de ter um projeto com a API OCR ativada e as credenciais adequadas. Também pode instalar bibliotecas cliente para ajudar a fazer chamadas para a API. Para mais informações, consulte o artigo Configure um projeto de reconhecimento de carateres.
Detete texto a partir de ficheiros JPEG e PNG
O método BatchAnnotateImages
deteta texto a partir de um lote de ficheiros JPEG ou PNG.
Envia o ficheiro a partir do qual quer detetar texto diretamente como conteúdo no pedido da API. O sistema devolve o texto detetado resultante no formato JSON na resposta da API.
Tem de especificar valores para os campos no corpo JSON do seu pedido API. A tabela seguinte contém uma descrição dos campos do corpo do pedido que tem de fornecer quando usa o método da API BatchAnnotateImages
para os seus pedidos de deteção de texto:
Campos do corpo do pedido | Descrição do campo |
---|---|
content |
As imagens com texto a detetar. Fornece a representação Base64 (string ASCII) dos dados de imagem binários. |
type |
O tipo de deteção de texto de que precisa na imagem. Especifique uma das duas funcionalidades de anotação:
|
language_hints |
Opcional. Lista de idiomas a usar para a deteção de texto. O sistema interpreta um valor vazio para este campo como deteção automática de idioma. Não tem de definir o campo language_hints para idiomas baseados no alfabeto latino.Se souber o idioma do texto na imagem, a definição de uma sugestão melhora os resultados. |
Para obter informações sobre a representação JSON completa, consulte
AnnotateImageRequest
.
Faça um pedido de API
Faça um pedido à API pré-preparada de OCR através do método da API REST. Caso contrário, interaja com a API pré-preparada de OCR a partir de um script Python para detetar texto em ficheiros JPEG ou PNG.
Os exemplos seguintes mostram como detetar texto numa imagem através de OCR:
REST
Siga estes passos para detetar texto em imagens através do método da API REST:
Guarde o seguinte ficheiro
request.json
para o corpo do pedido: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
Substitua o seguinte:
BASE64_ENCODED_IMAGE
: a representação Base64 (string ASCII) dos dados da imagem binária. Esta string começa com carateres semelhantes a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
.FEATURE_TYPE
: o tipo de deteção de texto de que precisa na imagem. Os valores permitidos sãoTEXT_DETECTION
ouDOCUMENT_TEXT_DETECTION
.LANGUAGE_HINT
: as etiquetas de idioma BCP 47 a usar como sugestões de idioma para a deteção de texto, comoen-t-i0-handwrit
. Este campo é opcional e o sistema interpreta um valor vazio como deteção automática do idioma.
Faça o pedido:
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
Substitua o seguinte:
TOKEN
: o token de autenticação que obteve.PROJECT_ID
: o ID do seu projeto.ENDPOINT
: o ponto final de OCR que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.
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
Substitua o seguinte:
TOKEN
: o token de autenticação que obteve.ENDPOINT
: o ponto final de OCR que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.
Python
Siga estes passos para usar o serviço de OCR a partir de um script Python para detetar texto numa imagem:
Defina as variáveis de ambiente necessárias num script Python.
Adicione o seguinte código ao script Python que criou:
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)
Substitua o seguinte:
ENDPOINT
: o ponto final de OCR que usa para a sua organização. Para mais informações, veja o estado do serviço e os pontos finais.BASE64_ENCODED_IMAGE
: a representação Base64 (string ASCII) dos dados da imagem binária. Esta string começa com carateres semelhantes a/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
.FEATURE_TYPE
: o tipo de deteção de texto de que precisa na imagem. Os valores permitidos sãoTEXT_DETECTION
ouDOCUMENT_TEXT_DETECTION
.PROJECT_ID
: o ID do seu projeto.
Guarde o script Python.
Execute o script Python para detetar texto na imagem:
python SCRIPT_NAME
Substitua
SCRIPT_NAME
pelo nome que deu ao seu script Python, comovision.py
.