问题
我需要匹配两个指纹并给出相似的分数。
之前我发布了一个similar question,但我认为我已经取得了足够的进展以保证一个新的问题。
输入
对于每张图片,我都有一个细节列表(重要点)。我希望通过匹配这两个列表来匹配指纹。
以图形方式表示时,它们看起来像这样:
细节由三元组(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个结果变成分数,因为每个测试都有其特殊性) :
i
位置i
variance j
variance i
kurtosis j
kurtosis j
偏斜确实是一个统计方法。
同样的手指比较几乎总是在80%到100%之间。奇怪的手指比较在0到60%之间(通常不是60%)。我没有确切的数字,所以我不会假装这是一个统计上显着的成功,但它似乎是一个很好的第一枪。
答案 0 :(得分:0)
你的聚类方法很有意思,但我很好奇的一点是你测试它的程度。对于新的匹配算法,对于已经存在的所有研究和方法都很有用,您需要具有相当低的EER。您是否使用任何标准数据库测试过您的方法?我怀疑群集计数和位置单独识别更大规模的个体的能力。
1)指纹匹配是一个研究得很好的问题,有很多好的论文可以帮助你实现这一点。如果您想要一个好的起点,请查看本文,"Fingerprint Minutiae Matching Based on the Local and Global Structures"作者:江和&。油。这是一篇经典论文,简短的阅读(仅4页),并且可以相当合理地实施。他们还定义了一个评分指标,可用于量化两个指纹图像匹配的程度。同样,这应该只是一个起点,因为现在有许多算法表现更好。
2)如果您希望算法具有鲁棒性,则应考虑在图像之间转换指纹。从图像到图像,扫描的指纹和潜在的打印可能不一致。
此外,计算细节点的方向提供了处理指纹旋转的方法。通过测量细节点方向之间的角度,无论全局旋转如何,它们在多个图像中保持相同或接近相同(尽管可能会出现小的不一致,因为皮肤不是刚性并且可能会略微伸展),您可以找到最佳的相应的细节对或三胞胎,并将它们作为旋转对齐的基础。
3)我建议您区分脊线末端和分叉。您可以隔离的功能越多,就越能准确地判断指纹是否匹配。您还可以考虑每个细节点之间出现的脊线数量。
如果您还没有看过Handbook of Fingerprint Recognition,我推荐它。