

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengaitkan wajah dengan pengguna
<a name="associate-faces"></a>

Anda dapat menggunakan [AssociateFaces](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_AssociatingFaces.html)operasi untuk mengaitkan beberapa wajah individual dengan satu pengguna. Untuk mengaitkan wajah dengan pengguna, Anda harus terlebih dahulu membuat koleksi dan pengguna. Perhatikan bahwa vektor wajah harus berada dalam koleksi yang sama di mana vektor pengguna berada.

**Untuk mengaitkan wajah (SDK)**

1. Jika belum:

   1. Buat atau perbarui pengguna dengan `AmazonRekognitionFullAccess` izin. Untuk informasi selengkapnya, lihat [Langkah 1: Siapkan akun AWS dan buat Pengguna](setting-up.md#setting-up-iam).

   1. Instal dan konfigurasikan AWS CLI dan AWS SDKs. Untuk informasi selengkapnya, lihat [Langkah 2: Mengatur AWS CLI dan AWS SDKs](setup-awscli-sdk.md).

1. Gunakan contoh berikut untuk memanggil operasi `AssociateFaces`.

------
#### [ Java ]

   Contoh kode Java ini mengaitkan wajah dengan pengguna.

   ```
   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 ]

    AWS CLI Perintah ini mengaitkan wajah dengan pengguna, menggunakan operasi `associate-faces` CLI.

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

------
#### [ Python ]

   Contoh kode Python ini mengaitkan wajah dengan pengguna. 

   ```
   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 respon operasi
<a name="associatefaces-operation-response"></a>

Tanggapan untuk `AssociateFaces` mencakup`UserStatus`, yang merupakan status permintaan disasosiasi, serta daftar yang akan `FaceIds` dikaitkan. Daftar `UnsuccessfulFaceAssociations` juga dikembalikan. Setelah mengajukan permintaan`AssociateFaces`, operasi mungkin memakan waktu sekitar satu menit untuk menyelesaikannya. 

Untuk alasan ini, UserStatus dikembalikan, yang dapat memiliki nilai berikut: 
+ DIBUAT - Menunjukkan bahwa 'Pengguna' berhasil dibuat dan tidak ada wajah yang terkait dengannya saat ini. 'Pengguna' akan berada dalam keadaan ini sebelum panggilan 'AssociateFaces' berhasil dilakukan.
+ MEMPERBARUI - Menunjukkan bahwa 'Pengguna' sedang diperbarui untuk mencerminkan associated/disassociated wajah baru dan akan menjadi AKTIF dalam beberapa detik. Hasil pencarian mungkin berisi 'Pengguna' dalam keadaan ini dan pelanggan dapat memilih untuk mengabaikannya dari hasil yang dikembalikan.
+ AKTIF - Menunjukkan bahwa **'**Pengguna**'** diperbarui untuk mencerminkan semua associated/disassociated wajah dan dalam keadaan yang dapat dicari.

```
{
    "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"
        }
    ]
}
```