-->

使用Camera指纹扫描仪[关闭](Fingerprint Scanner using Camera

2019-07-17 21:53发布

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

该FingerJetFX OSE指纹特征提取是平台无关的,可以建成为,与对make文件适当的修改,并在环境中有或无操作系统上运行,其中包括

  • Linux的
  • Android的
  • 视窗
  • Windows CE的
  • 各种实时操作系统

但我不知道是否指纹采集仪可能与否,我下载SDK和挖掘,但没有运气,甚至也没有发现任何步骤,将SDK整合,所以有少数几种如下问题:

我在寻找的建议和指导:

  1. 指纹扫描仪可以用相机或没有摄像头是Android的可能吗?
  2. 的帮助下FingerJetFX我能实现我的目标?
  3. 如果第二个答案是肯定的,那么有人可以给我提供任何形式的步骤,以在SDK的Android集成?

你的建议是明显的。

Answer 1:

Android相机基础的解决方案:

正如有人谁的完成显著研究这个确切的问题,我可以告诉你,这是很难用任何现有Android设备上发现了一个股票相机获取模板(特征提取)合适的图像。 主要衰弱的问题是实现手指的波峰和波谷之间显著的对比。 商业光学指纹扫描器(您正试图模仿)典型地实现通过受抑全内反射在棱镜必要的反差。

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

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

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

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

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

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

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

非基于照相机的解决方案:

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

交叉编译FingerJetFX

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

  1. 它编译成库,并使用JNI与它的接口。
  2. 把它编译成可执行文件,让你的Android程序中调用它作为一个子进程。

对于任何一个你需要的NDK 。 我从来没有使用JNI,所以我会听从智慧的人就如何最好我们它。 我总是倾向于选择路线#2。 对于这个应用程序,我认为这是合适的,因为你只有真正调用本地代码做一两件事,模板图像。 一旦你得到了你的本地程序的运行和交叉编译,你可以使用这个问题的答案与你的Android应用程序打包使用Android代码调用它。



Answer 2:

Tthere有几个直接的障碍:

  1. 获取指纹的良好形象,将是至关重要的。 根据他们的网站,fingerjet预计标准指纹图像 - 例如,8位灰度(高对比度),扁平指纹图像。 如果你把指纹图像用相机,用户将需要有一个平坦的透明表面(玻璃),你可以为了拍摄照片拼合指纹上。 然后,您的应用程序将找到指纹图像中,将其转换成fingerjet接受的格式。 像OpenCV的库将有助于做到这一点。

  2. FingerJetFX OSE似乎并不提供罐装支持Android的 - 你将不得不编译为Android库,并通过JNI / NDK使用它。

从那里,fingerjet应为您提供您可以用于匹配打印的紧凑表示。

这将是可行的,但使用要求(需要用户有一个可用的平坦的透明表面)可能是一个大忌......



文章来源: Fingerprint Scanner using Camera [closed]