【问题标题】:HaarCascade training: merge .lst filesHaarCascade 训练:合并 .lst 文件
【发布时间】:2019-10-09 03:47:46
【问题描述】:

我正在使用 HaarCascade 开发自己的对象检测器。顺便说一句,我在某些时候被卡住了,我将在下面解释。

情况是这样的: - 我收集了 100 个我的对象的图像(比如说苹果) - 我收集了大约 1500 张底片图片 - 我创建了 negatives.txt,一个包含底片图像路径的文件 - 我创建了 positives.txt,这是一个包含路径、对象数量、坐标和正图像尺寸的文件

现在,这就是问题所在。

使用opencv_createsamples.exe 来扩充我的数据/图像,我看到如果我对每个对象图像执行它(使用相同的参数),输出将或多或少是 1000 个正图像(底片背景 + 对象)以及.lst file 包含负图像内的路径和对象坐标。 这些坐标不会改变(因为我是在执行opencv_createsamples.exe时设置的)。

问题是:为我的每个对象图像更改createsamples 所需的参数然后将它们全部合并是个好主意吗?

我现在正在做的例子:

  • opencv_createsample.exe -p1 0.5 -p2 0.6 -p3 0.7
  • 我的每个底片的对象图像之一
  • .lst 包含信息的文件(如果对每个正对象图像执行相同)

我愿意做的例子:

  • 对于我的每个底片的每个对象图像
  • opencv_createsample.exe -p1 0.5 -p2 0.6 -p3 0.7 - opencv_createsample.exe -p1 0.6 -p2 0.7 -p3 0.8,依此类推(参数随机取值)
  • 多个 .lst 文件,每个对象图像具有不同的信息
  • 合并所有.lst

我真的希望我解释了一切。

我怀疑这样做的效率:通过在不同位置使用不同对象(同一类)进行训练或仅使用一个对象相同,我将获得更好的准确性?

词汇表:

  • object = 我想检测的东西(一个苹果)
  • 负图像 = 不包含对象的背景图像
  • 正图像 = 处理后的图像(创建样本输出)和负图像 + 对象

谢谢大家

更新

在 HaarCascade 上观看 Sentdex 视频后在这里:Training Haar cascade object detection - OpenCV with Python for Image and Video Analysis 20

【问题讨论】:

    标签: python opencv training-data haar-classifier


    【解决方案1】:

    我认为在每个(正)图像中使用多个对象训练模型会获得更好的结果。这也取决于您想要达到的目标。 1.尝试您在问题中提到的两种方法并使用相同的图像进行测试。 2. 比较有效性(检测的准确性)和效率(例如速度是否有明显差异?)

    【讨论】:

      猜你喜欢
      • 2021-06-11
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2015-08-09
      • 1970-01-01
      相关资源
      最近更新 更多