Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Recherche d’utilisateurs (identifiant facial/ID utilisateur)
Vous pouvez utiliser cette SearchUsersopération pour rechercher des utilisateurs dans une collection spécifiée qui correspondent à un identifiant de visage ou à un identifiant d'utilisateur fourni. L'opération répertorie les résultats UserIds classés selon le score de similarité le plus élevé au-dessus du score demandé UserMatchThreshold. L'ID utilisateur est créé lors de l' CreateUsers opération. Pour de plus amples informations, veuillez consulter Gérer les utilisateurs dans une collection.
Pour rechercher des utilisateurs (SDK)
-
Si vous ne l’avez pas déjà fait :
-
Créez ou mettez à jour un utilisateur avec les autorisations AmazonRekognitionFullAccess. Pour de plus amples informations, veuillez consulter Étape 1 : configurer un compte AWS et créer un utilisateur.
-
Installez et configurez le AWS CLI et le AWS SDKs. Pour de plus amples informations, veuillez consulter Étape 2 : configurer le AWS CLI et AWS SDKs.
-
Utilisez les exemples suivants pour appeler l’opération SearchUsers.
- Java
-
Cet exemple Java recherche les utilisateurs d’une collection à l’aide de l’opération 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
-
Cette AWS CLI commande recherche les utilisateurs d'une collection avec l'SearchUsersopération.
aws rekognition search-users --face-id face-id --collection-id collection-id --region region-name
- Python
-
L’exemple suivant recherche les utilisateurs d’une collection avec l’opération 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 demande d'opération
À partir d'un FaceID ou d'un UserID SearchUsers , recherche les correspondances entre utilisateurs dans le CollectionId spécifié. Par défaut, SearchUsers renvoie l'utilisateur IDs pour lequel le score de similarité est supérieur à 80 %. La similitude indique dans quelle mesure l’UserID correspond au FaceID ou UserID fourni. Si plusieurs utilisateurs IDs sont renvoyés, ils sont répertoriés par ordre du score de similarité le plus élevé au plus bas. Vous pouvez éventuellement utiliser le UserMatchThreshold pour spécifier une valeur différente. Pour de plus amples informations, veuillez consulter Gérer les utilisateurs dans une collection.
Voici un exemple de SearchUsers demande utilisant UserId :
{
"CollectionId": "MyCollection",
"UserId": "demoUser1",
"MaxUsers": 2,
"UserMatchThreshold": 99
}
Voici un exemple de SearchUsers demande utilisant FaceId :
{
"CollectionId": "MyCollection",
"FaceId": "bff43c40-cfa7-4b94-bed8-8a08b2205107",
"MaxUsers": 2,
"UserMatchThreshold": 99
}
SearchUsers réponse à l'opération
Si vous effectuez une recherche avec unFaceId, la réponse SearchUsers inclut le FaceId pourSearchedFace, ainsi qu'une liste de UserMatches UserId et UserStatus pour chaque utilisateur.
{
"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"
}
Si vous recherchez avec aUserId, la réponse pour SearchUsers inclut le UserId pourSearchedUser, en plus des autres éléments de réponse.
{
"SearchedUser": {
"UserId": "demoUser1"
},
"UserMatches": [
{
"User": {
"UserId": "demoUser2",
"UserStatus": "ACTIVE"
},
"Similarity": 99.97946166992188
}
],
"FaceModelVersion": "6"
}