Algorithm 基于细节点的指纹匹配算法

Algorithm 基于细节点的指纹匹配算法,algorithm,matrix,fingerprint,biometrics,Algorithm,Matrix,Fingerprint,Biometrics,问题 我需要匹配两个指纹并给相似性评分 我以前发布过一篇文章,但我认为我已经取得了足够的进步,可以提出一个新问题 输入 对于每个图像,我都有一个细节列表(要点)。我想通过匹配这两个列表来匹配指纹 以图形方式表示时,它们如下所示: 一个细节由一个三元组(i,j,θ)组成,其中: i是矩阵中的行 j是矩阵中的列 theta是一个方向。我还没有在匹配算法中使用该参数 我到目前为止所做的事情 对于每个列表,找到“密集区域”或“簇”。有些区域比其他区域有更多的点,我已经编写了一个算法来查找它们。如

问题

我需要匹配两个指纹并给相似性评分

我以前发布过一篇文章,但我认为我已经取得了足够的进步,可以提出一个新问题

输入

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

以图形方式表示时,它们如下所示:

一个细节由一个三元组
(i,j,θ)
组成,其中:

  • i
    是矩阵中的行
  • j
    是矩阵中的列
  • theta
    是一个方向。我还没有在匹配算法中使用该参数
我到目前为止所做的事情

  • 对于每个列表,找到“密集区域”或“簇”。有些区域比其他区域有更多的点,我已经编写了一个算法来查找它们。如果你愿意,我可以进一步解释
  • 移动第二个列表以说明两个图像之间手指位置的差异。我忽略了手指旋转的差异。移动是通过调整星团中心的重心来完成的。(它比所有细节的重心更可靠)
  • 我尝试为每个列表(轮班后)构建一个矩阵,以便为每个细节增加相应的元素及其近邻,如下所示

    11

    12 1

    1232 1

    1234321

    1232 1

    12 1

    11

  • 通过减去这两个矩阵,并将所得矩阵中所有元素的绝对值相加,我希望得到接近指纹的较低数字

结果

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

  • 我可能需要使用点的方向,但我不知道如何使用
  • 我可以使用点或簇的标准偏差
  • 我可以对不同类型的细节重复这个过程。现在,我的算法检测脊端点和脊分叉,但也许我应该分别处理它们
问题:如何改进算法?

编辑

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

我完全放弃了这些分支,因为我的细化算法太频繁地把它们搞砸了。然而,我最终还是使用了很多角度

我最初的群集计数想法在我进行的小规模测试中(我的手指和少数志愿者的手指的不同组合)确实很有效

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

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


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

您的聚类方法很有趣,但有一件事我很好奇,那就是您对它的测试有多好。为了使新的匹配算法对现有的所有研究和方法都有用,您需要有一个合理的低EER。您是否使用任何标准数据库测试过您的方法?我怀疑单靠集群计数和位置就能够在更大范围内识别个体

1) 指纹匹配是一个研究得很好的问题,有很多好的论文可以帮助您实现这一点。想要有一个好的开始,请查看这篇由Jiang&Yau撰写的文章。这是一篇经典的论文,篇幅很短(只有4页),可以相当合理地实现。他们还定义了一个评分标准,可用于量化两个指纹图像的匹配程度。同样,这应该只是一个起点,因为现在有许多算法表现得更好

2)如果你希望算法是健壮的,它应该考虑图像之间的指纹变换。扫描指纹和潜在指纹在图像之间可能不一致

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

3) 我建议您区分脊线端点和分叉。您可以分离的特征越多,就越能准确地确定指纹是否匹配。你也可以考虑这个数字。