问题标签 [cascade-classifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
669 浏览

opencv - Haar/LBP 级联用于轮廓面部的嘴部检测

我正在寻找经过 openCV 训练的 Haar 或 LBP 级联 xml 文件,用于在侧面进行嘴巴检测。使用可用的现有 LBP 级联,我能够检测到面部,但我也想知道嘴/嘴唇的位置。我用谷歌搜索并找不到任何文件,该文件涉及对个人资料面部的嘴部检测。大多数资源可用于正面,但不适用于侧面。

进一步补充,在我的数据集中,所有主题都面向左侧。我知道以下站点有很多示例,但不包括对侧面的嘴/嘴唇检测。 http://alereimondo.no-ip.org/OpenCV/34

任何帮助或链接,我可以找到 Haar/LBP 训练的 xml 文件的嘴巴轮廓将不胜感激。谢谢。

0 投票
2 回答
726 浏览

c++ - 以 SVM 作为弱学习器的 Opencv 级联分类器

我正在从事与人员检测相关的项目。我成功地实现了基于 HOG SVM 的分类器(使用 libSVM)和级联分类器(使用 opencv)。svm 分类器工作得非常好,我测试了一些视频,它正确地检测到了一些假阳性和一些假阴性的人;这里的问题是计算时间:整个图像大约需要 1.2-1.3 秒,前景补丁需要 0.2-0.4 秒;因为我正在从事一个必须能够在近乎实时的环境中工作的项目,所以我切换到级联分类器(以减少计算时间)。所以我用opencv(opencv_traincascade)训练了许多不同的级联分类器。输出在计算时间方面很好(在整个图像上为 0.2-0.3 秒,仅在前景上发射时要少得多),所以我实现了目标,让我们说。这里的问题是检测质量:我得到了很多误报和很多误报。由于这两种方法之间的唯一区别是opencv中使用的基本分类器(决策树或决策树桩,据我所知,无论如何没有SVM),所以我开始认为我的问题可能是基本分类器(在某种程度上,我猜猪特征最好与超平面分开)。

当然,libsvm和Opencv中使用的数据集是完全一样的,无论是训练还是测试……为了完整起见,我使用了近9000个正样本和近30000个负样本。

这是我的两个问题:

  • 是否可以更改 opencv_traincascade 函数中的基础弱学习器?如果是,它是 svm 可能的选择之一吗?如果两个答案都是肯定的,我该怎么做?:)
  • 是否有其他计算机视觉或机器学习库将支持向量机实现为弱分类器并有一些方法来训练级联分类器?(这些库是否适合与 opencv 结合使用?)

一如既往地提前感谢您!

马可。

0 投票
2 回答
339 浏览

opencv - Opencv traincascade 无法填充临时阶段

所以,我有 20 个正样本和 500 个负样本。我使用 createsample 实用程序创建了 .vec 文件。现在,当我尝试使用 traincascade.exe 实用程序训练分类器时,遇到以下错误: 在此处输入图像描述

我研究了许多解决方案,这些解决方案是为面临类似问题的人提供的,但都没有奏效。

我尝试过的事情: 1. 增加负样本大小 2. 检查存储在 Negative.txt 文件中的负(或背景图像)的路径 3. 改变不同的参数。

以下是有关路径的一些信息: 我的工作目录包含以下文件: 1. Traincascade.exe 2. 正图像文件夹 3. NegativeImageFolder 4. vec 文件 5. Negative.txt(具有负图像文件夹中图像路径的文件)

我的 Negative.txt 文件具有负图像文件夹中图像的绝对文件路径。我还尝试将文件路径更改为以下格式:

NegativeImageFolder\Image1.pgm

但没有用!我也尝试了正斜杠和反斜杠!

我已经用完了更改文件路径或进行任何修改以使其工作的方法!

0 投票
1 回答
186 浏览

xml - 为什么opencv不能识别使用opencv_traincascade.exe格式训练的级联xml?

我已经训练了两个 cascade.xml 训练一个使用 opencv_traincascade.exe,另一个使用 opencv_haartraining.exe。当我使用用 opencv_traincascade.exe 训练的第一个 xml(图像)时,它显示错误“未指定的错误(节点不代表用户对象(未知类型?)”,但第二个 xml 工作正常(图像)Haarcascade 训练,但不好结果。我注意到两个xml都有不同的格式..任何人都可以请..?

0 投票
1 回答
2593 浏览

opencv - opencv级联分类器的stage.xml和cascade.xml中的值是什么意思

我试图从教程中检测到一些东西。训练完成后,将创建阶段文件和级联文件。我对算法有所了解,但我不知道这些文件中信息的含义。

这些值的含义是什么?

0 投票
1 回答
737 浏览

opencv - 需要 Haar Casscades 硬币(尤其是欧元硬币)

我需要 haar 级联分类器来检测硬币,特别是欧元,如果它们存在的话。几天来,我一直在尝试生成自己的结果,结果总是很糟糕。或者,你知道一个好的教程吗?谢谢

0 投票
2 回答
1380 浏览

c++ - OpenCV:detectMultiScale()从对象中给出太多点

我用一整天的时间训练我的电脑,opencv_traincascade使用 6000 多张类似于以下内容的正面图像检测 2 欧元硬币:

在此处输入图像描述

现在,我刚刚尝试运行一个简单的 OpenCV 程序来查看结果并检查文件cascade.xml。最后的结果非常令人失望:

在此处输入图像描述

硬币上有很多点,但背景上也有很多其他点。我用于训练的正面图像可能有问题吗?或者,我是否使用了detectMultiScale()错误的参数?

这是我的代码:

我也尝试减少邻居的数量,但效果是一样的,只是点数少了很多……在正面图像中,硬币周围有这 4 个角作为背景,这可能是个问题吗?我用 Gimp 从显示硬币的拍摄视频中生成了 png 图像,所以我不知道为什么要opencv_createsamples放置这 4 个角。

0 投票
0 回答
119 浏览

opencv - opencv gpu 无法加载特征类型 haar

我正在尝试使用基于 opencv gpu 的级联分类器。这是我尝试加载级联的快照

当我尝试在 cvRead 文件 /Users/ashok/ivsvn/3rdparty/trunk/opencv-2.4.8/modules 中加载未指定的错误(节点不代表用户对象(未知类型?))时出现以下错误/core/src/persistence.cpp,第 4991 行

这是级联文件的标题。

我有一个类似的级联文件,经过培训

与 gpu 负载一起工作的 LBP。关于这个问题的任何线索?

0 投票
1 回答
745 浏览

xml - Opencv级联分类器xml文件生成

我按照本教程生成了 xml 分类器文件,http://abhishek4273.com/2014/03/16/traincascade-and-car-detection-using-opencv/ 但我有很多问题需要澄清。

  1. 对于cars.info(face.info),这是正面汽车的确切位置,是吗? http://docs.opencv.org/2.4/doc/user_guide/ug_traincascade.html 这个opencv官方教程说的格式是这样的:

    img1.jpg 1 140 100 45 45 img2.jpg 2 100 200 50 50 50 30 25 25 似乎 140 100 是左上角的坐标。而45 45是车的宽度和高度,对吧?在这种情况下,如果我的火车数据来自http://host.robots.ox.ac.uk/pascal/VOC/ 一张图片的一个示例 xml 文件如下所示:

我可以安全地158 199 73 41放入cars.info,还是存在坐标系不匹配的风险?

  1. 有很多误报,有什么建议如何更改此命令行的参数?

    opencv_traincascade -data data -vec cars.vec -bg bg.txt -numStages 10 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -numPos 500 -numNeg 500 -w 48 -h 24 非常感谢~~

我绝对可以降低 maxfalsealarm 值,但这真的有帮助吗?训练要花很长时间,这就是我问的原因,对不起

0 投票
0 回答
393 浏览

java - Opencv java - 使用级联分类器检测数字

我使用 opencv_traincascade 实用程序创建了九个分类器(编号 1-9)。现在我想用它们来检测一些数字,问题是:当我传递一个带有数字的图像时,不止一个分类器检测到他的数字(例如数字1和7,因为它们看起来很相似),那么有没有办法找到出最佳匹配?提前致谢