我正在为大量人群构建人脸识别系统,并且希望通过增加更多的训练数据来检测更多的人。我当前的流程是:
- 使用 Yolov4-tiny 检测面部
- 使用 KNN 分类器识别面部(我用大约 80 个类别来训练它,每个类别包含大约 5 张图片)
目前,它可以在 CPU 上以大约 10fps 的速度实时运行。我的担忧是,通过一些研究,我发现如果增加数据集,KNN 会遇到问题(维度灾难)。所以我想知道使用 KNN 来解决这个问题是否可行?如果不行,有没有绕过这个问题的办法或其他解决方案?
回答:
增加数据集不会导致维度灾难。维度灾难发生在高维空间中,例如使用大量特征时。增加数据集反而有积极的效果。
我确实看到每个类别只使用 5 张图片存在问题。
另外,如果你对实时性能感兴趣(通常人们谈论实时性能时指的是 30fps 以上),我建议考虑在 GPU 上运行 yolov4-tiny,而不是在 CPU 上,如果可能的话。