Matlab中级联训练“trainCascadeObjectDetector”中的错误

时间:2015-03-20 01:58:36

标签: matlab image-processing computer-vision matlab-cvst cascade-classifier

我正在尝试通过内置的Matlab函数“ trainCascadeObjectDetector ”来训练级联分类器,但是当我调用此函数时,它总是显示以下错误消息:

trainCascadeObjectDetector('MCsDetector.xml',positiveInstances(1:5000,:),'./negativeSubFolder/',...
'FalseAlarmRate',0.01,'NumCascadeStages',5, 'FeatureType', 'LBP');

Automatically setting ObjectTrainingSize to [ 32, 32 ]
Using at most 980 of 1000 positive samples per stage
Using at most 1960 negative samples per stage

265 ocvTrainCascade(filenameParams, trainerParams, cascadeParams, boostParams, ...
Training stage 1 of 5
[....................................................Time to train stage 1: 12 seconds

Error using ocvTrainCascade
Error in generating samples for training. No samples could be generated for training the first cascade stage.

Error in trainCascadeObjectDetector (line 265)
ocvTrainCascade(filenameParams, trainerParams, cascadeParams, boostParams, ...

样本数为5000张正片和11000张负片。 Matlab版本是2014a,在Ubuntu 12.04上运行。

我不确定是否需要增加更多训练数据,因为错误信息是:

生成训练样本时出错。没有样本可用于训练第一个级联阶段。

你能看一下吗?谢谢!

1 个答案:

答案 0 :(得分:0)

首先,positiveInstances的数据类型是什么?它应该是包含两个字段的一维结构数组:imageFileNameobjectBoundingBoxespositiveInstances(1:5000,:)看起来有些可疑,因为您将其视为2D矩阵。

要检查的第二件事是negativeSubFolder。它应包含许多没有感兴趣对象的图像,每个阶段能够生成1960个负样本。

为了将来参考,MATLAB文档中有tutorial