首先,我希望我在正确的堆栈交换。
所以我试图建立一个面部识别系统,比如识别一张脸的系统,并将它与已知人脸的数据库进行比较。对于第一部分,有大量的资源可用,这不是问题。
我的问题是设计数据库。你怎样才能提高效率?假设您必须根据每一张已知的面孔,甚至可能是同一张脸的多个变体(从不同的角度考虑两个版本)来检查识别的脸,那么除了明显的并行化之外,如何确保它仍然是高效的,并且每次运行不需要花费一个小时?
如何设计这样的数据库?
发布于 2019-02-08 21:32:47
这类问题很难回答,因为它很大程度上取决于所使用的人脸识别算法。而且,没有多少人有设计这种数据库的经验。另一个原因是,这类数据库的算法将被严密保护的秘密,谁开发它,并正在利用它赚钱。
但是总的想法是使用某种形式的索引。可能是等级关系。通过这种方式,您可以使用快速和高效的比较来将结果从多到少。然后使用更精确,但速度更慢的算法来比较这几个查询。在此过程中很可能使用多种算法。
良好的开端将是研究地理空间和时态数据库如何对其数据进行索引。特别是空间数据,正如我可以想象的那样,面部数据类似于值的向量,因此可以使用允许存储和索引N维数据的数据库。
https://softwareengineering.stackexchange.com/questions/386890
复制相似问题