问题标签 [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 回答
684 浏览

c++ - OpenCV Traincascade.exe 崩溃且无输出

这是我第一次尝试使用opencv的级联训练机制。我正在尝试基于一个正图像和 3 个负图像的小图像集。我按照官方 opencv 文档的说明进行操作

负面图像由描述文件引用bg.txt

负片图像有不同的尺寸(都在“1920 x something”像素范围内)。

正图像用于生成矢量文件

到目前为止一切正常,没有错误。我猜矢量文件vecFile.vec不可读是正常的,因为它存储了 5000 张图像。

当我现在想通过使用应用级联训练时

程序崩溃而没有任何输出(“程序已停止工作”)。知道为什么会这样吗?我忘记了一些重要的参数吗?

我正在使用 Windows 10 和 opencv 3。

0 投票
0 回答
399 浏览

image-processing - Opencv haar 训练参数:模式和对称性

我正在使用 Opencv 3.0
在开始训练之前我想将“模式”参数设置为“全部”
下面是命令行参数

C:\OpenCV\build\x64\vc12\bin\opencv_traincascade.exe -data cascade -numStages 20 -vec samples.vec -bg NegativeSet.txt -precalcValBufSize 3750 -precalcIdxBufSize 3750 -numPos 333 -numNeg 922 -minHitRate 0.995 -maxfalsealarm 0.5 -w 36 -h 28 -模式全部

即使我明确指定模式参数,它仍然使用默认值(BASIC),如下所示

我的第二个问题是,如何使用 -nonsym ?
如果我在末尾或命令行参数之间的任何位置附加 -nonsym,一旦我传递参数(一旦我在 cmd 中按回车键),训练就会崩溃,
它会显示“opencv_traincascade.exe 已停止工作”

下面是 cmd 行参数,包括 -nonsym

C:\OpenCV\build\x64\vc12\bin\opencv_traincascade.exe -data cascade -numStages 20 -vec samples.vec -bg NegativeSet.txt -precalcValBufSize 3750 -precalcIdxBufSize 3750 -numPos 333 -numNeg 922 -minHitRate 0.995 -maxfalsealarm 0.5 -w 36 -h 28 -mode ALL -nonsym

感谢和问候

0 投票
1 回答
1896 浏览

opencv - 我可以使用 OpenCV train_cascade 检测到的最小尺寸对象是多少?

我正在为电源插座创建分类器(特别是在标准插座面板上出现两次的三个开孔,而不是整个面板本身)。

在此处输入图像描述

我的问题是,正图像的理想特征是什么?我应该将什么宽度和高度传递给 train_cascade 以使我的对象检测器能够检测到最小的可能出口?即从尽可能远的距离检测它们?我也关心准确性,并且对需要数周训练的分类器很好(假设它实际上正在取得进展)。

还有一个问题可以增加我对此的理解:我传递的宽度和高度是否会传递给train_cascade将传递给每个图像的搜索框的尺寸?如果是这样,并且我希望我的检测器检测到非常小的物体,那么我应该通过一个小的宽度和高度,对吗?

我希望能够检测到非常大和非常小的插座实例。从非常近的距离(相机实际上距离插座 3 英寸)到至少几英尺远。

0 投票
1 回答
328 浏览

opencv - 如果我的对象是标准化的,我可以使用带有一个正图像的 .vec 文件进行 OpenCV 对象检测吗?

我正在构建一个分类器来检测电源插座。特别是插座的三个孔,如下所示:

电源插座

除了使用 OpenCV 的实用程序创建一个.vec具有相当多角度变化的文件之外,我是否需要做更多的事情来生成正片?createsamples看起来是这样,因为我的对象是标准化的(除了出口孔之间可能是深色的)。

我看到很多人提供了一个info.dat或类似的文件,其中包含许多正图像的路径,包括正文件中要检测的对象的数量和位置。如果我可以避免这些额外的工作并且仍然获得出色的检测结果,我愿意。

我确实希望能够从所有可检测的角度检测不同尺寸的插座(即从不同的距离)。

如果在使用它创建样本之前该文件有理想的尺寸,那也会很有帮助。

0 投票
2 回答
864 浏览

opencv3.0 - Opencv_traincascade - 经过 5 个阶段 - 无法填充临时阶段的训练数据集。分行培训终止

我看过这个答案,它指出当负图像的描述文件是使用不同于的工具创建时,可能会发生这个问题Opencv_createSamples,但这里不是这种情况。

中断发生在第四和第七阶段之间。在另一篇文章中,有人建议此消息意味着分类器无法改进,但只有 5 个阶段,至少很奇怪。

对于训练,我numPos=800正在使用 vec 文件(60x60 像素)包含 1200 个正样本。此外,我使用了 1491 个负样本(30x30 像素)。我对参数进行了各种更改,但都没有奏效。

对于最后一次尝试,我使用了如下参数:

0 投票
0 回答
528 浏览

c++ - 具有拒绝级别的级联分类器 detectMultiScale

我正在使用 OpenCV 3.1 和 VC++ 2015 上的级联分类器进行对象检测。我想强制级联为每个图像只检测一个对象,并且我想获得它的准确度分数。为此,我尝试将 CascadeClassifier::detectMultiScale 方法的未记录原型与拒绝级别一起使用。记录的版本运行良好。但是具有拒绝级别的版本仍然执行了很长时间而没有给出任何结果。这是我下面的源代码。

0 投票
1 回答
495 浏览

opencv - opencv_traincascade 的推荐参数是什么?

我正在使用OpenCv 2.4.10.

我最近尝试创建自己的级联分类器来检测机器人;我有 240 个负样本和 650 个正样本。但是我对应该赋予opencv_traincascade.

  • numNeg: 说明每个阶段使用的负样本数。我应该如何计算这个参数?
  • numStage我应该如何告诉想要的阶段数?
0 投票
1 回答
220 浏览

c++ - 当使用rejectLevels 和levelWeights 调用重载时,DetectMultiScale 永远不会返回

我正在尝试修改基于 OpenCV 的代码,以从级联分类器中获取每个检测到的对象的置信度。当我调用's方法的重载时,该方法为and取出参数(并为 传递 true ),调用永远不会完成。在内部,调用CascadeClassifierdetectMultiScalerejectLevelslevelWeightsoutputRejectLevelsdetectMultiScaleNoGrouping很快完成,但返回数百万个对象。当我不传递任何一个额外的输出参数并设置outputRejectLevels为 false 时,相同的调用返回 60 个对象,并且函数的其余部分工作正常。

我不应该称之为重载吗?还是有不同的原因导致它返回了如此多的值以至于函数永远不会完成?我怎样才能正确地做到这一点?

注意:我看到另一个问题似乎引用了相同的问题,但它没有包含有关问题本身的太多信息,也没有得到任何答案。

0 投票
0 回答
75 浏览

android - Android 在纵向模式下运行时出现 Javacv 错误

我正在开发一个具有人脸检测功能的 Android 应用程序。我正在使用 javacv 来实现这一点。当我以横向模式运行应用程序时,它工作正常。但是当我在纵向模式下运行应用程序时,我在 void 中得到“ OpenCV 错误:解析错误 (/data/data/com.example.learning/cache/lbph.yml(1270): Bad format of floating-point constant) icvProcessSpecialDouble(CvFileStorage*, char*, double*, char ),文件 /home/saudet/projects/javacv-cppjars/opencv-2.4.6.1/modules/core/src/persistence.cpp**”。

当我尝试加载分类器(从 res/raw 目录)时出现此错误。

如何解决这个问题?

0 投票
1 回答
2001 浏览

linux - OpenCV:检测具有特定颜色的猫。琐碎的?

我有一个问题,我的猫被一只猫欺负,以至于猫在夏天进入我们的房子,吃我们的猫食并睡在我们的家具里。

我的猫是灰色的,问题猫是棕色的。

我想在 Linux 机器上使用 WiFi 动作摄像头和 OpenCV 检测来制作警报系统,但我不再做太多编码了。

所以我的问题是。这是使用标准 OpenCV 模块的简单任务吗?

还是需要大量的原始代码?

我知道有 OpenCV Cascade Classifier,但从未使用过。

亲切的问候

雅各布