我尝试在cmd中运行opencv_traincascade,但它会立即崩溃并提供输出。
opencv_traincascade -data data -vec pos.vec -bg neg.lst -numPos 31 -numNeg
100 -numStages 10 -w 20 -h 20
PARAMETERS:
cascadeDirName: data
vecFileName: pos.vec
bgFileName: neg.lst
numPos: 31
numNeg: 100
numStages: 10
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 20
sampleHeight: 20
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
Number of unique features given windowSize [20,20] : 78460
以下是错误消息:
===== TRAINING 0-stage =====
<BEGIN
OpenCV(3.4.1) Error: Assertion failed (_img.rows * _img.cols == vecSize) in
CvCascadeImageReader::PosReader::get, file C:\build\master_winpack-build-
win64-
vc15\opencv\apps\traincascade\imagestorage.cpp, line 153
我尝试删除所有opencv xml,因为它建议在哪里,这个问题发生接缝的另一个原因是,-w 20 - h 20与图像的大小不匹配。因此我加倍检查了它。 / p>
可能导致一些问题的盲目猜测是路径&#34; C:\ build \ master_winpack-build-win64-vc15 \ opencv \ apps \ traincascade&#34;是正确的。 imagesstorage.cpp位于C:\ Users \ azach \ Downloads \ opencv \ sources \ apps \ traincascade
答案 0 :(得分:0)
对于我来说,问题在于,当我在上一步中使用opencv_createsamples
创建.vec文件时,我使用了与{所用的参数不同的-w
和-h
参数{1}}。为了解决此问题,我要做的就是重做opencv_traincascade
和opencv_createsamples
,并保持一致的宽度和高度。
答案 1 :(得分:0)
我遇到了这个问题,因为我忘记了删除以前的级联分类器文件。