训练稳健的级联分类器时要考虑的建议?

Posted

技术标签:

【中文标题】训练稳健的级联分类器时要考虑的建议?【英文标题】:Advice to consider when training a robust cascade classifier? 【发布时间】:2013-06-30 22:23:36 【问题描述】:

我正在训练一个级联分类器以检测图像中的动物。不幸的是,我的误报率非常高(使用 Haar 和 LBP 的误报率非常高,使用 HOG 可以接受)。我想知道如何改进我的分类器。

这是我的问题:

稳健检测所需的训练样本量是多少?我在某处读到需要 4000 个 pos 和 800 个 neg 样本。这是一个好的估计吗? 训练样本应该有多大不同?有没有办法量化图像差异以包含/排除可能的“重复”数据? 我应该如何处理被遮挡的物体?我应该只训练动物的可见部分,还是应该选择我的 ROI 以使平均 ROI 相当稳定? 重新被遮挡的物体:动物有腿、手臂、尾巴、头等。由于某些身体部位往往被遮挡,所以选择“躯干”作为 ROI 是否有意义? 我是否应该尝试缩小图像并在较小的图像尺寸上进行训练?这可能会有所改善吗?

我愿意在这里接受任何指点!

【问题讨论】:

【参考方案1】: 4000 pos - 800 neg 是一个糟糕的比率。负样本的问题是您需要尽可能多地训练您的系统,因为Adaboost ML algorithm - 所有类似特征选择过程的核心算法 - 高度依赖于它们。使用 4000 / 10000 将是一个很好的增强。 检测“动物”是一个难题。由于您的问题是一个决策过程,已经是NP-hard,因此您的分类范围正在增加复杂性。先从猫开始。有一个检测猫的系统。然后将同样的方法应用于狗。拥有 40 个系统,可以检测不同的动物,然后将它们用于您的目的。 对于训练,不要使用被遮挡的对象作为正例。即,如果您想检测正面,则只应用位置和方向变化来训练正面,而不包括前面的任何其他对象。 缩小并不重要,因为 haar 分类器本身会将所有内容缩小到 24x24。当您有足够的时间时,观看整个 viola-jones 演示文稿。 祝你好运。

【讨论】:

+1;全面的答案应该让您走上正轨 关于如何处理误报的任何建议?使用我当前的数据,即使我为训练数据提供的 ROI 不与这些圆形对象重叠并且 ROI 比错误检测到的对象大得多,分类器也倾向于拾取小的圆形对象。任何建议如何处理? 请注意,您应用的任何训练模式 (ROI) 都是灰度化、阈值化并缩小到 24x24。只有这样,您的系统才会决定 haar-like features 的重要性。例如,由于您提供的正数 -animals- 有鼻子,所以线特征 (a) 具有重要性(更高的权重)。应该在图像中检测到它,将某物分类为动物。对于底片,反之亦然。 ROI 的大小并不重要。使您的积极因素彼此相似。确保底片没有动物形象。

以上是关于训练稳健的级联分类器时要考虑的建议?的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 级联分类器训练模型

[到手飞] 用OpenCV的级联分类器一键训练自己的目标检测数据集

OpenCV3.1.0级联分类器训练与使用

opencv5-objdetect之级联分类器

keras中的级联模型(自动编码器+分类器)

训练级联分类器,同时包括图像注释作为特征