我正在尝试构建一个分类器来检测热图像中的面。所以我尝试使用Haar,LBP和HOG分类器进行训练。我在Windows上使用OpenCV 2.4.8。
opencv_traincascade.exe -data haarcascades -vec pos.vec -bg neg.txt -numPos 250 -numStages 24 -numNeg 900 -w 24 -h 24
我总共有307个阳性样本。阴性样本的大小为75x75。对于这三种情况中的每一种情况,训练都会在特定阶段停留在Haar(第12阶段)以及之后的LBP(阶段14/15)。我减少了负数(最多200个),但这意味着训练在后期停滞不前。自2天以来,培训没有取得进展。没有负面消耗,命令窗口看起来像这样 -
===== TRAINING 14-stage =====
<BEGIN
POS count : consumed 255 : 262
另外
请让我知道我做错了什么。 感谢。
答案 0 :(得分:2)
消耗的数量是每个阶段中使用的可能图像和负图像的数量。并且您需要使用更多正面和负面图像,大约1000个正面和2000个负面,以获得良好的结果
答案 1 :(得分:2)
我自己也遇到过类似的问题。问题在于,每个阶段的分类器都采用了在前几个阶段被归类为正面的负面例子。所以发生的事情是,没有任何负面样本被归类为正面,而代码进入无限循环试图找到一个。我通过更改源代码解决了这个问题,以便算法在找不到任何负面示例之后终止,并且只使用前面的分类器阶段。 如果您不想更改代码,请尝试添加更多负面示例或减少阶段数。