使用opencv自带的traincascade训练haar+adaboost分类器时,容易出现下面两个问题。不得不说,国内的论坛博客中解释的都很牵强,解决方案也然并卵....
结合stackoverflow和opencv的问答,给出解决方案,本人实测有效,这两个问题我都出现了
1. Train dataset for temp stage can not be filled. Branch training terminated.问题
这个问题的原因主要是在于负样本不足导致(我理解不上来),但简单理解为输入的-bg参数的负样本文件出现问题就行了。-bg参数后跟样本文件名,注意:只能跟文件名,不能
跟路径。
-bg negative.txt // OK
-bg /data/negative.txt // ERROR
也就是说,负样本描述文件和traincascade.exe文件在同一目录下,所以我们需要构造合适的负样本文件,满足要求。
解决OpenCV traincascade训练时的内存不足及样本问题

在使用OpenCV的traincascade进行haar+adaboost分类器训练时,可能会遇到Train dataset for temp stage can not be filled. 和Insufficient memory错误。前者可能由于负样本不足导致,确保-bg参数后的负样本文件与traincascade.exe在同一目录下。后者是内存分配不足,错误地设置了-precalcValBufSize和-precalcIdxBufSize参数,建议根据图片大小适当设置,如设置为1或更小。
最低0.47元/天 解锁文章
1943





