Google Distributed Cloud (GDC) 에어갭의 Vertex AI 광학 문자 인식 (OCR) 서비스는 BatchAnnotateImages
API 메서드를 사용하여 이미지에서 텍스트를 감지합니다. 이 서비스는 이미지에 JPEG 및 PNG 파일을 지원합니다.
이 페이지에서는 Distributed Cloud에서 OCR API를 사용하여 이미지 텍스트를 감지하는 방법을 보여줍니다.
시작하기 전에
OCR API를 사용하려면 OCR API가 사용 설정된 프로젝트와 적절한 사용자 인증 정보가 있어야 합니다. 클라이언트 라이브러리를 설치하여 API를 호출할 수도 있습니다. 자세한 내용은 문자 인식 프로젝트 설정을 참고하세요.
JPEG 및 PNG 파일에서 텍스트 감지
BatchAnnotateImages
메서드는 JPEG 또는 PNG 파일 배치에서 텍스트를 감지합니다.
텍스트를 감지할 파일을 API 요청의 콘텐츠로 직접 전송합니다. 시스템은 API 응답에서 감지된 텍스트를 JSON 형식으로 반환합니다.
API 요청의 JSON 본문에 있는 필드의 값을 지정해야 합니다. 다음 표에는 텍스트 감지 요청에 BatchAnnotateImages
API 메서드를 사용할 때 제공해야 하는 요청 본문 필드에 관한 설명이 포함되어 있습니다.
요청 본문 필드 | 필드 설명 |
---|---|
content |
감지할 텍스트가 포함된 이미지입니다. 바이너리 이미지 데이터의 Base64 표현 (ASCII 문자열)을 제공합니다. |
type |
이미지에서 필요한 텍스트 감지 유형입니다. 다음 두 가지 주석 기능 중 하나를 지정합니다.
|
language_hints |
(선택사항) 텍스트 감지에 사용할 언어 목록입니다. 시스템은 이 필드의 빈 값을 자동 언어 감지로 해석합니다. 라틴 알파벳을 사용하는 언어의 경우 language_hints 필드를 설정할 필요가 없습니다.이미지에 포함된 텍스트의 언어를 알고 있는 경우 힌트를 설정하면 결과가 개선됩니다. |
전체 JSON 표현에 관한 자세한 내용은 AnnotateImageRequest
을 참고하세요.
API 요청하기
REST API 메서드를 사용하여 OCR 사전 학습 API에 요청합니다. 그렇지 않으면 Python 스크립트에서 OCR 사전 학습 API와 상호작용하여 JPEG 또는 PNG 파일에서 텍스트를 감지합니다.
다음 예에서는 OCR을 사용하여 이미지에서 텍스트를 감지하는 방법을 보여줍니다.
REST
REST API 메서드를 사용하여 이미지에서 텍스트를 감지하려면 다음 단계를 따르세요.
요청 본문에 다음
request.json
파일을 저장합니다.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
다음을 바꿉니다.
BASE64_ENCODED_IMAGE
: 바이너리 이미지 데이터의 Base64 표현(ASCII 문자열)입니다. 이 문자열은/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
와 비슷한 문자로 시작합니다.FEATURE_TYPE
: 이미지에서 필요한 텍스트 감지 유형입니다. 허용되는 값은TEXT_DETECTION
또는DOCUMENT_TEXT_DETECTION
입니다.LANGUAGE_HINT
: 텍스트 감지를 위한 언어 힌트로 사용할 BCP 47 언어 태그입니다(예:en-t-i0-handwrit
). 이 필드는 선택사항이며 시스템은 빈 값을 자동 언어 감지로 해석합니다.
요청을 합니다.
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
다음을 바꿉니다.
TOKEN
: 획득한 인증 토큰입니다.PROJECT_ID
: 프로젝트 ID입니다.ENDPOINT
: 조직에서 사용하는 OCR 엔드포인트입니다. 자세한 내용은 서비스 상태 및 엔드포인트 보기를 참고하세요.
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
다음을 바꿉니다.
TOKEN
: 획득한 인증 토큰입니다.ENDPOINT
: 조직에서 사용하는 OCR 엔드포인트입니다. 자세한 내용은 서비스 상태 및 엔드포인트 보기를 참고하세요.
Python
Python 스크립트에서 OCR 서비스를 사용하여 이미지의 텍스트를 감지하려면 다음 단계를 따르세요.
API 요청을 인증합니다.
만든 Python 스크립트에 다음 코드를 추가합니다.
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)
다음을 바꿉니다.
ENDPOINT
: 조직에서 사용하는 OCR 엔드포인트입니다. 자세한 내용은 서비스 상태 및 엔드포인트 보기를 참고하세요.BASE64_ENCODED_IMAGE
: 바이너리 이미지 데이터의 Base64 표현(ASCII 문자열)입니다. 이 문자열은/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
와 비슷한 문자로 시작합니다.FEATURE_TYPE
: 이미지에서 필요한 텍스트 감지 유형입니다. 허용되는 값은TEXT_DETECTION
또는DOCUMENT_TEXT_DETECTION
입니다.PROJECT_ID
: 프로젝트 ID입니다.
Python 스크립트를 저장합니다.
Python 스크립트를 실행하여 이미지에서 텍스트를 감지합니다.
python SCRIPT_NAME
SCRIPT_NAME
을 Python 스크립트에 지정한 이름(예:vision.py
)으로 바꿉니다.