Este guia explica o processo de execução de um teste de reconhecimento ótico de carateres (OCR) através do serviço Vertex AI Vision da Google.
Antes de experimentar este exemplo, siga as instruções de configuração do Python no início rápido do Vertex AI com bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Python do Vertex AI.
Crie um ficheiro Python
ocr_test.py
. Substitua o valorimage_uri_to_test
pelo URI de uma imagem de origem, como mostrado:import os import requests import json def detect_text_rest(image_uri): """Performs Optical Character Recognition (OCR) on an image by invoking the Vertex AI REST API.""" # Securely fetch the API key from environment variables api_key = os.environ.get("GCP_API_KEY") if not api_key: raise ValueError("GCP_API_KEY environment variable must be defined.") # Construct the Vision API endpoint URL vision_api_url = f"https://vision.googleapis.com/v1/images:annotate?key={api_key}" print(f"Initiating OCR process for image: {image_uri}") # Define the request payload for text detection request_payload = { "requests": [ { "image": { "source": { "imageUri": image_uri } }, "features": [ { "type": "TEXT_DETECTION" } ] } ] } # Send a POST request to the Vision API response = requests.post(vision_api_url, json=request_payload) response.raise_for_status() # Check for HTTP errors response_json = response.json() print("\n--- OCR Results ---") # Extract and print the detected text if "textAnnotations" in response_json["responses"]: full_text = response_json["responses"]["textAnnotations"]["description"] print(f"Detected Text:\n{full_text}") else: print("No text was detected in the image.") print("--- End of Results ---\n") if __name__ == "__main__": # URI of a publicly available image, or a storage bucket image_uri_to_test = "IMAGE_URI" detect_text_rest(image_uri_to_test)
Substitua o seguinte:
IMAGE_URI
com o URI de uma imagem disponível publicamente que contenha texto, por exemplo, "https://cloud.google.com/vision/docs/images/sign.jpg
". Em alternativa, pode especificar um URI do Cloud Storage, por exemplo, "gs://your-bucket/your-image.png
"
Crie um Dockerfile:
ROM python:3.9-slim WORKDIR /app COPY ocr_test.py /app/ # Install 'requests' for HTTP calls RUN pip install --no-cache-dir requests CMD ["python", "ocr_test.py"]
Crie a imagem do Docker para a aplicação de tradução:
docker build -t ocr-app .
Siga as instruções em Configurar o Docker para:
- Configure o Docker,
- Crie um segredo e
- Carregue a imagem para o HaaS.
Inicie sessão no cluster de utilizadores e gere o respetivo ficheiro kubeconfig com uma identidade de utilizador. Certifique-se de que define o caminho do kubeconfig como uma variável de ambiente:
export KUBECONFIG=${CLUSTER_KUBECONFIG_PATH}
Crie um segredo do Kubernetes executando o seguinte comando no seu terminal e colando a chave da API:
kubectl create secret generic gcp-api-key-secret \ --from-literal=GCP_API_KEY='PASTE_YOUR_API_KEY_HERE'
Este comando cria um segredo com o nome
gcp-api-key-secret
com uma chaveGCP_API_KEY
.Aplique o manifesto do Kubernetes:
apiVersion: batch/v1 kind: Job metadata: name: ocr-test-job-apikey spec: template: spec: containers: - name: ocr-test-container image: HARBOR_INSTANCE_URL/HARBOR_PROJECT/ocr-app:latest # Your image path # Mount the API key from the secret into the container # as an environment variable named GCP_API_KEY. imagePullSecrets: - name: ${SECRET} envFrom: - secretRef: name: gcp-api-key-secret restartPolicy: Never backoffLimit: 4
Substitua o seguinte:
HARBOR_INSTANCE_URL
: o URL da instância do Harbor.HARBOR_PROJECT
: o projeto Harbor.SECRET
: o nome do segredo criado para armazenar credenciais do Docker.
Verifique o estado da tarefa:
kubectl get jobs/ocr-test-job-apikey # It will show 0/1 completions, then 1/1 after it succeeds
Após a conclusão da tarefa, pode ver o resultado da OCR nos registos do pod:
kubectl logs -l job-name=ocr-test-job-apikey