הוספת הערות לתמונות באמצעות הפונקציה ML.ANNOTATE_IMAGE

במדריך הזה מוסבר איך להשתמש בפונקציה ML.ANNOTATE_IMAGE כדי להפיק תובנות מנתוני תמונות לא מובנים. כשעובדים עם מאגרים גדולים של תמונות, לפעמים צריך לסווג את הקבצים באופן אוטומטי, לזהות אובייקטים ספציפיים או לחלץ מאפייני תמונה כדי שיהיה אפשר לחפש במערך הנתונים. אם יוצרים מודל מרוחק של BigQuery ML שמתחבר ל-Cloud Vision API, אפשר לבצע את משימות ניתוח התמונות האלה ישירות בטבלת אובייקטים של BigQuery באמצעות SQL סטנדרטי, בלי להעביר קבצים או ליצור צינורות עיבוד נתונים מורכבים.

מטרות

  • יוצרים מערך נתונים וחיבור למשאב.
  • יוצרים טבלת אובייקטים לקובצי תמונות שמאוחסנים ב-Cloud Storage.
  • יוצרים מודל מרוחק שמתחבר ל-Cloud Vision API.
  • מוסיפים הערות לתמונות באמצעות הפונקציה ML.ANNOTATE_IMAGE.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery, BigQuery Connection API, and Cloud Vision API APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להשלמת המדריך, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

יצירת קבוצת נתונים

כדי ליצור מערך נתונים ב-BigQuery, בוחרים אחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

    אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.

  3. ב-Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.

  4. בדף Datasets, לוחצים על Create dataset.

  5. בחלונית Create dataset:

    • בשדה Dataset ID, מזינים bqml_tutorial.

    • בקטע Data location (מיקום הנתונים), בוחרים באפשרות US (ארה"ב).

    משאירים את שאר הגדרות ברירת המחדל כמו שהן.

  6. לוחצים על Create dataset.

BQ

כדי ליצור קבוצת נתונים חדשה, משתמשים בפקודה bq mk --dataset.

  1. יוצרים מערך נתונים בשם bqml_tutorial ומגדירים את מיקום הנתונים ל-US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. מוודאים שמערך הנתונים נוצר:

    bq ls

API

מפעילים את השיטה datasets.insert עם משאב של מערך נתונים מוגדר:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

יצירת טבלת אובייקטים

יוצרים טבלת אובייקטים בשם my_object_table שמכילה תמונות. טבלת האובייקטים מאפשרת לנתח את התמונות בלי להעביר אותן מ-Cloud Storage.

הקטגוריה של Cloud Storage שמשמשת את טבלת האובייקטים צריכה להיות באותו פרויקט שבו אתם מתכננים ליצור את המודל ולקרוא לפונקציה ML.ANNOTATE_IMAGE. אם רוצים להפעיל את הפונקציה ML.ANNOTATE_IMAGE בפרויקט אחר מזה שמכיל את הקטגוריה של Cloud Storage שבה משתמשת טבלת האובייקטים, צריך להקצות את התפקיד "אדמין של Storage" ברמת הקטגוריה.

יצירת מודל

יוצרים מודל מרוחק בשם my_model עם REMOTE_SERVICE_TYPE של CLOUD_AI_VISION_V1:

CREATE OR REPLACE MODEL
`PROJECT_ID.bqml_tutorial.my_model`
REMOTE WITH CONNECTION DEFAULT
OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_VISION_V1');

מחליפים את PROJECT_ID במזהה הפרויקט.

הוספת הערות לתמונות

משתמשים בפונקציה ML.ANNOTATE_IMAGE עם התכונות המועדפות כדי להוסיף הערות לתמונות בטבלת האובייקטים.

  1. כדי לתייג את הפריטים שמופיעים בתמונות, משתמשים בפונקציה ML.ANNOTATE_IMAGE עם המאפיין label_detection:

    SELECT *
    FROM ML.ANNOTATE_IMAGE(
    MODEL `PROJECT_ID.bqml_tutorial.my_model`,
    TABLE `PROJECT_ID.bqml_tutorial.my_object_table`,
    STRUCT(['label_detection'] AS vision_features)
    );

    מחליפים את PROJECT_ID במזהה הפרויקט.

  2. כדי לזהות פנים שמופיעות בתמונות ולהחזיר מאפייני תמונה, כמו צבעים דומיננטיים, משתמשים בפונקציה ML.ANNOTATE_IMAGE עם התכונות face_detection ו-image_properties:

    SELECT *
    FROM ML.ANNOTATE_IMAGE(
    MODEL `PROJECT_ID.bqml_tutorial.my_model`,
    TABLE `PROJECT_ID.bqml_tutorial.my_object_table`,
    STRUCT(['face_detection', 'image_properties'] AS vision_features)
    );

    מחליפים את PROJECT_ID במזהה הפרויקט.

הסרת המשאבים

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

מחיקת הפרויקט

המסוף

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

gcloud

    כדי למחוק פרויקט ב- Google Cloud :

    gcloud projects delete PROJECT_ID

מחיקת משאבים ספציפיים

אם אתם מתכננים להשאיר את הפרויקט שבו השתמשתם במדריך הזה, אתם יכולים למחוק את המשאבים הספציפיים שיצרתם כדי להימנע מחיובים נוספים:

  1. מחיקת מערך הנתונים: מחיקת מערך הנתונים מסירה גם את המודל המרוחק ואת טבלת האובייקטים שיצרתם בתוכו.

    • במסוף Google Cloud , נכנסים לדף BigQuery Studio.
    • בחלונית Explorer, מרחיבים את הפרויקט ובוחרים את מערך הנתונים שיצרתם.
    • לוחצים על View actions ואז על Delete.
    • בתיבת הדו-שיח, מקלידים delete ולוחצים על מחיקה.
  2. מחיקת החיבור:

    • בחלונית Explorer, מרחיבים את שם הפרויקט ולוחצים על Connections.
    • לוחצים על הסמל View actions ליד החיבור שיצרתם ובוחרים באפשרות Delete.
    • בתיבת הדו-שיח, לוחצים על מחיקה כדי לאשר.

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