【问题标题】:Compare fingerprint on SQL, in host it is too slow?比较SQL上的指纹,在主机上太慢了?
【发布时间】:2019-02-11 04:50:06
【问题描述】:

我正在使用带有 java 的 Oracle 来存储指纹模板。

当数据库中的模板数量增加到 45000 个时,我遇到了一个问题,应用程序变慢了。

我使用线程进行并行比较,应用程序变得更快但仍然很慢。

问题是:我可以将模板与服务器中的指纹样本、SQL 命令或其他东西进行比较吗?

模板格式为blob

【问题讨论】:

  • 指纹比较非常复杂。你读过this previous question (link)?它有一些关于实施AFIS的潜在有用的链接。如果其他人有更多最新建议,我不会以重复的形式关闭。
  • 其他用户将您的问题标记为低质量和需要改进。我重新措辞/格式化您的输入,使其更容易阅读/理解。请查看我的更改以确保它们反映您的意图。如果您对我有其他问题或反馈,请随时给我留言。
  • @GhostCat 我更正了语法,请检查是否正确。
  • 当然,看起来不错。
  • 如果要比较的数据完全在数据库中,是的,对于非复杂比​​较的大量记录,数据库侧比较可能会更快。

标签: database oracle performance time-complexity fingerprint


【解决方案1】:

假设您正在进行 1:N 匹配。建议在匹配前进行分类。您可以按照以下参考资料了解不同的 FP 类型。

8 Most Common Fingerprint Patterns

What are different types of fingerprint with their rarity to find?

对数据进行分类后,您可以限制匹配的数据量。另外,您可以自定义分类,例如地区、性别、人口统计等。

【讨论】:

    【解决方案2】:

    您不能在包括 SQL 在内的任何语言中进行类似字符串比较的比较。只有当您一次又一次地拥有相同的指纹图像时,才有可能。但在现实中,当你有两次指纹时,两个图像都会有一点点位置变化、角度变化和扫描质量的差异。所以字符串比较是不可能的。

    所有扫描仪都提供用于捕获指纹并进行比较 (1:1) 的 SDK,您可以将其用于开发桌面应用程序。如果您需要在服务器上比对扫描的图像,那么您需要实现自己的自动手指识别算法,或者您必须使用第三方服务,例如

    1. CAMS
    2. M2Sys
    3. Neurotechnology

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 2020-01-06
      • 2010-12-25
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多