Amazon Rekognition으로 얼굴 인식하기(AWS CLI에서 간편하게)
소개
AWS Rekognition으로 얼굴 인식 시스템을 구축할 때 어떤 느낌으로 움직이는지 살펴보았습니다. 본격적인 시스템을 구축하기 전에 시도한 단계를 남겨 둡니다.
환경
절차
1. 얼굴 사진 준비
무료 사진 소재 파쿠타소 님의 사진을 받았습니다.
미리 등록한 이미지 | face_man.jpg
비교 이미지 1 (등록 이미지와 동일한 사람) | face_cmp_man.jpg
비교 이미지 2 (등록 이미지와 다른 사람) | face_cmp_woman.jpg
위 이미지를 Rekognition과 함께 사용하기 위해 Amazon S3에 업로드합니다. S3를 사용하지 않고도 할 수 있는 것 같습니다만, aws-cli 는 S3 경유의 방법 밖에 서포트하고 있지 않기 때문에, 이번은 S3 를 이용합니다.
위를 하나의 디렉토리에 저장하고 다음을 수행합니다. 버킷 이름은 rekog-test
입니다.
aws s3 mb s3://rekog-test
aws s3 sync . s3://rekog-test
2. 이미지의 컬렉션 만들기
Creating a collection - Amazon Rekognition을 참조하여 미리 이미지를 등록해 둔 collection을 AWS Rekognnition에 생성해 둡니다. 여기서 컬렉션 이름은 test_collection
입니다.
aws rekognition create-collection \
--collection-id "test_collection"
3. collection에 이미지 등록
Adding faces to a collection - Amazon Rekognition를 참조하여 컬렉션에 이미지와 메타데이터를 등록합니다.
aws rekognition index-faces \
--image '{"S3Object":{"Bucket":"rekog-test","Name":"face_man.jpg"}}' \ # 1.で作ったバケット及びファイル名を指定
--collection-id "test_collection" \ # 2.で作ったコレクション名を指定
--max-faces 1 \
--quality-filter "AUTO" \
--detection-attributes "ALL" \
--external-image-id "face_man.jpg" # 任意のidを指定可能。ここではファイル名とした
4. 비교 화상으로 검색해 본다
Searching for a face using an image - Amazon Rekognition을 참고하여 S3에 업로드한 이미지를 검색해 봅니다.
우선, 등록 화상과 동일 인물로의 검색을 실시합니다.
aws rekognition search-faces-by-image \
--image '{"S3Object":{"Bucket":"rekog-test","Name":"face_cmp_man.jpg"}}' \ # 1.で作ったバケット及びファイル名を指定
--collection-id "test_collection" # 2.で作ったコレクションを指定
그러면 아래와 같은 응답이 돌아옵니다. 99%의 유사도로 사전에 등록한 이미지의 정보가 반환되었습니다.
{
"SearchedFaceBoundingBox": {
"Width": 0.14660289883613586,
"Height": 0.2828647196292877,
"Left": 0.5331953167915344,
"Top": 0.1216459572315216
},
"SearchedFaceConfidence": 99.99463653564453,
"FaceMatches": [
{
"Similarity": 99.90309143066406,
"Face": {
"FaceId": "628aaeac-4890-4794-a4fe-63c7ccc3e575",
"BoundingBox": {
"Width": 0.18994799256324768,
"Height": 0.3481149971485138,
"Left": 0.40426400303840637,
"Top": 0.18603500723838806
},
"ImageId": "9d979734-6481-321c-957a-7b71f51f154d",
"ExternalImageId": "face_man.jpg",
"Confidence": 99.9990005493164
}
}
],
"FaceModelVersion": "5.0"
}
다음은 다른 사람의 사진을 사용하여 검색해 봅시다.
aws rekognition search-faces-by-image \
--image '{"S3Object":{"Bucket":"rekog-test","Name":"face_cmp_woman.jpg"}}' \ # 1.で作ったバケット及びファイル名を指定
--collection-id "test_collection" # 2.で作ったコレクションを指定
그러면 아래와 같이 검색 결과가 없습니다.
{
"SearchedFaceBoundingBox": {
"Width": 0.15162670612335205,
"Height": 0.2835661768913269,
"Left": 0.39322713017463684,
"Top": 0.18060290813446045
},
"SearchedFaceConfidence": 99.99597930908203,
"FaceMatches": [],
"FaceModelVersion": "5.0"
}
결론
앞으로는 Lamda나 API Gateway도 이용하면서 얼굴 인식 시스템을 구축해 나가고 싶습니다.
참고 페이지
aws s3 mb s3://rekog-test
aws s3 sync . s3://rekog-test
aws rekognition create-collection \
--collection-id "test_collection"
aws rekognition index-faces \
--image '{"S3Object":{"Bucket":"rekog-test","Name":"face_man.jpg"}}' \ # 1.で作ったバケット及びファイル名を指定
--collection-id "test_collection" \ # 2.で作ったコレクション名を指定
--max-faces 1 \
--quality-filter "AUTO" \
--detection-attributes "ALL" \
--external-image-id "face_man.jpg" # 任意のidを指定可能。ここではファイル名とした
aws rekognition search-faces-by-image \
--image '{"S3Object":{"Bucket":"rekog-test","Name":"face_cmp_man.jpg"}}' \ # 1.で作ったバケット及びファイル名を指定
--collection-id "test_collection" # 2.で作ったコレクションを指定
{
"SearchedFaceBoundingBox": {
"Width": 0.14660289883613586,
"Height": 0.2828647196292877,
"Left": 0.5331953167915344,
"Top": 0.1216459572315216
},
"SearchedFaceConfidence": 99.99463653564453,
"FaceMatches": [
{
"Similarity": 99.90309143066406,
"Face": {
"FaceId": "628aaeac-4890-4794-a4fe-63c7ccc3e575",
"BoundingBox": {
"Width": 0.18994799256324768,
"Height": 0.3481149971485138,
"Left": 0.40426400303840637,
"Top": 0.18603500723838806
},
"ImageId": "9d979734-6481-321c-957a-7b71f51f154d",
"ExternalImageId": "face_man.jpg",
"Confidence": 99.9990005493164
}
}
],
"FaceModelVersion": "5.0"
}
aws rekognition search-faces-by-image \
--image '{"S3Object":{"Bucket":"rekog-test","Name":"face_cmp_woman.jpg"}}' \ # 1.で作ったバケット及びファイル名を指定
--collection-id "test_collection" # 2.で作ったコレクションを指定
{
"SearchedFaceBoundingBox": {
"Width": 0.15162670612335205,
"Height": 0.2835661768913269,
"Left": 0.39322713017463684,
"Top": 0.18060290813446045
},
"SearchedFaceConfidence": 99.99597930908203,
"FaceMatches": [],
"FaceModelVersion": "5.0"
}
앞으로는 Lamda나 API Gateway도 이용하면서 얼굴 인식 시스템을 구축해 나가고 싶습니다.
참고 페이지
Reference
이 문제에 관하여(Amazon Rekognition으로 얼굴 인식하기(AWS CLI에서 간편하게)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/eup42/items/e39b8d7fbcd6f5f1aa49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)