我正在使用ISO 19794-2指纹数据格式。 所有数据都以ISO 19794-2格式存在。 我具有超过10万个指纹。 我希望进行高效的搜索来识别匹配项。 是否可以构建类似二叉树结构以执行最有效(最快)的匹配搜索?或者建议我查找匹配项的更好方法。并且建议我一个Java开源API来进行指纹匹配。帮助我。谢谢。
我正在使用ISO 19794-2指纹数据格式。 所有数据都以ISO 19794-2格式存在。 我具有超过10万个指纹。 我希望进行高效的搜索来识别匹配项。 是否可以构建类似二叉树结构以执行最有效(最快)的匹配搜索?或者建议我查找匹配项的更好方法。并且建议我一个Java开源API来进行指纹匹配。帮助我。谢谢。
你是否具备指纹匹配的背景知识?这不是一个简单的问题,你需要一些理论知识来解决这个问题。可以查看博洛尼亚大学生物实验室(该领域的领先研究实验室)提供的指纹匹配介绍。
现在让我们回答你的问题,即如何使搜索更加高效。
根据其展示的宏观奇异性类型,指纹可以分为5个主要类别。
有三种类型的宏观奇异性:
根据这些宏观奇异性的位置,你可以将指纹分类到这些类别中:
一旦你将搜索范围缩小到正确的类别,就可以执行匹配操作。从你的问题来看,似乎你需要做一个识别任务,所以恐怕你将不得不进行所有比较,否则可以添加一些预处理层(例如我所提到的分类)来进一步缩小搜索范围。
你可以在指纹识别手册中找到许多关于指纹匹配的信息,该书由Maltoni、Maio、Jain和Prabhakar等领先研究人员撰写。ISO格式规定了有用的匹配和决策参数机制。确定您希望使用哪种机制来识别匹配项和相关的决策参数。当您确定这些机制和决策参数时,请检查它们,看看哪些可以按顺序排列 - 具有相当高的个体价值,因为您希望避免数据上的多次冲突。当您确定了少量具有此属性的数据项(最好是一个)时,请为每个指纹计算属性 - 最好在将其添加到数据库时进行,尽管最初可以进行批量加载。然后,在计算出特征后进行匹配搜索,并且可以通过二叉树、黑红树或各种其他搜索过程来完成。如果不知道数据库中数值的形式和差异程度,则无法推荐特定的搜索策略。但是,这样的搜索策略应该能够提供一小部分可能的匹配项 - 然后在针对您的匹配机制和参数进行单独测试后,再决定具体的匹配项。