java - 匹配指纹的最快方法?

标签 java binary-tree fingerprint biometrics

我正在尝试检查大量指纹(100,000 个指纹)中的指纹是否存在/匹配。按顺序搜索匹配项将花费更多时间。有没有更好的方法来搜索匹配项?是否可以将指纹组织成二叉树结构,从而减少比较次数?如果是,我们该怎么做?如果答案是从 Java 的角度来看,那将会很有帮助。

编辑:

I have all the fingerprints as .gif images. how can i convert the finger print images into data?

谢谢。

最佳答案

1)需要使用小波压缩算法,按照小波压缩参数的顺序对指纹进行编码:

0、-1、2.4、5.6.7.7、32.-1.5 等

2)你需要定义匹配函数,它会发现一些相似之处,有两种选择:

-几何方法(将象限与象限进行比较,所有字段都通过某种空间算法分隔成连续的 block )

优点:

硬件加速 (SSE) 像素匹配算法,使用仿射变换将所有指纹归一化到标准基础,f.e.到 512x512 像素的正方形

缺点:

对指纹质量的高度敏感(如果搜索指纹的一部分完全被遗漏)

-拓扑方法(线、弧、断点的连通性、相互定位)

优点:

对指纹的角度、位置、质量敏感度低,可以使用原图比例和方向;

缺点:

分析速度低,高度依赖于分类函数的质量,

3) 你需要定义某种遗传算法来训练一组已知指纹的评估函数

你的知识系统将能够通过给定的样本找到指纹,系统不知道,但经过训练可以找到一些特定的差异/匹配,提高成功搜索的概率,降低搜索时错误匹配的概率.

关于java - 匹配指纹的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4762778/

相关文章:

algorithm - 设计一种算法来搜索两个 AVL 树之间的第 k 个最大元素

java - 终结器 : Binder has been finalized, android keystore 引发的未捕获异常

java - JTable 行选择

java - 类.forName ("com.mysql.jdbc.Driver").newInstance()

python - 如何打印给定节点的父节点

c# - 无法使用 Zkemkeeper SDK 调用事件

python - 指纹匹配/识别算法/实现

java - 从 JWT 到 json 的 Base64 字符串

java - 无法在 JTable 中返回 Double 值

java - 二叉树遍历时跳过节点