מדריך לזיהוי ציוד מגן אישי (PPE)

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

מודל הזיהוי של ציוד מגן אישי (PPE) עוזר לכם לוודא שיש ציוד שמגביל את החשיפה לסכנות בסביבת עבודה או בסביבה קהילתית.

המודל מזהה אנשים ופריטי ציוד מגן אישי (כפפות, מסכות וקסדות) על אדם מסוים. המודל מזהה את פריטי הציוד האישי, ואם הם מכסים את חלקי הגוף האנושיים התואמים. המודל מדווח על פרטי הכיסוי האלה כציון כיסוי בטווח [0, 1]. המודל מקבל סטרימינג של וידאו כקלט. המודל מפיק תוצאות זיהוי כמאגר אחסון לפרוטוקולים שאפשר לראות ב-BigQuery. המודל פועל בקצב של FPS אחד.

לאופרטור לזיהוי ציוד מגן אישי יש שלושה פרמטרים שאפשר להגדיר:

  • כיסויי ראש: המפעיל מוציא פלט של מידע על פריטי ציוד מגן אישי שקשורים לכיסוי ראש. מגדירים את הערך הזה במסוף Google Cloud , או מגדירים את enableHeadCoverageDetection כ-true ב-PersonalProtectiveEquipmentDetectionConfig.
  • כיסויי פנים: המפעיל מפיק מידע על אמצעי מיגון אישי שקשורים לכיסוי הפנים. מגדירים את הערך הזה במסוף Google Cloud , או מגדירים את enableFaceCoverageDetection כ-true ב-PersonalProtectiveEquipmentDetectionConfig.
  • כיסוי לידיים: המפעיל מפיק מידע על פריטי ציוד מגן אישי שקשורים לכיסוי הידיים. צריך להגדיר את הערך הזה במסוף Google Cloud , או להגדיר את enableHandsCoverageDetection כ-true ב-PersonalProtectiveEquipmentDetectionConfig.

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

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

המסוף

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

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

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

הוספה של מודל לזיהוי ציוד מגן אישי

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

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

הוספת מחבר BigQuery

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

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

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

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

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

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

    כניסה ל-BigQuery

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

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

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

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

פלט המודל

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

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

בדוגמה של פרוטוקול החיץ שבהמשך, שימו לב לפרטים הבאים.

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

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

{
  "currentTime": "2022-11-10T21:02:13.499255040Z",
  "detectedPersons": [
    {
      "personId": "0",
      "detectedPersonIdentifiedBox": {
        "boxId": "0",
        "normalizedBoundingBox": {
          "xmin": 0.486749,
          "ymin": 0.35927793,
          "width": 0.048630536,
          "height": 0.21746585
        },
        "confidenceScore": 0.31775203,
        "personEntity":{
          "personEntityId":"0"
        }
      },
      "detected_ppe_identified_boxes": {
        "normalized_bounding_box": {
          "xmin": 0.07268746,
          "ymin": 0.80575824,
          "width": 0.22973709,
          "height": 0.18754286
        },
        "confidence_score": 0.45171335,
        "ppe_entity": {
          "ppe_label_string": "Glove",
          "ppe_supercategory_label_string": "Hand Coverage"
        }
      },
      "detected_ppe_identified_boxes":{
        "normalized_bounding_box":{
          "xmin": 0.35457548,
          "ymin": 0.016402662,
          "width": 0.31828704,
          "height": 0.18849815
        },
        "confidence_score": 0.44129524,
        "ppe_entity":{
          "ppe_label_string": "Helmet",
          "ppe_supercategory_label_string": "Head Coverage"
          }
      }
    }
  ]
}

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

// Output format for Personal Protective Equipment Detection Operator
message PersonalProtectiveEquipmentDetectionOutput {
 // Current timestamp
 protobuf.Timestamp current_time = 1;

 // The entity info for annotations from person detection prediction result
 message PersonEntity {

   // Entity id
   int64 person_entity_id = 1;
 }

 // The entity info for annotations from PPE detection prediction result
 message PPEEntity {
   // Label id
   int64 ppe_label_id = 1;
   // Human readable string of the label (Examples: helmet, glove, mask)
   string ppe_label_string = 2;
   // Human readable string of the super category label (Examples: head_cover,
   // hands_cover, face_cover)
   string ppe_supercategory_label_string = 3;
   // Entity id
   int64 ppe_entity_id = 4;
 }

 // Bounding Box in the normalized coordinates
 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;
 }

 // PersonIdentified box contains the location and the entity info of the
 // person
 message PersonIdentifiedBox {
   // An unique id for this box
   int64 box_id = 1;
   // Bounding Box in the normalized coordinates
   NormalizedBoundingBox normalized_bounding_box = 2;
   // Confidence score associated with this box
   float confidence_score = 3;
   // Person entity info
   PersonEntity person_entity = 4;
 }

 // PPEIdentified box contains the location and the entity info of the PPE
 message PPEIdentifiedBox {
   // An unique id for this box
   int64 box_id = 1;
   // Bounding Box in the normalized coordinates
   NormalizedBoundingBox normalized_bounding_box = 2;
   // Confidence score associated with this box
   float confidence_score = 3;
   // PPE entity info
   PPEEntity ppe_entity = 4;
 }

 // Detected Person contains the detected person and their associated
 // PPE and their protecting information
 message DetectedPerson {
   // The id of detected person
   int64 person_id = 1;
   // The info of detected person identified box
   PersonIdentifiedBox detected_person_identified_box = 2;
   // The info of detected person associated ppe identified boxes
   repeated PPEIdentifiedBox detected_ppe_identified_boxes = 3;

   // Coverage score for each body part


   // Coverage score for face
   optional float face_coverage_score = 4;
   // Coverage score for eyes
   optional float eyes_coverage_score = 5;
   // Coverage score for head
   optional float head_coverage_score = 6;
   // Coverage score for hands
   optional float hands_coverage_score = 7;
   // Coverage score for body
   optional float body_coverage_score = 8;
   // Coverage score for feet
   optional float feet_coverage_score = 9;
 }

 // A list of DetectedPersons
 repeated DetectedPerson detected_persons = 2;
}

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

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

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

מומלץ: כשמזהים אנשים, כדאי שהם יעמדו ללא תזוזה ויפנו אל המצלמה.

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

תמונה לדוגמה של אדם שמסתכל למצלמה עם כיסוי פנים
מקור התמונה: Ani Kolleshi ב-Unsplash.
תמונה לדוגמה של אדם שמסתכל למצלמה עם כיסוי פנים
מקור התמונה: Ahsanization ב-Unsplash.
תמונה לדוגמה של אדם שמסתכל למצלמה עם כיסוי פנים
מקור התמונה: Anastasiia Chepinska ב-Unsplash.

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

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

תמונה לדוגמה של פריטי ציוד מגן אישי שקטנים מדי לזיהוי
מקור התמונה: Josue Isai Ramos Figueroa ב-Unsplash.

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

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

תמונה לדוגמה של פריט ציוד מגן אישי שמוצגת בזווית לא שכיחה מדי, ולכן לא מזוהה
מקור התמונה: Niclas Moser באתר Unsplash.

מגבלות

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

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