使用OpenCV进行人脸检测以获得非正面图像

Han*_*ani 12 opencv face-detection

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

谢谢

Jos*_*mez 14

现在,您已经在OpenCV中获得了由Vadim Pisarevsky创建的用于轮廓面的新LBP级联:

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

显然,它只检测正确的轮廓面,因此要检测所有轮廓面,必须在图像翻转的情况下运行第二步.


gsb*_*bil 9

您引用的级联文件(例如aarcascade_frontalface_default.xml,haarcascade_frontalface_alt.xml,haarcascade_profileface.xml)是使用完整的正面创建的,以检测完整的正面.因此,一半的脸部显然不会被正确识别为计算机的正确形状.

你可能需要在这种情况下做的是培养OpenCV的认识到你的,这是"在这种情况下,face_的一半感兴趣对象在OpenCV的行话,它被称为- ' HaarTraining.’用这个,这个这个物品一个开始训练的起点.

一旦你使用你的数据训练了OpenCV(例如,很多不同的半张脸的图像),你就会有一个XML级联文件,你可以插入你自己的代码来检测一半的脸.

祝好运!