繁体   English   中英

Haar级联训练时bad_alloc()错误

[英]bad_alloc() error while haar cascade training

我们一直在困扰哈尔级联训练的问题上呆了一周。 实际上,我们正在按照本教程http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html创建级联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参数。 请帮助我们!

您的内存已用完。 您有几种选择:

  • 使用具有更多内存的64位计算机
  • 使用较小尺寸的正面训练图像。 通常为24x24或32x32。 64x64被认为是大尺寸。
  • 使用LBP或HOG功能代替Haar。 Haar功能比其他功能占用更多数量级的内存。

顺便说一下,您的负片图像不应与正片图像相同。 负片应该是包含通常与您感兴趣的对象相关的背景的大场景。 opencv_traincascade自动扫描它们以查找有用的阴性样本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM