【发布时间】:2015-03-14 00:34:48
【问题描述】:
我一直在做一些研究,并试图建立一个用于识别性别的 haarcascade。
我阅读了这篇文章,其中描述了他们是如何做到的,我也尝试过这样做:http://www.ijcce.org/papers/301-E043.pdf
我使用了一个包含 228 个男性面孔和 350 个女性面孔的库。 在我的 positives.txt 文件中使用 opencv createclassifier,其中包含男性列表 面孔。使用分类器创建的 .vec 文件,我使用 haartraining 和以下命令:
opencv_traincascade -data classifier -vec positivies.vec -bg negatives.txt -numStages 20 -minHitRate 0.99 -maxFalseAlarmRate 0.5 -numPos 228 -numNeg 350 -w 640 -h 480 -mode ALL
运行几次后,我没有得到一个 haar classifier.xml 输出文件,所以我不确定我是否正确地做所有事情。
但我的问题是,是否可以使用男性面孔作为正样本,女性作为负样本来训练和使用 haarcascade 对性别进行分类?
【问题讨论】:
-
我不认为你的想法是可行的。 CascadeClassifier 是二进制的。如果你在男性面孔上训练它,它只能说是男性面孔,或者 no 面孔,例如它无法区分非面孔和女性。
-
用HOG分类器检测是否有行人,然后判断该行人是否为男性脸是否可行?如果没有找到男性面孔,就可以断定行人是女性?
-
是的,这是绝对可行的,就像检测人脸内部的眼睛(就像在人脸检测 opencv 教程中一样)。但是你不应该使用行人检测而是面部检测,并且只在检测到的面部区域上使用性别检测。但不确定你的方法是否有效;)
-
你能发布样本训练图像吗?或者详细说明它们的大小和东西?
-
是的,我从 agingmind.utdallas.edu/facedb/view/neutral-faces 得到的图片大部分是 640 x 480
标签: c++ opencv face-recognition haar-classifier