Amazon Rekognition으로 얼굴 인식하기(AWS CLI에서 간편하게)

소개



AWS Rekognition으로 얼굴 인식 시스템을 구축할 때 어떤 느낌으로 움직이는지 살펴보았습니다. 본격적인 시스템을 구축하기 전에 시도한 단계를 남겨 둡니다.

환경


  • macOS Catalina
  • aws-cli 2.1.13
  • 설치 및 설정은 여기 및 기타 페이지를 참조하십시오. 또한 IAM 설정은 적절하게 수행하십시오.


  • 절차



    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도 이용하면서 얼굴 인식 시스템을 구축해 나가고 싶습니다.

    참고 페이지


  • Amazon Rekognition으로 얼굴 인증을 시도했다 - Qiita
  • 파이썬과 awsRekognition을 사용하여 순간적으로 얼굴 인식 시스템을 구축! - Qiita
  • 좋은 웹페이지 즐겨찾기