我们一直坚持哈尔级联训练的问题一个星期了。实际上我们正在按照本教程http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html来创建cascade xml文件。 但是在最后一个命令
opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt
-numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 45
-numNeg 45 -w 90 -h 100 -mode ALL -precalcValBufSize 1024
-precalcIdxBufSize 1024
我们收到错误:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std:: bad_alloc
Aborted (core dumped)
图像规格为:45张正片和45张负片(尺寸均为90 X 100)。我已确保samples.vec存在于同一文件夹中,并且还尝试使用2048用于precalcValBufSize参数。请帮助我们!
答案 0 :(得分:4)
你的内存耗尽了。您有几种选择:
顺便说一句,您的负片图像的大小不应与正片图像的大小相同。负片图像应该是包含通常与您感兴趣的对象相关联的背景的大场景。 opencv_traincascade
会自动扫描它们以获取有用的负片样本。