哈尔训练:错误(-215)_img.row * _img.cols == vecSize in function

时间:2014-12-31 22:42:48

标签: python opencv haar-classifier

我正在努力训练哈尔级联来检测手部。我有一个大小为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

谢谢

4 个答案:

答案 0 :(得分:8)

错误似乎不是大量正面或负面样本的结果。人们确实训练了非常大的数据集!

根据上述参数,可以注意到形成samples.vec的正样本的维数是24x24,由语句表示:

sampleWidth: 24
sampleHeight: 24

但是在调用opencv_traincascade函数时,您尝试将维度设置为80x40。请尝试将其更改为-w 24 -h 24

答案 1 :(得分:0)

我遇到了同样的问题,并且指定正确的尺寸(w和h)对我来说不起作用。原来,我的输出目录(在您的情况下为“分类器”)不是空的。因此,该命令从输出目录中选择了上次停止的位置(带有相应的w和h)。我清除了输出目录,然后工作了。

答案 2 :(得分:-1)

断言很清楚:它期望_img.rows * _img.cols == vecSize。我不知道_img和vecSize应该是什么,但这意味着您的输入数据没有正确给出。只需查看命令行,即可:

  1. 两次写-data classifier -data classifier。这应该不是问题,但仍然存在。
  2. 写了-numPos 1000\ -numNeg 600,当你谈到40张正片和600张负片时,你不应该使用这些数字吗?
  3. 你说你有一个大小为1000的vecSize。这又是什么vecSize?

答案 3 :(得分:-1)

降低numPos和numNeg的真实值对我有用。