Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Búsqueda de usuarios (ID de rostro/ID de usuario)
Puede utilizar la SearchUsersoperación para buscar usuarios en una colección específica que coincidan con un identificador facial o un identificador de usuario proporcionados. La operación muestra los resultados UserIds clasificados según la puntuación de similitud más alta por encima de la solicitada UserMatchThreshold. El ID de usuario se crea en la CreateUsers operación. Para obtener más información, consulte Administrar usuarios en una colección.
Para buscar usuarios (SDK)
-
Si aún no lo ha hecho:
-
Cree o actualice un usuario de AmazonRekognitionFullAccess con permisos. Para obtener más información, consulte Paso 1: Configurar una cuenta de AWS y crear un usuario.
-
Instale y configure el AWS CLI y el AWS SDKs. Para obtener más información, consulte Paso 2: Configure y AWS CLI AWS SDKs.
-
Consulte los siguientes ejemplos para llamar a la operación SearchUsers.
- Java
-
En este ejemplo de Java, se buscan los usuarios de una colección mediante la operación 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
-
Este AWS CLI comando busca los usuarios de una colección con la SearchUsers operación.
aws rekognition search-users --face-id face-id --collection-id collection-id --region region-name
- Python
-
En el siguiente ejemplo, se buscan los usuarios de una colección con la operación 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 solicitud de operación
Con un FaceID o un UserID SearchUsers , busca coincidencias de usuario en el CollectionID especificado. De forma predeterminada, SearchUsers devuelve el nombre de usuario IDs para el que la puntuación de similitud es superior al 80%. La similitud indica en qué medida el UserID coincide con el FaceID o el UserID proporcionados. Si IDs se devuelven varios usuarios, se muestran en orden de mayor a menor puntuación de similitud. Si lo desea, puede utilizar el UserMatchThreshold para especificar un valor diferente. Para obtener más información, consulte Administrar usuarios en una colección.
A continuación se muestra un ejemplo de una SearchUsers solicitud que utilizaUserId:
{
"CollectionId": "MyCollection",
"UserId": "demoUser1",
"MaxUsers": 2,
"UserMatchThreshold": 99
}
El siguiente es un ejemplo de una SearchUsers solicitud que utilizaFaceId:
{
"CollectionId": "MyCollection",
"FaceId": "bff43c40-cfa7-4b94-bed8-8a08b2205107",
"MaxUsers": 2,
"UserMatchThreshold": 99
}
SearchUsers respuesta de operación
Si busca con unFaceId, la respuesta para SearchUsers incluye el FaceId para elSearchedFace, así como una lista de UserMatches y el UserId y UserStatus para cada usuario.
{
"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 busca con unUserId, la respuesta para SearchUsers incluye el UserId paraSearchedUser, además de los demás elementos de respuesta.
{
"SearchedUser": {
"UserId": "demoUser1"
},
"UserMatches": [
{
"User": {
"UserId": "demoUser2",
"UserStatus": "ACTIVE"
},
"Similarity": 99.97946166992188
}
],
"FaceModelVersion": "6"
}