Comment on page
Facial Comparison
To use any Sybrin SDK you will need a Sybrin issued license. You can have a look at our licensing page to request a license.
Using the license provided you will need to build and instance of the SybrinFacialComparisonConfiguration class that will help with configuring the SDKs' behavior.
SybrinFacialComparisonConfiguration sfcc = new SybrinFacialComparisonConfiguration
.Builder(<sybrin_license_here>)
.build();
To see the full range of configuration available please visit the SybrinFacialComparisonConfiguration page
To start the facial comparison process you will need to get an instance of the SybrinFacialComparison class using the configuration built earlier. With this object you will be able to call the
compareFaces
method. This method requires two parameters. The target, the bitmap that contains the face you wish to run comparison on, and an array of faces, a bitmap array containing faces that the target will be compared to. For a visual understanding refer to the below figure.
Figure showing the comparison interaction between the target and face images
Finally you can register for the 2 different callbacks right on the method call.
Bitmap target = getTargetImage();
Bitmap[] faces = getFaces();
SybrinFacialComparison sfc = SybrinFacialComparison.getInstance(Activity.this, sfcc);
sfc.compareFaces(target, faces)
.addOnSuccessListener(new FacialComparator.OnSuccessListener<FacialComparisonModel>() {
@Override
public void onSuccess(FacialComparisonModel result) {
// Handle success
}
})
.addOnFailureListener(new FacialComparator.OnFailureListener() {
@Override
public void onFailure(FacialComparisonException fce) {
// Handle failure
}
});
Subscribing to any of the callbacks on the
compareFaces
method is optional.There are 2 different callbacks that can be subscribed to. They are as follows:
When the SDK has completed the facial comparison process the result will be posted to the
OnSuccessListener.onSuccess
callback. The FacialComparisonModel is returned as a result. To get the comparison results you can use the getFaceResults
method which will return a list of FacialComarisonResult.sfc.compareFaces(target, faces)
.addOnSuccessListener(new FacialComparator.OnSuccessListener<FacialComparisonModel>() {
@Override
public void onSuccess(FacialComparisonModel result) {
// Handle success
List<FacialComparisonResult> comparisonResult = result.getFaceResults();
}
});
When the SDK encounters an error a FacialComparisonException is posted to the
OnFailureListener.onFailure
callback. The FacialComparisonException will contain all the needed information to help solve the issue causing the error.sfc.compareFaces(target, faces)
.addOnFailureListener(new FacialComparator.OnFailureListener() {
@Override
public void onFailure(FacialComparisonException fce) {
// Get error message
String error = fce.getLocalizedMessage();
}
});
Activity.java
SybrinFacialComparisonConfiguration sfcc = new SybrinFacialComparisonConfiguration
.Builder(<sybrin_license_here>)
.build();
Bitmap target = getTargetImage();
Bitmap[] faces = getFaces();
SybrinFacialComparison sfc = SybrinFacialComparison.getInstance(Activity.this, sfcc);
sfc.compareFaces(target, faces)
.addOnSuccessListener(new FacialComparator.OnSuccessListener<FacialComparisonModel>() {
@Override
public void onSuccess(FacialComparisonModel result) {
// Handle success
List<FacialComparisonResult> comparisonResult = result.getFaceResults();
}
})
.addOnFailureListener(new FacialComparator.OnFailureListener() {
@Override
public void onFailure(FacialComparisonException fce) {
// Get error message
String error = fce.getLocalizedMessage();
}
});
Last modified 1yr ago