הוספת הערות לתמונות באמצעות הפונקציה 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. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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

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

  4. 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

  5. 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

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

  7. 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. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

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

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

    אם לא רואים את החלונית הימנית, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

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

  4. בדף Datasets (מערכי נתונים), לוחצים על Create dataset (יצירת מערך נתונים).

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

    • בשדה Dataset ID (מזהה קבוצת נתונים), מזינים bqml_tutorial.

    • בקטע Data location, בוחרים באפשרות US.

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

  6. לוחצים על יצירת מערך נתונים.

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 שמשמשת את טבלת האובייקטים, צריך להעניק את התפקיד 'אדמין לניהול אחסון' ברמת הקטגוריה.

יצירת מודל

תצור מודל מרחוק בשם 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 (חיבורים).
    • לוחצים על סמל הצגת פעולות לצד החיבור שיצרתם ובוחרים באפשרות מחיקה.
    • בתיבת הדו-שיח, לוחצים על מחיקה כדי לאשר.

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