기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 검색(얼굴 ID 또는 사용자 ID)
SearchUsers 작업을 사용하여 제공된 얼굴 ID 혹은 사용자 ID와 일치하는 컬렉션을 지정하여 사용자를 검색할 수 있습니다. 이 작업은 반환된 UserIds 결과를 요청한 UserMatchThreshold보다 높은 유사성 점수 순대로 나열합니다. 사용자 ID는 CreateUsers 작업에서 생성됩니다. 자세한 내용은 컬렉션의 사용자 관리 단원을 참조하십시오.
사용자 검색(SDK)
-
아직 설정하지 않았다면 다음과 같이 하세요.
-
AmazonRekognitionFullAccess 권한이 있는 사용자를 생성하거나 업데이트합니다. 자세한 내용은 1단계: AWS 계정 설정 및 사용자 생성 단원을 참조하십시오.
-
AWS CLI 및 AWS SDKs를 설치하고 구성합니다. 자세한 내용은 2단계: AWS CLI 및 AWS SDKs 설정 단원을 참조하십시오.
-
다음 예제를 사용하여 SearchUsers 작업을 호출합니다.
- Java
-
이 Java 예제는 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
-
이 AWS CLI 명령은 SearchUsers 작업을 사용하여 컬렉션의 사용자를 검색합니다.
aws rekognition search-users --face-id face-id --collection-id collection-id --region region-name
- Python
-
다음 예제에서는 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 작업 요청
FaceID 또는 UserID가 주어지면 SearchUsers는 지정된 CollectionID에서 일치하는 사용자를 검색합니다. 기본적으로 SearchUsers는 유사성 점수가 80%를 초과하는 UserID를 반환합니다. 유사성은 UserID가 제공된 FaceID 또는 UserID와 얼마나 가깝게 일치하는지를 나타냅니다. 여러 UserID가 반환되는 경우 유사성 점수가 높은 것부터 가장 낮은 순으로 나열됩니다. 필요하다면 UserMatchThreshold를 사용하여 다른 값을 지정할 수 있습니다. 자세한 내용은 컬렉션의 사용자 관리 단원을 참조하십시오.
다음은 UserId를 사용하는 SearchUsers 요청의 예입니다.
{
"CollectionId": "MyCollection",
"UserId": "demoUser1",
"MaxUsers": 2,
"UserMatchThreshold": 99
}
다음은 FaceId를 사용하는 SearchUsers 요청의 예입니다.
{
"CollectionId": "MyCollection",
"FaceId": "bff43c40-cfa7-4b94-bed8-8a08b2205107",
"MaxUsers": 2,
"UserMatchThreshold": 99
}
SearchUsers 작업 응답
FaceId로 검색하는 경우 SearchUsers에 대한 응답에는 SearchedFace에 대한 FaceId와 UserMatches 목록 및 각 User의 UserId와UserStatus가 포함됩니다.
{
"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"
}
UserId로 검색하는 경우 SearchUsers에 대한 응답에는 다른 응답 요소와 함께 SearchedUser에 대한 UserId가 포함됩니다.
{
"SearchedUser": {
"UserId": "demoUser1"
},
"UserMatches": [
{
"User": {
"UserId": "demoUser2",
"UserStatus": "ACTIVE"
},
"Similarity": 99.97946166992188
}
],
"FaceModelVersion": "6"
}