이 가이드에서는 Google의 Vertex AI Vision 서비스를 사용하여 광학 문자 인식 (OCR) 테스트를 실행하는 과정을 안내합니다.
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참조 문서를 확인하세요.
ocr_test.py
Python 파일을 만듭니다. 다음과 같이image_uri_to_test
값을 소스 이미지의 URI로 바꿉니다.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)
다음을 바꿉니다.
- 텍스트가 포함된 공개 이미지의 URI(예: '
https://cloud.google.com/vision/docs/images/sign.jpg
')로IMAGE_URI
를 바꿉니다. 또는 Cloud Storage URI(예: 'gs://your-bucket/your-image.png
')를 지정할 수 있습니다.
- 텍스트가 포함된 공개 이미지의 URI(예: '
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"]
번역 애플리케이션의 Docker 이미지를 빌드합니다.
docker build -t ocr-app .
Docker 구성의 안내에 따라 다음 작업을 실행합니다.
- Docker를 구성합니다.
- 보안 비밀을 만들고
- HaaS에 이미지를 업로드합니다.
사용자 클러스터에 로그인하고 사용자 ID로 kubeconfig 파일을 생성합니다. kubeconfig 경로를 환경 변수로 설정해야 합니다.
export KUBECONFIG=${CLUSTER_KUBECONFIG_PATH}
터미널에서 다음 명령어를 실행하고 API 키를 붙여넣어 Kubernetes 보안 비밀을 만듭니다.
kubectl create secret generic gcp-api-key-secret \ --from-literal=GCP_API_KEY='PASTE_YOUR_API_KEY_HERE'
이 명령어는 키
GCP_API_KEY
이 있는gcp-api-key-secret
이라는 보안 비밀을 만듭니다.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
다음을 바꿉니다.
HARBOR_INSTANCE_URL
: Harbor 인스턴스 URL입니다.HARBOR_PROJECT
: Harbor 프로젝트입니다.SECRET
: Docker 사용자 인증 정보를 저장하기 위해 생성된 보안 비밀의 이름입니다.
작업 상태를 확인합니다.
kubectl get jobs/ocr-test-job-apikey # It will show 0/1 completions, then 1/1 after it succeeds
작업이 완료되면 포드 로그에서 OCR 출력을 볼 수 있습니다.
kubectl logs -l job-name=ocr-test-job-apikey