2012-01-10 194 views
10

我正在尝试使用opencv来检测人脸。脸部不是正面的,相机从侧面捕捉脸部,因此只能看到一只眼睛和一部分嘴巴。我尝试了多种配置的HaarDetectObjects,但没有获益。我改变了级联,并且测试了: haarcascade_frontalface_default.xml,haarcascade_frontalface_alt.xml,haarcascade_profileface.xml,结果非常糟糕。还有其他更好的级联吗?还有其他建议吗?使用OpenCV进行非正面图像的人脸检测

感谢

回答

8

你引用的级联文件(例如aarcascade_frontalface_default.xml,haarcascade_frontalface_alt.xml,haarcascade_profileface.xml)使用完全正面面向检测完全正面面形成。所以,一张脸的一半显然不会被正确识别为计算机的正确形状。

你可能需要在这种情况下做的是培养OpenCV的认识到你的,这是“在这种情况下,face_的一半感兴趣对象在OpenCV的行话,它被称为 - 。‘HaarTraining’使用thisthisthis文章作为开始训练的起点

一旦您使用您的数据(例如许多不同的脸部图像)训练好OpenCV,您将可以准备好一个XML级联文件,您可以将其插入到您的自己的代码来检测一半的脸部。

祝你好运!

+4

半面也被称为简介。 :) – Sam 2012-01-10 06:41:02

+0

Haarcascade_profileface.xml是用于配置文件的面孔(非正面,但横向) – saurabheights 2016-01-28 07:23:54

+0

顺便说一句,尝试Haarcascade配置文件面对xml,但结果不是很准确。 – saurabheights 2016-03-17 08:20:21

9

现在你在OpenCV中有轮廓的脸新LBP级联,由瓦迪姆Pisarevsky创建:

https://github.com/Itseez/opencv/blob/master/data/lbpcascades/lbpcascade_profileface.xml

显然,它只能检测正确的配置文件的脸,如此检测到所有的个人资料面临着一个具有运行第二翻转图像的步骤。

+0

这适用于全脸人脸。然而,对于部分侧面人脸来说,这并不总是很好。现在有更好的配置文件级联版本吗? – 2016-08-10 05:48:16

+1

不是我所知道的,但是您始终可以使用配置文件面的数据库来训练您自己的一组面(您应该能够找到一些面部数据库)。如果您这样做,请将生成的级联提交给OpenCV,以便它可供社区使用。 – 2016-08-10 10:27:37

+0

这很有趣。感谢您记录此限制和使其适用于所有配置文件面的过程。 – 2017-05-25 10:25:23