繁体   English   中英

HaarCascade培训:合并.lst文件

[英]HaarCascade training: merge .lst files

我正在使用HaarCascade开发自己的物体探测器。 顺便说一下,我在某些方面感到困惑,我将在下面解释。

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

现在,这就是问题所在。

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

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

我现在在做什么的例子:

  • opencv_createsample.exe -p1 0.5 -p2 0.6 -p3 0.7
  • 对于我的每个底片我的一个对象图像
  • 带信息的.lst文件(如果为每个正面ojbect图像执行,则相同)

我愿意做的例子:

  • 对于我的每个底片的每个对象图像
  • 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 =我要检测的东西(一个苹果)
  • 负图像=不包含对象的背景图像
  • 正图像=带负+对象的已处理图像(创建样本输出)

谢谢大家

UPDATE

在观看HaarCascade上的Sentdex视频之后: 训练Haar级联对象检测 - 用于图像和视频分析的OpenCV用于图像和视频分析20

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM