מדריך לזיהוי אובייקטים

כרטיס מודל של טשטוש אנשים במסוף

המודל לזיהוי אובייקטים יכול לזהות יותר מ-500 סוגים של אובייקטים בסרטון ולמצוא את המיקום שלהם. המודל מקבל זרם וידאו כקלט ומפיק מאגר אחסון לפרוטוקולים עם תוצאות הזיהוי ל-BigQuery. המודל פועל ב-FPS אחד. כשיוצרים אפליקציה שמשתמשת במודל לזיהוי אובייקטים, צריך להפנות את פלט המודל למחבר BigQuery כדי לראות את פלט החיזוי.

מפרטים של אפליקציות עם מודלים לזיהוי אובייקטים

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

המסוף

יצירת אפליקציה במסוף Google Cloud

  1. כדי ליצור אפליקציה לזיהוי אובייקטים, פועלים לפי ההוראות במאמר יצירת אפליקציה.

    עוברים לכרטיסייה 'אפליקציות'.

הוספה של מודל לזיהוי אובייקטים

  1. כשמוסיפים צמתי מודל, בוחרים באפשרות Object detector (גלאי אובייקטים) מתוך רשימת המודלים שאומנו מראש.

הוספת מחבר BigQuery

  1. כדי להשתמש בפלט, צריך לחבר את האפליקציה למחבר BigQuery.

    מידע על השימוש במחבר BigQuery זמין במאמר חיבור נתונים ואחסון שלהם ב-BigQuery. מידע על התמחור ב-BigQuery זמין בדף תמחור ב-BigQuery.

הצגת תוצאות הפלט ב-BigQuery

אחרי שהמודל מייצא נתונים ל-BigQuery, אפשר לראות את ההערות של הפלט בלוח הבקרה של BigQuery.

אם לא ציינתם נתיב BigQuery, תוכלו לראות את הנתיב שנוצר על ידי המערכת בדף Studio ב-Vertex AI Vision.

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

    כניסה ל-BigQuery

  2. לוחצים על הרחבה לצד פרויקט היעד, שם מערך הנתונים ושם האפליקציה.

    בחירת טבלת אפליקציה ב-BigQuery

  3. בתצוגת הפרטים של הטבלה, לוחצים על תצוגה מקדימה. התוצאות מוצגות בעמודה הערה. תיאור של פורמט הפלט מופיע במאמר בנושא פלט המודל.

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

פלט המודל

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

בדוגמה הבאה של פלט protocol buffer, שימו לב לנקודות הבאות:

  • חותמת זמן – חותמת הזמן תואמת לזמן של תוצאת ההסקה הזו.
  • תיבות מזוהות – תוצאת הזיהוי הראשית שכוללת את זהות התיבה, מידע על תיבת התוחמת, ציון רמת הביטחון ותחזית לגבי האובייקט.

דוגמה לאובייקט JSON של פלט הערות

{
  "currentTime": "2022-11-09T02:18:54.777154048Z",
  "identifiedBoxes": [
    {
      "boxId":"0",
      "normalizedBoundingBox": {
        "xmin": 0.6963465,
        "ymin": 0.23144785,
        "width": 0.23944569,
        "height": 0.3544306
      },
      "confidenceScore": 0.49874997,
      "entity": {
        "labelId": "0",
        "labelString": "Houseplant"
      }
    }
  ]
}

הגדרה של מאגר אחסון לפרוטוקולים

// The prediction result protocol buffer for object detection
message ObjectDetectionPredictionResult {
  // Current timestamp
  protobuf.Timestamp timestamp = 1;

  // The entity information for annotations from object detection prediction
  // results
  message Entity {
    // Label id
    int64 label_id = 1;

    // The human-readable label string
    string label_string = 2;
  }

  // The identified box contains the location and the entity of the object
  message IdentifiedBox {
    // An unique id for this box
    int64 box_id = 1;

    // Bounding Box in normalized coordinates [0,1]
    message NormalizedBoundingBox {
      // Min in x coordinate
      float xmin = 1;
      // Min in y coordinate
      float ymin = 2;
      // Width of the bounding box
      float width = 3;
      // Height of the bounding box
      float height = 4;
    }
    // Bounding Box in the normalized coordinates
    NormalizedBoundingBox normalized_bounding_box = 2;

    // Confidence score associated with this bounding box
    float confidence_score = 3;

    // Entity of this box
    Entity entity = 4;
  }
  // A list of identified boxes
  repeated IdentifiedBox identified_boxes = 2;
}

שיטות מומלצות ומגבלות

כדי לקבל את התוצאות הטובות ביותר כשמשתמשים בגלאי האובייקטים, כדאי לקחת בחשבון את הנקודות הבאות כשמקור הנתונים הוא המודל.

המלצות לגבי נתוני המקור

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

נתוני תמונה לדוגמה שהכלי לזיהוי אובייקטים יכול לעבד בצורה נכונה:

תמונה לדוגמה של אובייקטים שרואים בבירור
מקור התמונה: Spacejoy ב-Unsplash.

שליחת נתוני התמונה האלה למודל מחזירה את פרטי זיהוי האובייקט הבאים*:

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

תמונה לדוגמה של אובייקטים שרואים בבירור
מקור התמונה: Spacejoy ב-Unsplash (ההערות נוספו באופן ידני).

לא מומלץ: כדאי להימנע מנתוני תמונה שבהם הפריטים של האובייקט המרכזי קטנים מדי בפריים.

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

תמונה לדוגמה של פריטי אובייקט שקטנים מדי מכדי לזהות אותם
מקור התמונה: Bernard Hermant ב-Unsplash (התמונה נחתכה).

לא מומלץ: אל תשתמשו בנתוני תמונה שבהם הפריטים המרכזיים של האובייקט מכוסים חלקית או באופן מלא על ידי אובייקטים אחרים.

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

תמונה לדוגמה של פריטי אובייקט שמכוסים חלקית על ידי אובייקטים אחרים
מקור התמונה: Şahin Sezer Dinçer ב-Unsplash.

מגבלות

  • רזולוציית הסרטון: הרזולוציה המקסימלית המומלצת של סרטון קלט היא ‎1920 x 1080, והרזולוציה המינימלית המומלצת היא ‎160 x 120.
  • תאורה: ביצועי המודל רגישים לתנאי התאורה. בהירות או חושך קיצוניים עלולים להוביל לאיכות זיהוי נמוכה יותר.
  • גודל האובייקט: לגלאי האובייקטים יש גודל אובייקט מינימלי שניתן לזיהוי. חשוב לוודא שאובייקטי היעד גדולים מספיק וגלויים בנתוני הסרטון.