问题标签 [viola-jones]

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 回答
726 浏览

matlab - 如何获取 Matlab 级联目标检测器的数据?

我想在 Matlab 中使用 trainCascadeObjectDetector。它需要一个包含图像感兴趣区域的数组。我发现了两个应用程序,您可以在其中将框放在 rois 周围并自动创建阵列:

Cascade Trainer:指定地面实况,训练检测器

训练图像贴标机

不幸的是,它们都需要 Matlab R2014,而我只得到了 R2013。有没有其他方法可以在不手动创建数组的情况下定义 rois?

问候菲利普

0 投票
1 回答
1263 浏览

image-processing - 训练级联分类器

我有一些关于级联分类器训练的问题:

  1. 在我的一些照片上,物体的一半是可见的。我应该将可见部分标记为感兴趣区域,将图片用作负样本还是将其完全整理出来?
  2. 分类器是否能够检测到仅部分可见的对象(使用 Haar 特征)?
  3. 负样本和正样本的比例应该是多少?我经常读到你应该使用更多的负样本。但是例如在这个线程中提到该比率应该是 2:1(更多的正样本)。
  4. 我当前的分类器检测到很多误报。根据教程,您可以增加阶段数或降低每个阶段的误报率。但是我不能在不增加误报率的情况下增加阶段数。如果我只是增加阶段的数量,训练会在某个时候停止,因为分类器的样本用完了。减少误报以增加样本数量的唯一方法是什么?

如果有人能回答我的一个问题会很高兴:)

0 投票
1 回答
224 浏览

c++ - OpenCV 级联分类:快速对比拉伸常数

在论文“Empirical analysis of detection cascades of boosted classifiers for rapid object detection”的第 2.3 节中,作者谈到了快速对比度拉伸。我在 OpenCV 或 Matlab 中没有看到任何对这种预处理的引用。通常必须在级联分类器中插入方差归一化子窗口,但在论文中指出,图像是通过乘以标准偏差的任意常数进行归一化的。我不知道在训练级联特征阈值时是否真的考虑了这个常数(论文中的 c=2),如果没有,我如何使用这个操作来避免在检测过程中使用另一种更复杂的对比度增强技术。任何提示都会非常有用。谢谢

问题编辑:在 OpenCV 级联分类“代码”中,与创建级联时使用的 Lienhart 相比,确切地应用了对比度拉伸常数 (c=2),这在此处引用的论文http://docs.opencv.org中进行了描述/modules/objdetect/doc/cascade_classification.html?我找不到它了。谢谢

0 投票
2 回答
1437 浏览

viola-jones - Viola-Jones - 24x24 窗口是什么意思?

我正在学习 Viola-James 检测框架,我读到它使用 24x24 碱基检测窗口[1][2]。我在理解这个碱基检测窗口时遇到了问题。假设我有一张 1280x960 像素的图像,里面有 3 个人。当我尝试对此图像执行人脸检测时,算法会:

  1. 将图片缩小到 24x24 像素,
  2. 用 24x24 像素的大部分平铺图片,然后测试每个部分,
  3. 将 24x24 窗口定位在图像的左上角,然后在整个图像区域上移动 1px?

任何帮助表示赞赏,甚至是指向另一个解释的链接。

资料来源:https ://www.cs.cmu.edu/~efros/courses/LBMV07/Papers/viola-cvpr-01.pdf

[1] - 第 2 页,积分图像前的最后一段

[2] - 第 4 页,结果

0 投票
1 回答
2098 浏览

matlab - matlab中的人脸检测(viola-jones)

所以我在matlab中找到了级联对象检测器,它使用Viola-Jones算法来检测人脸。非常容易使用,而且效果很好!

但是有几个问题。

viola-jones 方法有四个阶段:

  1. 哈尔特征选择
  2. 创建一个完整的图像
  3. Adaboost 训练
  4. 级联分类器

在 matlab 中,我可以使用 FrontalFace(CART) 和 FrontalFace(LBP)。这些是经过训练的级联分类模型,所以它们将成为第 4 阶段的一部分,对吧?但是如果我使用 FrontalFace(CART),第 1 阶段和第 4 阶段有什么区别?两者都使用它所说的 Haaar 功能。

我们可以说 FrontalFace(CART) 和 FrontalFace(LBP) 是两种不同的人脸检测方式吗?我可以将这两个相互比较,看看哪个更好吗?还是我应该找到另一种方法来与中提琴琼斯进行比较?

matlab中还有其他容易实现的人脸检测方法吗?在互联网上找到了一些(使用肤色等),但 Matlab 对我来说很新。所以我觉得那些代码对我来说有点复杂。

0 投票
2 回答
675 浏览

python - OpenCV 中 Viola-Jones Haar 级联的理想图像

我正在尝试使用 OpenCV 中的 Haar 级联检测图像中的特定对象。

假设我对检测风景图像中的停车标志感兴趣。在为我的训练集定义正图像样本时,哪种图像是最好的:(a)我的对象的完整图像,(b)中等裁剪或(c)紧凑裁剪?

停止标志

同样,什么最适合负面图像?这会影响过拟合吗?我也会感谢有经验的人提供的任何其他一般提示。谢谢。

图片参考: http: //kaitou-ace.deviantart.com/art/Stop-sign-on-a-country-road-Michigan-271990933

0 投票
1 回答
1409 浏览

matlab - 如何在 Matlab 中编辑“mexopt.bat”文件?

我有 Matlab R2014b 和 OpenCV 2.4,我一直在尝试使用 ViolaJones 人脸检测工具箱,但我遇到了一些麻烦。我已经搜索了问题并找到了建议编辑mexopt.bat文件的解决方案。真正的问题在这里

Matlab 命令

返回

C:\Users\simit\AppData\Roaming\MathWorks\MATLAB\R2014b\mexopts.bat

但是当我转到路径时找不到文件。如何找到mexopts.bat文件并进行编辑?

0 投票
0 回答
288 浏览

viola-jones - 如何计算 Viola Jones 算法中的特征缩放?

我对如何在 Viola Jones 算法中计算特征缩放感到困惑。例如在王一清的“An Analysis of the Viola-Jones Face Detection Algorithm”中,他对特征类型“a”提出了以下建议:

  1. 设置原始特征支持大小 a ← 2wh
  2. i <- Jie/24K, j <- Jje/24K, h <- Jhe/24K 其中 JzK 定义最接近 z ∈ R+ 的整数
  3. w <- max{κ ∈ N : κ ≤ J1 + 2we/24K/2, 2κ ≤ e - j + 1}
  4. 计算 [i, i + h - 1] × [j, j + w - 1] 中像素的总和 S1
  5. 计算 [i, i + h - 1] × [j + w, j + 2w - 1] 中像素的总和 S2
  6. 返回缩放特征 ((S1−S2)a)/2wh

在这种情况下,我不明白如何计算“w”(第 3 行)。你知道另一种计算特征缩放的方法吗?

另一方面,我们知道强分类器有弱分类器、极性和阈值。弱分类器取决于特征。当我们缩放一个特征时,它的阈值有什么变化吗?

0 投票
1 回答
112 浏览

computer-vision - Viola-Jones 人脸检测:像素之间的高对比度

我们正在使用 Viola-Jones 进行人脸检测。该算法运行良好,几乎没有误报。但是,我们有误报。我们检测到一种非常明显的假阴性模式,即面部像素的灰度值与背景像素之间的对比度非常高。

对于假阴性,如果将图像转换为单个灰度矩阵,我们会看到类似这样的内容 - 255 表示白色像素,即背景,而低得多的值是面部(即较暗)像素)

在这些情况下,算法无法检测到人脸。我尝试了我们自己的代码和一个网络可用的 api,结果相似(在相关图片上都没有检测到人脸。

对于真阳性,对比度不是那么高,您可能会看到如下内容:

其中较高的值是背景像素(有但不是完全白色,它们有一些灰色),较低的值对应于面部(较暗)。

有没有人遇到过这个问题和/或有任何建议?

0 投票
1 回答
1896 浏览

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

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

在此处输入图像描述

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

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

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