Over the past few years, there has been a dramatic increase in the power of smart phones Using these phones' current power, we can explore practical uses that were not possible years ago, such as image processing, and more specifically, object detection. By using our phones to detect objects in pictures, we gain the efficiency of being able to identify unknown objects on the go. In this project, I explored image processing through an android-based fingerprint scanner. Using object detection, one could theoretically detect nuances in fingerprints. On the go fingerprint scanning has a variety of applications, from phone security to amateur fingerprint detective work,
I used Google's Android SDK and Willow Garage's OpenCV image processing function library to code an application on the Android platform that can detect features of a fingerprint. The application first prompts the user for two photos as input. These two photos can either be two prints, or one can be a print feature, such as a fingerprint's arch, loop, or whorl, and the other can be a full fingerprint. These two pictures are then put through separate SURF Keypoint detection algorithms, which systematically determine points of interest in the images. These picture's Keypoints are then compared, and an image linking similar Keypoints between the images is generated. The user can then view these pictures to get a better idea of the fingerprints' similarities. I used the FVC2000 fingerprint database for fingerprint images.
The SURF Keypoint detection algorithm is not very accurate in detecting features within fingerprints or telling two fingerprints apart. It is fairly accurate in determining if two fingerprints are the same. The algorithm is centered on comparison of points. This is not ideal for fingerprints, which are better described by lines than points. The camera was also determined to be too low a quality to take good photos of one's finger.
While the Android's camera is not yet of a high enough quality to take interpretable photos of a person's finger, it is still a decent image processing platform, and can detect features of fingerprints. Some of the processes took longer than is convenient; especially the function to generate Keypoints, but that can be remedied with future advances in hardware, Other algorithms to detect Keypoints may be preferable to the SURF algorithm for fingerprints, as other algorithms may be more focused on objects like lines instead of points.
In this experiment, I evaluated the plausibility of Android phones as image processing devices by examining their ability to interpret fingerprints. The phone's camera was not good enough to take usable photos, and the SURF detection algorithm is not ideal for fingerprints.