【发布时间】:2012-07-09 21:22:28
【问题描述】:
我正在 Windows 7 上使用 vs2010 从源代码 (OpenCV 2.4.0) 构建 opencv_traincascade.exe 工具。我想训练 LBP 分类器,所以我使用带有以下参数的 opencv_traincascade.exe
-data D:\OpenCV\Classifiers\lbpclassifier1\temp\data -vec D:\OpenCV\Classifiers\lbpclassifier1\temp\samples.vec -bg D:\OpenCV\Classifiers\lbpclassifier1\temp\negative\infofile.txt -numPos 40 -numNeg 40 -precalcIdxBufSize 500 -precalcValBufSize 500 -stageType BOOST -featureType LBP -w 24 -h 24
我得到的错误信息是:
PARAMETERS:
cascadeDirName: D:\OpenCV\Classifiers\lbpclassifier1\temp\data
vecFileName: D:\OpenCV\Classifiers\lbpclassifier1\temp\samples.vec
bgFileName: D:\OpenCV\Classifiers\lbpclassifier1\temp\negative\infofile.txt
numPos: 2
numNeg: 40
numStages: 20
precalcValBufSize[Mb] : 500
precalcIdxBufSize[Mb] : 500
stageType: BOOST
featureType: LBP
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 2 : 2
Train dataset for temp stage can not be filled. Branch training terminated.
之前有人问过这个问题:Error while using opencv_train cascade ,并且那里提出了解决方案,即。在这种情况下,使正样本和负样本的数量相等并没有帮助。
我认为该错误可能与此错误有关:http://code.opencv.org/issues/1834 因此,我从该页面下载了最新版本的 imagestorage.cpp 并重建了 opencv_traincascades 工具。 此外,.vec 文件中的样本总数为 45。因此,正如comment 中所建议的那样,我已将 numPos 参数更改为 2,这样我就不会用完 .vec 文件中的样本。 .vec 文件中的样本数为 45。
非常感谢任何帮助。谢谢。
【问题讨论】:
标签: opencv