【问题标题】:OpenCV Train Cascade create samplesOpenCV Train Cascade 创建样本
【发布时间】:2015-10-28 19:33:18
【问题描述】:

我想要一个 HAAR 级联训练来检测图片上的论文。所以目前我有大约 700 张随机纸的图像。那些图片只包含一张纸,没有背景。

当我使用 'opencv_createsamples -img paper1.png -vec vec -num 10 -w 250 -h 177 -bgnegatives' 创建一个 vec 文件时,会创建一个包含 10 张图像的纸的 vec 文件。宽度和高度是任意的,但比例与原始纸张尺寸一致。

现在当我查看 vec 文件时,有很多图像是纸张旋转或倾斜的。没关系,但是很多纸张都在图像之外。旋转正方形时,例如左上角或右上角会掉出图像。

我不想识别图片上不完全可见的纸张。那么我该如何解决呢?

图片显示了 vec 文件中的图像来说明问题。此图像中删除了纸张的内容。

【问题讨论】:

  • 我有一组正面和负面的图像。是否可以将正面图像直接提供给培训师?从而跳过创建样本步骤。我的正面图像已经在不同的背景上,从不同的角度等拍摄。

标签: opencv object-detection haar-classifier


【解决方案1】:

opencv_createsamples 还提供了三个关于旋转的参数

-maxxangle <max_x_rotation_angle>
-maxyangle <max_y_rotation_angle>
-maxzangle <max_z_rotation_angle>

所有角度都以弧度表示。

根据 opencv_createsamples 的来源,这些参数被初始化为默认值

double maxxangle = 1.1;
double maxyangle = 1.1;
double maxzangle = 0.5;

因此,当被忽略时,opencv_createsamples 仍会对您的样本应用旋转。

您现在可以尝试手动将最大角度设置为 0。

【讨论】:

  • 谢谢,这是一个想法。但是我的检测器还必须检测旋转的纸张等。将 maxangles 设置为 0 是否也会创建一个检测旋转/倾斜纸张的级联?
  • 不,因为类似 Haar 的特征不是旋转不变的。您可以尝试分段旋转输入图像并将分类器应用于它,或者采用另一种方法,例如 SVM。
猜你喜欢
  • 2013-10-24
  • 2019-05-13
  • 1970-01-01
  • 2011-01-01
  • 2014-02-16
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多