Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Suchen nach Benutzern (Bild)
SearchUsersByImage
durchsucht die angegebene CollectionID nach Benutzern in einer Sammlung, die dem größten in einem bereitgestellten Bild erkannten Gesicht entsprechen. Standardmäßig wird ein Benutzer SearchUsersByImage zurückgegeben, IDs für den der Ähnlichkeitswert größer als 80% ist. Die Ähnlichkeit gibt an, wie genau die UserID mit dem größten Gesicht übereinstimmt, das im bereitgestellten Bild erkannt wurde. Wenn mehrere Benutzer zurückgegeben IDs werden, werden sie in der Reihenfolge vom höchsten bis zum niedrigsten Ähnlichkeitswert aufgeführt. Optional können Sie den verwenden UserMatchThreshold , um einen anderen Wert anzugeben. Weitere Informationen finden Sie unter Benutzer in einer Sammlung verwalten.
Um Benutzer nach Bildern zu suchen (SDK)
-
Wenn Sie dies noch nicht getan haben:
-
Erstellen oder aktualisieren Sie einen Benutzer mit AmazonRekognitionFullAccess
-Berechtigungen. Weitere Informationen finden Sie unter Schritt 1: Einrichten eines AWS-Kontos und Erstellen eines Benutzers.
-
Installieren und konfigurieren Sie die AWS CLI und die AWS SDKs. Weitere Informationen finden Sie unter Schritt 2: Richten Sie das AWS CLI und ein AWS SDKs.
-
Verwenden Sie die folgenden Beispiele zum Aufrufen der SearchUsersByImage
-Operation.
- Java
-
In diesem Java-Beispiel werden die Benutzer in einer Sammlung basierend auf einem Eingabebild mithilfe der SearchUsersByImage
-Operation durchsucht.
import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.Image;
import com.amazonaws.services.rekognition.model.S3Object;
import com.amazonaws.services.rekognition.model.SearchUsersByImageRequest;
import com.amazonaws.services.rekognition.model.SearchUsersByImageResult;
import com.amazonaws.services.rekognition.model.UserMatch;
public class SearchUsersByImage {
//Replace bucket, collectionId and photo with your values.
public static final String collectionId = "MyCollection";
public static final String s3Bucket = "bucket";
public static final String s3PhotoFileKey = "input.jpg";
public static void main(String[] args) throws Exception {
AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
// Get an image object from S3 bucket.
Image image = new Image()
.withS3Object(new S3Object()
.withBucket(s3Bucket)
.withName(s3PhotoFileKey));
// Search collection for users similar to the largest face in the image.
SearchUsersByImageRequest request = new SearchUsersByImageRequest()
.withCollectionId(collectionId)
.withImage(image)
.withUserMatchThreshold(70F)
.withMaxUsers(2);
SearchUsersByImageResult result =
rekognitionClient.searchUsersByImage(request);
System.out.println("Printing search result with matched user and similarity score");
for (UserMatch match: result.getUserMatches()) {
System.out.println(match.getUser().getUserId() + " with similarity score " + match.getSimilarity());
}
}
}
- AWS CLI
-
AWS CLI Mit diesem Befehl werden die Benutzer in einer Sammlung anhand eines Eingabebilds mit der SearchUsersByImage
Operation durchsucht.
aws rekognition search-users-by-image --image '{"S3Object":{"Bucket":"s3BucketName
","Name":"file-name
"}}' --collection-id MyCollectionId
--region region-name
- Python
-
Das folgende Beispiel sucht die Benutzer in einer Sammlung basierend auf einem Eingabebild mit der SearchUsersByImage
-Operation.
# 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
import os
logger = logging.getLogger(__name__)
session = boto3.Session(profile_name='profile-name')
client = session.client('rekognition')
def load_image(file_name):
"""
helper function to load the image for indexFaces call from local disk
:param image_file_name: The image file location that will be used by indexFaces call.
:return: The Image in bytes
"""
print(f'- loading image: {file_name}')
with open(file_name, 'rb') as file:
return {'Bytes': file.read()}
def search_users_by_image(collection_id, image_file):
"""
SearchUsersByImage operation with user ID provided as the search source
:param collection_id: The ID of the collection where user and faces are stored.
:param image_file: The image that contains the reference face to search for.
:return: response of SearchUsersByImage API
"""
logger.info(f'Searching for users using an image: {image_file}')
try:
response = client.search_users_by_image(
CollectionId=collection_id,
Image=load_image(image_file)
)
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 SearchUsersByImage with given image: {image_file}')
raise
else:
print(response)
return response
def main():
collection_id = "collection-id"
IMAGE_SEARCH_SOURCE = os.getcwd() + '/image_path'
search_users_by_image(collection_id, IMAGE_SEARCH_SOURCE)
if __name__ == "__main__":
main()
SearchUsersByImage Operationsanforderung
Die Anforderung für SearchUsersByImage
enthält die Sammlung, in der gesucht werden soll, und den Speicherort des Quellbildes. In diesem Beispiel wird das in einem Amazon-S3-Bucket gespeicherte Quellenbild (S3Object
) geladen. Außerdem sind die maximale Anzahl von Benutzern (MaxUsers
), die zurückgegeben wird, und die minimale Übereinstimmung angegeben, die eingehalten werden muss, damit ein Benutzer (UserMatchThreshold
) zurückgegeben wird.
{
"CollectionId": "MyCollection",
"Image": {
"S3Object": {
"Bucket": "bucket",
"Name": "input.jpg"
}
},
"MaxUsers": 2,
"UserMatchThreshold": 99
}
SearchUsersByImage Antwort auf die Operation
Die Antwort für SearchUsersByImage
beinhaltet ein FaceDetail
Objekt für dieSearchedFace
, sowie eine Liste von Objekten UserMatches mit dem UserId
Similarity
, und UserStatus
für jedes Objekt. Wenn das Eingabebild mehr als ein Gesicht enthält, UnsearchedFaces wird auch eine Liste von Gesichtern zurückgegeben.
{
"SearchedFace": {
"FaceDetail": {
"BoundingBox": {
"Width": 0.23692893981933594,
"Top": 0.19235000014305115,
"Left": 0.39177176356315613,
"Height": 0.5437348484992981
}
}
},
"UserMatches": [
{
"User": {
"UserId": "demoUser1",
"UserStatus": "ACTIVE"
},
"Similarity": 100.0
},
{
"User": {
"UserId": "demoUser2",
"UserStatus": "ACTIVE"
},
"Similarity": 99.97946166992188
}
],
"FaceModelVersion": "6",
"UnsearchedFaces": [
{
"FaceDetails": {
"BoundingBox": {
"Width": 0.031677018851041794,
"Top": 0.5593535900115967,
"Left": 0.6102562546730042,
"Height": 0.0682177022099495
}
},
"Reasons": [
"FACE_NOT_LARGEST"
]
},
{
"FaceDetails": {
"BoundingBox": {
"Width": 0.03254449740052223,
"Top": 0.6080358028411865,
"Left": 0.516062319278717,
"Height": 0.06347997486591339
}
},
"Reasons": [
"FACE_NOT_LARGEST"
]
}
]
}