我的训练集需要有关opencv_traincascade参数的建议

时间:2013-10-11 06:56:22

标签: opencv machine-learning computer-vision

我有两个数据集:第一个是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。那么它可以成为一个好的分类器吗?

1 个答案:

答案 0 :(得分:3)

关于你的第一个问题: -

目前尚不清楚究竟需要多少种图像。它还取决于你想要检测的物体,它究竟有多复杂。例如,我们可以采用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。那么它可以成为一个好的分类器吗?",我的答案就是为什么不呢?

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

希望我的回答能帮助你。祝好运。如果有的话,请随时发表评论。