【问题标题】:I need advice about params of opencv_traincascade for my training set我需要有关我的训练集的 opencv_traincascade 参数的建议
【发布时间】:2013-10-19 04:08:15
【问题描述】:

我有两个数据集:第一个是 340 张图像,大小为 440x200,每个图像上的对象大小在 9x10 像素和 25x15 像素之间。我有一个大约 570 张 440x200 尺寸的负片。 我使用这些参数进行训练: -numPos 250 -numNeg 22000 -w 10 -h 10 --numStages 24 --minHitRate 0.995 -maxFalseAlarm -maxDepth 20 -maxWeakCount 600 -mode ALL

我使用之前标记的图像创建了我的集合。

我还尝试了 -numPos 320 和 300。第一次在 4 阶段 (-numPos 320) 以错误“正样本计数不足”结束。我使用 -numPos 300 在相同的级联上重新运行训练。它又给了我一个阶段并以同样的错误下降。 第三次我选择 -numPos 250,它落在 2 阶段,而 1 阶段的 FalseAlarmRate 为 0!但在第二阶段 0.028。

所以我很高兴听到任何关于此的建议,但我的问题是: 用这些小的正样本集训练级联是不可能的? 但即使在第一阶段,它也给我非常小的 FalseAlarmRate。那么它可以是一个很好的分类器吗?

【问题讨论】:

    标签: opencv machine-learning computer-vision


    【解决方案1】:

    第一个问题:-

    目前还不清楚每种图像实际需要多少个。它还真的取决于你想要检测的对象,它到底有多复杂。不过也有可能,例如,在这个网站实验中使用了 40 个正样本和 600 个负样本,http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html

    然而,越复杂的物体,我认为你将需要训练更多的正面和负面图像。如果我没记错的话,我在大约 3 到 4 年前做的一个手部检测项目,需要大约 800 多张正面图像,几乎是我朋友之前的 2 倍,我对检测率感到满意。

    基本上,您训练的图像越多,您的对象检测就越准确。

    你的第二个问题:

    您必须注意的一件事是分类器的误报率至少与检测率一样重要。通常当一对一的误报率没有得到严格控制时,整个分类器是不可用的。

    还要注意,在大多数情况下,误报错误率大于检测错误率,这使得误报率成为设计分类器时难以最小化的标准。

    尝试通过以下方式理解这一点:- http://www.uic.edu/classes/idsc/ids572cna/Model%20evaluation.pdf 另一个更容易理解和学习如何用更多文本训练分类器: http://note.sonots.com/SciSoftware/haartraining.html

    所以当你问:“即使在第一阶段它给我的 FalseAlarmRate 也非常小。所以它可以成为一个好的分类器?”,我的回答是为什么不呢?

    此外,如果可能,请尝试将您的负片图像增加到正片图像的两倍。这是我一直做的事情。

    希望我的回答对您有所帮助。祝你好运。如有任何意见,请随时发表评论。

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      相关资源
      最近更新 更多