

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 了解個人防護裝備偵測 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 度方向，建議您先將其旋轉至 0 度方向，然後再將其提交給 `DetectProtectiveEquipment`。JPG 格式的映像可能包含可交換映像檔案格式 (Exif) 中繼資料中的方向資訊。您可以使用此資訊來撰寫可輪換映像的程式碼。如需詳細資訊，請參閱[可交換映像檔案格式版本 2.32](http://cipa.jp/std/documents/download_e.html?DC-008-Translation-2019-E)。PNG 格式的映像不包含映像方向資訊。

 若要從 Amazon S3 儲存貯體傳遞映像，請使用至少具有 `` AmazonS3ReadOnlyAccess 權限的使用者。使用擁有 `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)) 輸入參數，針對映像中偵測到的個人防護裝備類型要求摘要資訊。

若要指定要摘要的個人防護裝備類型，請使用 `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_tw/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`：符合以下條件的每個人的 ID。
    + 該人員穿著 `SummarizationAttributes` 輸入參數中指定的所有個人防護裝備。
    + 用於人員 (`ProtectiveEquipmentPerson`)、身體部分 (`ProtectiveEquipmentBodyPart`)、防護裝備 (`EquipmentDetection`)的 `Confidence` 等於或大於指定的最小置信閾值 (`MinConfidence`)。
    + 個人防護裝備的所有項目的 `CoversBodyPart` 值為真。
  + `PersonsWithoutRequiredEquipment`：符合下列條件之一的人員的 ID。
    + 人員(`ProtectiveEquipmentPerson`)、身體部分 (`ProtectiveEquipmentBodyPart`)和身體部分覆蓋率 (`CoversBodyPart`)的 `Confidence` 值大於指定的最小受信度閾值 (`MinConfidence`)，但該人員缺少一個或多個指定的個人防護裝備 (`SummarizationAttributes`)。
    + 如果用于任何指定個人防護裝備 (`SummarizationAttributes`) 的 `Confidence` 值大於指定的最小可信度閾值 (`MinConfidence`)，則 `CoversBodyPart` 值為假。此人還具有所有指定的個人防護裝備 (`SummarizationAttributes`)、且針對人員 (`ProtectiveEquipmentPerson`)、身體部分 (`ProtectiveEquipmentBodyPart`) 和防護裝置 (`EquipmentDetection`) 的 `Confidence` 值大於或等於最小可信度閾值 (`MinConfidence`。
  + `PersonsIndeterminate`：人員 (`ProtectiveEquipmentPerson`)、身體部分 (`ProtectiveEquipmentBodyPart`)、防護裝備 (`EquipmentDetection`) 的 `Confidence` 值所在位置偵測到的人員 ID 陣列或 `CoversBodyPart` 布林值低於指定的最小受信度閾值 (`MinConfidence`)。

  使用陣列大小來取得特定摘要的計數。例如，`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": []
    }
}
```