人脸识别,同一图像的不同结果

时间:2014-10-01 21:41:00

标签: opencv face-detection face-recognition

我正在开展一个面部识别项目。这些是我使用的预处理步骤:

1.使用lbpcascade_frontalface.xml从原始图像裁剪面部(这将产生方形图像)
2.将图像转换为灰度
3.将图像调整为固定大小(50,50)

在此之后,我使用所得到的图像来训练LBPH脸部识别器。从我的测试中看来,识别器似乎返回一个置信度,表示测试图像与训练集中另一个图像之间的最佳匹配(如果我错了,请纠正我)。我尝试用15张图像训练模型,然后用最好的匹配图像训练它,我在两种情况下都有相同的信心。

为了验证我试过的准确性:我拍了一张图片,用它进行训练。在gimp中手动裁剪图像(面部不受裁剪影响)。我根据裁剪的图像测试了原始图像,只得到了42.48的置信度...(范围似乎在0..100之间,相同的图像给出了0.0的结果,所以我不确定它是否对有信心或不信任,无论哪种方式42都在中间,所以信心不是很好)。我认为,由于图像中的面部是相同的,所以信心应该非常好。

我在这里观察到两个问题:

  1. 预处理后,得到的2幅图像不一样。尽管图像中的脸部完全相同,但在预处理后,一张图像的脸部比另一张图像更多(您可以看到更多的下巴和额头)。即使在50x50的图像上,差异也不大,但可以观察到。再次,我认为面部检测的矩形应该完全相同。如果我做错了或者我能以任何方式改善这一点,请告诉我。

  2. 识别器效果不佳,即使图像完全相同但是裁剪的方式不同。在开始这个项目之前,我确实已经阅读了lbp的基本原理,并且我理解为什么它会出现不同裁剪的图像问题,但这是一个很大的问题,因为裁剪总会有差异(例如,如果你张开嘴,你的脸会变大,所以裁剪会有所不同)。再次,如果您对如何改进这一点有任何建议,请告诉我。

  3. 我使用“train”,“predict”和“detectMultiScale”方法的默认值。也许这是我可以改进的东西,但我不确定如何。

    请注意。这可能并不重要,但我在Ubuntu机器上使用java和opencv。

0 个答案:

没有答案