Search in sources :

Example 1 with CompareFacesMatch

use of com.amazonaws.services.rekognition.model.CompareFacesMatch in project aws-doc-sdk-examples by awsdocs.

the class CompareFaces method main.

public static void main(String[] args) throws Exception {
    Float similarityThreshold = 70F;
    // Replace sourceFile and targetFile with the image files you want to compare.
    String sourceImage = "source.jpg";
    String targetImage = "target.jpg";
    ByteBuffer sourceImageBytes = null;
    ByteBuffer targetImageBytes = null;
    AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
    // Load source and target images and create input parameters
    try (InputStream inputStream = new FileInputStream(new File(sourceImage))) {
        sourceImageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream));
    } catch (Exception e) {
        System.out.println("Failed to load source image " + sourceImage);
        System.exit(1);
    }
    try (InputStream inputStream = new FileInputStream(new File(targetImage))) {
        targetImageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream));
    } catch (Exception e) {
        System.out.println("Failed to load target images: " + targetImage);
        System.exit(1);
    }
    Image source = new Image().withBytes(sourceImageBytes);
    Image target = new Image().withBytes(targetImageBytes);
    CompareFacesRequest request = new CompareFacesRequest().withSourceImage(source).withTargetImage(target).withSimilarityThreshold(similarityThreshold);
    // Call operation
    CompareFacesResult compareFacesResult = rekognitionClient.compareFaces(request);
    // Display results
    List<CompareFacesMatch> faceDetails = compareFacesResult.getFaceMatches();
    for (CompareFacesMatch match : faceDetails) {
        ComparedFace face = match.getFace();
        BoundingBox position = face.getBoundingBox();
        System.out.println("Face at " + position.getLeft().toString() + " " + position.getTop() + " matches with " + face.getConfidence().toString() + "% confidence.");
    }
    List<ComparedFace> uncompared = compareFacesResult.getUnmatchedFaces();
    System.out.println("There was " + uncompared.size() + " face(s) that did not match");
    System.out.println("Source image rotation: " + compareFacesResult.getSourceImageOrientationCorrection());
    System.out.println("target image rotation: " + compareFacesResult.getTargetImageOrientationCorrection());
}
Also used : FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) Image(com.amazonaws.services.rekognition.model.Image) ByteBuffer(java.nio.ByteBuffer) CompareFacesMatch(com.amazonaws.services.rekognition.model.CompareFacesMatch) ComparedFace(com.amazonaws.services.rekognition.model.ComparedFace) FileInputStream(java.io.FileInputStream) BoundingBox(com.amazonaws.services.rekognition.model.BoundingBox) AmazonRekognition(com.amazonaws.services.rekognition.AmazonRekognition) CompareFacesRequest(com.amazonaws.services.rekognition.model.CompareFacesRequest) File(java.io.File) CompareFacesResult(com.amazonaws.services.rekognition.model.CompareFacesResult)

Aggregations

AmazonRekognition (com.amazonaws.services.rekognition.AmazonRekognition)1 BoundingBox (com.amazonaws.services.rekognition.model.BoundingBox)1 CompareFacesMatch (com.amazonaws.services.rekognition.model.CompareFacesMatch)1 CompareFacesRequest (com.amazonaws.services.rekognition.model.CompareFacesRequest)1 CompareFacesResult (com.amazonaws.services.rekognition.model.CompareFacesResult)1 ComparedFace (com.amazonaws.services.rekognition.model.ComparedFace)1 Image (com.amazonaws.services.rekognition.model.Image)1 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 ByteBuffer (java.nio.ByteBuffer)1