首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV -使用支持向量机和HOG进行人员检测

OpenCV -使用支持向量机和HOG进行人员检测
EN

Stack Overflow用户
提问于 2016-01-25 04:38:27
回答 1查看 5.6K关注 0票数 3

我知道完成这项任务所需的步骤:

  1. 收集培训集(正负两组)。
  2. 提取用于训练SVM的每幅图像的hog描述符(当前“1”类标签表示正类,“-1”类标签表示负值)。
  3. 将经过训练的支持向量机设置为HOGDescriptor,并使用检测/检测多尺度。

我已经完成了上述所有步骤。我只是搞不懂,HOGDescriptor.DetectMultiScale检测的是哪个类?它是否只检测到阳性类标签(1)?

EN

Stack Overflow用户

发布于 2016-01-25 09:13:44

在计算机视觉中,视觉描述符或图像描述符( HoG)是对图像中内容的视觉特征的描述。它们描述了基本特征,如形状、颜色、纹理或运动等。因此,HoG描述符只描述图像中显示的场景,即在街道上行走的行人,您可以在下面看到一个示例HoG描述符(HoG只计算图像局部区域中出现的渐变方向):

支持向量机是一种用于分类、回归和孤立点检测的监督学习方法。但是,支持向量机最初是一种构建最优二进制(2类)分类器的技术,因此支持向量机就可以决定描述符的含义。也就是说,HoG的输出是SVMs的输入,后者的输出是+1或-1。

OpenCV提供了一个隐藏此操作的接口,整个对象检测可以通过函数调用来完成。这就是HOGDescriptor::detectMultiScale()所做的,它使用多尺度窗口执行对象检测.一旦一个cv::HOGDescriptor hog实例被声明,那么支持向量机分类器的系数也应该由以下方法来完成:

代码语言:javascript
运行
复制
hog.setSVMDetector(cv::HOGDescriptor::getDefaultPeopleDetector());

然后detectMultiScale()执行完整的对象检测(描述符提取和二进制分类一起),并返回每个候选对象的边框:

代码语言:javascript
运行
复制
std::vector<cv::Rect> found;
hog.detectMultiScale(frame, found, 0, cv::Size(8,8), cv::Size(32,32), 1.05, 2);
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34985196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档