了解个人防护设备检测 API - Amazon Rekognition

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

了解个人防护设备检测 API

以下信息描述了 DetectProtectiveEquipmentAPI。有关代码示例,请参阅 检测图像中的个人防护设备

提供图片

您可以以图像字节的形式提供输入图像(JPG 或 PNG 格式),也可以引用存储在 Amazon S3 存储桶中的图像。

我们建议使用人物脸部朝向摄像头的图像。

如果您的输入图像未旋转至 0 度,我们建议在提交至 DetectProtectiveEquipment 之前将其旋转至 0 度。JPG 格式的图像可能包含可交换图像文件格式 (Exif) 元数据中的方向信息。您可以使用这些信息编写代码来旋转图像。有关更多信息,请参阅 Exif 版本 2.32。PNG 格式的图像不包含图像方向信息。

要传递来自亚马逊 S3 存储桶的图片,请使用至少具有 AmazonS3 ReadOnlyAccess 权限的用户。使用具有 AmazonRekognitionFullAccess 权限的用户调用 DetectProtectiveEquipment.

在下面的输入 JSON 示例中,图像是通过 Amazon S3 存储桶传递的。有关更多信息,请参阅 使用图像。该示例要求汇总所有个人防护设备类型(头罩、手罩和口罩),最低检测置信度(MinConfidence)为 80%。您应指定一个介于 50-100% 之间的 MinConfidence 值,因为只有当检测置信度介于 50%-100% 之间时,DetectProtectiveEquipment 才会返回预测。如果指定的值小于 50%,则指定值为 50% 的结果相同。有关更多信息,请参阅 指定汇总要求

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

如果您有大型图像集要做处理,请考虑使用 AWS Batch 在后台分批处理对 DetectProtectiveEquipment 的调用。

指定汇总要求

您可以选择使用 SummarizationAttributes (ProtectiveEquipmentSummarizationAttributes) 输入参数请求图像中检测到的 PPE 类型的摘要信息。

指定要汇总的个人防护设备类型,请使用 RequiredEquipmentTypes 数组字段。在数组中,包含 FACE_COVERHAND_COVERHEAD_COVER 中的一个或多个。

使用 MinConfidence 字段指定最低检测置信度 (50-100)。摘要不包括人物、身体部位、身体部位覆盖范围和个人防护设备物品,检测到的置信度低于 MinConfidence

有关来自 DetectProtectiveEquipment 的摘要响应的更多信息,请参阅了解回 DetectProtectiveEquipment 应

了解回 DetectProtectiveEquipment 应

DetectProtectiveEquipment 返回输入图像中检测到的人的数组。对于每个人,都会返回有关检测到的身体部位和检测到的个人防护设备物品的信息。以下工作人员戴着头罩、手套和口罩的照片的 JSON 如下所示。

建筑工人身穿格子衬衫、安全帽和口罩,手里拿着电动工具。绿色方框突出显示脸部、安全帽、戴手套的手和工具。

在 JSON 中,请注意以下事项。

  • 被检测到的人 - Persons 是在图像上检测到的一系列人员(包括未佩戴个人防护设备的人)。DetectProtectiveEquipment 可以在图像中检测到的多达 15 个人身上检测到个人防护设备。数组中的每个ProtectiveEquipmentPerson对象都包含一个人 ID、一个人物边界框、检测到的身体部位和检测到的个人防护装备物品。ProtectiveEquipmentPersonConfidence 的值表示 Amazon Rekognition 对边界框包含一个人的置信度百分比。

  • 身体部位BodyParts 是在一个人身上检测到的一系列身体部位 (ProtectiveEquipmentBodyPart)(包括个人防护装备未覆盖的身体部位)。每个 ProtectiveEquipmentBodyPart 包含检测到的身体部位的名称(Name)。DetectProtectEquipment 可以检测脸部、头部、左手和右手这些身体部位。ProtectiveEquipmentBodyPart 中的 Confidence 字段表示 Amazon Rekognition 对身体部位检测精确度的置信度百分比。

  • 个人防护设备物品 - ProtectiveEquipmentBodyPart 对象中的数组 EquipmentDetections 包含一组检测到的个人防护设备物品。每个EquipmentDetection对象都包含以下字段。

    • Type – 检测到的个人防护设备的类型。

    • BoundingBox – 检测到的个人防护设备周围的边界框。

    • Confidence – Amazon Rekognition 对边界框中包含检测到的个人防护设备的置信度。

    • CoversBodyPart – 表示检测到的个人防护设备是否在相应的身体部位。

    CoversBodyPart字段Value是一个布尔值,用于指示检测到的个人防护装备是否在相应的身体部位。字段Confidence表示对预测的置信度。您可以使用 CoversBodyPart 筛选图像中检测到个人防护设备,但实际上没有出现在人身上的情况。

    注意

    CoversBodyPart 并不表示或暗示该人已受到防护设备的充分保护,也不表示该人已正确佩戴防护设备。

  • 摘要信息Summary 包含 SummarizationAttributes 输入参数中指定的摘要信息。有关更多信息,请参阅 指定汇总要求

    Summary是一个包含以下ProtectiveEquipmentSummary信息的类型的对象。

    • PersonsWithRequiredEquipment – 每个人都符合以下条件的人员的 ID 数组。

      • 该人穿着 SummarizationAttributes 输入参数中指定的所有个人防护设备。

      • 人员(ProtectiveEquipmentPerson)的 Confidence、身体部位(ProtectiveEquipmentBodyPart)、防护设备(EquipmentDetection)等于或大于指定的最低置信度阈值(MinConfidence)。

      • 所有个人防护设备物品 CoversBodyPart 的值均为真。

    • PersonsWithoutRequiredEquipment – 符合以下条件之一的人员的 ID 数组。

      • 人员(ProtectiveEquipmentPerson)的 Confidence 值、身体部位(ProtectiveEquipmentBodyPart)和身体部位覆盖范围(CoversBodyPart)大于指定的最低置信度阈值(MinConfidence),但该人缺少一个或多个指定的个人防护设备(SummarizationAttributes)。

      • 对于任何Confidence值大于指定的最小置信度阈值(MinConfidence)的指定个人防护设备(SummarizationAttributes),其CoversBodyPart值均为 false。该人还拥有所有指定的个人防护设备(SummarizationAttributes),并且人员(ProtectiveEquipmentPerson)、身体部位(ProtectiveEquipmentBodyPart)和防护设备(EquipmentDetection)的Confidence值大于或等于最低置信阈值(MinConfidence)。

    • PersonsIndeterminate – 检测到的人员 ID 数组,其中人员(ProtectiveEquipmentPerson)、身体部位(ProtectiveEquipmentBodyPart)、防护设备(EquipmentDetection)或 CoversBodyPart 布尔值的Confidence值低于指定的最小置信阈值(MinConfidence)。

    使用数组大小来获取特定摘要的计数。例如,PersonsWithRequiredEquipment 的大小告诉您检测到佩戴指定类型个人防护设备的人数。

    您可以使用人员 ID 来查找有关某人的更多信息,例如该人的边界框位置。人员 ID 映射到PersonsProtectiveEquipmentPerson 的数组)中返回的 ProtectiveEquipmentPerson 对象的 ID 字段。然后,您可以从相应的 ProtectiveEquipmentPerson 对象中获取边界框和其他信息。

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