HaarTraining - MATLAB还是OpenCV?

时间:2014-02-08 15:18:05

标签: matlab opencv computer-vision matlab-cvst haar-classifier

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

  1. 通过编译提供的cpp文件的传统命令行方法 在OpenCV发行版中
  2. MATLAB中的级联培训GUI
  3. 在命令行方法中,与CGT,MATLAB的ROI标记界面相比,ObjectMarker界面非常用户友好

    然而,每当我使用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.我无法完成此操作。

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

    • 我应该使用哪两种方法?

    • 上面列出的方法有其他替代方法吗?

1 个答案:

答案 0 :(得分:0)

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

修改 即使您提供30K的负图像,训练可能仍然没有足够的负样本。 trainCascadeObjectDetector函数通过运行由负图像到目前为止的阶段组成的检测器,为每个阶段生成负样本。如果检测器检测到任何物体,则它们是构造误报,并且它们被用作下一阶段的负样本。根据您提供的负像类型,很可能在经过一定数量的阶段后,电流检测器不会检测到负像中的任何误报。

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