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

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

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

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

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

המסוף

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

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

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

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

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

הוספת מחבר BigQuery

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

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

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

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

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

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

    כניסה ל-BigQuery

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

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

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

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

פלט המודל

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

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

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

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