问题标签 [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.
c++ - 级联人脸检测C++ Opencv 3.0
我正在尝试实现教程中提到的人脸检测
我在 Ubuntu 14.04 上使用 OpenCV 3.0。
我从这里下载了级联 xml 文件
https://github.com/opencv/opencv/tree/master/data/haarcascades
当我编译代码时,它给了我这个错误消息:
有什么建议吗?
matlab - 在 MATLAB 中为 trainCascadeObjectDetector 生成样本时出错
我试图在 matlab 中使用 30 个具有指定 ROI 的正图像和 10 个负图像(没有指定 ROI)来训练级联对象检测器。我的代码类似于“停车标志检测器”的 matlab 示例代码。但是当我尝试运行我的代码时,会出现这些错误:Error using ocvTrainCascade Error in generate samples for training。无法生成用于训练第一个级联阶段的样本。
我的代码是从给定的面部图像中检测“嘴”。作为正图像,我选择了人脸图像,其中 ROI 指定了嘴巴区域。作为负面图像,我选择了这样的图像:
http://i.stack.imgur.com/7X1BK.png
谁能告诉我我应该怎么做才能更正我的代码?
python - 改进 LBP/HAAR 检测 XML 级联
我正在尝试使用 Python 2.7 和 OpenCV 2.4.13 从无人机图像中进行汽车检测器。目标是在城市环境中从任何方向的俯视图检测汽车。我面临时间执行和准确性问题。
当我将它与从互联网上获得的一些级联一起使用时,检测器工作正常:
- 香蕉分类器(显然它不检测汽车,而是检测它识别为香蕉的物体):(coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html)
- 来自 OpenCV 的人脸检测级联(与香蕉分类器的行为相同)
对于检测本身,我使用detectMultiScale()
withscaleFactor = 1.1-1.2
和minNeighbors=3
检测在 4000x3000 像素图像中的合理时间(几秒)内执行。
当我尝试使用自己训练有素的分类器时,就会出现问题。结果不好,检测时间很长(半个多小时)
为了训练,我从一个有很多汽车的停车场的大型正射镶嵌图(我缩小了几次)中提取了正片和负片图像。我总共提取了 50 辆汽车(25x55 像素),然后我水平反射,从同一个正射镶嵌图中得到 100 个正图像和 2119 个负图像(60x60 像素)。我将此集称为图像的“完整集”。从那个集合中,我创建了一个子集(4 个正数和 35 个负数),我称之为“虚拟集”:
对于训练,我使用了opencv_createsamples
and opencv_traincascade
。我从 100 张正面图像中创建了 6000 个样本,将汽车从 0 度旋转到 360 度:
所以现在,我有 6000 个 60x60 像素的汽车样本图像,它们在随机背景上的任何方向。
然后我执行mergevec.py
创建samples.vec
文件,并运行训练应用程序opencv_traincascade
:
使用这种方法,我训练了四个分类器,两个使用完整集,另外两个使用虚拟集,每组一个 LBP 和一个 HAAR。我得到的结果如下:
- 假人组,LBP:训练在 1 个阶段停止。快速检测,未检测到物体
- 假人组,HAAR:训练在 1 阶段停止。检测需要很长时间(或至少半个多小时)。我中断了这个过程,因为它显然不起作用。
- 全套,LBP:训练停止在 6 个阶段。检测速度非常慢(在 500x400 像素图像中需要 1-2 分钟,使用 scaleFactor = 2)。当图像中至少有 10 辆汽车以及用于训练的同一图像时,检测很少数量的对象 (2),它们都不是汽车。
- 全套,HAAR:我在第 4 阶段停止训练以测试它。与 Dummy 集的行为相同。
我做错了什么?由于香蕉和面部级联在合理的时间内工作并检测到物体,问题显然出在我的级联中,但我不知道为什么。
我真的很感谢你的帮助。在此先感谢,费德里科
opencv - 使用 CascadeClassifier_GPU (openCV) 检测眼睛
我试图cacadeClassifier_GPU
在 OpenCV 中同时检测面部和眼睛。检测面部工作正常,但它没有检测到任何眼睛。我在 Visual Studio 2010 中使用 opencv 2.4.9(gpu 版本)。
这是我的代码。
python - opencv_createsamples:背景描述文件无效?
我正在尝试使用 OpenCV 在 Ubuntu 16.04 上运行创建示例,并且在运行时我不断遇到此错误。我有大约 1960 张负片图像,我正试图从中生成样本图像。我在终端中运行的是:
和和缩写的输出是:
我没有得到的是它似乎能够正确解析文件并找到图像......但它一直说描述文件不正确......
c++ - OpenCV 的 Cascade 分类器是否使用多个核心?
最近我编写了自己的修改版本(单线程 CPU 代码)的 Cascade Classifier,它使用 OpenCV 的 XML 文件。
我想将我的裸 VJ 算法与 OpenCV 进行比较。所以我禁用了 OpenCL,当我运行 OpenCV 时,处理整个图像需要 19-23 毫秒,而我的代码需要 39-49 毫秒,慢 2 倍。
我怀疑这是因为我的 CPU 中有 2 个内核,它们使用并行 for 循环来提高效率。我对吗?
如果错误,OpenCV 代码中的并行循环对整体性能有多大影响?
python - 消除 OpenCV 人脸分类器检测到的误报
我正在处理热视频。我的项目实时确定每一帧是否包含人脸。我所说的“包含一张脸”是指:
(一张脸,这个尺寸和角度,每帧)
为此,我训练了一个 LBP 级联分类器。如上所示,分类器的性能非常好,并且能够以非常低的假阴性几率检测热人脸。然而,误报率相当惊人。检测到虚空中的非人脸物体,如下图。
注意:这些图像被用作负样本
通过调整detectMultiScale
方法的参数,可以减少误报的数量。但是,scaleFactor
对于 1.5 和minNeighbors
10,我仍然有 20% 的时间得到误报。
对于级联训练,我有 600 个负图像(60x80)和 90 个正图像(60x50),其中生成了 1200 个正样本。
那么在不影响检测速度或帧速率的情况下,还有哪些其他可能的解决方案或解决方法呢?
编辑:我尝试通过在负图像上使用经过训练的分类器并标记假负以将它们包含在下一次训练中来从我的样本中提取硬负。到目前为止,我已经能够将误报率降低到 12% 左右。但是我仍然对这个结果不满意。
c++ - OpenCV级联分类器加载错误iOS
目前我正在尝试使用 OpenCV Cascade Classifier 来检测我的 iOS 应用程序中的人脸。问题是当我去加载分类器时,它失败了,因为“haarcascade_frontalface_alt.xml”的路径名不正确。
这是我的代码:
无效检测面(cv::Mat 框架){
}
由于这是一个 iOS 项目,我不知道如何在框架中找到所需 xml 文件的路径。将级联分类器加载到 iOS 项目中的正确方法是什么?或者,包含正确文件名以便正确看到它的正确方法是什么?
任何帮助,将不胜感激。