שירות זיהוי התווים האופטי (OCR) של Vertex AI ב-Google Distributed Cloud (GDC) air-gapped appliance מזהה ומחלץ טקסט מקובצי PDF ו-TIFF. אתם יכולים לשלוח קבצים מקומיים ישירות בבקשות מוטבעות למתודה BatchAnnotateFiles של ה-API, שתומכת בבקשה אחת לכל קריאה באצווה.
לפני שמתחילים
כדי להתחיל להשתמש ב-OCR API, צריך פרויקט שבו ה-OCR API מופעל ופרטי כניסה מתאימים. אפשר גם להתקין ספריות לקוח שיעזרו לכם לבצע קריאות ל-API. למידע נוסף, קראו את המאמר הגדרת פרויקט לזיהוי תווים.
זיהוי טקסט באמצעות בקשות מוטבעות
השיטה BatchAnnotateFiles מזהה טקסט מקבוצה של קובצי PDF או TIFF.
אתם שולחים את הקובץ שבו אתם רוצים לזהות טקסט ישירות כתוכן בבקשת ה-API. המערכת מחזירה את הטקסט שזוהה בפורמט JSON בתגובה מה-API.
צריך לציין ערכים לשדות בגוף ה-JSON של בקשת ה-API. בטבלה הבאה מתוארים השדות בגוף הבקשה שצריך לספק כשמשתמשים ב-method BatchAnnotateFiles של ה-API לבקשות של זיהוי טקסט:
| שדות בגוף הבקשה | תיאור השדה |
|---|---|
content |
הקבצים עם הטקסט שרוצים לזהות. אתם מספקים את הייצוג ב-Base64 (מחרוזת ASCII) של תוכן הקובץ הבינארי. |
mime_type |
סוג קובץ המקור. צריך להגדיר אותו לאחד מהערכים הבאים:
|
type |
סוג זיהוי הטקסט שאתם צריכים מהקובץ. מציינים את אחת משתי תכונות ההערות:
|
language_hints |
זה שינוי אופציונלי. רשימת השפות שבהן משתמשים לזיהוי הטקסט. אם השדה הזה ריק, המערכת מפרשת את זה כזיהוי שפה אוטומטי. אין צורך להגדיר את השדה language_hints לשפות שמבוססות על האלפבית הלטיני.אם אתם יודעים מהי שפת הטקסט בקובץ, הגדרת רמז משפרת את התוצאות. |
pages |
זה שינוי אופציונלי. מספר הדפים בקובץ שצריך לעבד כדי לזהות טקסט. אפשר לציין עד חמישה דפים. אם לא מציינים את מספר הדפים, השירות מעבד את חמשת הדפים הראשונים בקובץ. |
שליחת בקשת API מוטבעת
שולחים בקשה ל-API שעבר אימון מראש ל-OCR באמצעות ה-method של ה-API בארכיטקטורת REST. אחרת, אתם יכולים להשתמש ב-API שעבר אימון מראש ל-OCR מסקריפט Python כדי לזהות טקסט מקובצי PDF או TIFF.
הדוגמאות הבאות מראות איך לזהות טקסט בקובץ באמצעות OCR:
REST
כדי לזהות טקסט בקבצים באמצעות השיטה של API בארכיטקטורת REST:
שומרים את הקובץ
request.jsonהבא לגוף הבקשה:cat <<- EOF > request.json { "requests": [ { "input_config": { "content": BASE64_ENCODED_FILE, "mime_type": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "image_context": { "language_hints": [ "LANGUAGE_HINT_1", "LANGUAGE_HINT_2", ... ] }, "pages": [] } ] } EOFמחליפים את מה שכתוב בשדות הבאים:
-
BASE64_ENCODED_FILE: ייצוג 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/files:annotateמחליפים את מה שכתוב בשדות הבאים:
-
TOKEN: אסימון האימות שקיבלתם. PROJECT_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/files:annotate" | Select-Object -Expand Contentמחליפים את מה שכתוב בשדות הבאים:
-
TOKEN: אסימון האימות שקיבלתם. -
ENDPOINT: נקודת הקצה של ה-OCR שמשמשת את הארגון. למידע נוסף על סטטוס השירות ונקודות הקצה
-
Python
כדי להשתמש בשירות ה-OCR מסקריפט של Python כדי לזהות טקסט בקובץ:
מוסיפים את הקוד הבא לסקריפט 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) except Exception as e: print("Caught exception" + str(e)) raise e return creds def vision_func(creds): vc = vision_client(creds) input_config = {"content": "BASE64_ENCODED_FILE"} features = [{"type_": vision.Feature.Type.FEATURE_TYPE}] # Each requests element corresponds to a single file. To annotate more # files, create a request element for each file and add it to # the array of requests req = {"input_config": input_config, "features": features} metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = vc.annotate_file(req,metadata=metadata) print(resp) if __name__=="__main__": creds = main() vision_func(creds)מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT: נקודת הקצה של ה-OCR שמשמשת את הארגון. למידע נוסף על סטטוס השירות ונקודות הקצה -
BASE64_ENCODED_FILE: ייצוג Base64 (מחרוזת ASCII) של תוכן הקובץ. המחרוזת הזו מתחילה בתווים שנראים כמו/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==. -
FEATURE_TYPE: סוג זיהוי הטקסט שאתם צריכים מהקובץ. הערכים המותרים הםTEXT_DETECTIONאוDOCUMENT_TEXT_DETECTION. PROJECT_ID: מזהה הפרויקט.
-
שומרים את הסקריפט של Python.
מריצים את הסקריפט של Python כדי לזהות טקסט בקובץ:
python SCRIPT_NAMEמחליפים את
SCRIPT_NAMEבשם שנתתם לסקריפט Python, למשלvision.py.