我正在尝试使用opencv来检测面部。面部不是正面,相机从侧面捕捉到面部,因此只能看到一只眼睛和一部分嘴巴。我尝试了多种配置的HaarDetectObjects而没有获益。我改变了级联,我测试了: haarcascade_frontalface_default.xml,haarcascade_frontalface_alt.xml,haarcascade_profileface.xml,结果非常糟糕。还有其他更好的级联吗?还有其他建议吗?
由于
答案 0 :(得分:14)
现在,您已经在OpenCV中获得了由Vadim Pisarevsky创建的新型LBP级联面板:
https://github.com/Itseez/opencv/blob/master/data/lbpcascades/lbpcascade_profileface.xml
显然,它只检测正确的轮廓面,因此要检测所有轮廓面,必须在图像翻转的情况下运行第二步。
答案 1 :(得分:8)
您引用的级联文件(例如aarcascade_frontalface_default.xml,haarcascade_frontalface_alt.xml,haarcascade_profileface.xml)是使用完整的正面创建的,以检测完整的正面。因此,一半的脸部显然不会被正确识别为计算机的正确形状。
在这种情况下你可能需要做的是训练OpenCV来识别你感兴趣的对象,在这种情况下是“一半的脸。在OpenCV术语中,它被称为 - 'HaarTraining'。 this,this和this条款作为开始培训的起点。
一旦你使用你的数据训练过OpenCV(例如很多不同的半张脸图像),你就会准备好一个XML级联文件,你可以插入你自己的代码来检测一半的脸。
祝你好运!答案 2 :(得分:2)