运行TrainCascade.exe时出错

时间:2016-06-19 02:41:12

标签: c++ opencv

当我尝试使用opencv的traincascade.exe时,我有一个问题,我有20个正样本和100个负样本。也许,它几个样本,但我只是想测试如何使用opencv的traincascade.exe。

我使用opencv_createsamples.exe来创建带命令的矢量文件。

D:\Project_Android\Classifier\bin\opencv_createsamples.exe -info positive.txt -vec vector.vec -num 442 -w 24 -h 24 PAUSE

它完成了,我有一个vector.vec,我也有绝对方向的negative.txt。

但现在,当我使用带有命令的traincascade.exe时

D:\Project_Android\Classifier\bin\opencv_traincascade.exe -data HaarTraining -vec vector.vec -bg negative.txt -npos 10 -nneg 10 -numStages 3 -nsplits 2 -nonsym -minhitrate 0.95 -maxfalsealarm 0.4 -mem 1024 -mode ALL -w 24 -h 24 PAUSE 

它说错误如下图所示。

enter image description here

所以我决定用命令将opencv_traincascade.exe替换为opencv_haartraining.exe

D:\Project_Android\Classifier\bin\opencv_haartraining.exe -data HaarTraining -vec vector.vec -bg negative.txt -npos 10 -nneg 10 -numStages 3 -nsplits 2 -nonsym -minhitrate 0.95 -maxfalsealarm 0.4 -mem 1024 -mode ALL -w 24 -h 24 PAUSE 

现在运行几分钟。

完成后,我只看到HaarTraining文件夹中的8个文件夹(0,1,2,...),我试图找到xml文件但是没有看到它,它似乎不是生成xml文件 enter image description here

所以,请告诉我它有什么问题,我不知道为什么它会说opencv_traincascade.exe错误并使用opencv_haartraining.exe运行但不生成xml文件。我确信positive.txt和negative.txt对图像有正确的绝对方向。

非常感谢你的帮助

1 个答案:

答案 0 :(得分:1)

首先,不要使用opencv_haartraining.exe。它已被弃用。

要回答您的问题,您的参数应如下所示:

opencv_traincascade.exe -data HaarTraining -vec vector.vec -bg negative.txt -numPos 10 -numNeg 10 -numStages 3 -minHitRate 0.95 -maxFalseAlarmRate 0.4 -mode ALL -w 24 -h 24

对于您的-mem 1024-nsplits 2-nonsym标记,它们不是opencv_traincascade.exe使用的实际参数。您的-mem标记最接近的可能是-precalcValBufSize-precalcIdxBufSize

有关更全面的参数列表,您可以查看the official documentation