

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 개인용 보호 장비 탐지 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 형식 이미지에는 이미지 방향 정보가 포함되어 있지 않습니다.

 Amazon S3 버킷에서 이미지를 전달하려면 최소한 ``AmazonS3ReadOnlyAccess 권한을 가진 사용자를 사용해야 합니다. `DetectProtectiveEquipment.`를 직접 호출할 수 있는 `AmazonRekognitionFullAccess` 권한이 있는 사용자를 사용하세요.

다음 예제 입력 JSON에서는 Amazon S3 버킷으로 이미지가 전달됩니다. 자세한 내용은 [이미지 작업](images.md) 단원을 참조하십시오. 이 예제에서는 최소 탐지 신뢰도(`MinConfidence`)가 80%인 모든 PPE 유형(머리 덮개, 손 덮개, 얼굴 덮개)의 요약을 요청합니다. `DetectProtectiveEquipment`는 탐지 신뢰도가 50%\$1100% 사이인 경우에만 예측을 반환하므로 50%\$1100% 사이의 `MinConfidence` 값을 지정해야 합니다. 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 유형에 대한 요약 정보를 요청할 수 있습니다.

요약할 PPE 유형을 지정하려면 `RequiredEquipmentTypes` 배열 필드를 사용하세요. 배열에 `FACE_COVER`, `HAND_COVER`, `HEAD_COVER` 중 적어도 하나를 포함하세요.

`MinConfidence` 필드를 사용하여 최소 탐지 신뢰도(50\$1100)를 지정합니다. `MinConfidence`보다 낮은 신뢰도로 탐지된 인물, 신체 부위, 가려진 신체 부위 및 PPE 항목은 요약에 포함되지 않습니다.

`DetectProtectiveEquipment` 응답에 대한 자세한 내용은 [DetectProtectiveEquipment 응답 이해](#detect-protective-equipment-response) 섹션을 참조하세요.



## DetectProtectiveEquipment 응답 이해
<a name="detect-protective-equipment-response"></a>

`DetectProtectiveEquipment`는 입력 이미지에서 감지된 인물의 배열을 반환합니다. 각 개인에 대해 탐지된 신체 부위 및 탐지된 PPE 항목에 대한 정보가 반환됩니다. 머리 덮개, 손 덮개, 얼굴 덮개를 착용한 근로자의 아래 이미지에 대한 JSON은 다음과 같습니다.

![\[체크 셔츠, 안전모 및 안면 마스크를 착용하고 전동 공구를 들고 있는 건설 작업자. 녹색 상자는 얼굴, 안전모, 장갑을 낀 손, 도구를 강조 표시합니다.\]](http://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/images/worker-with-bb.png)


JSON에서 다음 사항에 유의하세요.
+ **탐지된 인물** - `Persons`는 이미지에서 탐지된 인물의 배열입니다(PPE 미착용 인물 포함). `DetectProtectiveEquipment`는 이미지에서 감지된 최대 15명의 사람이 착용한 PPE를 감지할 수 있습니다. 배열 내 각 [ProtectiveEquipmentPerson](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentPerson.html) 객체에는 인물 ID, 해당 인물의 경계 상자, 감지된 신체 부위, 감지된 PPE 항목이 포함되어 있습니다. `ProtectiveEquipmentPerson`의 `Confidence` 값은 Amazon Rekognition이 경계 상자에 사람이 포함되어 있다고 확신하는 정도의 백분율을 나타냅니다.
+ **신체 부위** - `BodyParts`는 사람에게서 감지된 신체 부위([ProtectiveEquipmentBodyPart](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentBodyPart.html)) 배열입니다(PPE를 착용하고 있지 않은 신체 부위 포함). 각 `ProtectiveEquipmentBodyPart`에는 탐지된 신체 부위의 이름(`Name`)이 포함되어 있습니다. `DetectProtectEquipment`는 얼굴, 머리, 왼손 및 오른손의 신체 부위를 감지할 수 있습니다. `ProtectiveEquipmentBodyPart`의 `Confidence` 필드는 신체 부위의 감지 정확도에 대한 Amazon Rekognition의 신뢰도 백분율을 나타냅니다.
+ **PPE 항목** - `ProtectiveEquipmentBodyPart` 객체의 `EquipmentDetections` 배열에는 탐지된 PPE 항목 배열이 포함되어 있습니다. 각 [EquipmentDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_EquipmentDetection.html) 객체는 다음 필드를 포함합니다.
  +  `Type` - 감지된 PPE의 유형
  + `BoundingBox` - 감지된 PPE 주변의 경계 상자
  + `Confidence` - 경계 상자 안에 탐지된 PPE가 있다고 Amazon Rekognition이 믿는 신뢰도
  + `CoversBodyPart` - 감지된 PPE가 해당 신체 부위를 덮고 있는지의 여부

  [CoversBodyPart](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CoversBodyPart.html) 필드 `Value`는 탐지된 PPE의 해당 신체 부위 착용 여부를 나타내는 부울 값입니다. `Confidence` 필드는 예측에 대한 신뢰도를 나타냅니다. 탐지된 PPE가 이미지 내에 있지만 실제로 사람이 착용하고 있지는 않은 경우를 필터링하는 데 `CoversBodyPart`를 사용할 수 있습니다.
**참고**  
`CoversBodyPart`는 해당 인물이 보호 장비로 적절하게 보호되고 있거나 보호 장비 자체가 제대로 착용되었음을 나타내거나 암시하지 않습니다.
+ **요약 정보** - `Summary`는 `SummarizationAttributes` 입력 파라미터에 지정된 요약 정보를 포함합니다. 자세한 내용은 [요약 요구 사항 지정](#ppe-summarization-input-parameters) 단원을 참조하십시오.

  `Summary`는 다음 정보를 포함하는 [ProtectiveEquipmentSummary](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProtectiveEquipmentSummary.html) 유형의 객체입니다.
  + `PersonsWithRequiredEquipment` - 다음 기준을 각각 충족하는 인물의 ID 배열
    + 해당 인물은 `SummarizationAttributes` 입력 파라미터에 지정된 PPE를 모두 착용하고 있습니다.
    + 사람(`ProtectiveEquipmentPerson`), 신체 부위(`ProtectiveEquipmentBodyPart`), 보호 장비(`EquipmentDetection`)의 `Confidence`는 지정된 최소 신뢰도 임계값(`MinConfidence`)과 같거나 그보다 큽니다.
    + 모든 PPE 항목의 `CoversBodyPart` 값은 true입니다.
  + `PersonsWithoutRequiredEquipment` - 다음 기준 중 하나를 충족하는 인물의 ID 배열 
    + 사람(`ProtectiveEquipmentPerson`), 신체 부위(`ProtectiveEquipmentBodyPart`) 및 가려진 신체 부위(`CoversBodyPart`)의 `Confidence` 값이 지정된 최소 신뢰도 임계값(`MinConfidence`)보다 크지만 해당 인물에서 지정된 PPE(`SummarizationAttributes`)가 하나 이상 누락되었습니다.
    + `Confidence` 값이 지정된 최소 신뢰도 임계값(`MinConfidence`)보다 큰 지정된 PPE(`SummarizationAttributes`)에서 `CoversBodyPart` 값이 false입니다. 또한 해당 인물에 지정된 PPE(`SummarizationAttributes`)가 모두 있으며 사람(`ProtectiveEquipmentPerson`), 신체 부위(`ProtectiveEquipmentBodyPart`) 및 보호 장비(`EquipmentDetection`)의 `Confidence` 값이 최소 신뢰도 임계값(`MinConfidence`)보다 크거나 같습니다.
  + `PersonsIndeterminate` - 사람(`ProtectiveEquipmentPerson`), 신체 부위(`ProtectiveEquipmentBodyPart`), 보호 장비(`EquipmentDetection`)의 `Confidence` 값 또는 `CoversBodyPart` 부울 값이 지정된 최소 신뢰도 임계값(`MinConfidence`)보다 낮은 경우 탐지된 인물의 ID 배열 

  배열 크기를 사용하여 특정 요약의 개수를 구할 수 있습니다. 예를 들어, `PersonsWithRequiredEquipment`의 크기는 지정된 유형의 PPE를 착용한 것으로 감지된 사람의 수를 나타냅니다.

  인물 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": []
    }
}
```