HOG 用于“检测对象”opencv

Posted

技术标签:

【中文标题】HOG 用于“检测对象”opencv【英文标题】:HOG for "detecting object" opencv 【发布时间】:2011-11-30 08:01:57 【问题描述】:

我想知道,是否有任何代码或任何好的文档可用于实现 HOG 功能?我试图阅读文档here,但它很难理解,它需要 SVM ..

我需要的只是为物体实现一个 HOG 检测器......就像它所做的 SIFT 或 SURF 一样

顺便说一句,我对this 的工作不感兴趣。

谢谢你..

【问题讨论】:

我有点晚了,但是对于一个简单直接的示例,请参阅:***.com/questions/6090399/… 【参考方案1】:

你可以看看 http://szproxy.blogspot.com/2010/12/testtest.html

他还在 source forge 上发布了 HOG 的“教程”: http://sourceforge.net/projects/hogtrainingtuto/?_test=beta

我知道这一点,因为我遇到了和你一样的问题。该教程虽然不是我所说的教程,它是一堆源代码,没有文档,但我认为它可以工作并且至少可以让你到达某个地方。

【讨论】:

谢谢你的回答,但是为了检测人,opencv开源的samples中已经实现了教程,但是我不知道检测物体所需的参数..【参考方案2】:

Computer Vision System Toolbox for MATLAB 中有一个函数extractHOGFeatures。

【讨论】:

【参考方案3】:

最后并稍微简化一下,您需要检测图像中的特定对象是:

本地化“兴趣点”以提取补丁:

为了获得兴趣点,您可以使用一些算法,如 Harris 角点检测器、随机或简单的滑动窗口等算法。

从这些点获取补丁:

您必须决定补丁的大小。

根据这些补丁计算特征描述符。 (像 HOG)。

您可以使用其他特征描述符代替 HOG,例如 SIFT、SURF... HOG 的实现并不难。您必须在应用 Sobel X 和 Y 内核的情况下计算提取的补丁的梯度,然后您必须将补丁划分为 NxM 个单元格,例如 8x8,并计算梯度、角度和幅度的直方图。在下面的链接中你可以看到更详细的解释: HOG Person Detector Tutorial

在之前训练的分类器中检查您的特征向量

获得此向量后,请使用先前训练的分类器(如 SMV)检查它是否是所需的对象。例如,您可以使用 SVM 代替 SVM。

SVM 实现比较困难,但是有一些库比如 opencv 可以使用。

【讨论】:

以上是关于HOG 用于“检测对象”opencv的主要内容,如果未能解决你的问题,请参考以下文章

使用 HOG+SVM Opencv 检测对象的矩形

用于 HOG 训练的 LibLinear + grid.py (LibSVM)

『python』计算机视觉_OpenCV3目标检测器(待续)

OpenCV 中的 HOG 用于对整个图像进行分类

Otsu 算法、Canny 边缘和 HOG 用于文件夹中的多个图像

OpenCV - 使用 SVM 和 HOG 进行人员检测