Haar分类器参数整定

2024-06-12 13:13:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着训练一个haar分类器来检测图像中的乐高人脸,但是我很难调整参数。在

我拍了3张乐高积木的照片(每张50张),然后用opencv把它们的头分离成40x40的图像。在

示例图像如下:

enter image description here

除此之外,我只取了500张空白背景图片作为数据集中的负片。 我创造了道路,并产生了样本.vec文件如opencv文档中所述。在

之后,我试着训练我的haar分类器。我使用了我在另一个类似项目中发现的参数: opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\ -numStages 10 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\ -numNeg 600 -w 40 -h 40 -mode ALL -precalcValBufSize 1024\ -precalcIdxBufSize 1024

结果真的很糟糕。分类器识别不存在的乐高积木,奇怪的是它无法识别预期的乐高人脸。在

我真的很难调整这个分类器,因为参数列表非常庞大,我不知道如何设置值,从而得到一个高效的分类器,而且不需要花很长时间来训练。在

任何帮助都将不胜感激,特别是关于如何选择参数和“平均”计算机的预期训练时间。感谢您抽出时间!在

(注:训练时间是2个小时,我认为这太快了,可能是导致成绩不好的原因)。在


Tags: 数据图像示例参数分类器时间opencv照片
2条回答

看看我的答案-Generating good training data for haar cascades

如果你的训练集真的是你发布的那张照片的大小,那么40x40可能只是宽度和高度的一种大方法。2小时对于训练来说是可以的,但是在0.999的时候我不希望它能这么快进入10个阶段。在

这是一个没有真正“正确”答案的问题之一。不过,我还是建议高分辨率的图像。在

对评论问题的回答 首先评论-训练你的分类器你将要使用的图像,所以如果他们是低分辨率,那么坚持低分辨率。这可能只是一个更难的问题。在

第二点评论-如果你只是在一个场景中训练,比如说,如果你有一个背景鲜明的乐高摄影棚,你只会检测到它,那么除了积极的功能之外,什么都要用。一、 e.背景。这就变成了一个更简单的简历问题,当我说否定是“其他一切”时,我的意思是你想检测到什么。如果你想发现在伦敦街头行走的乐高男士,那么你需要一个比他们都在同一背景下的大得多的底片。它甚至有助于使你的背景颜色或其他什么,我不确定。在

解决问题:

它需要更高分辨率的图像和更小的最大虚警率。在

可能是低分辨率的图像增加了大量的噪声,误导了分类器。在

我建议所有面临类似问题的人重新评估并重建数据集。在

相关问题 更多 >