【问题标题】:How to view positives during Haar Cascade classification如何在 Haar Cascade 分类期间查看阳性结果
【发布时间】:2013-11-23 21:13:15
【问题描述】:

大家,我已经在 Opencv 中训练了我自己的分类器,但当我运行它时会得到一种不好的结果。我的目标是使用 Haar 特征作为指导,所以我不想在执行整个级联分类器之后而是在每个步骤中,在每个特征之后查看积极因素。那么,是否可以告诉检测器在该特征处停止,或者我是否必须手动截断包含特征阈值的 xml 文件?谢谢

【问题讨论】:

    标签: c++ opencv cascade haar-wavelet


    【解决方案1】:

    这是可能的。只需检查CascadeClassifier::detectMultiScale 的工作原理。 在这个功能中你可以查看this->data.stages.size(),它会告诉你级联有多少个阶段。

    特别是detectMultiScale调用detectSingleScale,然后它调用CascadeClassifierInvokeroperator(),我们看到那里 int result = classifier->runAt(evaluator, Point(x, y), gypWeight); 行。

    因此,如果result 大于零,则表示分类成功并经过所有阶段。 否则(如果我没记错的话)结果将等于-[number of stage] 分类器失败。所以你可以看到确切的阶段分类器没有通过。

    此外,如果您使用旧式级联,请注意 detectMultiScale 调用 cvHaarDetectObjectsForROC,而不是 detectSingleScale,但本质上它会做同样的事情。

    祝你好运。

    是的,这意味着你要修改源代码。

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2016-06-05
      • 1970-01-01
      • 2017-12-02
      • 2013-03-21
      • 2014-02-16
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      相关资源
      最近更新 更多