Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将FisherFaces与LBPH算法相结合以提高精度_Java_C++_Opencv_Face Recognition - Fatal编程技术网

Java 将FisherFaces与LBPH算法相结合以提高精度

Java 将FisherFaces与LBPH算法相结合以提高精度,java,c++,opencv,face-recognition,Java,C++,Opencv,Face Recognition,大家好,我正在尝试为视频监控应用程序实现一个人脸识别系统。 在这种情况下,测试图像质量低,照明从一个图像变化到另一个图像,而且,检测到的对象并不总是处于相同的姿势 作为第一个识别器,我使用了FisherFaces,通过49张测试图像,我获得了35/49的准确度,而不考虑每个分类主题的距离(我只考虑了标签)。为了获得更好的精度,我尝试对训练图像和测试图像进行预处理;我选择的预处理在“使用实用计算机视觉项目掌握OpenCV”一书中有描述。这些步骤是: 检测眼睛,以便对齐和旋转面部 分离直方图均衡化,

大家好,我正在尝试为视频监控应用程序实现一个人脸识别系统。 在这种情况下,测试图像质量低,照明从一个图像变化到另一个图像,而且,检测到的对象并不总是处于相同的姿势

作为第一个识别器,我使用了FisherFaces,通过49张测试图像,我获得了35/49的准确度,而不考虑每个分类主题的距离(我只考虑了标签)。为了获得更好的精度,我尝试对训练图像和测试图像进行预处理;我选择的预处理在“使用实用计算机视觉项目掌握OpenCV”一书中有描述。这些步骤是:

  • 检测眼睛,以便对齐和旋转面部
  • 分离直方图均衡化,以标准化图像中的照明
  • 滤波以减少像素噪声的影响,因为直方图均衡化增加了像素噪声的影响
  • 最后一步是对人脸应用椭圆遮罩,以删除对识别不重要的人脸细节
  • 通过这种预处理,我得到了比以前更糟糕的结果(49个受试者中有4个被正确分类)。因此,我考虑使用另一种分类器,LBPH识别器来提高识别的准确性,因为这两种算法具有不同的特征和不同的人脸分类方法;如果将它们一起使用,可能会提高精度。 所以我的问题是如何结合这两种算法;有人知道如何合并两个输出以获得更好的准确性吗?我这样想:如果FisherFaces和LBPH给出相同的结果(相同的标签),那么就没有问题;否则,如果他们不同意,我的想法是对每个算法和每个主题的标签向量和距离向量求和相应的距离;此时,测试图像的标签是距离最短的标签。
    这只是我的想法,但还有其他方法可以融合这两种算法的输出,因为我应该更改OpenCV中face模块预测函数的代码,因为它返回的是int类型而不是int向量。

    您尝试过使用特征级融合吗?例如,使用Fisher特征向量和LBP特征向量来构建串联/融合向量?如果这不起作用,请尝试分数级融合。请原谅@Derman的回复太晚,但我没有关于功能级融合的经验。你能告诉我关于在人脸识别中使用特征级融合的参考资料吗?目前我实现了上面提到的想法,但我对这种技术很好奇。非常感谢。功能级融合有很多用途。如需直接参考,请搜索基于纹理和形状分析的纸张
    面部化妆检测技术
    。你可以从那里得到大概的想法。希望能有帮助。