在用opencv_traincascade训练分类器的时候,遇到了报错如下:
Train dataset for temp stage can not be filled. Branch training terminated.
在stackoverflow上查了一下,问题的根源在于负样本读取失败,导致问题的原因有:
1)负样本描述文件neg.txt不能带路径名,即 : -bg neg.txt 是合法的, -bg negdata/neg.txt是非法的。所以必须把neg.txt文件跟exe文件放在同一个目录下
2)当切换了操作系统时,会因为txt文件的格式问题而导致了负样本读取失败。比如:在windows操作系统下生出了neg.txt,但是在ubuntu下进行训练,这样就会导致错误,这是因为windows下txt文件换行符'\r'在ubuntu下无法识别
3)负样本图片的问题。我遇到的报错原因就是用opencv处理负样本后保存时没有检验负样本是否为空,即直接把空的mat写入了文件,导致了报错

在使用OpenCV_traincascade进行分类器训练时遇到错误:Train dataset for temp stage can not be filled. 问题主要由负样本读取失败引起,可能的原因包括:neg.txt文件不包含路径、跨操作系统txt文件格式问题(例如Windows与Ubuntu之间的换行符差异)、以及处理负样本图片时保存了空的MAT文件。解决方案包括确保neg.txt与exe在同一目录、处理txt文件换行符和检查负样本图片的有效性。
最低0.47元/天 解锁文章
2011

被折叠的 条评论
为什么被折叠?



