问题标签 [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.
face-detection - Viola jones 弱分类器解释
我一直在尝试理解 viola n jones 关于人脸检测的论文。我不完全确定第 3 节中这个方程的参数是什么意思
我f
的理解是 feature() 是通过在x
.
我无法正确理解的是阈值“theta”和极性“p”。这是否p
意味着正面形象和负面形象并且可以具有+1或-1的值?以及如何计算theta。这个等式对于提升部分至关重要,所以我不能更进一步。如果我让自己足够清楚,请提供帮助。
algorithm - 高效整合检测结果
在Viola 和 Jones 的论文第 5.6 节中,作者提到他们集成了检测器在扫描图像中的人脸时所做的多个检测。在这种情况下,检测只是一个矩形区域,位于检测器认为存在面部的图像上。积分是重叠矩形区域的简单组合。这很有用,因为检测器可能会在扫描图像时围绕单个人脸产生许多检测。
请注意,许多检测可能不会与其他检测重叠,因此可能有多个集成检测。例如,考虑一个有 2 个面孔的图像,A
并且B
。还要考虑图像具有区域C
并且D
与面部非常相似,但不是面部。在这种情况下,检测器可能会产生 3 次人脸A
重叠检测、5 次人脸重叠检测B
、1 次区域检测C
和 10 次区域重叠检测D
。考虑到一个区域的检测与另一个区域的检测不重叠,集成过程应该产生一个最终的人脸A
检测,另一个人脸检测B
,另一个区域检测C
以及对 region 的另一个单一检测D
。应该向用户显示这 4 个集成检测。
因此,为了整合检测,有必要将它们分成重叠检测的子集。但是我们应该将与子集中已经存在的任何检测重叠的任何检测添加到子集中。对检测列表的简单迭代将表现不佳(Ω(n²))。
那么我的问题是:什么数据结构和算法允许快速集成检测?请务必提供一些关于您所提到的方法的文学证据(例如论文或书籍参考)。
matlab - 在 MATLAB 中使用 Viola 和 Jones 进行实时人脸检测
我正在寻找从笔记本电脑摄像头捕获的实时视频中检测人脸。我使用没有任何级联对象分类器功能的 MATLAB R2011a(不是最新的)来识别人脸检测。
我使用了一个包http://www.mathworks.in/matlabcentral/fileexchange/29437-viola-jones-object-detection
这段代码能够适度识别图像,但是当我在视频上做同样的事情(拍摄每一帧并识别其中的人脸)时,它会花费大量时间,因此无法流式传输视频。
所以,
- 我应该如何使用 MATLAB R2011a 实时检测人脸
- viola & jones 算法适合吗?
- 我可以使用任何外部实现吗?
c++ - 我是否必须使用我的数据库训练 Viola-Jones 算法才能获得准确的结果?
我尝试提取面部数据库的面部特征,但我发现 Viola-Jones 算法在两种情况下效果不佳*:
- 当我试图单独检测眼睛时,
- 当我试图检测嘴巴时。
*效果不佳:将图像的不同部分检测为眼睛或嘴巴。或者有时会检测到其中的几个,这是不可能的情况。我使用的图像具有纯绿色背景,并包含一个人的正面。
检测.cpp:
主.cpp:
我正在使用,
- haarcascade_mcs_righteye.xml用于右眼检测,
- haarcascade_mcs_lefteye.xml用于左眼检测
- haarcascade_mcs_mouth.xml用于嘴部检测。
我必须用我的数据库训练算法吗?是否可以在不训练算法的情况下解决此问题?如果不是,我该如何用 AdaBoost 训练它?
c++ - 如何在所需像素之间搜索对象?
正如我在上一个问题中提到的,我无法获得关于使用 Viola - Jones 算法检测面部特征的准确结果。尤其是在单独获取眼睛和嘴巴时,效果并不好。但是检测面部、眼睛和鼻子是没有问题的。所以我想到了一个简单的算法:
- 第 1 步:检测人脸
- 第 2 步:检测眼睛配对
- 第 3 步:在眼睛下方寻找鼻子
- 第 4 步:寻找鼻子下方的嘴巴
- 步骤 5:找到眼睛对的中点。在中点右侧和鼻子上方搜索左眼。
- 第6步:对右眼做同样的事情。
在检测对象时,我使用cvHaarDetectObjects方法。但是使用这种方法似乎无法在所需像素之间搜索对象。那么是否有类似“获取此图像,并在 x 和 y 之间搜索鼻子,以及 x + 宽度和 y + 高度像素并给我鼻子的坐标”之类的功能。
任何帮助appriciated。
algorithm - 各种图像处理算法所需的每英尺像素 (PPF)?
我正在处理一个需要处理图像/视频以检测帧内某些对象的项目。对于这个项目,我负责选择硬件(图像传感器、镜头、处理器等),出于成本限制的原因,我想选择成本最低的图像传感器。对于应用程序,相机将遵守以下两个要求:
- 相机将处于固定位置
- 到感兴趣对象的距离是已知的
所以,我想知道是否有如下数据/建议:
“基于算法 X(例如人脸检测),选择图像传感器/镜头组合,使感兴趣的对象被至少 40 像素/英尺的像素密度覆盖。”
对于一些用例,例如人脸检测或人脸识别,我在网上找到了一些材料,这些材料建议了最低 PPF 要求,以确保将可接受的数据提供给算法(人脸检测的像素密度要求)。显然,任何检测要求都严重依赖于算法,但我希望也许有人可以提供他们遇到的一些见解或资源来解决这个问题。
一些(稍微)更具体的信息 - 如果可能的话,我希望能够执行以下操作:
- 执行面部检测(不一定是识别)
- 从正面、背面和顶部识别/检测人
另外,我知道有可用于计算机/机器视觉的图像处理库(例如 OpenCV),这个库(或类似的库)是否包含这些信息?我会调查它,但如果有人有一个特定的库可以参考,那将非常有帮助。
谢谢!
face-detection - 如何为人脸检测器的adaboost方法指定弱分类器的阈值
我已经阅读了 Rapid Object Detection using a Boosted Cascade of Simple Features。在第 3 部分中,它定义了一个弱分类器,如下所示:
我的问题是:如何指定阈值theta_j
?
对于强大的分类器,我的问题是这样的:
c++ - 当帧中没有人脸时,OpenCV 中的人脸检测器会变慢
我正在尝试使用 OpenCV 中的 Viola-Jones 人脸检测器实现带有网络摄像头输入的人脸检测程序,它工作正常,只是当帧中没有检测到人脸时它会慢 10 倍。
这真的很奇怪,因为如果框架中没有人脸,大多数窗口将在级联的早期阶段被拒绝,我猜它应该稍微快一些(不慢!)。
由于某些原因,我正在使用 detectMultiScale 函数(不是 cvHaarDetectObjects 函数),但我认为这无论如何都不重要。
谁能给我一个关于这个问题的建议吗?提前致谢。
matlab - 使用 Haar 特征进行级联目标检测器 MATLAB
我正在尝试使用vision.cascadeObjectDetector
(MATLAB)从闭路电视录像中检测头部(而不是面部)。到目前为止,我已经尝试了以下方法:
- 用于
vision.cascadeObjectDetector
检测人脸。 - 训练它检测标志(自述文件中显示的示例)
- 创建了一个包含正面和负面训练 HEAD 图像的文件夹,以及用于测试的相同文件夹
- 尝试使用创建一个 .mat 文件
trainingImageLabeler
(尽管在尝试将其作为参数传递给对象检测器时它给了我一个错误)。
有人可以尝试让我走上正轨,开始使用 Viola-Jones Haar 功能检测头部吗?
c++ - 使用 opencv + viola jones 运行缓慢
我正在尝试使用 opencv 级联实现人脸检测 viola jones 分类器。这是我正在使用的代码:
问题是它说这是 opencv 中的 viola jones 实现,通常需要 30fps 才能运行(来自作者方面),但它需要 6 秒才能运行正常的高清图像以进行 1920x1080 左右的人脸检测。我想问一下实施是否正确,或者我实施该方法的方式有什么问题,有什么办法可以让它更快吗?cascade.xml 是我使用示例图像训练的文件。谢谢你。