Opencv 训练级联分类器检测纸张
我试图训练一个级联分类器来检测窗户上的纸张(8.5“x11”)。基本上,我是在根据纸测量窗户的宽度和高度。一旦我检测到纸张,我可以通过简单的比率计算得到窗口的宽度和高度(因为纸张大小是固定的) 我试着只用普通纸,但运气不好。它可以检测纸张,也可以检测一些随机物体。这并不太可靠,训练只花了31分钟。阳性样本来自15张不同的纸张图片(裁剪)。负片样本为300x300窗口图像。 参数:-numStages 1-nsplits 2-minHitRate 0.995-maxFalseArmrate 0.9-numPos 400-numNeg 400-w 62-h 80 现在我尝试检测相同的纸张大小,但上面有打印对象(以提供一些图案)。基本上,我打印了一个大的Android徽标,并尝试训练级联分类器来检测它。以下是我的参数: -numStages 1-nsplits 2-最小命中率0.995-最大错误报警率0.9-numPos 890-numNeg 890-w 62-h 80 (负片图像的分辨率为150x150像素) 所以我得到了比普通纸更好的结果。我尝试将一些阳性样本(由opencv_createsamples生成)输入到级联分类器中,它以高精度检测纸张(打印的Android)。当我输入一张真实的图片(安卓纸张窗口的图片)时,问题就出现了,分类器根本检测不到纸张 请注意,当我输入真实图像时,我将其大小调整为150x150,因此要检测的对象(纸张)变得更小(约为31x40),我尝试将最小尺寸参数(在detectMultiScale中)设置为31x40 此外,当我尝试增加阶段的数量时,无论我如何使用-minHitRate和-maxfalsalarmrate参数进行实验,它都会给我一个“所需的叶虚警率”错误。即使这两个参数设置为非常低的值(分别为0.3和0.3) 你们有什么建议吗?你认为我还应该尝试什么?我在想,用更复杂的模式对系统进行再培训,会有帮助吗?我只是需要一些意见,因为我已经训练了我的分类器3周,尝试了50多次不同的参数和图像大小。我只是累了,没有办法尝试Opencv 训练级联分类器检测纸张,opencv,object,detection,cascade,Opencv,Object,Detection,Cascade,我试图训练一个级联分类器来检测窗户上的纸张(8.5“x11”)。基本上,我是在根据纸测量窗户的宽度和高度。一旦我检测到纸张,我可以通过简单的比率计算得到窗口的宽度和高度(因为纸张大小是固定的) 我试着只用普通纸,但运气不好。它可以检测纸张,也可以检测一些随机物体。这并不太可靠,训练只花了31分钟。阳性样本来自15张不同的纸张图片(裁剪)。负片样本为300x300窗口图像。 参数:-numStages 1-nsplits 2-minHitRate 0.995-maxFalseArmrate 0.9
提前感谢。在训练时记住以下几点,你应该会取得好的成绩-
-numNeg 将默认值用于其他参数,如 -minHitRate
-最大错误报警率
-重量比率
-最大深度
-maxWeakCount 成功生成分类器后,就可以使用其他值了
-numPos
不是.vec文件中存在的阳性样本总数。相反,它是输入分类器训练每个阶段的正样本数量,因此该数量应略小于正样本总数-预钙化 所以,如果你有1GB的空闲内存,你可以把它分成两半。请记住,不应消耗所有可用内存,否则系统可能会出现故障,或者培训可能因内存不足而提前终止
进一步阅读:我认为使用轮廓分析可以轻松实现您想要的结果。给出一个示例图像,让我们来看看tryHi sturkmen。实际上,找到轮廓是我的第一个实现。这种方法非常有效,直到纸被放在带有白色边框的窗口角落。纸的白色与白色边框混合。这就是为什么我想尝试级联分类器来解决“白边界”问题。问题是,除了白纸(部分要求)之外,我不能使用任何其他颜色。你说你在纸上印了一个徽标。您可以打印一个轮廓分析很容易找到的形状,也可以打印一个棋盘。您可以通过“findChessboardCorners”功能轻松找到棋盘这些都是非常好的建议!我没有想到这一点,因为我太专注于使级联分类器无法工作。我将尝试你提出的这两种解决方案,并更新我得到的任何结果!非常感谢斯特克曼!嗨,克拉克克,谢谢你的详细建议。我已经尝试了你提到的所有东西,除了有很多正面图像(不是由createsamples生成的)。但是,因为我只使用一种图像(在本例中,是带有打印android的白皮书),无论我拍摄了多少“真实”正面图像,它们都将是相同的(只是随着光强度的变化),我认为createsamples的结果就足够了。如果我决定继续使用这个级联分类器解决方案,我会记住你的建议。非常感谢@我在训练中也遇到了类似的问题。实际上,这个想法是要有很多样本,这样分类器至少可以训练10个阶段。如果没有这些,我想你不会注意到任何明显的效果