2

我必须训练多达 20 个 haar 分类器。我所拥有的是:

  1. 通过编译 OpenCV 发行版中提供的 cpp 文件的传统命令行方法
  2. MATLAB 中的级联训练 GUI

在命令行方法中,ObjectMarker 界面与 CGT、MATLAB 的 ROI 标记界面相比,用户友好性非常低。

但是,每当我使用 CGT、MATLAB,即使是250 个正图像30000 个负图像(均使用视频文件创建)的小样本,它都无法显示:

"Could not create sufficient samples, either decrease the False Alarm Rate, decrease the number of stages or increase the number of negative images."

误报率已经设置为 0,即要使用的 +ve 和 -ve 图像数量相等,并且阶段数已经是一个非常小的值,即 10。我无法通过这个。

那些已经创建了高效工作的分类器的人,请指导我:

  • 我应该使用这两种方法中的哪一种?

  • 上面列出的方法有什么替代方法吗?

4

1 回答 1

0

你想检测什么样的物体?你使用什么样的负面图像?理想情况下,负图像应该是通常与您感兴趣的对象相关联的场景的大图像。

编辑: 即使你提供了 30K 的负图像,训练可能仍然没有足够的负样本。trainCascadeObjectDetector 函数通过运行检测器来为每个阶段生成负样本,该检测器由它目前在负图像上的阶段组成。如果检测器检测到任何物体,则通过构造误报,将它们用作下一阶段的负样本。根据您提供的负片类型,很可能在经过一定数量的阶段后,当前检测器不会检测到负片图像中的任何误报。

您说过您的负面图像来自您房间的视频。问题可能是你所有的负面图像都太相似了。因此,您可能应该尝试在您的否定集中包含其他图像,以使其多样化。此外,您应该确保在负面图像中包含包含您正在训练的手势以外的手势的图像。

于 2014-02-10T15:35:39.530 回答