多人人脸识别

时间:2020-12-23 07:29:19

标签: python tensorflow machine-learning deep-learning computer-vision

我正在为大量人构建面部识别,当我添加更多数据来训练模型时,我何时检测到越来越多的人。 我目前的管道是:

  1. 使用 Yolov4-tiny 检测人脸
  2. 使用 KNN 分类器识别人脸(我训练了大约 80 个类,每个类包含大约 5 张图片)

目前,它可以在 CPU 上以大约 10fps 的速度实时运行。我担心的是,通过一些研究,我发现如果增加数据集(维数诅咒),KNN 会出现问题。所以我想知道对于这个问题使用 KNN 是否可以?如果没有,有没有办法解决这个问题或其他方法来解决这个问题?

2 个答案:

答案 0 :(得分:2)

增加数据集不会导致维度灾难。维数灾难发生在高维空间中,例如在使用大量特征时。增加数据集反而会产生积极的影响。

我确实看到每节课只使用 5 张图片的问题。

此外,如果您对实时性能感兴趣(通常人们在谈论实时时的意思是 30fps+),如果可能的话,我会考虑在 GPU 而不是 CPU 上运行 yolov4-tiny。

答案 1 :(得分:1)

我建议你学习近似最近邻算法而不是 k-nn。这些是流行的 a-nn 库:Spotify AnnoyFacebook FaissNMSLIB。此外,Elasticsearch 封装了 NMSLIB,它提供了高度的可扩展性。这些库大大降低了复杂性。您甚至可以在数百万或数十亿项中以毫秒为单位搜索身份。当然,您必须对数据库图像进行预处理。