【问题标题】:OpenCV: How to get weak lerners from adaboost inOpenCV:如何从 adaboost 中获得弱学习者
【发布时间】:2013-05-21 05:56:35
【问题描述】:

有没有办法从Opencv中实现的adaboost算法中提取出弱学习器对应的特征?

我知道 adaboost 结合了一组基于一组输入特征的弱学习器。 为训练集中的每个样本测量相同的特征。 通常 adaboost 使用一个决策树桩,并为每个特征设置一个阈值,并选择具有最小误差的决策树桩。我想找出产生弱学习者的特征是什么。

谢谢。

【问题讨论】:

    标签: opencv computer-vision adaboost


    【解决方案1】:

    您只需保存模型并从文本文件中提取树木/树桩。 save() api 使用起来非常简单。在文件中,您将找到如下项目:

    “拆分: - { var:448, 质量:5.0241161137819290e-002, le:1.7250000000000000e+002 }"

    “var”旁边的数字是特征索引,“le”是该特征的“小于”值。

    【讨论】:

    • 非常感谢。我已经保存了模型,我将尝试解析 xml 并提取 字段。
    • 我已经解析了 xml 文件并且出现了一些令人惊讶的问题。我已经使用了 500 个弱学习器——因此我应该有 500 个特征(我认为它们是不同的)。解析后我发现我得到了 38 个不同的特征索引,其中一个特征索引重复了 440 次。这样可以吗,正确。您是否尝试过解析 CVBoost 学习器中的变量?
    • 你看到的不是错误。 Adaboost 在每棵树/树桩之后重新加权每个样本,因此相同的特征可以多次成为最佳特征。但是有这么多次相同的特征可能意味着你过度拟合或者你的其他特征并不有趣。也许你没有足够的数据。如您所见,可能的原因有很多,您的工作是评估为什么此功能如此重要以及为什么其他功能甚至没有使用。
    • 非常感谢,我会分析我的数据。里面有问题。
    • 你知道 AdaBoost 的任何其他 C/C++ 实现吗?我使用过 OpenCV,但我无法从中看到任何调试信息(例如,每当将弱学习器添加到模型时都会出现分类错误)。
    猜你喜欢
    • 2015-09-16
    • 2013-08-05
    • 2018-04-12
    • 2012-08-20
    • 2018-09-17
    • 2013-12-24
    • 1970-01-01
    • 2012-04-27
    • 2017-04-13
    相关资源
    最近更新 更多