顔 ID を使用した顔の検索 - Amazon Rekognition

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

顔 ID を使用した顔の検索

SearchFaces オペレーションを使用して、指定した ID と一致するコレクション内の顔を検索できます。

顔が検出されると、その顔 ID が IndexFaces オペレーションレスポンスで返され、コレクションに追加されます。詳細については、を参照してください コレクション内の顔の管理

顔 ID を使用してコレクション内の顔を検索するには (SDK)

  1. まだ実行していない場合:

    1. AmazonRekognitionFullAccess アクセス権限を持つ IAM ユーザーを作成または更新します。詳細については、を参照してください ステップ 1: AWS アカウントをセットアップして IAM ユーザーを作成する

    2. と をインストールして設定しますAWS CLIAWS。SDKs 詳細については、「」を参照してくださいステップ 2: と AWS CLI AWS をセットアップするSDKs

  2. 以下の例を使用して、SearchFaces オペレーションを呼び出します。

    Java

    この例では、顔 ID で識別された顔と一致する顔に関する情報を表示します。

    collectionID の値は、必要な顔が含まれているコレクションに変更します。faceId の値は、検索する顔の識別子に変更します。

    //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.) package aws.example.rekognition.image; import com.amazonaws.services.rekognition.AmazonRekognition; import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder; import com.fasterxml.jackson.databind.ObjectMapper; import com.amazonaws.services.rekognition.model.FaceMatch; import com.amazonaws.services.rekognition.model.SearchFacesRequest; import com.amazonaws.services.rekognition.model.SearchFacesResult; import java.util.List; public class SearchFaceMatchingIdCollection { public static final String collectionId = "MyCollection"; public static final String faceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; public static void main(String[] args) throws Exception { AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient(); ObjectMapper objectMapper = new ObjectMapper(); // Search collection for faces matching the face id. SearchFacesRequest searchFacesRequest = new SearchFacesRequest() .withCollectionId(collectionId) .withFaceId(faceId) .withFaceMatchThreshold(70F) .withMaxFaces(2); SearchFacesResult searchFacesByIdResult = rekognitionClient.searchFaces(searchFacesRequest); System.out.println("Face matching faceId " + faceId); List < FaceMatch > faceImageMatches = searchFacesByIdResult.getFaceMatches(); for (FaceMatch face: faceImageMatches) { System.out.println(objectMapper.writerWithDefaultPrettyPrinter() .writeValueAsString(face)); System.out.println(); } } }

    コード例を実行します。一致する顔に関する情報が表示されます。

    AWS CLI

    この AWS CLI コマンドでは、search-faces CLI オペレーションの JSON 出力を表示します。face-id の値は、検索する顔識別子に置き換えます。collection-id の値は、検索先のコレクションに置き換えます。

    aws rekognition search-faces \ --face-id face-id \ --collection-id "collection-id"
    Python

    この例では、顔 ID で識別された顔と一致する顔に関する情報を表示します。

    collectionID の値は、必要な顔が含まれているコレクションに変更します。faceId の値は、検索する顔の識別子に変更します。

    #Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. #PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.) import boto3 def search_face_in_collection(face_id,collection_id): threshold = 90 max_faces=2 client=boto3.client('rekognition') response=client.search_faces(CollectionId=collection_id, FaceId=face_id, FaceMatchThreshold=threshold, MaxFaces=max_faces) face_matches=response['FaceMatches'] print ('Matching faces') for match in face_matches: print ('FaceId:' + match['Face']['FaceId']) print ('Similarity: ' + "{:.2f}".format(match['Similarity']) + "%") print return len(face_matches) def main(): face_id='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' collection_id='MyCollection' faces=[] faces.append(face_id) faces_count=search_face_in_collection(face_id, collection_id) print("faces found: " + str(faces_count)) if __name__ == "__main__": main()
    .NET

    この例では、顔 ID で識別された顔と一致する顔に関する情報を表示します。

    collectionID の値は、必要な顔が含まれているコレクションに変更します。faceId の値は、検索する顔の識別子に変更します。

    //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.) using System; using Amazon.Rekognition; using Amazon.Rekognition.Model; public class SearchFacesMatchingId { public static void Example() { String collectionId = "MyCollection"; String faceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(); // Search collection for faces matching the face id. SearchFacesRequest searchFacesRequest = new SearchFacesRequest() { CollectionId = collectionId, FaceId = faceId, FaceMatchThreshold = 70F, MaxFaces = 2 }; SearchFacesResponse searchFacesResponse = rekognitionClient.SearchFaces(searchFacesRequest); Console.WriteLine("Face matching faceId " + faceId); Console.WriteLine("Matche(s): "); foreach (FaceMatch face in searchFacesResponse.FaceMatches) Console.WriteLine("FaceId: " + face.Face.FaceId + ", Similarity: " + face.Similarity); } }

    コード例を実行します。一致する顔に関する情報が表示されます。

SearchFacesオペレーションのリクエスト

顔 ID (顔コレクションに保存されている顔ごとに顔 ID があります) を指定すると、SearchFaces は指定した顔コレクション内で類似の顔を検索します。レスポンスには、検索している顔自体は含まれず、類似した顔のみが含まれます。デフォルトでは、アルゴリズムで 80% を超える類似度が検出された顔が SearchFaces から返されます。類似度は、顔が入力イメージの顔と一致している度合いを示します。必要に応じて、FaceMatchThreshold を使用して別の値を指定できます。

{ "CollectionId": "MyCollection", "FaceId": "0b683aed-a0f1-48b2-9b5e-139e9cc2a757", "MaxFaces": 2, "FaceMatchThreshold": 70 }

SearchFacesオペレーションのレスポンス

このオペレーションでは、検索された一致する顔の配列と、入力として渡した顔 ID を返します。

{ "SearchedFaceId": "7ecf8c19-5274-5917-9c91-1db9ae0449e2", "FaceMatches": [ list of face matches found ] }

レスポンスでは、検索された一致する顔ごとに類似度と顔のメタデータを返します。レスポンス例は次のとおりです。

{ ... "FaceMatches": [ { "Similarity": 100.0, "Face": { "BoundingBox": { "Width": 0.6154, "Top": 0.2442, "Left": 0.1765, "Height": 0.4692 }, "FaceId": "84de1c86-5059-53f2-a432-34ebb704615d", "Confidence": 99.9997, "ImageId": "d38ebf91-1a11-58fc-ba42-f978b3f32f60" } }, { "Similarity": 84.6859, "Face": { "BoundingBox": { "Width": 0.2044, "Top": 0.2254, "Left": 0.4622, "Height": 0.3119 }, "FaceId": "6fc892c7-5739-50da-a0d7-80cc92c0ba54", "Confidence": 99.9981, "ImageId": "5d913eaf-cf7f-5e09-8c8f-cb1bdea8e6aa" } } ] }