Add iris enrollment, verification and 1:N identification to your app or back end. Run our open-source SDK on the device or your own server, or let the cloud API keep the gallery and catch duplicate enrollments for you.
A Kotlin Multiplatform library for Android, iOS and the JVM. Everything runs locally: no images leave the device unless you send them. It is open source under GPL-3.0 and published on Maven Central (net.iriscan:biometric-sdk) and CocoaPods (BiometricSdk). If GPL does not suit your product, ask us about other terms.
A REST service built on the same algorithm. You send eye images; it stores the templates in a separate gallery for your organization, refuses to enroll the same iris twice under different names, and searches the whole gallery in a fraction of a second. Each response includes per-eye image quality so you can ask for a retake on the spot. See the API documentation and pricing.
val sdk = BiometricSdkFactory.getInstance()!!
val eye = sdk.io().readImage(bytes)
val quality = sdk.iris().quality().assess(eye) // ask for a retake if it is poor
val template = sdk.iris().encoder().extractAndEncode(eye)
val same = sdk.iris().matcher().matches(template, enrolled) // 1:1
val score = sdk.iris().matcher().score(template, enrolled) // 0.0 to 1.0
val best = sdk.iris().matcher().identify(template, gallery) // 1:N, null if nobody matches
Initialization, image formats and the template format are described in the README.
Add the dependency from Maven Central and call the SDK from Kotlin or Java. A USB iris scanner connects to the phone or tablet over USB OTG; the SDK takes the image from the scanner's driver and does the rest on the device, without a network connection.
dependencies {
implementation("net.iriscan:biometric-sdk-android:<version>")
}
The same code is published as the BiometricSdk pod and is called from Swift. Images from the camera or from a CGImage go through the same pipeline as on Android, so templates created on one platform match templates from the other.
pod 'BiometricSdk'
On the public CASIA-Iris-Interval dataset (393 eyes, 2,639 images, all genuine and impostor pairs) the current version reaches:
Results depend on the camera, lighting and the people you enroll. The SDK includes the benchmark we use, so you can run it on images from your own scanners and pick the threshold that fits your false match budget.
The SDK works with near-infrared images from dedicated iris cameras. We supply and support Vista EY2, Vista FA2 and the BIOSID tablet, and can help you choose a device for field enrollment.
1,032 bytes per eye: an 8-byte header, a 4,096-bit iris code and a 4,096-bit mask of valid bits. A register of a million people with both eyes enrolled fits in about 2 GB of memory.
Yes. The SDK reads and writes ISO/IEC 19794-6 iris image records, so you can keep the images in a standard container and re-create templates when the algorithm improves.
No. Enrollment, quality checks and matching run on the device or your server. The cloud de-duplication service is optional.
Customer identification for lenders and microfinance, patient and member identification in health insurance and hospitals, de-duplication of voter and beneficiary registers, and migration away from closed biometric systems.
Developers can start with the SDK today. For the cloud API, a pilot or help with integration, write to us and tell us about your use case and volumes.