【问题标题】:For car detection, Shall the negative samples have the same size of positive samples?对于汽车检测,负样本是否应该与正样本的大小相同?
【发布时间】:2016-10-05 07:02:45
【问题描述】:

我将所有正样本的大小调整为相同的大小,因此负样本的大小应该与正样本的大小相同。

【问题讨论】:

  • 您指的是滑动窗口中车辆的相对大小吗?
  • 没有。负面图像不包含车辆。我的问题是图像大小是否应该相同。

标签: opencv computer-vision object-detection cascade-classifier


【解决方案1】:

通常,使用对象检测时,您会在图像上滑动固定大小的搜索窗口,从而产生特征响应。然后分类器将响应与经过训练的模型进行比较,并报告两者的接近程度。我们依赖于相同类型的对象会产生相似的特征响应这一事实。因此,您希望每个滑动窗口中的正数据大小相同,否则响应将不同,您将无法获得良好的匹配。

当您在负面数据上进行训练时,您正在向分类器提供通常没有任何共同点的响应示例,这就是算法学习划分数据的方式。图像的大小并不重要,因为您将使用相同的滑动窗口。重要的是该窗口捕获的数据 - 它应该代表您将在运行时使用的数据。我的意思是滑动窗口不应该包含太多或太少的细节。你真的不想拍一张全景照片,把它缩小到 320x240,然后在上面训练。您的滑动窗口将捕获太多信息。拍摄场景的较小子集并将其放大到 1280x960 也是如此。现在信息太少了。

话虽如此,但在现实世界中,事情既复杂又简单。你会遇到大小不一的物体;因此,您需要能够以不同的规模处理它们。因此,您的分类器应该在多个尺度上进行搜索,从而使图像大小无关紧要。请记住,重要的是滑动窗口内的内容。并且:垃圾进=垃圾出。确保您的数据看起来不错。

编辑:http://docs.opencv.org/2.4/doc/user_guide/ug_traincascade.html 但每张图像都应该(但不一定)大于训练窗口大小,因为这些图像用于将负图像子采样到训练大小。

【讨论】:

  • 我应该使用大量图像进行训练怎么办?我已经有大约 10,000 张负片图像和大约 7000 张相同尺寸和格式的正片图像。你有什么想法?
  • 简短的回答是训练数据量听起来很合理。长答案是这取决于您要达到的精度以及您要覆盖的操作条件。如果您所做的只是开发一个新功能,那么拥有一个更小但多样化的数据集将帮助您更快地训练。如果您想要在不同条件/照明/角度下获得高精度,您需要大量不同的数据 - 拥有 7000 张同一辆车的图像(我夸大其词)无济于事,因为您只需学会找到它特定的汽车和你的分类器不能很好地概括。
  • 现在,我正在改变使用深度学习进行检测的想法,图像的大小在深度学习中重要吗?
猜你喜欢
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 2020-08-09
  • 2017-12-15
  • 1970-01-01
相关资源
最近更新 更多