Guida al rilevatore di dispositivi di protezione individuale (DPI)

scheda del modello di sfocatura delle persone nella console

Il modello Rilevatore di dispositivi di protezione individuale (DPI) ti aiuta a verificare la presenza di attrezzature che limitano l'esposizione ai pericoli in un ambiente di lavoro o comunitario.

Il modello rileva le persone e gli articoli DPI (guanti, mascherine ed elmetti) su una persona specifica. Il modello rileva gli articoli di DPI e se coprono le parti del corpo umano corrispondenti. Il modello riporta queste informazioni sulla copertura sotto forma di un punteggio di copertura compreso tra [0, 1]. Il modello accetta un video stream come input. Il modello genera risultati di rilevamento come buffer di protocollo che puoi visualizzare in BigQuery. Il modello viene eseguito a un FPS.

L'operatore di rilevamento DPI ha tre parametri di controllo che puoi impostare:

  • Copricapi: l'operatore visualizza le informazioni sugli articoli di DPI relativi alla copertura della testa. Imposta questo valore nella console Google Cloud o imposta enableHeadCoverageDetection su true in PersonalProtectiveEquipmentDetectionConfig.
  • Dispositivi di protezione del viso: l'operatore genera informazioni sugli articoli di DPI relativi alla copertura del viso. Imposta questo valore nella console Google Cloud o imposta enableFaceCoverageDetection su true in PersonalProtectiveEquipmentDetectionConfig.
  • Coprimano: l'operatore genera informazioni sugli articoli di DPI relativi alla copertura delle mani. Imposta questo valore nella console Google Cloud o imposta enableHandsCoverageDetection true in PersonalProtectiveEquipmentDetectionConfig.

Specifiche dell'app del modello di rilevatore di DPI

Segui le istruzioni riportate di seguito per creare un modello di rilevamento di dispositivi di protezione individuale nella console Google Cloud.

Console

Creare un'app nella console Google Cloud

  1. Per creare un'app di rilevamento di dispositivi di protezione individuale, segui le istruzioni riportate in Creare un'applicazione.

    Vai alla scheda Applicazioni

Aggiungere un modello di rilevamento di DPI

  1. Quando aggiungi i nodi del modello, seleziona il rilevamento di dispositivi di protezione personale dall'elenco dei modelli preaddestrati.

  2. Imposta i tipi di DPI che vuoi rilevare nel menu delle opzioni.

Aggiungere un connettore BigQuery

  1. Per utilizzare l'output, collega l'app a un connettore BigQuery.

    Per informazioni sull'utilizzo del connettore BigQuery, consulta Connetti e archivia i dati in BigQuery. Per informazioni sui prezzi di BigQuery, consulta la pagina Prezzi di BigQuery.

Visualizzare i risultati dell'output in BigQuery

Dopo che il modello ha generato i dati in BigQuery, visualizza le annotazioni di output nella dashboard di BigQuery.

Se non hai specificato un percorso BigQuery, puoi visualizzare il percorso creato dal sistema nella pagina Studio di Vertex AI Vision.

  1. Nella console Google Cloud, apri la pagina BigQuery.

    Vai a BigQuery

  2. Seleziona Espandi accanto al progetto di destinazione, al nome del set di dati e al nome dell'applicazione.

    Seleziona la tabella dell'app in BigQuery

  3. Nella visualizzazione dei dettagli della tabella, fai clic su Anteprima. Visualizza i risultati nella colonna annotazione. Per una descrizione del formato di output, consulta Output del modello.

L'applicazione memorizza i risultati in ordine cronologico. I risultati più antichi sono all'inizio della tabella, mentre quelli più recenti vengono aggiunti alla fine. Per controllare i risultati più recenti, fai clic sul numero di pagina per andare all'ultima pagina della tabella.

Output del modello

L'output del modello include un timestamp, le caselle di rilevamento, le etichette degli oggetti che corrispondono alle caselle e i punteggi di affidabilità dell'oggetto. La frequenza del flusso di output è di un frame al secondo.

L'output del modello è un formato protocol buffer che include informazioni sul frame video e sul risultato della previsione del rilevamento di PPE. Lo scopo del modello è verificare se le persone indossano correttamente l'attrezzatura di protezione. Di conseguenza, il modello si concentra sul rilevamento delle persone e PPE indossati. L'output del modello si concentra sul rilevamento di persone. Per ogni persona rilevata, il modello elenca i DPI intorno alla persona e il punteggio di copertura di ogni attrezzatura.

Nell'esempio di buffer del protocollo che segue, tieni presente quanto segue.

  • Ora corrente: il timestamp indica l'ora in cui viene generato il risultato dell'inferenza.
  • Persone rilevate: il risultato di rilevamento principale che include una riquadro con una persona identificata, più riquadri con dispositivi di protezione personale identificati e un punteggio di copertura per ogni parte del corpo.
  • Riquadro Persona identificata: il riquadro di delimitazione, il punteggio di confidenza e l'entità persona.
  • Riquadro DPI identificato: il riquadro di delimitazione, il punteggio di affidabilità e l'entità DPI.

Oggetto JSON di output dell'annotazione di esempio

{
  "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"
          }
      }
    }
  ]
}

Definizione del buffer di protocollo

// 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;
}

Best practice e limitazioni

Per ottenere i risultati migliori quando utilizzi il rilevatore di dispositivi di protezione individuale, tieni presente quanto segue quando ottieni i dati e utilizzi il modello.

Suggerimenti per i dati di origine

Consigliato: se possibile, chiedi ai soggetti del rilevamento di rimanere fermi e di guardare verso la fotocamera.

Dati di immagini di esempio che il Rilevamento di DPI è in grado di elaborare correttamente:

Immagine di esempio di una persona che guarda la fotocamera con il viso coperto
Origine immagine: Ani Kolleshi su Unsplash.
Immagine di esempio di una persona che guarda la fotocamera con il viso coperto
Origine immagine: Ahsanization su Unsplash.
Immagine di esempio di una persona che guarda la fotocamera con il viso coperto
Fonte immagine: Anastasiia Chepinska su Unsplash.

Non consigliato:evita i dati delle immagini in cui gli elementi PPE chiave sono troppo piccoli nell'inquadratura.

Dati di immagini di esempio che il rilevatore di dispositivi di protezione individuale non è in grado di elaborare correttamente:

Immagine di esempio di dispositivi di protezione individuale troppo piccoli per essere rilevati
Fonte immagine: Josue Isai Ramos Figueroa su Unsplash.

Non consigliato:evita i dati delle immagini che mostrano gli articoli di PPE chiave da un punto di vista insolito o da angolazioni irregolari.

Dati di immagini di esempio che il rilevatore di dispositivi di protezione individuale non è in grado di elaborare correttamente:

Immagine di esempio di un articolo di PPE mostrato da un'angolazione troppo insolita per essere rilevato
Origine immagine: Niclas Moser su Unsplash.

Limitazioni

  • Risoluzione: la risoluzione video di input massima consigliata è 1920 x 1080 e la risoluzione minima consigliata è 160 x 120.
  • Dimensioni minime degli oggetti rilevabili: il modello ignora gli oggetti nella scena che occupano meno del 5% delle dimensioni del frame.
  • Illuminazione: l'illuminazione del video deve essere normale. La luminosità o l'oscurità estreme nei dati video possono causare un calo delle prestazioni del rilevatore.
  • Posizionamento degli articoli DPI: il modello DPI si concentra sull'analisi dell'utilizzo corretto degli articoli DPI da parte delle persone. Di conseguenza, se una persona non indossa un DPI, il modello lo ignora.
  • Tipo di articolo DPI: il modello si concentra sull'attrezzatura di protezione per la costruzione e non sugli articoli DPI medici. Pertanto, il rilevatore potrebbe non funzionare bene in centri medici o ospedali.
  • Tipi di DPI personalizzati: il modello PPE non supporta gli elementi PPE definiti dal cliente. Il modello supporta il rilevamento di caschi, maschere e guanti.

Questo elenco non è esaustivo e queste limitazioni e funzionalità sono soggette a modifiche future del prodotto.