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 训练的 LibLinear + grid.py (LibSVM)
『python』计算机视觉_OpenCV3目标检测器(待续)