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



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

我现在拥有什么

如果我检查在单击数据库中的图片的同一位置单击的图像,我会得到完美的结果,但是当我给出在不同位置单击的图像时,结果会变得奇怪。

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

因此,我的问题是

有没有办法为保存在数据库中的图像或新进入系统进行识别检查的图像设置标准,以便我可以提高当前面部识别系统的准确性?

任何对问题的积极解决方案都将非常有帮助。

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

您还可以椭圆机仅过滤掉脸部,消除头发,颈部等产生的噪音。OpenCV食谱提供了关于此的优秀而简单的教程。

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

1] 图像归一化:

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

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

  • 对齐所有火车图像和测试图像,以便所有图像中所有人脸的眼睛、鼻子、嘴巴具有几乎相同的坐标

  • 查看这篇关于面部对齐的帖子(强烈推荐(:https://www.pyimagesearch.com/2017/05/22/face-alignment-with-opencv-and-python/

3]数据增强技巧:

  • 您可以为脸部添加滤镜,以便在不同的照明条件下产生相同的面部效果
  • 因此,您可以从一张脸上在不同的照明条件下制作多张图像

4] 消除噪音:

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