Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android SDK for fingerprint matching - External device

I'm developing an Android application that uses U.are.U 4500 fingerprint reader to identify users. I already have a backend server, that uses SQL Server, to store and register user data and now I need my app to be able to read the user fingerprint and verify if this fingerprint matches any of the fingerprints on the database. Does anyone know a SDK that is able to do this comparison?

I'm using asia.kanopi.fingerscan package to read the user fingerprint and I already have the scan working, now I only need to get this image and compare to the data on the SQL database. I saw a few answers here on StackOverflow telling me to use openCV library for Android, but none of them could give me any lead on how to do it.

I based my development on this tutorial: https://medium.com/touch4it/fingerprint-external-scanner-with-usb-database-sdk-64c3ec5ea82d, but unfortunately I couldn't find the SDK IDKit Fingerprint SDK Mobile anywhere.

How can I sucessufully match the image with the one stored on the database?

like image 783
Leonardo Dias Avatar asked Aug 11 '19 03:08

Leonardo Dias


People also ask

How do I use an external fingerprint scanner on my Android phone?

You will click on the Biometric Fingerprint Authentication button to go to the Android Fingerprint authentication activity. While at the Fingerprint Authentication activity, press Finger on Finger Reader / Scanner.

What are the two different approaches to fingerprint matching?

The two main categories of fingerprint matching techniques are minutiae-based matching and pattern matching. Pattern matching simply compares two images to see how similar they are. Pattern matching is usually used in fingerprint systems to detect duplicates.

What is SDK in biometric?

The SDK allows the development of biometric applications for Microsoft Windows, Linux, macOS, iOS and Android operating systems. VeriFinger 12.3 Extended SDK is designed for biometric client-server application development. It contains all features and components of the Standard SDK.


Video Answer


2 Answers

For those who are still looking for an answer to this problem. It's been a while since I actually implemented my solution and, when I did it, I added this line to my app gradle file:

com.github.lmone:SourceAFIS-Android:v3.4.0-fix3

But now I can't seem to find the github link anywhere. Maybe the repository got deleted. If someone find it, please send it to me so I can update my answer here.

Besides that, if you can still add the library to your Android project, the basic idea is to use a FingerprintMatcher to compare two FingerprintTemplate.

Example:

FingerprintTemplate probe = new FingerprintTemplate().dpi(500).create(digital_byte_array);

while (result.next()) {
    byte[] imgCandidate = digital_to_compare;
    FingerprintTemplate candidate = new FingerprintTemplate()
            .dpi(500)
            .create(imgCandidate);

    double score = new FingerprintMatcher()
            .index(probe)
            .match(candidate);

    if (score >= 40) {
        // Found a match
    }
}
            

In my case, I found the performance a little slow. It was usable, but nothing compared to Android's built-in fingerprint device. Also, the bigger your digitals collection, the longer it will take to find a match.

The score of the match is up for you to decide what suits better your project. 40 was a reliable amount in my case. The same goes to the FingerprintTemplate dpi.

Also, the method .create() receives a byte[] as parameter.

EDIT

I found this link and I'm almost certain it is the library I used, but under a new repository name:

https://github.com/robertvazan/sourceafis-java

The docs looks just the same as the code I used: https://sourceafis.machinezoo.com/java

like image 75
Leonardo Dias Avatar answered Oct 23 '22 03:10

Leonardo Dias


To match a user on server side, you have to use an AFIS server : https://en.wikipedia.org/wiki/Integrated_Automated_Fingerprint_Identification_System

Here some providers of AFIS solution:

  • http://www.neurotechnology.com/megamatcher.html
  • https://www.nec.com.au/expertise/safety-security/identity-access/fingerprint
  • https://www.innovatrics.com/innovatrics-abis/
  • https://www.dermalog.com/products/software/civil-afis-abis/
  • http://www.m2sys.com/automated-fingerprint-identification-system-afis/
like image 1
LaurentY Avatar answered Oct 23 '22 02:10

LaurentY