我正在为大量人构建面部识别,当我添加更多数据来训练模型时,我何时检测到越来越多的人。 我目前的管道是:
目前,它可以在 CPU 上以大约 10fps 的速度实时运行。我担心的是,通过一些研究,我发现如果增加数据集(维数诅咒),KNN 会出现问题。所以我想知道对于这个问题使用 KNN 是否可以?如果没有,有没有办法解决这个问题或其他方法来解决这个问题?
答案 0 :(得分:2)
增加数据集不会导致维度灾难。维数灾难发生在高维空间中,例如在使用大量特征时。增加数据集反而会产生积极的影响。
我确实看到每节课只使用 5 张图片的问题。
此外,如果您对实时性能感兴趣(通常人们在谈论实时时的意思是 30fps+),如果可能的话,我会考虑在 GPU 而不是 CPU 上运行 yolov4-tiny。
答案 1 :(得分:1)
我建议你学习近似最近邻算法而不是 k-nn。这些是流行的 a-nn 库:Spotify Annoy、Facebook Faiss 和 NMSLIB。此外,Elasticsearch 封装了 NMSLIB,它提供了高度的可扩展性。这些库大大降低了复杂性。您甚至可以在数百万或数十亿项中以毫秒为单位搜索身份。当然,您必须对数据库图像进行预处理。