使用Camera指纹采集仪指纹、Camera

2023-09-13 02:30:41 作者:该用户没有名字

用相机或没有工作的指纹扫描仪​​,它的可能性和成功率?,我遇到了一个名为 FingerJetFX 其提供feasibilty与Android了。

的FingerJetFX OSE指纹特征提取器是平台无关的,可建 对,有适当修改make文件,并在环境中使用或不运行 操作系统,包括

的Linux 安卓 窗口 的Windows CE 各种实时操作系统

但我不知道是否指纹扫描仪​​可能还是不行,我下载了SDK和挖掘,但没有运气,甚至没有发现任何步骤来整合SDK,所以有一些低于所列问题:

我在寻找的建议和指导:

     在指纹扫描仪​​可以是可能在Android中使用摄像头或没有摄像头?   使用 FingerJetFX 的帮助下,我可以实现我的目标是什么?   如果第二个答案是肯定的,那么有人可以给我提供任何形式的措施,在Android的?集成SDK   

您的建议是AP preciable。

解决方案

根据 Android摄像头解决方案:

正如有人谁在这个确切的问题做显著的研究,我可以告诉你们,这是很难用在任何当前的Andr​​oid设备中找到一只股票的相机来获得合适的图像模板(特征提取)。主衰弱的问题是实现手指的波峰和波谷之间显著的对比。商业光学指纹扫描仪​​(你正试图模仿)通常实现通过受抑全内反射棱镜必要的对比。

指纹识别采集仪价格 指纹识别采集仪批发 指纹识别采集仪厂家

在这种情况下,光从接触棱镜脊被发送到CMOS传感器,而光从谷不是。你根本不会去可靠地得到同样的从Android摄像头的结果,但是,这并不意味着你不能得到的东西在理想条件下可用。

我把左边的图像与商业光学指纹采集仪(Futronics FS80),然后用普通相机(15MP佳能DSLR)的权利。裁剪,反相后(以匹配其它扫描仪的约定),对比等的摄像机图像,我们得到以下结果。

摄像机图像的对比度低是显而易见的。

但是,该软件能够准确地确定脊流

和我们最终找到匹配的细节体面的数量(标有红色圆圈。)

下面是坏消息。考虑到这些类型的手指尖的近距离拍摄是困难的。我用的是数码单反相机用闪光灯来实现这些结果。另外,大多数指纹匹配算法,没有形成规模不变。因此,如果手指是远离在随后的扫描的相机,也可以不匹配原始。

该软件包我使用的可视化是优秀的和BSD许可 SourceAFIS 。无企业开源版/付费版恶作剧或者虽然它目前只移植到C#和Java(有限)。

根据非摄像机解决方案:

有关可怕少数有硬件设备的支持USB主机模式,您可编写自定义的驱动程序集成指纹扫描仪​​采用Android。我会说实话,对于这两种模式我这样做了,这是一个巨大的痛苦。我用 Wireshark的嗅探扫描仪和一台Linux机器是有工作的驱动程序之间的USB数据包,然后编写一个基于Android的驱动程序来实现它在嗅探命令。

交叉编译FingerJetFX

一旦你已经制定了图像采集解决方案(包括可能的解决方案有其缺点),你就可以开始担心会在Android上运行FingerJetFX。首先,你会用自己的SDK编写一个自包含的C ++程序,它的图像,并把它变成一个模板。之后,你真的有两个选择。

它编译成库,并使用JNI与它进行交互。 编译到一个可执行文件,并让你的Andr​​oid程序把它作为一个子进程。

有关任何你需要的 NDK 。我从来没有用过JNI,所以我会推迟到智慧的其他的关于如何最好我们它。我总是倾向于选择路线#2。对于这个应用程序,我认为这是合适的,因为你只有真正调用本地code做一件事,模板图像。一旦你有你的本地程序的运行和交叉编译即可use在回答这个问题将它与你的Andr​​oid应用程序包,并从你的Andr​​oid code调用它。

Working on fingerprint scanner using camera or without, its possibility and its success rate?, I came across one of open source SDK named FingerJetFX its provide feasibilty with android too.

The FingerJetFX OSE fingerprint feature extractor is platform-independent and can be built for, with appropriate changes to the make files, and run in environments with or without operating systems, including

Linux Android Windows Windows CE various RTOSs

but I'm not sure whether Fingerprint scanner possible or not, I download the SDK and digging but no luck, even didn't found any steps to integrate the SDK, so having few of question which listed below:

I'm looking for suggestion and guidance:

Fingerprint scanner can be possible in android using camera or without camera? With the help of FingerJetFX can I achieve my goal? If 2nd answer is yes, then can someone provide me any sort of steps to integrate SDK in android?

Your suggestion are appreciable.

解决方案

Android Camera Based Solutions:

As someone who's done significant research on this exact problem, I can tell you it's difficult to get a suitable image for templating (feature extraction) using a stock camera found on any current Android device. The main debilitating issue is achieving significant contrast between the finger's ridges and valleys. Commercial optical fingerprint scanners (which you are attempting to mimic) typically achieve the necessary contrast through frustrated total internal reflection in a prism.

In this case, light from the ridges contacting the prism are transmitted to the CMOS sensor while light from the valleys are not. You're simply not going to reliably get the same kind of results from an Android camera, but that doesn't mean you can't get something useable under ideal conditions.

I took the image on the left with a commercial optical fingerprint scanner (Futronics FS80) and the right with a normal camera (15MP Cannon DSLR). After cropping, inverting (to match the other scanner's convention), contrasting, etc the camera image, we got the following results.

The low contrast of the camera image is apparent.

But the software is able to accurately determine the ridge flow.

And we end up finding a decent number of matching minutia (marked with red circles.)

Here's the bad news. Taking these types of up close shots of the tip of a finger is difficult. I used a DSLR with a flash to achieve these results. Additionally most fingerprint matching algorithms are not scale invariant. So if the finger is farther away from the camera on a subsequent "scan", it may not match the original.

The software package I used for the visualizations is the excellent and BSD licensed SourceAFIS. No corporate "open source version"/ "paid version" shenanigans either although it's currently only ported to C# and Java (limited).

Non Camera Based Solutions:

For the frightening small number of devices that have hardware that support "USB Host Mode" you can write a custom driver to integrate a fingerprint scanner with Android. I'll be honest, for the two models I've done this for it was a huge pain. I accomplished it by using wireshark to sniff USB packets between the scanner and a linux box that had a working driver and then writing an Android driver based on the sniffed commands.

Cross Compiling FingerJetFX

Once you have worked out a solution for image acquisition (both potential solutions have their drawbacks) you can start to worry about getting FingerJetFX running on Android. First you'll use their SDK to write a self contained C++ program that takes an image and turns it into a template. After that you really have two options.

Compile it to a library and use JNI to interface with it. Compile it to an executable and let your Android program call it as a subprocess.

For either you'll need the NDK. I've never used JNI so I'll defer to the wisdom of others on how best us it. I always tend to choose route #2. For this application I think it's appropriate since you're only really calling the native code to do one thing, template your image. Once you've got your native program running and cross compiled you can use the answer to this question to package it with your android app and call it from your Android code.