OpenCV正样本的尺寸是多少?

6

我发现了很多关于OpenCV的haartraining和级联训练工具的教程。特别是我对使用createsamples工具训练汽车分类器感兴趣,但似乎各处都存在关于-w和-h参数的矛盾说法,让我困惑不解。

我指的是以下命令:

$ createsamples -info samples.dat -vec samples.vec -w 20 -h 20

我有以下三个问题:
  • 我知道正样本的宽高比应该与上面的-w和-h参数得到的宽高比相同。但是所有正样本的-w和-h参数是否都必须是相同的尺寸?例如,我有接近1000张图片,它们在剪裁后是否都必须是相同的尺寸?

  • 如果重要的不是尺寸而是宽高比,那么正样本的宽高比与OpenCV工具中提到的-w和-h参数相比需要多么精确匹配?我的意思是,分类器是否非常敏感,以至于偏差一两个像素就会影响其性能?还是说只要肉眼看起来它们大致相同,就可以使用这些图像?

  • 我已经将几张图片裁剪成相同的尺寸。但是在试图使它们尺寸相同的过程中,有些图像的边界框中包含了更多的背景,而有些图像的边界框略有不同的边距(例如,参见下面的两个图像。更大的汽车占用了更多的图像空间,但是小汽车周围的空白区域更宽)。我只是想知道是否拥有这样的图像集合是可以的,还是说这会降低分类器的准确性,因此我应该确保所有感兴趣的对象(在本例中为汽车)都有更紧密的边界框?

big car small car


我只能评论,对于汽车检测而言,比haar/LBP级联更好的方法有很多。 - GilLevi
我不能改变这个,因为我被雇佣来遵循这种方法,但是在你的意见中有更好的方法吗? - user961627
latent-svm-detector。您可以很快地运行它,并且它会给出更好的结果。 - GilLevi
谢谢...它能扩展到分类不同视角的汽车吗? - user961627
1
它可以从各种视角检测汽车。当我在汽车上测试时,它给了我非常好的结果。 - GilLevi
显示剩余4条评论
1个回答

4
第一个问题:是的,所有用于训练的图像必须是相同的尺寸。(至少在我最后做面部检测样本训练时是这样的。应该也适用于这里。如果我没记错的话,如果图像尺寸不同会出现错误。但是您可以尝试一下,如果时间允许的话)。
第二个问题:我不太确定您在问什么。但分类器并不像您想象的那样敏感。对于感兴趣的对象,例如手,即使缺少几个像素(由于裁剪),或其他图片中拇指缺少几个像素等,分类器仍然能够检测到手。因此,这里缺少一些像素或添加了一些背景像素,在最后一天都不会对分类器产生太大影响。
第三个问题:您应该将图像裁剪为仅包含车辆的图像以获得最佳效果。尽量消除尽可能多的背景。我基于有噪声背景、黑色背景和最小背景裁剪样本的实例进行了研究。据我记得,最小背景裁剪样本在误报和漏报方面显示出了最好的结果。
您可以使用对象标记来完成:http://achuwilson.wordpress.com/2011/02/13/object-detection-using-opencv-using-haartraining/ 在裁剪后,使用画图工具将所有图像调整为相同的像素值也是可行的。
这个链接也可以回答您的问题:http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html 我还同意GilLevi的观点,与Haar、HoG、LBP级联相比,有更好的检测方法。图片的训练可能需要数天(取决于训练的图片数量)。如果你真的需要使用级联方法并且想要减少训练时间,使用类似Haar的特征训练比使用HoG或LBP要花费更长时间。但是就结果而言,我不太确定哪种方法能确保更好的性能和鲁棒性。
希望我的答案对你有所帮助。如果有更多问题,请留言。

谢谢...我这里还有另一个问题:https://dev59.com/rHvaa4cB1Zd3GeqPINO4,你有什么想法吗? - user961627
好的,我来看一下…这里的答案对你有帮助吗?这是基于我在分类器训练方面约两年的经验。 - rockinfresh
哦,是的,绝对有帮助! - user961627

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接