【问题标题】:How to store ISO/IEC 19794-2 finger print template in postgreSQL database如何在 postgreSQL 数据库中存储 ISO/IEC 19794-2 指纹模板
【发布时间】:2018-03-07 06:45:23
【问题描述】:

我正在构建一个生物特征认证应用程序。我已经在控制台成功生成了指纹模板数据。我以ISO/IEC 19794-2 格式获取这些模板。我只想知道 有没有办法将ISO/IEC 19794-2 指纹模板存储在 postgreSQL 数据库中?可以是什么数据类型?

我关注了他们的官方网站,但没有提示。
我正在使用ISO/IEC 19794-2 指纹模板进行存储和验证。

编辑:
我有 3M CSD200 扫描仪来获取指纹模板,我正在使用他们的 SDK 来构建这个应用程序。他们使用了一种算法matchIso19794_2Templates(byte[], byte[]),它接受两个字节数组形式的模板并识别它们是否相同。

【问题讨论】:

  • 我会将类似的东西存储为bytea,一个二进制blob,除非您希望以某种方式在数据库中查询它。在那种情况下,我可能仍会使用bytea 并编写一些 C 函数来对其进行操作,因为很难想象 SQL 对此有效。但规范确实说有一种“基于记录的格式”,所以你大概可以使用它......
  • 你想用 SQL 查询匹配指纹吗?
  • @LaurentY 是的,我也想要验证
  • @Lokesh 匹配指纹无法通过匹配模板的字节数组来完成。请阅读:en.wikipedia.org/wiki/Fingerprint。只能通过特定的指纹匹配算法来比较模板中的细节列表
  • @Lokesh 如果完全平等,您可以。我以为您想做启发式/部分匹配或无法测试数据的简单相等性。根据 LaurentY 的 cmets。

标签: java postgresql fingerprint iso


【解决方案1】:

您可以通过多种方式将指纹模板存储在数据库中:

  1. 大型物体

https://www.postgresql.org/docs/current/static/largeobjects.html

  1. bytea

https://www.postgresql.org/docs/9.1/static/datatype-binary.html

  1. 六进制(用于小数据)

您可以将字节数组转换为六进制,并存储字符串

为了比较,指纹有两种情况:

  1. 比较 1 和 1

您可以使用 SDK 提供的方法matchIso19794_2Templates(byte[], byte[])

  1. 比较 1 和 n

您可以使用AFIS

【讨论】:

  • 上述 cmets 中的 Craig 说我们不能使用 bytea 在 DB 中进行匹配。
【解决方案2】:

用于比较 ISO/IEC 19794-2 模板的算法 available in public 不完整。在他们的帮助下,很难在服务器上实现比较。第三方服务可用于通过网络服务比较指纹,您必须依赖以下供应商,或者您必须在服务器上实现自己的自动指纹识别系统,或者您必须通过client side scripts (like javascript)在设备上进行比较

  1. CAMS
  2. M2Sys
  3. Neurotechnology

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多