Question

I am working on fingerprint project first time i need your help.

I am working on a android project.

I have a chinese fingerprint reader they provided me the sdk.

I am successfully able to read fingerprint. But My problem is sdk does not have any procedure to check whether fingerprint is correct or not.Mean it also accept if we press half finger. as u can see in pictures.

Image

so far i searched many verification system but all of them do verify image by comparing to other image but my problem is i don't have the access correct fingerprints of that person.

my goal of project is to send correct image to server which will compare image and send me response. it costs me on every image compare so i can't bear expense by sending incorrect fingerprint.

please tell me some method,some algorithm so i can determine fingerprint image is correct.

Sorry for my poor English.

Was it helpful?

Solution

This will check if finger is a good scan, so you only send clean once to your server:

Check if whole finger is scanned:

  • Put a boundingbox around the scanned finger and check if it has a required size.
  • Maybe: Check if enough of your picture is black, so you avoid "hovering" of finger

Check if Finger touches border:

  • Much more difficult, you could forbid it (check for overlap of boundingbox and edge of scanner) but that might be too strict
  • Maybe you can check the direction of the finger and forbid it if the finger is not vertical enough (do that by recognizing outer edge of finger with canny edge detection, compute the boundingbox (a rotatedrect) and check the angle of it.

This Tutorial shows how you can generate a rotated bounding box (a RotatedRect Object).

Here is described how you can get the angle of the box.

For the intersection: Test if the corner of your RotatedRect are inside the 'normal' area.

OTHER TIPS

Scanner should be able to give the quality score for every scan. Check with your scanner vendor. If it doesnt have, then change the scanner. Because, quality of the scan doesn't rely only on the area it has covered, but also the visibility of the minutiaes it has captured.

Also you should not rely on the area of the scan, as the finger width can be different from each other, you can only set the minimum width, but that would not solve the purpose. And it is difficult to predict, if the fingerprint is correct. Means, even half the fingerprint can cover the full area.

So, better get the scanner from CAMS, Mantra, Morpho, SecuGen and there are more.

All SDK provide Quality value of image 0 to 100 . check if it is 80 or more then 80 ites mean image capture is correct and if it is less then 80 its mean somthing missing in finger scaning result

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top