OpenCV - TranCascade错误(bad_alloc)

时间:2012-11-14 16:35:31

标签: c++ opencv

我在训练级联分类器时遇到了问题。

首先,我使用opencv_createsamples创建示例:

./opencv_createsamples -vec test.vec -img ./positive/speed_50.jpeg -bg /home/boris/src/cascade/neg.txt -num 50 -w 150 -h 150

效果很好,输出如下:

Info file name: (NULL)
Img file name: ./positive/speed_50.jpeg
Vec file name: test.vec
BG  file name: /home/boris/src/cascade/neg.txt
Num: 50
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 150
Height: 150
Create training samples from single image applying distortions...
Done

然后是级联教练:

./opencv_traincascade -data /home/boris/src/cascade -vec ./test.vec -bg ./neg.txt -numPos 50 -numNeg 2 -w 150 -h 150

我收到以下错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Emergency stop (core dumped)

neg.txt文件:

img/img1.jpeg  
img/img2.jpeg

这两个文件都存在于img目录中。

OpenCV版本是2.4.2,OS是Ubuntu 12.04。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要将w和h设置为与生成的样本相同的大小,在您的情况下为150。对于任何样本量太大我都有同样的问题。它适用于48x48而不适用于96x96。如果你用更大的样本解决问题,请告诉我。

此致