

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

# 了解个人防护设备检测 API
<a name="ppe-request-response"></a>

以下信息描述了 [DetectProtectiveEquipment](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectProtectiveEquipment.html)API。有关示例代码，请参阅[检测图像中的个人防护设备](ppe-procedure-image.md)。

## 提供图片
<a name="detect-protective-equipment-request"></a>

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

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

如果您的输入图像未旋转至 0 度，我们建议在提交至 `DetectProtectiveEquipment` 之前将其旋转至 0 度。JPG 格式的图像可能包含可交换图像文件格式 (Exif) 元数据中的方向信息。您可以使用这些信息编写代码来旋转图像。有关更多信息，请参阅 [Exif 版本 2.32](http://cipa.jp/std/documents/download_e.html?DC-008-Translation-2019-E)。PNG 格式的图像不包含图像方向信息。

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

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

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

如果您有大型图像集要做处理，请考虑使用 [AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/) 在后台分批处理对 `DetectProtectiveEquipment` 的调用。

### 指定汇总要求
<a name="ppe-summarization-input-parameters"></a>

您可以选择使用 `SummarizationAttributes` ([ProtectiveEquipmentSummarizationAttributes](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentSummarizationAttributes.html)) 输入参数请求图像中检测到的 PPE 类型的摘要信息。

指定要汇总的个人防护设备类型，请使用 `RequiredEquipmentTypes` 数组字段。在数组中，包含 `FACE_COVER`、`HAND_COVER` 或 `HEAD_COVER` 中的一个或多个。

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

有关来自 `DetectProtectiveEquipment` 的摘要响应的更多信息，请参阅[了解回 DetectProtectiveEquipment 应](#detect-protective-equipment-response)。



## 了解回 DetectProtectiveEquipment 应
<a name="detect-protective-equipment-response"></a>

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

![\[建筑工人身穿格子衬衫，戴着安全帽和面罩，手里拿着电动工具。绿色方框突出显示人脸、安全帽、戴手套的手和工具。\]](http://docs.aws.amazon.com/zh_cn/rekognition/latest/dg/images/worker-with-bb.png)


在 JSON 中，请注意以下事项。
+ **被检测到的人** - `Persons` 是在图像上检测到的一系列人员（包括未佩戴个人防护设备的人）。`DetectProtectiveEquipment` 可以在图像中检测到的多达 15 个人身上检测到个人防护设备。数组中的每个[ProtectiveEquipmentPerson](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentPerson.html)物体都包含一个人 ID、一个人物边界框、检测到的身体部位和检测到的个人防护用品。`ProtectiveEquipmentPerson` 中 `Confidence` 的值表示 Amazon Rekognition 对边界框包含一个人的置信度百分比。
+ **身体部位** — `BodyParts` 是在一个人身上检测到的一系列身体部位 ([ProtectiveEquipmentBodyPart](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentBodyPart.html))（包括个人防护装备未覆盖的身体部位）。每个 `ProtectiveEquipmentBodyPart` 包含检测到的身体部位的名称（`Name`）。`DetectProtectEquipment` 可以检测脸部、头部、左手和右手这些身体部位。`ProtectiveEquipmentBodyPart` 中的 `Confidence` 字段表示 Amazon Rekognition 对身体部位检测精确度的置信度百分比。
+ **个人防护设备物品** - `ProtectiveEquipmentBodyPart` 对象中的数组 `EquipmentDetections` 包含一组检测到的个人防护设备物品。每个[EquipmentDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_EquipmentDetection.html)对象都包含以下字段。
  +  `Type` – 检测到的个人防护设备的类型。
  + `BoundingBox` – 检测到的个人防护设备周围的边界框。
  + `Confidence` – Amazon Rekognition 对边界框中包含检测到的个人防护设备的置信度。
  + `CoversBodyPart` – 表示检测到的个人防护设备是否在相应的身体部位。

  该[CoversBodyPart](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CoversBodyPart.html)字段`Value`是一个布尔值，用于指示检测到的个人防护装备是否在相应的身体部位。字段`Confidence`表示对预测的置信度。您可以使用 `CoversBodyPart` 筛选图像中检测到个人防护设备，但实际上没有出现在人身上的情况。
**注意**  
`CoversBodyPart` 并不表示或暗示该人已受到防护设备的充分保护，也不表示该人已正确佩戴防护设备。
+ **摘要信息** – `Summary` 包含 `SummarizationAttributes` 输入参数中指定的摘要信息。有关更多信息，请参阅 [指定汇总要求](#ppe-summarization-input-parameters)。

  `Summary`是一个包含以下[ProtectiveEquipmentSummary](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentSummary.html)信息的类型的对象。
  + `PersonsWithRequiredEquipment`— 每个人都符合以下标准 IDs 的人员阵列。
    + 该人穿着 `SummarizationAttributes` 输入参数中指定的所有个人防护设备。
    + 人员（`ProtectiveEquipmentPerson`）的 `Confidence`、身体部位（`ProtectiveEquipmentBodyPart`）、防护设备（`EquipmentDetection`）等于或大于指定的最低置信度阈值（`MinConfidence`）。
    + 所有个人防护设备物品 `CoversBodyPart` 的值均为真。
  + `PersonsWithoutRequiredEquipment`— 符合以下条件之一的一系列人员。 IDs 
    + 人员（`ProtectiveEquipmentPerson`）的 `Confidence` 值、身体部位（`ProtectiveEquipmentBodyPart`）和身体部位覆盖范围（`CoversBodyPart`）大于指定的最低置信度阈值（`MinConfidence`），但该人缺少一个或多个指定的个人防护设备（`SummarizationAttributes`）。
    + 对于任何`Confidence`值大于指定的最小置信度阈值（`MinConfidence`）的指定个人防护设备（`SummarizationAttributes`），其`CoversBodyPart`值均为 false。该人还拥有所有指定的个人防护设备（`SummarizationAttributes`），并且人员（`ProtectiveEquipmentPerson`）、身体部位（`ProtectiveEquipmentBodyPart`）和防护设备（`EquipmentDetection`）的`Confidence`值大于或等于最低置信阈值（`MinConfidence`）。
  + `PersonsIndeterminate`— 检测到的人员 IDs 数组，其中人员 (`ProtectiveEquipmentPerson`)、身体部位 (`ProtectiveEquipmentBodyPart`)、防护装备 (`EquipmentDetection`) 或`CoversBodyPart`布尔值低于指定的最小置信阈值 (`MinConfidence`)。`Confidence`

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

  您可以使用人员 ID 来查找有关某人的更多信息，例如该人的边界框位置。人员 ID 映射到`Persons`（`ProtectiveEquipmentPerson` 的数组）中返回的 `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": []
    }
}
```