זיהוי תוויות בתמונה באמצעות שורת הפקודה

בדף הזה מוסבר איך לשלוח שלוש בקשות לזיהוי תכונות ולהוספת הערות ל-Vision API באמצעות ממשק REST והפקודה curl.

‫Vision API מאפשר לשלב בקלות את הטכנולוגיות של Google לזיהוי באמצעות ראייה ממוחשבת באפליקציות של מפתחים. אתם יכולים לשלוח נתוני תמונה וסוגי תכונות רצויים אל Vision API, ואז תקבלו תגובה מתאימה על סמך מאפייני התמונה שמעניינים אתכם. מידע נוסף על סוגי התכונות שזמינות זמין ברשימה של כל התכונות של Vision API.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את Vision API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable vision.googleapis.com
  8. מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
    • ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
  9. התקינו את ה-CLI של Google Cloud.

  10. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  12. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  13. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  14. מפעילים את Vision API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable vision.googleapis.com
  15. מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
    • ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.

שליחת בקשה להוספת הערה לתמונה

אחרי שמבצעים את השלבים שבקטע לפני שמתחילים, אפשר להשתמש ב-Vision API כדי להוסיף הערות לקובץ תמונה.

בדוגמה הזו משתמשים ב-curl כדי לשלוח בקשה ל-Vision API באמצעות התמונה הבאה:

URI של Cloud Storage:

gs://cloud-samples-data/vision/using_curl/shanghai.jpeg

כתובת URL מסוג HTTPS:

https://console.cloud.google.com/storage/browser/cloud-samples-data/vision/using_curl/shanghai.jpeg

תמונה של רחוב בשנגחאי.
Image credit: Steve Long on Unsplash.

יצירת בקשת JSON

בקובץ request.json הבא מוצגות שלוש images:annotate תכונות שניתן לבקש ואיך להגביל את התוצאות בתגובה.

יוצרים את קובץ בקשת ה-JSON עם הטקסט הבא ושומרים אותו כקובץ טקסט רגיל request.json בספריית העבודה:

request.json

{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "gs://cloud-samples-data/vision/using_curl/shanghai.jpeg"
        }
      },
      "features": [
        {
          "type": "LABEL_DETECTION",
          "maxResults": 3
        },
        {
          "type": "OBJECT_LOCALIZATION",
          "maxResults": 1
        },
        {
          "type": "TEXT_DETECTION",
          "maxResults": 1,
          "model": "builtin/latest"
        }
      ]
    }
  ]
}

שליחת הבקשה

משתמשים ב-curl ובתוכן הגוף מ-request.json כדי לשלוח את הבקשה ל-Vision API. מזינים את הפקודה הבאה בשורת הפקודה:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "x-goog-user-project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://vision.googleapis.com/v1/images:annotate -d @request.json

פירוש התשובה

אמורה להתקבל תגובת JSON שדומה לזו שבהמשך.

תוכן בקשת ה-JSON שצוין maxResults לכל סוג הערה. לכן, תראו את הפרטים הבאים ב-JSON של התגובה:

סימון תוצאות הזיהוי בתווית

  1. תיאור: 'אנשים', ציון: 0.950
  2. description: "Street", score: 0.891
  3. תיאור: 'אופן התחבורה', ניקוד: 0.890
תמונה של רחוב בשנגחאי שמכילה תוצאות של זיהוי תוויות.
קרדיט על התמונה: Steve Long ב-Unsplash (הערות נוספו).

תוצאות של זיהוי טקסט

  • text: 牛牛面馆\n
  • נקודות: (x: 159, y: 212), (x: 947, y: 212), (x: 947, y: 354), (x: 159, y: 354 )
תמונה של רחוב בשנגחאי שמכילה תוצאות של זיהוי טקסט.
קרדיט על התמונה: Steve Long ב-Unsplash (הערות נוספו).

תוצאות של זיהוי אובייקטים

  • name: "Person", score: 0.944
  • normalized vertices: (x: 0.260, y: 0.468), (x: 0.407, y: 0.468), (x: 0.407, y: 0.895), (x: 0.260, y: 0.895)
תמונה של רחוב בשנגחאי שמכילה תוצאות של זיהוי אובייקטים.
קרדיט על התמונה: Steve Long ב-Unsplash (הערות נוספו).

כל הכבוד! שלחת בקשה ראשונה ל-Vision API.

הסרת המשאבים

כדי לא לצבור חיובים בחשבון על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט יחד עם המשאבים. Google Cloud Google Cloud

אם רוצים, מבטלים את פרטי הכניסה של ה-CLI של gcloud.

gcloud auth revoke

המאמרים הבאים

  • רשימה של כל סוגי התכונות והשימושים שלהן
  • כדי להתחיל להשתמש ב-Vision API בשפה הרצויה, אפשר להשתמש בספריית הלקוח של Vision API.
  • אפשר להיעזר במדריכים כדי לקבל מידע נוסף על תכונות ספציפיות, לראות דוגמאות להערות ולקבל הערות לקובץ או לתמונה ספציפיים.
  • מידע נוסף על הוספת הערות לתמונות וקבצים (PDF/TIFF/GIF) בכמות גדולה
  • עיון ברשימה מקיפה של דוגמאות קוד של ספריות לקוח samples.