Guide du détecteur d'équipement de protection individuelle (EPI)

Fiche de modèle de floutage des personnes dans la console

Le modèle Détecteur d'équipement de protection individuelle (EPI) vous aide à vérifier la présence d'équipements qui limitent l'exposition aux dangers dans un environnement professionnel ou communautaire.

Le modèle détecte les personnes et les EPI (gants, masques et casques) sur une personne spécifique. Le modèle détecte les EPI et si les EPI couvrent les parties du corps humain correspondantes. Le modèle indique ces informations de couverture sous la forme d'un score de couverture compris entre [0, 1]. Le modèle accepte un flux vidéo en entrée. Le modèle produit les résultats de détection sous la forme d'un tampon de protocole que vous pouvez afficher dans BigQuery. Le modèle s'exécute à un FPS.

L'opérateur de détection d'EPI comporte trois paramètres de contrôle que vous pouvez définir:

  • Protections pour la tête: l'opérateur affiche les informations sur les articles d'EPI liés à la protection de la tête. Définissez cette valeur dans la console Google Cloud ou définissez enableHeadCoverageDetection sur "true" dans PersonalProtectiveEquipmentDetectionConfig.
  • Protections pour le visage: l'opérateur affiche des informations sur les articles d'EPI liés à la protection du visage. Définissez cette valeur dans la console Google Cloud ou définissez enableFaceCoverageDetection sur "true" dans PersonalProtectiveEquipmentDetectionConfig.
  • Protection des mains: l'opérateur affiche des informations sur les EPI liés à la protection des mains. Définissez cette valeur dans la console Google Cloud ou définissez enableHandsCoverageDetection sur "true" dans PersonalProtectiveEquipmentDetectionConfig.

Spécifications de l'application du modèle de détecteur d'EPI

Suivez les instructions ci-dessous pour créer un modèle de détecteur de EPI dans la consoleGoogle Cloud .

Console

Créer une application dans la Google Cloud console

  1. Pour créer une application de détection d'EPI, suivez les instructions de la section Créer une application.

    Accéder à l'onglet "Applications"

Ajouter un modèle de détecteur d'EPI

  1. Lorsque vous ajoutez des nœuds de modèle, sélectionnez le détecteur de PPE dans la liste des modèles pré-entraînés.

  2. Définissez les types d'EPI que vous souhaitez détecter dans le menu d'options.

Ajouter un connecteur BigQuery

  1. Pour utiliser la sortie, connectez l'application à un connecteur BigQuery.

    Pour en savoir plus sur l'utilisation du connecteur BigQuery, consultez Connecter et stocker des données dans BigQuery. Pour en savoir plus sur les tarifs de BigQuery, consultez la page Tarifs de BigQuery.

Afficher les résultats de sortie dans BigQuery

Une fois que le modèle a généré des données dans BigQuery, affichez les annotations de sortie dans le tableau de bord BigQuery.

Si vous n'avez pas spécifié de chemin BigQuery, vous pouvez afficher le chemin créé par le système sur la page Studio de Vertex AI Vision.

  1. Dans la console Google Cloud , ouvrez la page BigQuery.

    Accéder à BigQuery

  2. Sélectionnez Développer à côté du projet cible, du nom de l'ensemble de données et du nom de l'application.

    Sélectionner la table de l'application dans BigQuery

  3. Dans la vue d'informations de la table, cliquez sur Aperçu. Consultez les résultats dans la colonne annotation. Pour obtenir une description du format de sortie, consultez la section Sortie du modèle.

L'application stocke les résultats dans l'ordre chronologique. Les résultats les plus anciens se trouvent au début du tableau, tandis que les résultats les plus récents sont ajoutés à la fin. Pour consulter les derniers résultats, cliquez sur le numéro de page pour accéder à la dernière page de la table.

Sortie du modèle

La sortie du modèle inclut un code temporel, les cadres de détection, les libellés d'objets correspondant aux cadres et les scores de confiance de cet objet. La fréquence du flux de sortie est d'une image par seconde.

La sortie du modèle est un format de tampon de protocole qui inclut des informations sur le frame vidéo et le résultat de la prédiction de détection des EPI. L'objectif du modèle est de vérifier si les personnes portent correctement leur équipement de protection. Par conséquent, le modèle se concentre sur la détection des personnes et des EPI qu'elles portent. La sortie du modèle est axée sur la détection de personnes. Pour chaque personne détectée, le modèle liste les EPI autour de la personne et le score de couverture de chaque équipement.

Dans l'exemple de protocole de tampon qui suit, notez les points suivants.

  • Heure actuelle : l'horodatage indique l'heure à laquelle le résultat d'inférence est obtenu.
  • Personnes détectées : résultat de détection principal qui inclut un cadre identifié comme une personne, plusieurs cadres identifiés comme des EPI et un score de couverture pour chaque partie du corps.
  • Cadre de la personne identifiée : cadre de délimitation, score de confiance et entité de personne.
  • Cadre identifié comme EPI : cadre de délimitation, score de confiance et entité EPI.

Exemple d'objet JSON de sortie d'annotation

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

Définition du tampon de protocole

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

Bonnes pratiques et limites

Pour obtenir les meilleurs résultats lorsque vous utilisez le détecteur d'EPI, tenez compte des points suivants lorsque vous collectez des données et utilisez le modèle.

Recommandations concernant les données sources

Recommandation:Dans la mesure du possible, demandez aux sujets à détecter de rester immobiles et de faire face à la caméra.

Exemples de données d'image que le détecteur d'EPI peut traiter correctement:

Exemple d'image d'une personne faisant face à la caméra avec un masque
Source de l'image : Ani Kolleshi sur Unsplash.
Exemple d'image d'une personne faisant face à la caméra avec un masque
Source de l'image : Ahsanization sur Unsplash.
Exemple d'image d'une personne faisant face à la caméra avec un masque
Source de l'image : Anastasiia Chepinska sur Unsplash.

Non recommandé:évitez les données d'image dans lesquelles les principaux EPI sont trop petits dans le cadre.

Exemples de données d'image que le détecteur d'EPI ne peut pas traiter correctement:

Exemple d'image d'EPI trop petits pour être détectés
Source de l'image : Josue Isai Ramos Figueroa sur Unsplash.

Non recommandé:évitez les données d'image qui montrent les principaux EPI à partir d'un point de vue inhabituel ou d'angles irréguliers.

Exemples de données d'image que le détecteur d'EPI ne peut pas traiter correctement:

Exemple d'image d'un EPI présenté sous un angle trop inhabituel pour être détecté
Source de l'image : Niclas Moser sur Unsplash.

Limites

  • Résolution: la résolution vidéo d'entrée maximale recommandée est de 1 920 x 1 080, et la résolution minimale recommandée est de 160 x 120.
  • Taille minimale de l'objet détectable: le modèle ignore tout objet de la scène qui occupe moins de 5% de la taille du cadre.
  • Éclairage: l'éclairage de la vidéo doit être normal. Une luminosité ou une obscurité extrême dans les données vidéo peut entraîner une baisse des performances du détecteur.
  • Emplacement des EPI: le modèle EPI se concentre sur l'analyse de l'utilisation correcte des EPI. Par conséquent, si une personne ne porte pas d'EPI, le modèle l'ignore.
  • Type d'EPI: le modèle se concentre sur les équipements de protection pour le secteur de la construction et non sur les EPI médicaux. Par conséquent, le détecteur risque de ne pas fonctionner correctement dans les centres médicaux ou les hôpitaux.
  • Types d'EPI personnalisés: le modèle d'EPI n'est pas compatible avec les articles d'EPI définis par le client. Le modèle permet de détecter les casques, les masques et les gants.

Cette liste n'a pas vocation à être exhaustive. Ces limites et fonctionnalités sont susceptibles d'être modifiées à l'avenir.