개인용 보호 장비 탐지 API 이해 - Amazon Rekognition

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

개인용 보호 장비 탐지 API 이해

다음 정보는 DetectProtectiveEquipmentAPI에 대해 설명합니다. 예제 코드는 이미지에서 개인 보호 장비 감지 항목을 참조하세요.

이미지 제공

입력 이미지(JPG 또는 PNG 형식)를 이미지 바이트로 제공하거나 Amazon S3 버킷에 저장된 이미지를 참조할 수 있습니다.

사람의 얼굴이 카메라를 향하고 있는 이미지를 사용하는 것이 좋습니다.

입력 이미지가 0도 방향으로 회전되지 않은 경우, DetectProtectiveEquipment에 제출하기 전에 0도 방향으로 회전시키는 것을 권장합니다. JPG 형식의 이미지에는 교환 이미지 파일 형식(Exif) 메타데이터의 방향 정보가 포함될 수 있습니다. 이 정보를 사용하여 이미지를 회전시키는 코드를 작성할 수 있습니다. 자세한 내용은 Exif 버전 2.32를 참조하세요. PNG 형식 이미지에는 이미지 방향 정보가 포함되어 있지 않습니다.

Amazon S3 버킷의 이미지를 전달하려면 최소한 AmazonS3 ReadOnlyAccess 권한이 있는 사용자를 사용하십시오. DetectProtectiveEquipment.를 직접 호출할 수 있는 AmazonRekognitionFullAccess 권한이 있는 사용자를 사용하세요.

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

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

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

DetectProtectiveEquipment 응답에 대한 자세한 내용은 응답에 DetectProtectiveEquipment 대한 이해 섹션을 참조하세요.

응답에 DetectProtectiveEquipment 대한 이해

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

체크 무늬 셔츠, 안전모, 마스크를 쓰고 전동 공구를 들고 있는 건설 노동자. 녹색 상자는 얼굴, 안전모, 장갑을 낀 손, 도구를 강조 표시합니다.

JSON에서 다음 사항에 유의하세요.

  • 탐지된 인물 - Persons는 이미지에서 탐지된 인물의 배열입니다(PPE 미착용 인물 포함). DetectProtectiveEquipment는 이미지에서 감지된 최대 15명의 사람이 착용한 PPE를 감지할 수 있습니다. 배열의 각 ProtectiveEquipmentPerson개체에는 개인 ID, 사람을 위한 경계 상자, 감지된 신체 부위, 검출된 PPE 품목이 포함됩니다. ProtectiveEquipmentPersonConfidence 값은 Amazon Rekognition이 경계 상자에 사람이 포함되어 있다고 확신하는 정도의 백분율을 나타냅니다.

  • 신체 부위 — 사람에게서 감지되는 신체 부위 (PPE 적용 대상이 아닌 신체 부위 포함 ProtectiveEquipmentBodyPart) 의 BodyParts 배열입니다. 각 ProtectiveEquipmentBodyPart에는 탐지된 신체 부위의 이름(Name)이 포함되어 있습니다. DetectProtectEquipment는 얼굴, 머리, 왼손 및 오른손의 신체 부위를 감지할 수 있습니다. ProtectiveEquipmentBodyPartConfidence 필드는 신체 부위의 감지 정확도에 대한 Amazon Rekognition의 신뢰도 백분율을 나타냅니다.

  • PPE 항목 - ProtectiveEquipmentBodyPart 객체의 EquipmentDetections 배열에는 탐지된 PPE 항목 배열이 포함되어 있습니다. 각 EquipmentDetection개체에는 다음 필드가 있습니다.

    • Type - 감지된 PPE의 유형

    • BoundingBox - 감지된 PPE 주변의 경계 상자

    • Confidence - 경계 상자 안에 탐지된 PPE가 있다고 Amazon Rekognition이 믿는 신뢰도

    • CoversBodyPart - 감지된 PPE가 해당 신체 부위를 덮고 있는지의 여부

    ValueCoversBodyPart필드는 검출된 PPE가 해당 신체 부위에 있는지 여부를 나타내는 부울 값입니다. Confidence 필드는 예측에 대한 신뢰도를 나타냅니다. 탐지된 PPE가 이미지 내에 있지만 실제로 사람이 착용하고 있지는 않은 경우를 필터링하는 데 CoversBodyPart를 사용할 수 있습니다.

    참고

    CoversBodyPart는 해당 인물이 보호 장비로 적절하게 보호되고 있거나 보호 장비 자체가 제대로 착용되었음을 나타내거나 암시하지 않습니다.

  • 요약 정보 - SummarySummarizationAttributes 입력 파라미터에 지정된 요약 정보를 포함합니다. 자세한 정보는 요약 요구 사항 지정을 참조하세요.

    Summary는 다음 정보를 ProtectiveEquipmentSummary포함하는 유형의 개체입니다.

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