这是一个常见错误,但我已经搜索了答案并尝试了许多建议,但没有任何效果。我在我的 windows (10) 系统上使用 opencv 3.1 想要训练一个系统来识别 playmobil 人物。我有一堆 118 张不同 playmo 人物的正面图像,我有近 3000 张负面图像。全部转换成pgm格式。正图像为 64x128,负图像最大尺寸。256x256。(我也有他的原始文件)我开始使用以下参数进行训练:
opencv_traincascade.exe -data classifier -vec playmobil.vec -bg negative.txt -numPos 110 -numNeg 1000 -numStages 3 -w 24 -h 48 -minHitRate 0.999 -maxFalseAlarmRate 0.5
0-Stage 像魅力一样工作,将其作为输出:
E:\temp\train>..\opencv3\build\x64\vc14\bin\opencv_traincascade.exe -data classifier -vec playmobil.vec -bg negative.txt -numPos 110 -numNeg 1000 -numStages 3 -w 24 -h 48 -minHitRate 0.999 -maxFalseAlarmRate 0.5
PARAMETERS:
cascadeDirName: classifier
vecFileName: playmobil.vec
bgFileName: negative.txt
numPos: 110
numNeg: 1000
numStages: 3
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 24
sampleHeight: 48
boostType: GAB
minHitRate: 0.999
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 110 : 110
NEG count : acceptanceRatio 1000 : 1
Precalculation time: 20.522
+----+---------+---------+
| N | HR | FA |
+----+---------+---------+
| 1| 1| 1|
+----+---------+---------+
| 2| 1| 0|
+----+---------+---------+
END>
Training until now has taken 0 days 0 hours 1 minutes 32 seconds.
但是在 1-stage 训练停止时会显示以下信息:
===== TRAINING 1-stage =====
<BEGIN
POS count : consumed 110 : 110
Train dataset for temp stage can not be filled. Branch training terminated.
我尝试了许多不同的参数。带有或多或少的负面图像。没有任何效果。还有其他想法吗?