algorithm - 训练强大的级联分类器时要考虑的建议?

标签 algorithm opencv machine-learning computer-vision classification

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

这是我的问题:

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

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

最佳答案

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

关于algorithm - 训练强大的级联分类器时要考虑的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17444433/

相关文章:

java - 需要有关国际象棋游戏评估功能的帮助

algorithm - 如何为 pacman 实现 BFS 算法?

c - 使用整数表示排列顺序?

android - 混淆的 openCV 库的 NoSuchMethodError

ios - 如何在turi create中导入apple core运动数据集?

二进制二维矩形分割算法

c++ - OpenCV 2.4.2 : Undefined References

c++ - OpenCV仅用一个样本计算协方差矩阵

python - 使用 scikit-learn DecisionTreeClassifier 进行聚类

python - 在 Python 中编码序数值