您能否帮助理解与Haar Classifier培训相关的几点:
1)正面图像是否只包含训练对象,或者它们可以包含其他一些对象?就像我想识别一些交通标志一样,正面图像是否只包含交通标志,还是也可以包含高速公路?
2)创建样本矢量文件有两种方法,一种是使用信息文件,其中包含正图像中检测到的对象坐标,另一种只是给出正面和负面的列表。哪一个更好?
3)您通常如何创建信息文件,其中包含正图像中检测到的对象坐标?图像裁剪器可以生成对象坐标吗?
自适应梯度的dlib直方图是否比Haar分类器提供更好的结果?
我的目标是覆盆子pi中的交通标志检测。
由于
答案 0 :(得分:2)
正样本(不一定是图像)应该只包含对象。有时无法为每个正样本获得正确的宽高比,那么您可以添加一些背景或裁剪一些对象边界。最终检测器将检测您的正样本纵横比的区域,因此如果您在所有正样本周围使用大量背景,则最终检测器可能无法检测到您的交易标志的区域,而是具有大量背景的区域在你的交通标志周围。
Afaik,正面样本必须由使用opencv_createsamples.exe创建的.vec文件提供,并且您需要一个带描述的文件(图像中的哪些是您的正样本?)。我通常采用预处理标记的训练样本的方式,裁掉所有背景,这样只有中间图像,其中正样本填充整个图像,图像已经是正确的宽高比。我填写一个文本文件基本上"文件夹/文件名.png 0 0宽度高度"对于每个中间图像,然后从该中间图像创建.vec文件。但另一方面,使用全尺寸图像中的真实roi信息应具有相同的质量。
请注意,如果您没有为每个正面样本修复相同的宽高比,则会拉伸您的对象,这可能会或可能不会成为您的任务中的问题。
请记住,您可以通过变形/变换图像来创建其他正样本。 opencv_createsamples可以为你做到这一点,但我从来没有真正使用它,所以我不确定训练是否会从使用这些样本中受益。