【问题标题】:opencv cascade classifier detects backgroundopencv级联分类器检测背景
【发布时间】:2015-04-21 14:36:14
【问题描述】:

我一直在使用级联分类器来训练某种植物。这是我要检测的示例图像

我对绿色小植物进行了正面采样,并从具有相似背景且没有绿色植物的图像中制作了底片(正如许多来源所建议的那样)。使用了许多与此类似的图像进行采样。

我没有很多训练数据,所以我当然没想到会有一些理想化的分类结果。

我已经设置了常用参数 min_hit_rate 0.95 max_false_alarm 0.5 等。我尝试过 5、6、7、8、9 和 10 个阶段的训练。发生在我身上的奇怪事情是,在训练过程中,我在所有阶段的命中率都是 1,而在 5 个阶段之后,我得到了很好的接受率 0.004(类似于后面的阶段 6、7、8...)。 我尝试在用于训练样本的同一图像上测试我的分类器,但存在非常不合逻辑的行为:

  1. 分类器检测到几乎所有内容,但我从中提取的正样本除外(训练中的相同样本,HIT RATION EQUAL TO 1)。
  2. 分类器确实非常慢,单个输入图像需要一个多小时(下采样比例因子 1.1)。

我不明白如何在训练期间(通过所有阶段)将相同的样本分类为正样本,然后在图像上将其分类为正样本(周围有很多误报)。

我检查了每件事一百万次(我以为我以某种方式混合了正面和负面,但我没有)。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 你肯定喜欢使用 Haar 分类器吗?因为在您的情况下前景和背景分离得很好。您还可以使用在 Haar 过程中缺乏信息的颜色信息。
  • 能否请您在问题中添加一些正样本和负样本?
  • 我知道其他技术在这里可以很好地工作,但我需要为此类图像的级联分类器创建一个小示例。正如我所说,我不希望它完美地工作,但问题是检测器在训练数据上工作不佳,而且我在所有阶段都达到了 1。
  • 阳性样本是我上面附的图片中绿色植物周围的斑块,背景大多来自相似的图像但不包含绿色植物(灰色背景和其他东西等)。

标签: opencv machine-learning training-data haar-classifier cascade-classifier


【解决方案1】:

我可以尝试并提供帮助,但我当然不能为你训练这个东西,除非你把你的图片发给我。

根据我的经验,如果你没有得到想要的结果,你只是给traincascade 提供了错误的或没有足够的图像(正片或负片,或两者兼有)。

在我使用内置的opencv_annotation 工具创建注释文件之前,我没有得到很好的结果。你这样做了吗?有多少阳性?

您的底片是否包含您试图检测对象的背景?这是关键,不容忽视。

另外,我会使用 LBP,它要快得多。

如果你或任何人仍然卡住并创造了一些积极的东西,请将它们发送给我,我会看看我是否可以训练这个东西。

而且,在我体验过这些东西之后,我希望能写一篇关于这些东西的一站式教程:

http://johnallen.github.io/opencv-object-detection-tutorial/

【讨论】:

    猜你喜欢
    • 2019-04-15
    • 2016-11-21
    • 2012-07-05
    • 2017-11-21
    • 2015-12-16
    • 2018-05-05
    • 2020-09-03
    • 2023-04-08
    • 2016-10-26
    相关资源
    最近更新 更多