学习
实践
活动
工具
TVP
写文章

HOG 特征

简介 方向梯度直方图(Histogram of Oriented Gradient, HOG特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。 它通过计算和统计图像局部区域的梯度方向直方图来构成特征Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。 HOG特征描述子提取 提取过程 1. ) v=v‖v‖22+ε2 整体流程图 HOG提取流程 OpenCV函数 hog = cv2.HOGDescriptor() :创建HOG特征描述; hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector 特征描述hog = cv.HOGDescriptor()# 创建SVM检测器hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector())

7610

传统特征HOG特征原理

这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。 我们将归一化之后的块描述符(向量)就称之为HOG描述符。 ? 区间有两个主要的几何形状——矩形区间(R-HOG)和环形区间(C-HOG)。 则一块的特征数为:3*3*9; (5)收集HOG特征 最后一步就是将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类使用。 (6)那么一个图像的HOG特征维数是多少呢? Dalal提出的Hog特征提取的过程:把样本图像分割为若干个像素的单元(cell),把梯度方向平均划分为9个区间(bin),在每个单元里面对所有像素的梯度方向在各个方向区间进行直方图统计,得到一个9维的特征向量 最后将所有块的特征串联起来,就得到了人体的特征

68230
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hog图像特征提取算法,HOG

    HOG简介 HOG全称:方向梯度直方图(Histogram of Oriented Gradient),发表于2005年的CVPR,是一种图像特征提取算法,和SVM分类器结合应用于行人检测领域。 HOG通过计算图像中每个像素的梯度的大小和方向,来获取图像的梯度特征,是一种特征描述子。 假设直方图等级数 bins = 9 则每张图的特征维度 = 225 x 4 x 9 = 8100 HOG提取特征效果 原图: ? HOG特征图: ? HOG代码实现 1.基于python的scikit-image库提供了HOG特征提取的接口: from skimage import feature as ft features = ft.hog(image

    2.6K20

    图像学习-HOG特征

    而且好的特征应该能够区分纽扣和其它圆形的东西的区别。 方向梯度直方图(HOG)中,梯度的方向分布被用作特征。 (HOG特征描述子可以不局限于一个长度的,也可以用很多其他的长度,这里只记录一种计算方法。) 怎么计算方向梯度直方图呢? 我们会先用图像的一个patch来解释。 这里有张图是720*475的,我们选100*200大小的patch来计算HOG特征,把这个patch从图片里面抠出来,然后再把大小调整成64*128。 ? hog-16x16-block-normalization 5、计算HOG特征向量 为了计算这整个patch的特征向量,需要把36*1的向量全部合并组成一个巨大的向量。 可视化HOG 通常HOG特征描述子是画出8*8网格中9*1归一化的直方图,见下图。你可以发现直方图的主要方向捕捉了这个人的外形,特别是躯干和腿。 ?

    99560

    HOG特征可视化

    最终提取到的特征就是一串向量,其实我们并不知道它具体是什么样子,也不知道它到底是不是能体现目标区域与非目标区域的差异。为了解决这个问题,我们需要对HOG特征做可视化处理。 HOG特征首先去计算每个像素的梯度,然后建立滑动窗口,在滑动窗中建立滑动块,在块中建立等分的单元(cell)。 = get_hogdescriptor_visual_image(background,des,hog.winSize,hog.cellSize,1,2.0); imshow("HOG特征 1",background_hog); imwrite("特征可视化1.jpg",background_hog); Mat src_hog = get_hogdescriptor_visual_image (src,des,hog.winSize,hog.cellSize,1,2.0); imshow("HOG特征2",src_hog); imwrite("特征可视化2.jpg",src_hog

    65630

    HOG特征详解与行人检测

    HOG概述 HOG(Histogram of Oriented Gradient)特征在对象检测与模式匹配中是一种常见的特征提取算法,是基于本地像素块进行特征直方图提取的一种算法,对象局部的变形与光照影响有很好的稳定性 ,最初是用HOG特征来来识别人像,通过HOG特征提取+SVM训练,可以得到很好的效果,OpenCV已经有了。 HOG特征提取的大致流程如下: ? ? 详细解读 第一步:灰度化 对HOG特征提取来说第一步是对输入的彩色图像转换为灰度图像,图像灰度化的方法有很多,不同灰度化方法之间有一些微小的差异,从彩色到灰度的图像转换可以表示如下: ? 使用HOG特征数据 HOG特征本身是不支持旋转不变性与多尺度检测的,但是通过构建高斯金字塔实现多尺度的开窗检测就会得到不同分辨率的多尺度检测支持。

    2K21

    HOG特征(Histogram of Gradient)学习总结

    最近在做的项目有用到HOG+SVM这一方面的知识,参考相关论文和网上一些博文在此对HOG特征进行下总结。 参考资料: HOG的经典论文:Dalal N, Triggs B. 作者研究了行人检测的特征集问题,局部归一化的HOG描述子相比于现存的特征集(包括小波)有更好的表现。 归一化的块描述符就叫作HOG描述子。将检测窗口中的所有块的HOG描述子组合起来就形成了最终的特征向量,然后使用SVM分类器进行行人检测。如上图描述了特征提取和目标检测流程。 这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。 9 Visualizing Object Detection Features 关于HOG特征可视化的程序如下: 基于OpenCV的C++程序,效果图如下,通过该程序可以帮助理解HOG特征

    9830

    使用openCV提取sift;surf;hog特征

    /example/84776/cv2.HOGDescriptor def createTrainingInstances(self, images): start = time.time() hog instances.append(pairing) end = time.time() - start self.training_instances = instances print "HOG images -> %f" % (len(images), end) def createTestingInstances(self, images): start = time.time() hog instances.append(pairing) end = time.time() - start self.testing_instances = instances print "HOG TEST SERIAL: %d images -> %f" % (len(images), end) 还有: def get_hog(image): # winSize = (64,64)

    10210

    特征提取】Hog特征原理简介与代码实践

    前言 在【模式识别】SVM实现人脸表情分类一文中,我曾使用Hog特征+SVM的方式实现表情分类,但对于Hog特征的原理并未做深入整理。 此篇将结合scikit-image来简单分析Hog特征的原理和维度关系。因为没看过原论文,因此自己的理解可能会有偏差,如有错误,欢迎评论区指正。 计算公式的数学表达如下[2]: 有了上面的概念之后,下面进入到Hog特征提取的流程。 标准化gamma空间和颜色空间(Gamma/Colour Normalization) 标准化gamma空间和颜色空间是Hog特征提取的第一步。 这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征,同时,需要在块内进行归一化。归一化的方法大致有四种: 根据原作者描述,使用L2-Hys方法效果最好[3]。

    11120

    FHOG传统hog特征提取。FHOG

    传统hog特征提取。 关于HOG特征(梯度统计直方图)简单介绍一下,首先是对原图进行灰度化(hog统计的是梯度信息,色彩几乎没有贡献),再进行gamma压缩和归一化(减轻光照影响)。 那么hog特征怎么用到CSK的框架中呢?直接用显然是不可以的,因为很难把一个一维特征和pos信息联系起来,而且对一个hog特征进行循环移位也是没有意义的。 Discriminatively Trained Part Based Models,论文的第六部分详细说明了hog特征和fhog特征的提取方法,对于传统的hog特征还是做了一些改进。 hog特征的描述性能。 hog特征,在论文中,作者还提供了一种特征选项,称之为Fhog,下面介绍。

    6K63

    目标检测的图像特征提取之(一)HOG特征

    HOG特征:       方向梯度直方图(Histogram of Oriented Gradient, HOG特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。 它通过计算和统计图像局部区域的梯度方向直方图来构成特征Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。 (4)优点:       与其他的特征描述方法相比,HOG有很多优点。 因此HOG特征是特别适合于做图像中的人体检测的。 7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。图片

    8000

    特征提取方法(一):HOG原理及OpenCV实现

    方向梯度直方图(Histogram of Oriented Gradient, HOG)于2005年提出,是一种常用的特征提取方法,HOG+SVM在行人检测中有着优异的效果。 HOG基本思想: 在一幅图像中,梯度或边缘的方向密度分布能够很好地描述局部目标区域的特征HOG正是利用这种思想,对梯度信息做出统计,并生成最后的特征描述。 HOG如何确定特征向量维数: 之前提到过,cell的中方向范围的个数由bins来决定,还是以9为例:所以,一个cell中的向量为9个,以上面的例子166*80图像中,描述子的威数就应该为:9*4*49 ,在这里我们不介绍它,只说明如何利用HOG提取出可以输入到SVM中的特征矩阵。 这也就是为啥初始化要放在循环里面了,因为没有提取特征呢,谁知道描述子维数是多少呢?(这样就不用手算了) 最后,我往文件夹里随便放了两张图片,测试了一下代码,图片太大了,导致维度有些高: ?

    5.2K50

    C++ OpenCV特征提取之HOG特征提取(自带行人检测调用)

    前言 方向梯度直方图(Histogram of Oriented Gradient, HOG特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。 它通过计算和统计图像局部区域的梯度方向直方图来构成特征Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。 需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。 HOG特征描述子提取 灰度图像转换 梯度计算 分网格的梯度方向直方图 块描述子 块描述子归一化 特征数据与检测窗口 匹配方法 函数API C++: gpu::HOGDescriptor::HOGDescriptor =0.2, bool gamma_correction=true, int nlevels=DEFAULT_NLEVELS ) 代码演示 我们再新建一个项目名为opencv--Hog

    1.6K20

    HoG特征SVM物品识别系统系统架构代码实践

    structure.png 该系统仍然是基于滑动框+传统机器学习的目标识别系统,分为两个主要部分: HoG特征提取:从滑动框中提取出的子图中提取HoG特征 支持向量机(SVM):以子图的HoG特征为输入 ,判断该子图中是否有物品 HoG特征 该系统的最大贡献为提出基于梯度的HoG(locally normalized Histogram of Oriented Gradient)特征,该特征的计算流程分为 特征归一化 特征的归一化基于block结构,该结构由一些cell组成,分为R-HoG和C-HoG两种。其中R-HoG应用较多,由相邻的构成方形的cell,block可以相互重叠,可以参考重叠的池化。 组合特征 特征计算完成后,将所有block特征组合为一个向量,该向量即为后端SVM的输入。 SVM(支持向量机) 使用支持向量机判断候选框中是否有物品,支持向量机的输入为组合成向量的HoG特征,输出为是否是待检测物品。

    33320

    HOG特征提取_模式识别图像处理算法有哪些

    图像处理之特征提取:HOG特征简单梳理 HOG方向梯度直方图,这里分解为方向梯度与直方图。 一、方向梯度 梯度:在向量微积分中,标量场的梯度是一个向量场。 三、方向梯度直方图HOG的提取   方向梯度直方图为图像局部区域的梯度特征量统计,我们为什么要提取这个东东呢?   ,每个block(扫描窗口)包含2*2个cell也就是2*2*9=36个特征,一个64*128大小的图像最后得到的特征数为36*7*15=3780个。 以上工作为HOG提取的主要内容,最后得到对应的行人的由方向梯度直方图HOG提取到的特征向量,但是计算机还是不知道这个数据数组代表了什么意思,什么时候这组向量代表行人,什么时候代表其他东西,怎样train 参考文献: 目标检测的图像特征提取之(一)HOG特征 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    8340

    HOG目标检测

    import numpy as np import matplotlib.pylab as pylab img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像 hog =cv2.HOGDescriptor()#HOG描述子 hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())#SVM分类器 ( 目标检测是通过在测试图像上重复地进入一个64像素宽、128像素高的窗口并计算HOG描述符来完成的。 由于HOG计算不包含尺度的内在意义,且目标可以出现在一幅图像的多个尺度中,因此HOG计算在尺度金字塔的每一层上是逐步重复的。 尺度金字塔中每一层之间的尺度因子通常在1.05和1.2之间,图像重复地按尺度缩小,直到尺度的源帧不再能容纳完整的HOG窗口。如果SVM分类器以任何尺度预测检测目标,则返回相应的边界框。

    13010

    【数据挖掘】视觉模式挖掘:Hog特征+余弦相似度k-means聚类

    算法模型介绍 3.1 Hog特征提取 方向梯度直方图(Histogram of Oriented Gradient, HOG特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。 移动block 将每个block以cell为间隔在水平和垂直两个方向上进行移动,最终串联所有特征向量得到图像块的Hog特征。 3.2 余弦相似度 得到每个图像块的Hog特征之后,通过计算每个图像块特征向量的余弦相似性来进行类别的划分,余弦相似度的计算公式如下: 3.3 K-means聚类 得到每个图像块的Hog特征后,还可使用 特征 return image_descriptors # 返回的是训练部分所有图像的hog特征 这里的cell大小选择为(16,16),block大小为(16,16)。 实验总结 本次实验,使用了传统的Hog特征提取方式,并使用余弦相似度和K-means聚类的方式来挖掘视觉模式。

    11130

    opencv︱HOG描述符介绍+opencv中HOG函数介绍(一)

    HOG与SIFT的主要区别如下: (1)SIFT是基于关键点特征向量的描述。 (2)HOG是将图像均匀的分成相邻的小块,然后在所有的小块内统计梯度直方图。 (3)SIFT需要对图像尺度空间下对像素求极值点,而HOG中不需要。 (4)SIFT一般有两大步骤,第一个步骤对图像提取特征点,而HOG不会对图像提取特征点。 2、HOG的优缺点 优点: (1)HOG表示的是边缘(梯度)的结构特征,因此可以描述局部的形状信息; (2)位置和方向空间的量化一定程度上可以抑制平移和旋转带来的影响; (3)采取在局部区域归一化直方图 生成HOG特征描述向量: 将所有“block”的HOG描述符组合在一起,形成最终的feature vector,该feature vector就描述了detect window的图像内容。 <2>descriptors:返回的HOG特征向量,descriptors.size是HOG特征的维数。 <3>winStride:窗口移动步长。 <4>padding:扩充像素数。

    1.9K40

    HoG描述符

    import cv2 from skimage.feature import hog from skimage import exposure im=cv2.imread('C:/Users/xpp/ Desktop/Lena.png')#原始图像 im_gray=rgb2gray(im)#将彩色图片转换为灰度图片 fd, hog_image=hog(im, orientations=8,pixels_per_cell =(16,16),cells_per_block=(1,1),visualize=True)#HoG描述符 print(im.shape,len(fd)) fig,(axes1,axes2)=pylab.subplots =exposure.rescale_intensity(hog_image,in_range=(0,10))#调整强度 axes2.axis('off') axes2.imshow(hog_image_rescaled 首先计算水平和垂直梯度图像 然后计算梯度直方图 接着块(区间)集归一化处理 最后,扁平组合成特征描述符向量

    9210

    HOG原理与OpenCV实现

    HOG特征提取算法原理 在一幅图像中,梯度或边缘的方向密度分布能够很好地描述局部目标区域的特征HOG正是利用这种思想,对梯度信息做出统计,并生成最后的特征描述。 可以理解为,在HOG特征提取时,一个窗口是最小的特征提取单元,在目标检测任务中,滑动窗将以一个设定的步长在整个图像中顺序的滑动,每一次滑动后,都会提取窗口内的HOG特征,提取到的特征将送入到预先训练好的分类器中 那么HOG作为一种特征提取算法,对于图像分类问题该如何提取特征呢?此时的窗口将是整幅图像,也就是说,窗口将不再在图像中滑动。 只说明如何利用HOG提取出可以输入到SVM中的特征矩阵。 需要说明的是,这是一个图像分类任务的特征提取过程,所以,这要求我们将整个图像作为一个窗口在构建hog特征hog.compute()函数在计算特征时,不在滑动窗口。

    16650

    扫码关注腾讯云开发者

    领取腾讯云代金券