2

我有近 1000 张图像,我想将它们用作 opencv 的正样本,以便在 cascadedtrainer 中使用。

我读过这个优秀的教程: http: //note.sonots.com/SciSoftware/haartraining.html,以及这个: http: //www.computer-vision-software.com/blog/2009/11/faq -opencv-haartraining/,但我无法决定如何处理 createsamples 实用程序的 -w 和 -h 参数以及裁剪图像的想法。

我有带有大量背景内容的大图像 [1300x600],因此级联分类器实际需要检测的对象通常占图像的 10% 左右。

是否有必要裁剪图像然后使用 OpenCV 的 createsamples 实用程序?或者我可以省略裁剪部分,因为无论如何,正样本的描述文件包括 x 和 y 坐标以及围绕感兴趣对象的边界框的高度和宽度。我很困惑,因为我在某处读到“背景过多”会破坏表演。当一个人已经为图像中的对象指定了紧密的边界框时,是否存在“背景过多”之类的事情?

我的主要问题是时间,如果它最终不会损害分类器的性能,我想避免手动裁剪 1000 张图像。


编辑

我实际上做了一些裁剪,这是我的样本外观的平均分布:

车1 车2 车3 车4 车5 车6 车7

4

1 回答 1

3

您无需调整样本大小或裁剪样本,但需要使用注释工具创建以下格式的阳性样本列表:

path_to\sample1.png 1 10 10 20 22
path_to\sample2.png 2 10 10 20 22 40 40 30 33
...

这可以解决您关心的所有问题。根据您的示例,创建此文本文件可能会非常耗时。

正样本边界框内的背景过多可能会影响模型中弱分类器的有效性,但它在最终级联分类器模型中可能重要也可能不重要。您应该关心的是创建良好的正样本,其中尽可能精确地在边界框内捕获对象。它的意思是:

  1. 使每个样本与其相应边界框的右上角处于相同的相对位置,并且
  2. 所有样本具有相同的对象宽度/边界框宽度比。

换句话说,尝试将边界框中的所有对象居中,并为所有对象添加相同的“百分比”填充,这样当它们被 createsamples 裁剪和调整大小到 vec 文件时,所有对象的位置和大小看起来都相似。

于 2014-01-15T18:32:49.660 回答