gpt4 book ai didi

c++ - 如何哈希面部识别特征值并存储在数据库中以便以后进行比较

转载 作者:搜寻专家 更新时间:2023-10-31 00:33:19 25 4
gpt4 key购买 nike

我从相机抓取面部图像,并存储每个面部帧,直到有足够的图像来训练 opencv 中的特征脸对象。我能够得到平均特征脸,但我想知道如何将其存储到服务器上的数据库中,以便稍后当有人回来时,我可以获得另一个平均特征脸,将其发送到服务器并找到最接近的比赛。我正在考虑对特征脸进行哈希处理并比较哈希值,但我只能将这意味着特征脸本身存储在数据库中,但我不知道如何将客户端上的特征脸与数据库中的所有特征脸进行比较,而无需提取每个特征脸单条记录从数据库中下来。

有人知道如何将特征值或平均特征脸转换为字符串或某种数字,以便将平均特征值与服务器数据库中的值进行比较吗?

最佳答案

how i could store this into a database on a server

它是否必须是实际的数据库服务器,即 MySQL 或类似的服务器?为什么不将特征脸图像与包含该特征脸元信息的 sidecar 文件一起存储在磁盘上。

I was thinking of either hashing that eigenface and comparing hashes

我不建议这样做。如果所有像素都具有相同的值(撇开哈希冲突的可能性),则两个图像将仅具有相同的哈希值。因此,任何图像比较要么是真的,要么是假的。大多数比较都是错误的,因为大多数新查询在数据库中都没有完全匹配的结果。

but i don't know how i would compare the eigenface on the client with all the eigenfaces in a database without pulling every single record down from the database Does anybody have any idea how i might turn the eigenvalues or mean eigenface into a string or number of some kind which i could compare the mean eigenface value with the values in the database on the server?

诀窍是使用图像的抽象表示,通常称为描述符,并在这些描述符上定义距离度量来评估它们的相似性,例如假设一个指标 d和两个图像的描述符 AB , DADB .然后 d(DA, DA) = 0d(DA, DB) >= 0 .

给定数据库中特征脸图像的所有描述符和指标 d ,您可以将所有描述符组织在一个特殊的数据结构中,例如使用 KD 树,以找到新查询图像(即该图像的描述符)的最近邻居。通过这种匹配,不再需要将新查询与数据库中的所有图像进行比较。

如果查询距离Q及其第一个最近的邻居 NN1远小于查询 Q 之间的距离及其第二近邻NN2 , d(DQ, DNN1) < a * d(DQ, DNN2) ( a < 1 ), 然后 QNN1可以认为是匹配。

这是一个非常广泛的话题,有大量的方法和观点。但上面的大纲通常用于类似的应用。

这些关键字可以帮助您进一步调查

  • 特征提取和描述符(SIFT、SURF、ORB、FREAK、AKAZE 等)
  • 图像描述符,s.a. https://stackoverflow.com/a/844113
  • 关键点和图像匹配
  • 近似最近邻
  • 人脸检测与识别
  • 可能还有更多...

一般来说,literature surveys是了解已完成的工作、哪些工作良好以及哪些工作不顺利的好方法。

关于c++ - 如何哈希面部识别特征值并存储在数据库中以便以后进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29014867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com