OpenCV SVM 训练数据集

OpenCV SVM training dataset

假设我有一个包含大约 350 张正面图像和 400 多张负面图像的数据集。它们的大小不一样。它们的尺寸也大于 640x320。

  1. 我应该怎么做才能创建更好的数据集?我需要图像更小吗?如果是,为什么?

  2. 我应该对数据集应用一些规范化吗?应该是什么(对比度,降噪)?

  3. 我可以使用现有数据集创建更大的数据集吗?如果是,如何?

提前致谢!

  1. 图像的最佳尺寸是您可以轻松地将对象分类 你自己。
  2. 是的,归一化后分类器效果更好,有 选项。最流行的方法是中心数据集(减去均值)和归一化范围 值在 [-1:1] 范围内。其他流行的归一化方式类似于之前的归一化标准偏差(在大多数情况下更可取)。
  3. 是的,您可以通过添加 现有数据集中的图像失真和噪声。

查看 INRIA 数据集及其对如何 "normalized" HoG 人物检测训练的输入图像的评论。

http://pascal.inrialpes.fr/data/human/

尚未提及的一件事是,对于大多数检测技术而言,仅收集一组 n 个图像并在该图像中包含所需对象 "somewhere" 是不够的。相反,您应该在对象周围裁剪该图像(带有一些边框)。

例如对于人员检测,他们使用了这个输入图像:

但他们对这些区域(对象)进行了裁剪和重新缩放(并转换):

论文中可能也有一些关于训练的好提示: http://lear.inrialpes.fr/people/dalal/NavneetDalalThesis.pdf