你好,我正在尝试开发一个haar级联分类器,我能够运行带有检测汽车的基本示例,所以我试图识别一种水果,我下载了一些梨的图像,然后生成了正文件,然后矢量文件,直到一切正常,我使用以下命令测试了矢量文件:
opencv_createsamples -vec vector.vec
所以我尝试通过下一个命令和选项生成xml级联分类器:
opencv_traincascade -data images/cascade -vec vector.vec -bg bg.info -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numPos 24 -numNeg 450 -numStages 10 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -w 24 -h 24
我遇到下一个错误:
PARAMETERS:
cascadeDirName: images/cascade
vecFileName: vector.vec
bgFileName: bg.info
numPos: 24
numNeg: 450
numStages: 10
precalcValBufSize[Mb] : 2048
precalcIdxBufSize[Mb] : 2048
stageType: BOOST
featureType: HAAR
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.999
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 24 : 24
Train dataset for temp stage can not be filled. Branch training terminated.
Cascade classifier can't be trained. Check the used training parameters.
我找不到错误...有一个可以帮助我的opencv专家吗?
答案 0 :(得分:0)
这是旧的,但我刚刚解决了:
您应为-numPos和-numNeg给出一个略低于您的正样本和负样本总数的数字,约为总数的80%。
例如如果您有24张正面图像,则给-numPos18。
另外,24个阳性样本太低了。尝试将其增加到至少200。