为什么OpenCV面部检测识别未经训练的面孔?

时间:2017-04-04 12:35:21

标签: python-2.7 opencv3.0 face-detection face-recognition opencv3.1

我使用“haarcascade_frontalface_default.xml”为一个人A训练了472个独特的图像进行人脸识别。 虽然我正在尝试为同一个人A检测面部,因为我训练的相同图像的信心提高了20%到80%,这对我来说很好。

但是,我对B人的信心也提高了20%到80%,而我没有参与训练图像。为什么在我进行面部检测时它会发生在人B身上?

我正在使用python 2.7和OpenCV 3.2.0-dev版本。

2 个答案:

答案 0 :(得分:0)

这是因为Haar-cascade Detection用于检测具有相同特征集的对象。 '

即使面部B 面部A 不同,它们也会共享相同的功能;两只眼睛,一只鼻子和一只嘴,因此对A和B的信心是一样的。仅使用Haar Cascades不足以区分不同的面孔。

我建议您通过Viola-Jones阅读原始论文。

答案 1 :(得分:0)

我想在你的问题中,你实际上并不是指检测,而是认识,你必须知道这两件事之间的区别: 1-检测不区分人,它只是根据先前训练过的haarcascade检测人的面部形状 2识别就是你首先检测到一个人,然后尝试将这个人与你的裁剪和对齐的图片数据库区分开来,我建议你按照philipp wagner教程来解决这个问题。