错误“使用OpenCV的级联工具时,无法填充临时阶段的训练数据集。”>

问题描述 投票:9回答:10

[我正在Windows 7上使用vs2010从源代码(OpenCV 2.4.0)构建opencv_traincascade.exe工具。我想训练LBP分类器,所以我将opencv_traincascade.exe与以下参数一起使用

-数据D:\ OpenCV \ Classifiers \ lbpclassifier1 \ temp \ data -vec D:\ OpenCV \ Classifiers \ lbpclassifier1 \ temp \ samples.vec -bgD:\ OpenCV \ Classifiers \ lbpclassifier1 \ temp \ negative \ infofile.txt-numPos 40 -numNeg 40 -precalcIdxBufSize 500 -precalcValBufSize 500 -stageType BOOST -featureType LBP -w 24 -h 24

我收到的错误消息是:

PARAMETERS:
cascadeDirName: D:\OpenCV\Classifiers\lbpclassifier1\temp\data
vecFileName: D:\OpenCV\Classifiers\lbpclassifier1\temp\samples.vec
bgFileName: D:\OpenCV\Classifiers\lbpclassifier1\temp\negative\infofile.txt
numPos: 2
numNeg: 40
numStages: 20
precalcValBufSize[Mb] : 500
precalcIdxBufSize[Mb] : 500
stageType: BOOST
featureType: LBP
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   2 : 2
Train dataset for temp stage can not be filled. Branch training terminated.

此问题曾被问过:Error while using opencv_train cascade,而解决方案建议在那里。在这种情况下,使正样本数和负样本数相等是没有帮助的。

我认为该错误可能与该错误有关:http://code.opencv.org/issues/1834因此,我从该页面下载了最新版本的imagestorage.cpp,并重建了opencv_traincascades工具。此外,.vec文件中的样本总数为45。因此,如本comment中所建议,我已将numPos参数更改为2,以便不会耗尽.vec文件中的样本。 .vec文件中的样本数量为45。

非常感谢您的帮助。谢谢。

我正在Windows 7上使用vs2010从源代码(OpenCV 2.4.0)构建opencv_traincascade.exe工具。我想训练LBP分类器,所以我将opencv_traincascade.exe与以下代码结合使用...

opencv
10个回答
4
投票

我希望结束这个问题。对于那些也为之迷迷糊糊的人。我知道它的老了。我调试了级联,发现在以下几点:


0
投票
我以前也有这个问题。但是在我减小参数[maxFalseAlarmRate](如设置小于0.1的参数)后,它工作正常。希望对您有所帮助。

9
投票

[首先,对我来说,错误也出在bg文件上。我使用Opencv 2.4.10.1。


8
投票
我也在学习如何使用OpenCV对象检测工具。

3
投票
我也遇到类似的问题,这会导致错误:

1
投票
我有完全相同的问题。对我来说,问题是我使用PowerShell创建了negatives.txt文件,该文件将BOM写入了文件。当BOM尝试读取文件并使它找不到任何图像时,它会跳开opencv_traincascade程序。我使用Notepad ++将文件转换为UTF-8,并解决了该问题。

1
投票
opencv_traincascade试图读取当前文件夹中的负文件夹图像。因此,您必须将opencv_traincascade.exe传送到negative/ images文件夹。

1
投票
我已经多次遇到此问题,最终是由于我生成的.vec文件的尺寸错误地指定给我的正像而导致的。

0
投票
CentOS Linux版本7.4.1708(核心)

0
投票
至于我(ubuntu16),这是文件路径问题。下面是我的文件结构。