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
- 通过减去这两个矩阵,并将所得矩阵中所有元素的绝对值相加,我希望得到接近指纹的较低数字
- 我测试了一些指纹,发现聚类的数量非常稳定。匹配的指纹通常具有相同数量的簇,不同的手指给出不同的数字。所以这肯定是整体相似性得分的一个因素
- 然而,这些差异的总和根本不起作用。相似性和总和之间没有相关性
- 我可能需要使用点的方向,但我不知道如何使用
- 我可以使用点或簇的标准偏差
- 我可以对不同类型的细节重复这个过程。现在,我的算法检测脊端点和脊分叉,但也许我应该分别处理它们
- Cluster thingy(以下所有内容都不使用集群,而是使用细节。这是我采用的唯一与集群相关的方法)
- 平均
位置i
- 平均角
差异i
差异j
- 角度方差
峰度i
峰度j
- 角峰度
偏度j
同样的手指比较几乎总是在80%到100%之间。0和60%之间的奇数指比较(不经常为60%)。我这里没有确切的数字,所以我不会假装这是一个统计上显著的成功,但这似乎是一个很好的第一枪。您的聚类方法很有趣,但有一件事我很好奇,那就是您对它的测试有多好。为了使新的匹配算法对现有的所有研究和方法都有用,您需要有一个合理的低EER。您是否使用任何标准数据库测试过您的方法?我怀疑单靠集群计数和位置就能够在更大范围内识别个体 1) 指纹匹配是一个研究得很好的问题,有很多好的论文可以帮助您实现这一点。想要有一个好的开始,请查看这篇由Jiang&Yau撰写的文章。这是一篇经典的论文,篇幅很短(只有4页),可以相当合理地实现。他们还定义了一个评分标准,可用于量化两个指纹图像的匹配程度。同样,这应该只是一个起点,因为现在有许多算法表现得更好
2)如果你希望算法是健壮的,它应该考虑图像之间的指纹变换。扫描指纹和潜在指纹在图像之间可能不一致
此外,计算细节点的方向提供了处理指纹旋转的方法。通过测量细节点方向之间的角度,无论全局旋转如何,多幅图像中的细节点方向将保持相同或接近相同(尽管可能会出现小的不一致,因为皮肤不是刚性的,可能会略微拉伸),您可以找到对应细节对或三元组的最佳集合,并将它们用作旋转对齐的基础 3) 我建议您区分脊线端点和分叉。您可以分离的特征越多,就越能准确地确定指纹是否匹配。你也可以考虑这个数字。