1

我在問我怎麼可以使用trainCascadeObjectDetector,而我已經創建了一個正面的smples structre組成的文件名和粘接盒座標。另外我hase一個負面的例證圖像文件。但是,當我lnche的功能流train Cascade ObjectDetector matlab

trainCascadeObjectDetector('newDetector.xml', str, negativeFolder, 'FalseAlarmRate', 0.2, 'NumCascadeStages', 5); 

我有這樣的錯誤:

Error using trainCascadeObjectDetector>parseInputs (line 306) 
Argument 'POSITIVE_INSTANCES' failed validation with error: 
Cannot find struct field 'imageFilename' in POSITIVE_INSTANCES. 

Error in trainCascadeObjectDetector (line 161) 
parser = parseInputs(varargin{:}); 

回答

2

由於錯誤本身說,在海峽中不包含一個名爲imageFilename場,這應該是場當圖像文件是。引用MATLAB文檔:

POSITIVE_INSTANCES is an array of structs with information about the positive instances. The struct fields are: imageFilename - A string that specifies the image name. The image can be true color, grayscale, or indexed, in any of the formats supported by IMREAD.

objectBoundingBoxes - An M-by-4 matrix of [x y width height] 
         bounding boxes specifying object 
         locations. 

所以,你str參數應該是結構的陣列信息,即(文件1有3盒,文件2 2和文件3 4):

str = struct('imageFileName',{'file1Path', 'file2Path', 'file3Path'},... 
    'objectBoundingBoxes',{[xBox1 yBox1 w1 h1;xBox2 yBox2 w2 h2;xBox3 yBox3 w3 h3]... 
    [xBox1 yBox1 w1 h1;xBox2 yBox2 w2 h2],... 
    [xBox1 yBox1 w1 h1;xBox2 yBox2 w2 h2;xBox3 yBox3 w3 h3,xBox4 yBox4 w4 h4]}); 

或其他任何你想要聲明它的方式。但一定要以這種格式輸入文件。

+0

偏離主題,但您似乎對MatLab中的級聯分類器有經驗。我需要知道在600個正像和300個負像上大約需要多長時間來訓練級聯分類器(使用gentleboost)?給予16GB RAM。即使是一個模糊的近似也會有極大的幫助! – user961627

+0

@ user961627對不起,不能幫助你,我不使用這個東西。我剛剛幫助OP,因爲錯誤只是語法。 – Werner