Deleting faces from a collection
You can use the DeleteFaces
operation to delete faces from a collection. For more information, see Managing faces in a collection.
To delete faces from a collection
-
If you haven't already:
-
Create or update a user with AmazonRekognitionFullAccess
permissions. For more information, see Step 1: Set up an AWS account and create a
User.
-
Install and configure the AWS CLI and the AWS SDKs. For more
information, see Step 2: Set up the AWS CLI and AWS SDKs.
-
Use the following examples to call the DeleteFaces
operation.
- Java
-
This example deletes a single face from a collection.
Change the value of collectionId
to the collection
that contains the face that you want to delete. Change the value of
faces
to the ID of the face that you want to
delete. To delete multiple faces, add the face IDs to the
faces
array.
//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.)
package aws.example.rekognition.image;
import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.DeleteFacesRequest;
import com.amazonaws.services.rekognition.model.DeleteFacesResult;
import java.util.List;
public class DeleteFacesFromCollection {
public static final String collectionId = "MyCollection";
public static final String faces[] = {"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"};
public static void main(String[] args) throws Exception {
AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
DeleteFacesRequest deleteFacesRequest = new DeleteFacesRequest()
.withCollectionId(collectionId)
.withFaceIds(faces);
DeleteFacesResult deleteFacesResult=rekognitionClient.deleteFaces(deleteFacesRequest);
List < String > faceRecords = deleteFacesResult.getDeletedFaces();
System.out.println(Integer.toString(faceRecords.size()) + " face(s) deleted:");
for (String face: faceRecords) {
System.out.println("FaceID: " + face);
}
}
}
- Java V2
-
This code is taken from the AWS Documentation SDK examples
GitHub repository. See the full example here.
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.rekognition.RekognitionClient;
import software.amazon.awssdk.services.rekognition.model.DeleteFacesRequest;
import software.amazon.awssdk.services.rekognition.model.RekognitionException;
// snippet-end:[rekognition.java2.delete_faces_collection.import]
/**
* Before running this Java V2 code example, set up your development environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class DeleteFacesFromCollection {
public static void main(String[] args) {
final String usage = "\n" +
"Usage: " +
" <collectionId> <faceId> \n\n" +
"Where:\n" +
" collectionId - The id of the collection from which faces are deleted. \n\n" +
" faceId - The id of the face to delete. \n\n";
if (args.length != 1) {
System.out.println(usage);
System.exit(1);
}
String collectionId = args[0];
String faceId = args[1];
Region region = Region.US_EAST_1;
RekognitionClient rekClient = RekognitionClient.builder()
.region(region)
.credentialsProvider(ProfileCredentialsProvider.create("profile-name"))
.build();
System.out.println("Deleting collection: " + collectionId);
deleteFacesCollection(rekClient, collectionId, faceId);
rekClient.close();
}
// snippet-start:[rekognition.java2.delete_faces_collection.main]
public static void deleteFacesCollection(RekognitionClient rekClient,
String collectionId,
String faceId) {
try {
DeleteFacesRequest deleteFacesRequest = DeleteFacesRequest.builder()
.collectionId(collectionId)
.faceIds(faceId)
.build();
rekClient.deleteFaces(deleteFacesRequest);
System.out.println("The face was deleted from the collection.");
} catch(RekognitionException e) {
System.out.println(e.getMessage());
System.exit(1);
}
}
// snippet-end:[rekognition.java2.delete_faces_collection.main]
}
- AWS CLI
-
This AWS CLI command displays the JSON output for the
delete-faces
CLI operation. Replace the value of
collection-id
with the name of the collection that
contains the face you want to delete. Replace the value of
face-ids
with an array of face IDs that you want to
delete. Replace the value of profile_name
in the line
that creates the Rekognition session with the name of your developer
profile.
aws rekognition delete-faces --collection-id "collection-id" --face-ids "faceid" --profile profile-name
- Python
-
This example deletes a single face from a collection.
Change the value of collectionId
to the collection
that contains the face that you want to delete. Change the value of
faces
to the ID of the face that you want to
delete. To delete multiple faces, add the face IDs to the
faces
array. Replace the value of
profile_name
in the line that creates the Rekognition
session with the name of your developer profile.
# 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
def delete_faces_from_collection(collection_id, faces):
session = boto3.Session(profile_name='profile-name')
client = session.client('rekognition')
response = client.delete_faces(CollectionId=collection_id,
FaceIds=faces)
print(str(len(response['DeletedFaces'])) + ' faces deleted:')
for faceId in response['DeletedFaces']:
print(faceId)
return len(response['DeletedFaces'])
def main():
collection_id = 'collection-id'
faces = []
faces.append("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
faces_count = delete_faces_from_collection(collection_id, faces)
print("deleted faces count: " + str(faces_count))
if __name__ == "__main__":
main()
- .NET
-
This example deletes a single face from a collection.
Change the value of collectionId
to the collection
that contains the face that you want to delete. Change the value of
faces
to the ID of the face that you want to
delete. To delete multiple faces, add the face IDs to the
faces
list.
//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.)
using System;
using System.Collections.Generic;
using Amazon.Rekognition;
using Amazon.Rekognition.Model;
public class DeleteFaces
{
public static void Example()
{
String collectionId = "MyCollection";
List<String> faces = new List<String>() { "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" };
AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();
DeleteFacesRequest deleteFacesRequest = new DeleteFacesRequest()
{
CollectionId = collectionId,
FaceIds = faces
};
DeleteFacesResponse deleteFacesResponse = rekognitionClient.DeleteFaces(deleteFacesRequest);
foreach (String face in deleteFacesResponse.DeletedFaces)
Console.WriteLine("FaceID: " + face);
}
}
DeleteFaces operation request
The input to DeleteFaces
is the ID of the collection that contains
the faces, and an array of face IDs for the faces to be deleted.
{
"CollectionId": "MyCollection",
"FaceIds": [
"daf29cac-f910-41e9-851f-6eeb0e08f973"
]
}
DeleteFaces operation
response
The DeleteFaces
response contains an array of face IDs for the faces
that were deleted.
{
"DeletedFaces": [
"daf29cac-f910-41e9-851f-6eeb0e08f973"
]
}
If the face IDs provided in the input are currently associated with an User, they
will be returned as part of UnsuccessfulFaceDeletions with valid reasons.
{
"DeletedFaces": [
"daf29cac-f910-41e9-851f-6eeb0e08f973"
],
"UnsuccessfulFaceDeletions" : [
{
"FaceId" : "0b683aed-a0f1-48b2-9b5e-139e9cc2a757",
"UserId" : "demoUser1",
"Reason" : ["ASSOCIATED_TO_AN_EXISTING_USER"]
}
]
}