我也在this中提出了这个问题。但由于主题不同,可能没有注意到。我在java中使用opencv得到了面部识别的特征脸算法。我想提高代码的准确性,因为众所周知的事实是特征脸很大程度上依赖于光强度。
我现在拥有的东西
如果我检查点击了数据库中图片的同一个地方点击的图像,我会得到完美的结果,但结果变得怪异,因为我在不同的地方点击了图片。
我发现原因是我的图像光强度不同。
因此,我的问题是
有没有办法为保存在数据库中的图像或者刚进入系统的图像设置标准以进行识别检查,这样我就可以提高目前人脸识别系统的准确性?
对这个问题的任何积极解决方案都会非常有用。
答案 0 :(得分:1)
识别光照强度和姿势是人脸识别的重要因素。尝试与训练和测试图像(http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html)进行直方图比较。此参数有助于避免最差的照明情况。预处理是人脸识别的成功关键因素之一。 Gamma校正和DOG滤波可以减少照明问题。
答案 1 :(得分:0)
您也可以只对脸部进行椭圆滤除,去除头发,颈部等产生的噪音。 OpenCV cookbook提供了一个非常简单的教程。
答案 2 :(得分:0)
1]图像标准化:
2]图像对齐(这是实现良好性能的非常重要的一步):
对齐所有火车图像和测试图像,使所有图像中所有面部的眼睛,鼻子,嘴巴具有几乎相同的坐标
在面部对齐时检查此帖子(强烈推荐):https://www.pyimagesearch.com/2017/05/22/face-alignment-with-opencv-and-python/
3]数据增加技巧:
4]消除噪音: