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 sur un lieu de travail ou dans un environnement communautaire.
Le modèle détecte les personnes et les EPI (gants, masques et casques) qu'elles portent. Le modèle détecte les EPI et vérifie si les éléments couvrent les parties du corps correspondantes. Le modèle indique ces informations de couverture sous la forme d'un score compris entre [0, 1]. Le modèle accepte un flux vidéo en entrée. Il génère 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 à une fréquence d'une image par seconde.
L'opérateur de détection d'EPI comporte trois paramètres de contrôle que vous pouvez définir :
- Couvre-chefs : L'opérateur génère des informations sur les EPI liés à la couverture de la tête. Définissez cette valeur
dans la Google Cloud console ou définissez
enableHeadCoverageDetectionsur "true" dans lePersonalProtectiveEquipmentDetectionConfig. - Couvre-visages : l'opérateur génère des informations sur les EPI liés à la couverture du visage. Définissez cette valeur
dans la Google Cloud console ou définissez
enableFaceCoverageDetectionsur "true" dans lePersonalProtectiveEquipmentDetectionConfig. - Couvre-mains : l'opérateur génère des informations sur les EPI liés à la couverture des mains. Définissez cette valeur
dans la Google Cloud console ou définissez
enableHandsCoverageDetectionsur "true" dans lePersonalProtectiveEquipmentDetectionConfig.
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 d'EPI dans la Google Cloud console.
Console
Créer une application dans la Google Cloud console
Pour créer une application de détecteur d'EPI, suivez les instructions de la section Créer une application.
Ajouter un modèle de détecteur d'EPI
Lorsque vous ajoutez des nœuds de modèle, sélectionnez le détecteur d'EPI dans la liste des modèles pré-entraînés.
Définissez les types d'EPI que vous souhaitez détecter dans le menu d'options.
Ajouter un connecteur BigQuery
Pour utiliser la sortie, connectez l'application à un connecteur BigQuery.
Pour en savoir plus sur l'utilisation du connecteur BigQuery , consultez la section 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 Agent Platform Vision Studio.
Dans la Google Cloud console, ouvrez la page "BigQuery".
Sélectionnez Développer à côté du projet cible, du nom de l'ensemble de données et du nom de l'application.
Dans la vue détaillée du tableau, cliquez sur Aperçu. Affichez 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 par ordre chronologique. Les résultats les plus anciens se trouvent au début du tableau, tandis que 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 du tableau.
Sortie du modèle
La sortie du modèle inclut un horodatage, les cadres de détection, les étiquettes d'objet correspondant aux cadres et les scores de confiance de cet objet. Le flux de sortie est d'une image par seconde.
La sortie du modèle est au format tampon de protocole et inclut des informations sur l'image vidéo et le résultat de prédiction de la détection d'EPI. L'objectif du modèle est de vérifier si les personnes portent correctement des équipements 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 se concentre sur la détection des personnes. Pour chaque personne détectée, le modèle répertorie les EPI autour de la personne et le score de couverture de chaque équipement.
Dans l'exemple de tampon de protocole suivant, notez les points suivants.
- Heure actuelle : l'horodatage indique l'heure à laquelle le résultat d'inférence est généré.
- 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 identifié comme une personne : cadre de délimitation, score de confiance et entité de personne.
- Cadre identifié comme un EPI : cadre de délimitation, score de confiance et entité d'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 obtenez des données sources et utilisez le modèle.
Recommandations concernant les données sources
Recommandé : si possible, demandez aux sujets de détection 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 :
|
|
|
Non recommandé : évitez les données d'image où 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 :
|
Non recommandé : évitez les données d'image qui montrent les principaux EPI d'un point de vue inhabituel ou sous des angles irréguliers.
Exemples de données d'image que le détecteur d'EPI ne peut pas traiter correctement :
|
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 détectable des objets : le modèle ignore tout objet de la scène qui occupe moins de 5 % de la taille du cadre.
- Éclairage : l'éclairage 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.
- Placement des EPI : le modèle d'EPI se concentre sur l'analyse de l'utilisation correcte des EPI par les personnes. Par conséquent, si une personne ne porte pas d'EPI, le modèle ignore l'élément.
- Type d'article EPI : le modèle se concentre sur les équipements de protection pour la construction et non sur les EPI médicaux. Par conséquent, le détecteur peut 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 EPI définis par le client. Le modèle est compatible avec la détection des casques, des masques et des gants.
Cette liste n'est pas exhaustive, et ces limites et fonctionnalités sont susceptibles d'être modifiées dans les futures versions du produit.