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

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

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

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

  1. התקינו את ה-CLI של Google Cloud.

  2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

    איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

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

    gcloud init
  4. יוצרים או בוחרים 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 .

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

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

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

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

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

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

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

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

אחרי שמבצעים את השלבים שבקטע לפני שמתחילים, אפשר להשתמש ב-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

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