使用CascadeClasifier与FaceRecognizer(FisherFace)进行OpenCV性别分类

时间:2015-09-11 15:35:12

标签: c++ opencv computer-vision

我正在努力寻找性别检测的最佳方法。我正在使用opencv,目前一切都很好,除了性别准确度不是很好,即使我有每个男性和女性1500个样本图像。

我正在使用默认的lbp face级联文件来检测面部,然后使用自定义编译的fisherface识别器模型将面部分类为男性或女性。

我想知道是否有人想过为每个男性和女性面孔生成一个lbp级联,其中负面样本会包含异性?在我自己尝试之前,我想知道是否有人知道这是否会浪费时间

我可以在opencv中使用cascadeclassifier一次检查框架中的男性,第二次检查女性吗?

编辑: 以下是我正在拍摄的男性或女性在镜头前的步骤:

  1. 检测脸部
  2. 裁剪脸部
  3. 检测裁剪图像上半部分中的至少两只眼睛(使用的临时图像)
  4. 检测左眼和右眼
  5. 围绕左眼旋转裁剪图像以对齐眼睛
  6. 翻译图像,使眼睛之间的中心成为裁剪图像的中心,眼睛与样本图像的眼睛垂直“共同”
  7. 将图片大小调整为150x150,保持宽高比
  8. 规范化照明图像
  9. 使用fisherfaces将面部分类为男性或女性

1 个答案:

答案 0 :(得分:1)

是的,如果你创建一个性别特定的lbp级联用于检测,那将是浪费时间。这种类型的检测使用" haar-like"功能,基本上是线条。男性和女性面部在这方面具有相同的特征,因此您的检测器的负像和正像在数学上是相同的。

有很多原因可以解释为什么渔民对性别认可的判别是“废话”。正如你所说,可能是由于几个原因。一旦检测到面部,您在做什么类型的预处理?你在对齐脸部吗?如果没有,你就没有机会。你是否正常照明?您是否正在使用ASM查找面的特征点并将平面旋转变形为正面视图?当涉及到任何类型的图像处理时,预处理就是一切。