Ricerca di utenti (ID volto/ ID utente) - Amazon Rekognition

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricerca di utenti (ID volto/ ID utente)

È possibile utilizzare l'SearchUsersoperazione per cercare utenti in una raccolta specificata che corrispondono a un face ID o a un ID utente fornito. L'operazione elenca i risultati restituiti UserIds classificati in base al punteggio di somiglianza più alto rispetto a quello richiesto. UserMatchThreshold L'ID utente viene creato durante l' CreateUsers operazione. Per ulteriori informazioni, consulta Gestione degli utenti in una raccolta.

Per cercare utenti (SDK)
  1. Se non lo hai già fatto:

    1. Crea o aggiorna un utente con le autorizzazioni AmazonRekognitionFullAccess. Per ulteriori informazioni, consulta Fase 1: impostazione di un account AWS e creazione di un utente.

    2. Installa e configura il AWS CLI e il AWS SDKs. Per ulteriori informazioni, consulta Passaggio 2: configura AWS CLI e AWS SDKs.

  2. Utilizzare i seguenti esempi per richiamare l'operazione SearchUsers.

    Java

    Questo esempio di Java cerca gli utenti di una raccolta utilizzando l'operazione SearchUsers.

    import com.amazonaws.services.rekognition.AmazonRekognition; import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder; import com.amazonaws.services.rekognition.model.UserMatch; import com.amazonaws.services.rekognition.model.SearchUsersRequest; import com.amazonaws.services.rekognition.model.SearchUsersResult; import com.amazonaws.services.rekognition.model.UserMatch; public class SearchUsers { //Replace collectionId and faceId with the values you want to use. public static final String collectionId = "MyCollection"; public static final String faceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; public static final String userd = 'demo-user'; public static void main(String[] args) throws Exception { AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient(); // Search collection for faces matching the user id. SearchUsersRequest request = new SearchUsersRequest() .withCollectionId(collectionId) .withUserId(userId); SearchUsersResult result = rekognitionClient.searchUsers(request); System.out.println("Printing first search result with matched user and similarity score"); for (UserMatch match: result.getUserMatches()) { System.out.println(match.getUser().getUserId() + " with similarity score " + match.getSimilarity()); } // Search collection for faces matching the face id. SearchUsersRequest request1 = new SearchUsersRequest() .withCollectionId(collectionId) .withFaceId(faceId); SearchUsersResult result1 = rekognitionClient.searchUsers(request1); System.out.println("Printing second search result with matched user and similarity score"); for (UserMatch match: result1.getUserMatches()) { System.out.println(match.getUser().getUserId() + " with similarity score " + match.getSimilarity()); } }
    AWS CLI

    Questo AWS CLI comando cerca gli utenti in una raccolta con l'SearchUsersoperazione.

    aws rekognition search-users --face-id face-id --collection-id collection-id --region region-name
    Python

    L'esempio seguente cerca gli utenti di una raccolta con l'operazione SearchUsers.

    # 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 from botocore.exceptions import ClientError import logging logger = logging.getLogger(__name__) session = boto3.Session(profile_name='profile-name') client = session.client('rekognition') def search_users_by_face_id(collection_id, face_id): """ SearchUsers operation with face ID provided as the search source :param collection_id: The ID of the collection where user and faces are stored. :param face_id: The ID of the face in the collection to search for. :return: response of SearchUsers API """ logger.info(f'Searching for users using a face-id: {face_id}') try: response = client.search_users( CollectionId=collection_id, FaceId=face_id ) print(f'- found {len(response["UserMatches"])} matches') print([f'- {x["User"]["UserId"]} - {x["Similarity"]}%' for x in response["UserMatches"]]) except ClientError: logger.exception(f'Failed to perform SearchUsers with given face id: {face_id}') raise else: print(response) return response def search_users_by_user_id(collection_id, user_id): """ SearchUsers operation with user ID provided as the search source :param collection_id: The ID of the collection where user and faces are stored. :param user_id: The ID of the user in the collection to search for. :return: response of SearchUsers API """ logger.info(f'Searching for users using a user-id: {user_id}') try: response = client.search_users( CollectionId=collection_id, UserId=user_id ) print(f'- found {len(response["UserMatches"])} matches') print([f'- {x["User"]["UserId"]} - {x["Similarity"]}%' for x in response["UserMatches"]]) except ClientError: logger.exception(f'Failed to perform SearchUsers with given face id: {user_id}') raise else: print(response) return response def main(): collection_id = "collection-id" user_id = "user-id" face_id = "face_id" search_users_by_face_id(collection_id, face_id) search_users_by_user_id(collection_id, user_id) if __name__ == "__main__": main()

SearchUsers richiesta di operazione

Dato un FaceID o UserID, SearchUsers cerca le corrispondenze degli utenti nel CollectionID specificato. Per impostazione predefinita, SearchUsers restituisce l'utente IDs per il quale il punteggio di somiglianza è superiore all'80%. La somiglianza indica quanto lo UserID corrisponda al FaceID o allo UserID forniti. Se IDs vengono restituiti più utenti, questi vengono elencati in ordine dal punteggio di somiglianza più alto al più basso. Facoltativamente, è possibile utilizzare il UserMatchThreshold per specificare un valore diverso. Per ulteriori informazioni, consulta Gestione degli utenti in una raccolta.

Di seguito è riportato un esempio di SearchUsers richiesta che utilizzaUserId:

{ "CollectionId": "MyCollection", "UserId": "demoUser1", "MaxUsers": 2, "UserMatchThreshold": 99 }

Di seguito è riportato un esempio di SearchUsers richiesta che utilizzaFaceId:

{ "CollectionId": "MyCollection", "FaceId": "bff43c40-cfa7-4b94-bed8-8a08b2205107", "MaxUsers": 2, "UserMatchThreshold": 99 }

SearchUsers risposta all'operazione

Se si esegue la ricerca con aFaceId, la risposta FaceId per SearchUsers include il forSearchedFace, nonché un elenco di UserMatches UserId e UserStatus per ogni utente.

{ "SearchedFace": { "FaceId": "bff43c40-cfa7-4b94-bed8-8a08b2205107" }, "UserMatches": [ { "User": { "UserId": "demoUser1", "UserStatus": "ACTIVE" }, "Similarity": 100.0 }, { "User": { "UserId": "demoUser2", "UserStatus": "ACTIVE" }, "Similarity": 99.97946166992188 } ], "FaceModelVersion": "6" }

Se si esegue la ricerca con unUserId, la risposta per SearchUsers include l'elemento UserId for theSearchedUser, oltre agli altri elementi di risposta.

{ "SearchedUser": { "UserId": "demoUser1" }, "UserMatches": [ { "User": { "UserId": "demoUser2", "UserStatus": "ACTIVE" }, "Similarity": 99.97946166992188 } ], "FaceModelVersion": "6" }