Asociar caras a un usuario - Amazon Rekognition

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.

Asociar caras a un usuario

Puede utilizar la AssociateFacesoperación para asociar varias caras individuales a un solo usuario. Para asociar un rostro a un usuario, primero debe crear una colección y un usuario. Tenga en cuenta que los vectores faciales deben residir en la misma colección en la que reside el vector del usuario.

Para asociar caras (SDK)
  1. Si aún no lo ha hecho:

    1. Cree o actualice un usuario de AmazonRekognitionFullAccess con permisos. Para obtener más información, consulte Paso 1: Configure una AWS cuenta y cree un usuario.

    2. Instale y configure el AWS CLI y el AWS SDKs. Para obtener más información, consulte Paso 2: Configura el AWS CLI y AWS SDKs.

  2. Consulte los siguientes ejemplos para llamar a la operación AssociateFaces.

    Java

    En este ejemplo de código Java se asocia un rostro a un usuario.

    import java.util.Arrays; import java.util.List; import com.amazonaws.services.rekognition.AmazonRekognition; import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder; import com.amazonaws.services.rekognition.model.AssociateFacesRequest; import com.amazonaws.services.rekognition.model.AssociateFacesResult; public class AssociateFaces { public static void main(String[] args) throws Exception { AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient(); /* Replace the below configurations to allow you successfully run the example @collectionId: The collection where user and faces are stored @userId: The user which faces will get associated to @faceIds: The list of face IDs that will get associated to the given user @userMatchThreshold: Minimum User match confidence required for the face to be associated with a User that has at least one faceID already associated */ String collectionId = "MyCollection"; String userId = "demoUser"; String faceId1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; String faceId2 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; List<String> faceIds = Arrays.asList(faceid1,faceid2); float userMatchThreshold = 0f; System.out.println("Associating faces to the existing user: " + userId); AssociateFacesRequest request = new AssociateFacesRequest() .withCollectionId(collectionId) .withUserId(userId) .withFaceIds(faceIds) .withUserMatchThreshold(userMatchThreshold); AssociateFacesResult result = rekognitionClient.associateFaces(request); System.out.println("Successful face associations: " + result.getAssociatedFaces().size()); System.out.println("Unsuccessful face associations: " + result.getUnsuccessfulFaceAssociations().size()); } }
    AWS CLI

    Este AWS CLI comando asocia un rostro a un usuario mediante la associate-faces CLI operación.

    aws rekognition associate-faces --user-id user-id --face-ids face-id-1 face-id-2 --collection-id collection-name --region region-name
    Python

    En este ejemplo de código de Python se asocia un rostro a un usuario.

    from botocore.exceptions import ClientError import boto3 import logging logger = logging.getLogger(__name__) session = boto3.Session(profile_name='profile-name') client = session.client('rekognition') def associate_faces(collection_id, user_id, face_ids): """ Associate stored faces within collection to the given user :param collection_id: The ID of the collection where user and faces are stored. :param user_id: The ID of the user that we want to associate faces to :param face_ids: The list of face IDs to be associated to the given user :return: response of AssociateFaces API """ logger.info(f'Associating faces to user: {user_id}, {face_ids}') try: response = client.associate_faces( CollectionId=collection_id, UserId=user_id, FaceIds=face_ids ) print(f'- associated {len(response["AssociatedFaces"])} faces') except ClientError: logger.exception("Failed to associate faces to the given user") raise else: print(response) return response def main(): face_ids = ["faceId1", "faceId2"] collection_id = "collection-id" user_id = "user-id" associate_faces(collection_id, user_id, face_ids) if __name__ == "__main__": main()

AssociateFaces respuesta de operación

La respuesta para AssociateFaces incluye el UserStatus, que es el estado de la solicitud de disociación, así como una lista de los FaceIds que se van a asociar. También se devuelve una lista de UnsuccessfulFaceAssociations. Después de enviar una solicitud a AssociateFaces, la operación puede tardar aproximadamente un minuto en completarse.

Por este motivo, UserStatus se devuelve el, que puede tener los siguientes valores:

  • CREATED- Indica que el «Usuario» se ha creado correctamente y que actualmente no tiene ningún rostro asociado. El «usuario» estará en este estado antes de que se realice una llamada exitosa. AssociateFaces

  • UPDATING- Indica que el «usuario» se está actualizando para reflejar las caras recién asociadas o disociadas y pasará a serlo en unos segundos. ACTIVE Los resultados de la búsqueda pueden incluir la palabra «Usuario» en este estado y los clientes pueden optar por ignorarlo de los resultados devueltos.

  • ACTIVE- Indica que el «Usuario» está actualizado para reflejar todos los rostros asociados o disociados y se encuentra en un estado en el que se pueden realizar búsquedas.

{ "UnsuccessfulFaceAssociations": [ { "Reasons": [ "LOW_MATCH_CONFIDENCE" ], "FaceId": "f5817d37-94f6-0000-bfee-1a2b3c4d5e6f", "Confidence": 0.9375374913215637 }, { "Reasons": [ "ASSOCIATED_TO_A_DIFFERENT_IDENTITY" ], "FaceId": "851cb847-dccc-1111-bfee-1a2b3c4d5e6f", "UserId": "demoUser2" } ], "UserStatus": "UPDATING", "AssociatedFaces": [ { "FaceId": "35ebbb41-7f67-2222-bfee-1a2b3c4d5e6f" } ] }