如何提高特征脸算法的准确性?

时间:2013-10-01 10:57:51

标签: java eclipse opencv javacv face-recognition

我也在this中提出了这个问题。但由于主题不同,可能没有注意到。我在java中使用opencv得到了面部识别的特征脸算法。我想提高代码的准确性,因为众所周知的事实是特征脸很大程度上依赖于光强度。

我现在拥有的东西

如果我检查点击了数据库中图片的同一个地方点击的图像,我会得到完美的结果,但结果变得怪异,因为我在不同的地方点击了图片。

我发现原因是我的图像光强度不同。

因此,我的问题是

有没有办法为保存在数据库中的图像或者刚进入系统的图像设置标准以进行识别检查,这样我就可以提高目前人脸识别系统的准确性?

对这个问题的任何积极解决方案都会非常有用。

3 个答案:

答案 0 :(得分:1)

识别光照强度和姿势是人脸识别的重要因素。尝试与训练和测试图像(http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html)进行直方图比较。此参数有助于避免最差的照明情况。预处理是人脸识别的成功关键因素之一。 Gamma校正和DOG滤波可以减少照明问题。

答案 1 :(得分:0)

您也可以只对脸部进行椭圆滤除,去除头发,颈部等产生的噪音。 OpenCV cookbook提供了一个非常简单的教程。

答案 2 :(得分:0)

  • 以下是可以帮助您提高准确性的选项

1]图像标准化:

  • 使图像像素值从0到1,以减少光照条件的影响

2]图像对齐(这是实现良好性能的非常重要的一步):

3]数据增加技巧:

  • 您可以为在不同光照条件下具有相同面部效果的面部添加滤镜
  • 因此,从一个面部,您可以在不同的光照条件下制作多张图像

4]消除噪音:

  • 在执行步骤3之前,对所有图像应用高斯模糊