问题标签 [haar-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 投票
0 回答
1079 浏览

c++ - OpenCV - 需要检测侧/前/后上身(颈部+头部),头部(从后部和前部) - 正确训练分类器

这是我的第一次 OpenCV Haar 分类器训练,我需要在图像中检测人并模糊他们的面部/头部/上半身(头部+肩膀),并且我正在拍摄静态图像,其中相机永远不会移动。

我开始从静态相机拍摄的样本图像中提取正面图像。我开始提取所有不同方向(后、前、侧)的头部、肩膀+头部,因为图像包含不同位置的人——想象一下餐厅或酒吧。

问题是我的正面图像不包含非常明显的对象,而是包含不同对象的集合(头部、肩部 + 头部、侧面头部、侧面肩部 + 头部、背面头部、背面肩部 + 头部)。我用 6 个阶段训练了分类器,只有 50 张正面图像和大约 600 张负面图像(取自在线存储库)。我尝试对图像进行分类器,它只检测到图像中的随机非对象片段。

我想知道,鉴于我的问题的背景,如果有人能指出我做这种检测和训练的正确方向 - 可能是分离分类器只检测头部,或只检测肩膀和头部等......或我可以在一个分类器中混合不同的位置吗

我已经尝试了 OpenCV 附带的所有不同的预生成分类器,它们在我的图像上的成功率非常低,因为图像实际上是从比人更高的位置拍摄的,并且它创建了一个角度。

0 投票
1 回答
734 浏览

javascript - Haar.js 将打开的 cv xml 转换为 javascript

该项目已停产,但项目文件仍然存在,只是我想使用该haar.js项目检测某些媒体文件(视频或图像)中的上身,项目文件夹中的当前级联不包含上身分类器,所以我将不得不使用他们的工具 ( haartojs.php)。

我做了以下事情:

  1. 为windows下载了php。
  2. 将我打开的 cv xml 文件复制到根目录。
  3. 运行cmd命令:php haartojs.php --xml=myfile.xml
  4. 似乎该工具正在工作,但我无法在任何地方找到输出文件。

我还检查了 php 文件源(我不是 php 专家),没有找到任何显示写入文件指示的行。

任何帮助将不胜感激。

php源文件: https ://github.com/foo123/HAAR.js/blob/master/cascades/haartojs.php

项目页面: https ://github.com/foo123/HAAR.js

这是输出的截图: 在此处输入图像描述

0 投票
1 回答
198 浏览

machine-learning - 调用opencv的cv::integral()函数时如何禁用sqsum的需要?

我想调用位于 sumpixels.cpp 的 cv::integral() 函数。我没有使用为平方和 (3d 参数 - OutputArray _sqsum) 计算的积分图像,并且想禁用它的计算以节省运行时间。

我对opencv环境不太熟悉。

尝试cv::integral()使用 3d 参数调用函数NULL- 没有用。我输入了函数(在 sumpixels.cpp),我看到有这一行:

所以我想我可以手动修改它以跳过那个 if 条件,但那会是什么后果呢?我稍后在调用 IntegralFunc func 方法时看到参数 sqsum 的使用,那么我应该向它发送什么而不是那个 sqsum?

非常感谢!埃亚尔

0 投票
1 回答
1969 浏览

android - 在 Mac OS X 上 Haar 级联训练 OpenCV

我正在尝试开发一个简单的 Android OpenCV 程序,它可以使用三星 Galaxy S3 相机检测白纸上的黑点。

为此,我刚刚从 OpenCV 示例中复制了人脸检测程序,并且我想添加自己的 Haar 级联来搜索点而不是人脸。我已经在这里坐了两天了,我找不到任何有用的东西——一切都是在 Windows 或 Linux 上制作的。

谁能告诉我一个提示如何在 Mac 上使用 Haar 级联制作我自己的 XML,或者是否有任何其他(更简单)的方法来实现它?

0 投票
1 回答
1777 浏览

c++ - 如何使用 opencv_haartraining 训练 haarcascade

我想使用 opencv 和 haartraining 来用新样本训练一个新的 haarcascade。我创建了 positives.dat 和negative.dat ,其中包含带有正面和负面图像的列表。下一步使用 opencv_haartraining.exe 训练 haarcascade。但是我对这里的文档感到困惑。知道如何使用 haartraining.exe 吗?我已经创建了一个正面和负面文件的列表。两个文件列表都包含仅包含对象的 19x19 正图像和 19x19 负图像的文件夹。我想使用 opencv_createsamples 创建正确的文件,以便使用 opencv_traincascade.exe 或 opencv_haartraining.exe 训练分类器。我正在尝试按照此处的说明进行操作:

我试图在不提供任何信息的情况下使用它们。该对象包含整个图像。我正进入(状态:

0 投票
1 回答
250 浏览

matlab - MATLAB 中 trainCascadeObjectDetector 中的内存不足错误

在训练过程中出现以下错误:

在 c:\temp\a3p0_3607_2384\win32\opencv\modules\core\src\alloc.cpp 中使用 ocvTrainCascade 时出错:内存不足。

trainCascadeObjectDetector 中的错误(第 265 行)ocvTrainCascade(filenameParams,trainerParams,cascadeParams,boostParams,...

CascadeTrainGUI/trainDetector 中的错误(第 1965 行) trainCascadeObjectDetector([CTS.SessionName '.xml'], ...

评估 uicontrol 回调时出错

0 投票
1 回答
656 浏览

c++ - OpenCV在一个窗口中检测多个对象-未绘制

我有一个 OpenCV 程序,它使用多个 Haar 分类器在单个窗口中检测多个对象。检测到第一个对象并按照应有的方式绘制椭圆但是当检测到两个辅助对象时,不会为检测到的每个实例绘制圆(检测到对象时我将输出到控制台)。

我正在指定三个分类器,如下所示:

然后我使用以下方法加载分类器:

然后我为三个对象创建三个向量:

然后我使用以下代码检测并在屏幕上绘制对象:

更改每个对象cascade_one firstObjectcascade_name相关名称。为什么第一个对象工作正常,但第二个和第三个对象虽然没有在屏幕上全部绘制,却输出了多个检测?

编辑:

完整的检测和绘制代码:

0 投票
0 回答
492 浏览

c++ - 是否有估算 OpenCV HAAR 训练时间的计算方法?

有没有人有计算或方法来估计计算机使用 OpenCV 2.4.10 训练 HAAR 级联文件所需的时间?如果没有计算,那么进行时间估计的好方法是什么?

我对计算机视觉有了更多的了解,并且已经阅读了很多博客和 OpenCV 网站,但压倒性的反应是它只需要“一段时间”,而不是更详细的时间安排或如何估算时间需要训练。

我确实理解变量范围很广,CPU、操作系统、RAM、样本数量(正负)以及 OpenCV 的版本都很重要。但我想尝试了解这需要多长时间,而不是像我估计的那样在 8 小时到一周之间波动。

0 投票
1 回答
1186 浏览

c++ - 在静态相机图像中检测人的最佳方法(不使用视频流)-OpenCV 中的 HOG、Haar、BackgroundSubtract?

所以我计划实施人体检测静态相机图像 - 相机永远不会移动,但照明条件确实会改变。人类可以是直立的,也可以是坐着的。

问题:

在这种情况下,在这种设置中检测人会更好吗?

Haarcascade主要处理面部和眼睛,我的图像是从这些特征极难检测到的角度拍摄的,尤其是对于背对着相机的人来说。

HOG 功能- 我不确定这个

backgroundSubtractorMOG - 即使使用大量图像“运行减法器”来构建背景,现在似乎也没有提供很好的结果

没有人的示例图像: 在此处输入图像描述

0 投票
1 回答
1190 浏览

android - 在 OpenCV 相机上渲染 3D 对象

当我使用 haar 级联分类器检测到一个对象时,是否可以在检测到的区域上渲染一个 3d 对象?

假设我检测到一张脸,我想在脸部区域渲染超级马里奥。我知道我必须使用 OpenGL ES 来渲染对象。

应该是 SurfaceTexture 的东西吗?一个建议也会很有用!先感谢您!