当我尝试使用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
它说错误如下图所示。
所以我决定用命令将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文件
所以,请告诉我它有什么问题,我不知道为什么它会说opencv_traincascade.exe错误并使用opencv_haartraining.exe运行但不生成xml文件。我确信positive.txt和negative.txt对图像有正确的绝对方向。
非常感谢你的帮助
答案 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。