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

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

以下是我的问题:

  • 对于稳健检测,需要多少训练样本?我在某处读到需要4000个正样本和800个负样本。这是合理的估计吗?
  • 训练样本的差异性应该有多大?有没有办法量化图像差异,以便包含或排除可能的“重复”数据?
  • 如何处理遮挡的物体?我应该只训练可见部分的动物,还是应该选择我的感兴趣区域(ROI),以便平均ROI保持相当恒定?
  • 关于遮挡的物体:动物有腿、臂、尾巴、头等。由于某些身体部位经常被遮挡,选择“躯干”作为ROI是否有意义?
  • 我应该尝试缩小我的图像并在较小的图像尺寸上训练吗?这可能会改善情况吗?

我在这里欢迎任何建议!


回答:

  • 4000正样本 – 800负样本的比例不好。负样本的问题在于,你需要尽可能多地训练它们,因为Adaboost机器学习算法——所有haar特征选择过程的核心算法——高度依赖它们。使用4000 / 10000将是一个很好的改进。
  • 检测“动物”是一个难题。由于你的问题是一个决策过程,已经是NP难题,你的分类范围增加了复杂性。从猫开始吧。先建立一个检测猫的系统。然后将同样的方法应用到狗上。假设有40个系统,检测不同种类的动物,并在以后用于你的目的。
  • 在训练时,不要将遮挡的物体用作正样本。即,如果你想检测正脸,那么只训练正脸,仅应用位置和方向的变化,不包括任何其他物体在前面。
  • 缩放并不重要,因为haar分类器本身会将一切缩放到24×24。当你有足够的时间时,观看整个Viola-Jones演示。
  • 祝你好运。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注