Comprendre l’API de détection des équipements de protection individuelle - Amazon Rekognition

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comprendre l’API de détection des équipements de protection individuelle

Les informations suivantes décrivent l'DetectProtectiveEquipmentAPI. Pour obtenir un exemple de code, consultez Détection d’un équipement de protection individuelle dans une image.

Fourniture d’une image

Vous fournissez une image d’entrée (format JPG ou PNG) sous forme d’octets d’image ou en référençant une image stockée dans un compartiment S3.

Nous recommandons d’utiliser des images où le visage de la personne fait face à l’appareil photo.

Si votre image d’entrée n’est pas pivotée à 0 degré, nous vous recommandons de la faire pivoter à 0 degré avant de la soumettre à DetectProtectiveEquipment. Les images au format JPG peuvent contenir des informations d’orientation dans des métadonnées Exif (Exchangeable Image File Format). Vous pouvez utiliser ces informations pour écrire le code permettant de faire pivoter l’image. Pour en savoir plus, consultez Exif Version 2.32. Les images au format PNG ne contiennent aucune information d’orientation de l’image.

Pour transmettre une image depuis un compartiment Amazon S3, utilisez un utilisateur possédant au moins les privilèges Amazon S3ReadOnlyAccess . Utiliser un utilisateur ayant des privilèges AmazonRekognitionFullAccess pour appeler DetectProtectiveEquipment.

Dans l’exemple JSON d’entrée suivant, l’image est transmise dans un compartiment Amazon S3. Pour plus d’informations, consultez Travail avec les images. L’exemple demande un résumé de tous les types d’EPI (couvre-tête, couvre-main et couvre-visage) avec un niveau de confiance de détection minimum (MinConfidence) de 80 %. Vous devez spécifier une valeur MinConfidence comprise entre 50 et 100 % car DetectProtectiveEquipment ne renvoie des prédictions que lorsque le niveau de confiance de détection est compris entre 50 % et 100 %. Si vous spécifiez une valeur inférieure à 50 %, les résultats sont identiques si vous spécifiez une valeur de 50 %. Pour plus d’informations, consultez Spécifier les exigences de synthèse.

{ "Image": { "S3Object": { "Bucket": "bucket", "Name": "worker.jpg" } }, "SummarizationAttributes": { "MinConfidence": 80, "RequiredEquipmentTypes": [ "FACE_COVER", "HAND_COVER", "HEAD_COVER" ] } }

Si vous disposez d’une grande collection d’images à traiter pour le processus, pensez à utiliser AWS Batch afin de traiter les appels de DetectProtectiveEquipment par lots en arrière-plan.

Spécifier les exigences de synthèse

Vous pouvez éventuellement utiliser le paramètre d'entrée SummarizationAttributes (ProtectiveEquipmentSummarizationAttributes) pour demander des informations récapitulatives sur les types d'EPI détectés dans une image.

Pour spécifier les types de PPE à résumer, utilisez le tableau RequiredEquipmentTypes. Dans le tableau, incluez un ou plusieurs des éléments suivants : FACE_COVER, HAND_COVER ou HEAD_COVER.

Utilisez le champ MinConfidence pour spécifier un niveau de confiance de détection minimal (50 à 100). Le résumé n’inclut pas les personnes, les parties du corps, les parties du corps couvertes et les articles d’EPI détectés avec un niveau de confiance inférieur à MinConfidence.

Pour plus d’informations sur la réponse en résumé de DetectProtectiveEquipment consultez Comprendre la DetectProtectiveEquipment réponse.

Comprendre la DetectProtectiveEquipment réponse

DetectProtectiveEquipment renvoie un tableau des personnes détectées dans l’image d’entrée. Pour chaque personne, des informations sur les parties du corps détectées et les articles d’EPI détectés sont renvoyées. Le JSON de l’image suivante d’un travailleur portant un couvre-chef, un couvre-main et un couvre-visage est le suivant.

Travailleur du bâtiment portant une chemise à carreaux, un casque de sécurité et un masque facial tenant un outil électrique. Les cases vertes mettent en valeur le visage, le casque, la main gantée et l'outil.

Dans JSON, notez les éléments suivants :

  • Personnes détectées : Persons ensemble de personnes détectées sur l’image (y compris les personnes ne portant pas d’EPI). DetectProtectiveEquipment peut détecter l’EPI sur un maximum de 15 personnes détectées sur une image. Chaque ProtectiveEquipmentPersonobjet du tableau contient un identifiant personnel, un cadre de délimitation pour la personne, des parties du corps détectées et des articles d'EPI détectés. La valeur Confidence dans ProtectiveEquipmentPerson indique le pourcentage de confiance d’Amazon Rekognition quant à la présence d’une personne dans le cadre de délimitation.

  • Parties du corps : BodyParts ensemble de parties du corps (ProtectiveEquipmentBodyPart) détectées sur une personne (y compris les parties du corps non couvertes par un EPI). Chaque ProtectiveEquipmentBodyPart inclut le nom (Name) de la partie du corps détectée. DetectProtectEquipment peut détecter le visage, la tête, les parties du corps gauches et droites. Le champ Confidence dans ProtectiveEquipmentBodyPart indique le pourcentage de confiance d’Amazon Rekognition quant à la précision de détection de la partie du corps.

  • Articles EPI : le tableau EquipmentDetections d’un objet ProtectiveEquipmentBodyPart contient un ensemble d’articles EPI détectés. Chaque EquipmentDetectionobjet contient les champs suivants.

    • Type : le type d’EPI détecté.

    • BoundingBox : un cadre de délimitation autour de l’EPI détecté.

    • Confidence : la confiance d’Amazon Rekognition quant au fait que le boîtier de sélection contient l’EPI détecté.

    • CoversBodyPart : indique si l’EPI détecté se trouve sur la partie du corps correspondante.

    Le CoversBodyPartchamp Value est une valeur booléenne qui indique si l'EPI détecté se trouve sur la partie du corps correspondante. Le champ Confidence indique le niveau de confiance dans la prédiction. Vous pouvez utiliser CoversBodyPart pour filtrer les cas où l’EPI détecté se trouve sur l’image, mais pas réellement sur la personne.

    Note

    CoversBodyPart n’indique pas ou n’implique pas que la personne est correctement protégée par l’équipement de protection, ou que l’équipement de protection lui-même est correctement porté.

  • Informations récapitulatives : Summary contient les informations récapitulatives spécifiées dans le paramètre d’entrée SummarizationAttributes. Pour plus d’informations, consultez Spécifier les exigences de synthèse.

    Summaryest un objet de type ProtectiveEquipmentSummaryqui contient les informations suivantes.

    • PersonsWithRequiredEquipment : tableau des identifiants de personnes pour lesquels chaque personne répond aux critères suivants.

      • La personne porte tous les équipements de protection individuelle spécifiés dans le paramètre d’entrée SummarizationAttributes.

      • Le niveau de Confidence pour la personne (ProtectiveEquipmentPerson), la partie du corps (ProtectiveEquipmentBodyPart), l’équipement de protection (EquipmentDetection) est égal ou supérieur au seuil de confiance minimum spécifié (MinConfidence).

      • La valeur de CoversBodyPart pour tous les articles de protection individuelle est vraie.

    • PersonsWithoutRequiredEquipment : tableau des identifiants des personnes répondant à l’un des critères suivants.

      • Les valeurs Confidence pour la personne (ProtectiveEquipmentPerson), la partie du corps (ProtectiveEquipmentBodyPart) et la couverture des parties du corps (CoversBodyPart) sont supérieures au seuil de confiance minimum spécifié (MinConfidence), mais il manque un ou plusieurs EPI spécifiés (SummarizationAttributes) à la personne.

      • La valeur de CoversBodyPart est fausse pour tout PPE spécifié (SummarizationAttributes) dont la valeur Confidence est supérieure au seuil de confiance minimum spécifié (MinConfidence). La personne possède également tous les équipements de protection individuelle spécifiés (SummarizationAttributes) et les valeurs Confidence pour la personne (ProtectiveEquipmentPerson), la partie du corps (ProtectiveEquipmentBodyPart) et l’équipement de protection (EquipmentDetection) sont supérieures ou égales au seuil de confiance minimum (MinConfidence).

    • PersonsIndeterminate : tableau des identifiants des personnes détectées lorsque la valeur Confidence de la personne (ProtectiveEquipmentPerson), de la partie du corps (ProtectiveEquipmentBodyPart), de l’équipement de protection (EquipmentDetection) ou du CoversBodyPart booléen est inférieure au seuil de confiance minimum spécifié (MinConfidence).

    Utilisez la taille du tableau pour obtenir le nombre d’un résumé particulier. Par exemple, la taille de PersonsWithRequiredEquipment indique le nombre de personnes détectées comme portant le type d’EPI spécifié.

    Vous pouvez utiliser l’identifiant de la personne pour obtenir de plus amples informations sur une personne, telles que l’emplacement de la personne dans le cadre de délimitation. L’ID de personne correspond au champ ID d’un objet (ProtectiveEquipmentPerson) renvoyé dans Persons (tableau de ProtectiveEquipmentPerson). Vous pouvez ensuite obtenir le cadre de délimitation et d’autres informations à partir de l’objet ProtectiveEquipmentPerson correspondant.

{ "ProtectiveEquipmentModelVersion": "1.0", "Persons": [ { "BodyParts": [ { "Name": "FACE", "Confidence": 99.99861145019531, "EquipmentDetections": [ { "BoundingBox": { "Width": 0.14528800547122955, "Height": 0.14956723153591156, "Left": 0.4363413453102112, "Top": 0.34203192591667175 }, "Confidence": 99.90001678466797, "Type": "FACE_COVER", "CoversBodyPart": { "Confidence": 98.0676498413086, "Value": true } } ] }, { "Name": "LEFT_HAND", "Confidence": 96.9786376953125, "EquipmentDetections": [ { "BoundingBox": { "Width": 0.14495663344860077, "Height": 0.12936046719551086, "Left": 0.5114737153053284, "Top": 0.5744519829750061 }, "Confidence": 83.72270965576172, "Type": "HAND_COVER", "CoversBodyPart": { "Confidence": 96.9288558959961, "Value": true } } ] }, { "Name": "RIGHT_HAND", "Confidence": 99.82939147949219, "EquipmentDetections": [ { "BoundingBox": { "Width": 0.20971858501434326, "Height": 0.20528452098369598, "Left": 0.2711356580257416, "Top": 0.6750612258911133 }, "Confidence": 95.70789337158203, "Type": "HAND_COVER", "CoversBodyPart": { "Confidence": 99.85433197021484, "Value": true } } ] }, { "Name": "HEAD", "Confidence": 99.9999008178711, "EquipmentDetections": [ { "BoundingBox": { "Width": 0.24350935220718384, "Height": 0.34623199701309204, "Left": 0.43011072278022766, "Top": 0.01103297434747219 }, "Confidence": 83.88762664794922, "Type": "HEAD_COVER", "CoversBodyPart": { "Confidence": 99.96485900878906, "Value": true } } ] } ], "BoundingBox": { "Width": 0.7403100728988647, "Height": 0.9412225484848022, "Left": 0.02214839495718479, "Top": 0.03134796395897865 }, "Confidence": 99.98855590820312, "Id": 0 } ], "Summary": { "PersonsWithRequiredEquipment": [ 0 ], "PersonsWithoutRequiredEquipment": [], "PersonsIndeterminate": [] } }