【问题标题】:train Cascade ObjectDetector matlab训练级联对象检测器 matlab
【发布时间】:2013-08-26 11:54:40
【问题描述】:

我在问我如何使用 trainCascadeObjectDetector,而我已经创建了一个由文件名和绑定框坐标组成的正样本结构。我也有一个负面的示例图像文件。但是当我将函数作为流来实现时

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{:});

【问题讨论】:

    标签: matlab computer-vision object-detection training-data matlab-cvst


    【解决方案1】:

    正如错误本身所说,str 不包含名为imageFilename 的字段,它应该是图像文件所在的字段。引用matlab文档:

    POSITIVE_INSTANCES 是一个结构数组,其中包含有关 积极的事例。结构字段是: imageFilename - 指定图像的字符串 姓名。图像可以是真彩色, 灰度,或索引,在任何 IMREAD 支持的格式。

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

    因此,您的 str 参数应该是包含此信息的结构数组,即(file1 有 3 个框,file2 2 和 file3 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]});
    

    或任何其他您想要声明它的方式。但请确保您以这种格式输入文件。

    【讨论】:

    • 离题,但您似乎在 MatLab 中的级联分类器方面有经验。我需要知道在 600 个正图像和 300 个负图像上训练级联分类器(使用gentleboost)大约需要多长时间?给定 16GB RAM。即使是一个模糊的近似值也会有很大帮助!
    • @user961627 抱歉,这帮不了你,我不使用这些东西。我只是帮助了 OP,因为错误只是语法。
    猜你喜欢
    • 2015-07-26
    • 2014-04-30
    • 2016-10-22
    • 1970-01-01
    • 2020-06-18
    • 2015-09-21
    • 2019-03-12
    • 2018-12-07
    • 2020-06-17
    相关资源
    最近更新 更多