【发布时间】: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