Data structures 我应该使用哪种数据结构来存储眼睛视网膜?

Data structures 我应该使用哪种数据结构来存储眼睛视网膜?,data-structures,functional-programming,artificial-intelligence,image-recognition,Data Structures,Functional Programming,Artificial Intelligence,Image Recognition,我需要开发和申请打开/关闭我办公室的大门。该应用程序将识别人眼视网膜,然后在有效的情况下打开闸门。视网膜图像将存储在数据库中,在数据库中,它将即将出现的图像与存储的视网膜图像(以db为单位)进行匹配。另外,当我想从数据库中删除特定人的视网膜数据时,它应该被删除。 在我的标准中,内存的使用是对时间的快速响应 此场景应使用哪种数据结构?存储 假设您可以使用技术获取视网膜图像: 获取视网膜图像的字节数组 计算该字节数组的哈希值 将此哈希存储在数据库中 验证 获取要进行身份验证的人的视网膜图像 计算他

我需要开发和申请打开/关闭我办公室的大门。该应用程序将识别人眼视网膜,然后在有效的情况下打开闸门。视网膜图像将存储在数据库中,在数据库中,它将即将出现的图像与存储的视网膜图像(以db为单位)进行匹配。另外,当我想从数据库中删除特定人的视网膜数据时,它应该被删除。 在我的标准中,内存的使用是对时间的快速响应


此场景应使用哪种数据结构?存储

假设您可以使用技术获取视网膜图像:

  • 获取视网膜图像的字节数组
  • 计算该字节数组的哈希值
  • 将此哈希存储在数据库中

  • 验证

  • 获取要进行身份验证的人的视网膜图像
  • 计算他/她的视网膜图像的散列
  • 如果存在哈希,则搜索数据库

  • 捕获

    我不确定视网膜图像是如何生成的。如果图像与最初用于计算哈希值的图像相差1字节,则两个哈希值将绝对不匹配,并且无法找到两个图像的相对相似性

    正如@DonReba在下面的评论中提到的,有专门为此目的生成的哈希。因此,可以通过使用正确的哈希来克服捕获


    一些数字

  • 从数据库中删除图像的哈希是O(1)
  • 如果对哈希进行排序,则搜索为O(n)或O(logn)
  • 内存使用率为每人0(1)(取决于使用的哈希算法-可以是128字节、256字节等)

  • 您必须使用树状结构,因为树ADT支持快速搜索。但删除树很糟糕。不过,删除是一项时间敏感的操作吗?你可能不会每秒重复多次。视网膜是用作授权还是身份识别?视网膜将用于身份识别。当一个人到达大门时。传感器捕获视网膜并将其转发至存储大量视网膜的系统,与之匹配,如果找到,则闸门打开。这是正确的想法。有专门为这种应用程序设计的哈希。@DonReba:我不知道。我凭直觉写出了答案。匹配不会是O(1),因为散列是。如果错误位是随机分布的,听起来像是表格扫描。@Sylvester:我刚才提到的搜索(我猜是相同的匹配)仅为O(n)和O(logn)。我看错你了吗?删除是基于与视网膜不同的键?O(n)保证用于搜索。我发现了一篇关于搜索这些模糊的东西的论文,可能是相关的: