人脸识别准确率低?
上一篇我们讲了使用OpenCV进行人脸识别的最基础操作。但是从最后的效果可以看出,识别率、效率都很低,而且误检率比较高,识别过程中,系统资源占用相当大,实在是没办法在实际场合中使用。在opencv3.4 版之前自带的人脸检测器是基于Haar算法实现的,不仅检出率低,而且脸的角度稍大一些就检测不出来。但是随着深度学习领域的发展,涌现了一大批效果相当不错的人脸检测算法。
人脸检测方式对比
OpenCV Haar人脸检测优点
1)几乎可以在CPU上实时工作;
2)简单的架构;
3)可以检测不同比例的人脸。
缺点
1)会出现大量的把非人脸预测为人脸的情况;
2)不适用于非正面人脸图像;
3)不抗遮挡。
OpenCV DNN 人脸检测优点
1)在这四种方法中是最准确的;
2)在CPU上能够实时运行;
3)适用于不同的人脸方向:上,下,左,右,侧面等。
4)甚至在严重遮挡下仍能工作;
5)可以检测各种尺度的人脸。
缺点
基本上没有什么明显的缺点
Dlib HoG人脸检测优点
1)CPU上最快的方法;
2)适用于正面和略微非正面的人脸;
3)与其他三个相比模型很小;
4)在小的遮挡下仍可工作。
缺点
1)不能检测小脸,因为它训练数据的最小人脸尺寸为80×80,但是用户可以用较小尺寸的人脸数据自己训练检测器;
2)边界框通常排除前额的一部分甚至下巴的一部分;
3)在严重遮挡下不能很好地工作;
4)不适用于侧面和极端非正面,如俯视或仰视。
Dlib CNN人脸检测优点
1)适用于不同的人脸方向;
2)对遮挡鲁棒;
3)在GPU上工作得非常快;
4)非常简单的训练过程。
缺点
1)CPU速度很慢;
2)不能检测小脸,因为它训练数据的最小人脸尺寸为80×80,但是用户可以用较小尺寸的人脸数据自己训练检测器;
3)人脸包围框甚至小于DLib HoG人脸检测器。
非正面人脸检测效果对比:
![609ef5e6eaaf3952e0849750b0343e54.png](https://i-blog.csdnimg.cn/blog_migrate/daf7b8ebb706d869abb6f753b3a03b27.png)