java iso 19794-2 指纹格式
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4817467/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
iso 19794-2 fingerprint format
提问by brainless
I am using iso 19794-2 fingerprint data format. All the data are in the iso 19794-2 format. I have more than hundred thousand fingerprints. I wish to make efficient search to identify the match. Is it possible to construct a binary tree like structure to perform an efficient(fastest) search for match? or suggest me a better way to find the match. and also suggest me an open source api for java to do fingerprint matching. Help me. Thanks.
我使用的是 iso 19794-2 指纹数据格式。所有数据均采用iso 19794-2格式。我有超过十万个指纹。我希望进行有效的搜索以识别匹配项。是否可以构造一个二叉树状结构来执行有效(最快)的匹配搜索?或建议我找到匹配的更好方法。并建议我一个开源的java api 来进行指纹匹配。帮我。谢谢。
回答by Andrea Spadaccini
Do you have a background in fingerprint matching? It is not a simple problem and you'll need a bit of theory to tackle such a problem. Have a look at this introduction to fingerprint matchingby Bologna University's BioLab (a leading research lab in this field).
你有指纹匹配的背景吗?这不是一个简单的问题,您需要一些理论来解决这样的问题。看看博洛尼亚大学生物实验室(该领域的领先研究实验室)对指纹匹配的介绍。
Let's now answer to your question, that is how to make the search more efficient.
现在让我们回答您的问题,即如何使搜索更有效。
Fingerprints can be classified into 5 main classes, according to the type of macro-singularity that they exhibit.
指纹可以根据它们表现出的宏观奇异性的类型分为 5 个主要类别。
There are three types of macro-singularities:
宏奇点分为三种类型:
- whorl(a sort of circle)
- loop(a U inversion)
- delta(a sort of three-way crossing)
- 螺纹(一种圆形)
- 循环(U 倒转)
- delta(一种三路交叉)
According to the position of those macro-singularities, you can classify the fingerprint in those classes:
根据这些宏观奇异点的位置,您可以将指纹归入这些类:
- arch
- tented arch
- right loop
- left loop
- whorl
- 拱
- 帐篷拱门
- 右循环
- 左循环
- 螺纹
Once you have narrowed the search to the correct class, you can perform your matches. From your question it looks like you have to do an identification task, so I'm afraid that you'll have to do all the comparisons, or else add some layers of pre-processing (like the classification I wrote about) to further narrow the search field.
一旦您将搜索范围缩小到正确的类别,您就可以进行匹配。从你的问题看来你必须做一个识别任务,所以恐怕你必须做所有的比较,或者添加一些预处理层(如我写的分类)以进一步缩小搜索字段。
You can find lots of information about fingerprint matching in the book Handbook of Fingerprint Recognition, by Maltoni, Maio, Jain and Prabhakar - leading researchers in this field.
您可以在Maltoni、Maio、Jain 和 Prabhakar所著的Handbook of Fingerprint Recognition一书中找到许多有关指纹匹配的信息,他们是该领域的领先研究人员。
In order to read ISO 19794-2 format, you could use some utilities developed by NIST called BiomDI, Software Tools supporting Standard Biometric Data Interchange Formats. You could try to interface it with open source matching algorithms like the one found in this biometrics SDK. It would however need a lot of work, including the conversion from one format to another and the fine-tuning of algorithms.
为了读取 ISO 19794-2 格式,您可以使用 NIST 开发的一些实用程序,称为 BiomDI,支持标准生物特征数据交换格式的软件工具。您可以尝试将其与开源匹配算法进行交互,例如在此生物识别 SDK 中找到的算法。然而,这需要大量工作,包括从一种格式转换为另一种格式以及算法的微调。
My opinion (as a Ph.D. student working in biometrics) is that in this field you can easily write code that does the 60% of what you need in no time, but the remaining 40% will be:
我的观点(作为一名在生物识别领域工作的博士生)是,在这个领域,您可以轻松编写代码,立即完成您需要的 60%,但剩下的 40% 将是:
- hard to write (20%); and
- really hard to write without money and time (20%).
- 难写(20%);和
- 没有金钱和时间真的很难写(20%)。
Hope that helps!
希望有帮助!
Edit: added info about NIST BiomDI
编辑:添加了有关 NIST BiomDI 的信息
Edit 2: since people sometimes email me asking for a copy of the standard, I unfortunately don't have one to share. All I have is a link to the ISO page that sells the standard.
编辑 2:由于人们有时会通过电子邮件向我索要标准的副本,不幸的是,我没有一个可以分享。我所拥有的只是一个指向销售标准的 ISO 页面的链接。
回答by Chris Walton
The iso format specifies useful mechanisms for matching and decision parameters. Decide on what mechanism you wish to employ to identify the match, and the relevant decision parameters. When you have determined these mechanisms and decision parameters, examine them to see which are capable of being put into an order - with a fairly high degree of individual values, as you want to avoid multiple collisions on the data. When you have identified a small number of data items (preferably one) that have this property, calculate the property for each fingerprint - preferably as they are added to the database, though a bulk load can be done initially. Then the search for a match is done on the calculated characteristic, and can be done by a binary tree, a black-red tree, or a variety of other search processes. I cannot recommend a particular search strategy without knowing what form and degree of differentiation of values you have in your database. Such a search strategy should, however, be capable of delivering a (small) range of possible matches - which can then be tested individually against your match mechanism and parameters, before deciding on a specific match.
iso 格式指定了用于匹配和决策参数的有用机制。决定您希望采用什么机制来识别匹配,以及相关的决策参数。当您确定了这些机制和决策参数后,检查它们以查看哪些能够按顺序排列 - 具有相当高的单个值,因为您希望避免数据上的多次冲突。当您确定了具有此属性的少量数据项(最好是一个)时,计算每个指纹的属性 - 最好在将它们添加到数据库时计算,尽管最初可以进行批量加载。然后对计算出的特征进行匹配搜索,可以通过二叉树、黑红树或各种其他搜索过程来完成。如果不知道数据库中值的差异形式和程度,我就无法推荐特定的搜索策略。然而,这样的搜索策略应该能够提供(小)范围的可能匹配 - 然后可以在决定特定匹配之前根据您的匹配机制和参数单独测试。