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

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

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

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

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

  • Head coverings: The operator outputs head coverage-related PPE item information. מגדירים את הערך הזה במסוף 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 ב-Vertex AI 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: המודל מתמקד בציוד מגן לבנייה ולא בפריטי PPE רפואיים. לכן, יכול להיות שהגלאי לא יפעל טוב במרכזים רפואיים או בבתי חולים.
  • סוגי ציוד מגן אישי בהתאמה אישית: מודל ציוד המגן האישי לא תומך בפריטי ציוד מגן אישי שהוגדרו על ידי הלקוח. המודל תומך בזיהוי של קסדות, מסכות וכפפות.

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