我正在尝试训练Haar级联以检测手。我有一个大小为1000的vec文件。
我有40张正面图片和600张负面图片。我已经尝试过丢弃正面图片和负面图片。当我运行以下命令时,出现以下错误:
opencv_traincascade -data classifier -data classifier -vec samples.vec -bg negatives.txt
-numstages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\ -numNeg 600 -w 80
-h 40 -mode ALL -precalcValBufSize 1024\ -precalcIdxBufSize 1024
PARAMETERS:
cascadeDirName: classifier
vecFileName: samples.vec
bgFileName: negatives.txt
numPos: 1000
numNeg: 1000
numStages: 20
precalcValBufSize[Mb] : 256
precalcIdxBufSize[Mb] : 256
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
OpenCV Error: Assertion failed (_img.rows * _img.cols == vecSize) in get, file /home/lie/Desktop/Install-OpenCV-master/Ubuntu/2.4/OpenCV/opencv-2.4.9/apps/traincascade/imagestorage.cpp, line 157
terminate called after throwing an instance of 'cv::Exception'
what(): /home/lie/Desktop/Install-OpenCV-master/Ubuntu/2.4/OpenCV/opencv-2.4.9/apps/traincascade/imagestorage.cpp:157: error: (-215) _img.rows * _img.cols == vecSize in function get
中止(核心已弃用)
我尝试降低肯定计数并再次执行整个过程,但仍然收到相同的错误。有什么建议?
顺便说一句:我正在关注http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html上的教程
谢谢
最佳答案
该错误似乎不是大量正样本或负样本的结果。人们确实会训练非常大的数据集!
从上面描述的参数中可以注意到,构成samples.vec的正样本的尺寸为24x24,由以下语句表示:
sampleWidth: 24
sampleHeight: 24
但是,在调用
opencv_traincascade
函数时,您尝试将尺寸设置为80x40。尝试将其更改为-w 24 -h 24
关于python - Haar Training : error (-215)_img.行* _img.cols == vecSize在函数中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27726973/