基于细节的指纹匹配算法

时间:2016-10-26 10:50:22

标签: algorithm matrix fingerprint biometrics

问题

我需要匹配两个指纹并给出相似的分数。

之前我发布了一个similar question,但我认为我已经取得了足够的进展以保证一个新的问题。

输入

对于每张图片,我都有一个细节列表(重要点)。我希望通过匹配这两个列表来匹配指纹。

以图形方式表示时,它们看起来像这样:

minutiae

细节由三元组(i, j, theta)组成,其中:

  • i是矩阵中的行
  • j是矩阵中的列
  • theta是一个方向。我在匹配算法中还没有使用该参数。

到目前为止我做了什么

  • 对于每个列表,找到“密集区域”或“群集”。有些区域比其他区域有更多的点,我写了一个算法来找到它们。如果你愿意,我可以进一步解释。
  • 移动第二个列表以便考虑两个图像之间手指位置的差异。我忽略了手指旋转的差异。通过对齐聚类中心的重心来完成转换。 (它比所有细枝末节的重心更可靠)
  • 我尝试为每个列表构建矩阵(移位后),以便每个细节增加相应的元素,并且它是近邻,如下所示。

    1 1 1 1 1 1 1

    1 2 2 2 2 2 1

    1 2 3 3 3 2 1

    1 2 3 4 3 2 1

    1 2 3 3 3 2 1

    1 2 2 2 2 2 1

    1 1 1 1 1 1 1

  • 通过减去两个矩阵并将得到的矩阵中所有元素的绝对值相加,我希望得到较少的数字以获得密切的指纹。

结果

  • 我测试了一些指纹,发现簇的数量非常稳定。匹配的指纹通常具有相同数量的簇,并且不同的手指给出不同的数字。所以这肯定是整体相似性得分的一个因素。
  • 然而,差异的总和根本不起作用。相似性和总和之间没有相关性。

思想

  • 我可能需要使用积分的指示,但我不知道怎么回事
  • 我可以使用点或簇的标准偏差。
  • 我可以针对不同类型的细节重复这个过程。现在我的算法检测到脊状结束和脊部分叉,但也许我应该单独处理它们。

问题:如何改进算法?

修改

自发布此问题以来,我已经走了很长一段路,所以这是我的更新。

我完全放弃了分叉,因为我的细化算法太频繁地混淆了这些分叉。然而,我确实最终使用了这些角度。

我的初始集群计数理念在我运行的小规模测试(我的手指和少数志愿者的不同组合)中确实表现得非常好。

我根据以下测试给出一个分数(10次测试,每次成功10%。这有点天真,但我会找到一种更好的方法将这10个结果变成分数,因为每个测试都有其特殊性) :

  • Cluster-thingy(以下所有内容都不使用群集,但是细节。这是我采用的唯一与群集相关的方法)
  • 平均i位置
  • 平均角度
  • i variance
  • j variance
  • 角度差异
  • i kurtosis
  • j kurtosis
  • 角度峰度
  • j偏斜

确实是一个统计方法。

同样的手指比较几乎总是在80%到100%之间。奇怪的手指比较在0到60%之间(通常不是60%)。我没有确切的数字,所以我不会假装这是一个统计上显着的成功,但它似乎是一个很好的第一枪。

1 个答案:

答案 0 :(得分:0)

你的聚类方法很有意思,但我很好奇的一点是你测试它的程度。对于新的匹配算法,对于已经存在的所有研究和方法都很有用,您需要具有相当低的EER。您是否使用任何标准数据库测试过您的方法?我怀疑群集计数和位置单独识别更大规模的个体的能力。

1)指纹匹配是一个研究得很好的问题,有很多好的论文可以帮助你实现这一点。如果您想要一个好的起点,请查看本文,"Fingerprint Minutiae Matching Based on the Local and Global Structures"作者:江和&。油。这是一篇经典论文,简短的阅读(仅4页),并且可以相当合理地实施。他们还定义了一个评分指标,可用于量化两个指纹图像匹配的程度。同样,这应该只是一个起点,因为现在有许多算法表现更好。

2)如果您希望算法具有鲁棒性,则应考虑在图像之间转换指纹。从图像到图像,扫描的指纹和潜在的打印可能不一致。

此外,计算细节点的方向提供了处理指纹旋转的方法。通过测量细节点方向之间的角度,无论全局旋转如何,它们在多个图像中保持相同或接近相同(尽管可能会出现小的不一致,因为皮肤不是刚性并且可能会略微伸展),您可以找到最佳的相应的细节对或三胞胎,并将它们作为旋转对齐的基础。

3)我建议您区分脊线末端和分叉。您可以隔离的功能越多,就越能准确地判断指纹是否匹配。您还可以考虑每个细节点之间出现的脊线数量。

下图显示了Jiang和Yau使用的功能。 Global and Local Features (Jiang & Yau, 2000)

  • d:细节之间的欧几里德距离
  • θ:细节方向之间的角度测量
  • φ:全局细节角度
  • n:细节i和j之间的脊线数

如果您还没有看过Handbook of Fingerprint Recognition,我推荐它。