1

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

4

1 回答 1

3

对于您的第一个问题:-

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

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

基本上,你训练的图像越多,你的目标检测就越准确。

你的第二个问题:

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

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

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

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

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

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

于 2013-10-11T13:57:20.207 回答