首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏又见苍岚

    HOG 特征

    Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。 HOG特征描述子提取 提取过程 1. 默认HOG的描述子窗口为64x128, 窗口移动步长为 8x8 每个窗口的cell为8x8,每个block由4个cell组成,block移动步长为一个cell,因此可以得到7x15个block HOG 提取流程 OpenCV函数 hog = cv2.HOGDescriptor() :创建HOG特征描述; hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector 特征描述hog = cv.HOGDescriptor()# 创建SVM检测器hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector())

    1.4K10编辑于 2022-10-27
  • 来自专栏云深之无迹

    Hog图像特征提取算法,HOG

    HOG简介 HOG全称:方向梯度直方图(Histogram of Oriented Gradient),发表于2005年的CVPR,是一种图像特征提取算法,和SVM分类器结合应用于行人检测领域。 HOG通过计算图像中每个像素的梯度的大小和方向,来获取图像的梯度特征,是一种特征描述子。 HOG特征图: ? HOG代码实现 1.基于python的scikit-image库提供了HOG特征提取的接口: from skimage import feature as ft features = ft.hog(image map 应用示例: from skimage.feature import hog gray = rgb2gray(image) / 255.0 fd = hog(gray, orientations

    5.2K20发布于 2020-08-12
  • 来自专栏图像处理与模式识别研究所

    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分类器以任何尺度预测检测目标,则返回相应的边界框。

    97710编辑于 2022-05-29
  • 来自专栏素质云笔记

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

    1、HOG与SIFT的区别 HOG和SIFT都是描述子,以及由于在具体操作上有很多相似的步骤,所以致使很多人误认为HOG是SIFT的一种,其实两者在使用目的和具体处理细节上是有很大的区别的 HOG与SIFT的主要区别如下: (1)SIFT是基于关键点特征向量的描述。 (2)HOG是将图像均匀的分成相邻的小块,然后在所有的小块内统计梯度直方图。 (3)SIFT需要对图像尺度空间下对像素求极值点,而HOG中不需要。 (4)SIFT一般有两大步骤,第一个步骤对图像提取特征点,而HOG不会对图像提取特征点。 区间(块)有两个主要的几何形状——矩形区间(R-HOG)和环形区间(C-HOG)。 前面提到过,对于R-HOG,中间加一个高斯空域窗口是非常有必要的,但对于C-HOG,这显得没有必要。

    4.2K40发布于 2019-05-26
  • 来自专栏人工智能LeadAI

    图像学习-HOG特征

    好久没写东西了,由于楼主换了个城市工作,发现工作量蹭蹭的上来了,周末又喜欢出去觅食,导致没学习很久,今天准备水一篇来翻译一下如何理解HOG(Histogram Of Gradient, 方向梯度直方图) (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归一化的直方图,见下图。你可以发现直方图的主要方向捕捉了这个人的外形,特别是躯干和腿。 ?

    1.9K60发布于 2018-03-09
  • 来自专栏图像处理与模式识别研究所

    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 ,cmap=pylab.cm.gray) axes2.set_title('Histogram of Oriented Gradients') pylab.show() 算法:HOG描述符是利用该算法最终得到的归一化区间描述符

    69610编辑于 2022-05-28
  • 来自专栏深度学习与计算机视觉

    HOG原理与OpenCV实现

    方向梯度直方图(Histogram of Oriented Gradient, HOG)于2005年提出,是一种常用的特征提取方法,HOG+SVM在行人检测中有着优异的效果。 HOG特征提取算法原理 在一幅图像中,梯度或边缘的方向密度分布能够很好地描述局部目标区域的特征,HOG正是利用这种思想,对梯度信息做出统计,并生成最后的特征描述。 HOG中的win ,block ,cell HOG最先是用来做行人检测的,显然这是一个目标检测的任务,当我们使用滑动窗遍历方法实现目标检测任务时,首先我们需要构建一个滑动窗,这个滑动窗就是HOG中win HOG的OpenCV实现 注意事项 在HOG的原理部分,其实我们已经提到了一些注意的事项,那就是块尺寸,块步长,单元尺寸,窗口步长的选择问题。 需要说明的是,这是一个图像分类任务的特征提取过程,所以,这要求我们将整个图像作为一个窗口在构建hog特征。hog.compute()函数在计算特征时,不在滑动窗口。

    2.2K50编辑于 2022-05-07
  • 来自专栏AI深度学习求索

    传统特征:HOG特征原理

    HOG: ? (1)标准化gamma空间和颜色空间 先转化为灰度图; 为了减少光照因素的影响,首先需要将整个图像进行规范化(归一化),有效地降低图像局部的阴影和光照变化。 Gamma压缩公式: ? 这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。 我们将归一化之后的块描述符(向量)就称之为HOG描述符。 ? 区间有两个主要的几何形状——矩形区间(R-HOG)和环形区间(C-HOG)。 R-HOG区间大体上是一些方形的格子,它可以有三个参数来表征:每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞的直方图通道数目。 则一块的特征数为:3*3*9; (5)收集HOG特征 最后一步就是将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类使用。 (6)那么一个图像的HOG特征维数是多少呢?

    1.6K30发布于 2018-12-11
  • 来自专栏深度学习与计算机视觉

    HOG特征可视化

    为了解决这个问题,我们需要对HOG特征做可视化处理。 HOG特征首先去计算每个像素的梯度,然后建立滑动窗口,在滑动窗中建立滑动块,在块中建立等分的单元(cell)。 特别要注意,这应该是HOG最容易产生异常的地方。 = 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

    1.1K30发布于 2019-05-26
  • 来自专栏又见苍岚

    积分图加速提取 HOG 特征

    HOG 特征广泛应用于物体识别等领域,但大面积计算 HOG 特征时重复统计会严重拖慢运行速度,使用积分图可以显著加速特征提取。 背景 HOG 特征介绍 积分图介绍 加速原理 图片 Python OpenCV 实现 def gradient_integral_map(img, angle_step): H, W = img.shape [:2] # 梯度积分图 angle_feature_channel_num = 360 // angle_step hog_matrix = np.zeros([H+1, ] = sum_map return hog_matrix, hog_gra_matrix 参考资料 https://www.zywvvd.com/notes/study/image-processing /feature-extraction/hog/hog/ https://www.zywvvd.com/notes/study/image-processing/opencv/opencv-integral-map

    69230编辑于 2023-01-11
  • 来自专栏机器学习算法工程师

    Histogram of Oriented Gridients(HOG) 方向梯度直方图

    HOG简介 2. 数字图像梯度定义 3. HOG基本步骤 4. OpenCV实现HOG 5. 用KNN与HOG实现一个手写数字输入识别 1. HOG简介 方向梯度直方图(Histogram of Oriented Gradient, HOG)于2005年提出,是一种常用的特征提取方法,且HOG+SVM的方式在行人检测中有着优异的效果。 HOG描述子针对一个检测窗口,根据窗口中块的个数,块内cell的个数,以及cell内bins的个数串接得到最后的HOG描述子。 2. OpenCV实现HOG OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale(),在这里我们不介绍它 OpenCV实现HOG OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale(),在这里我们不介绍它

    1.7K50发布于 2018-03-06
  • 来自专栏贾志刚-OpenCV学堂

    HOG特征详解与行人检测

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

    4K22发布于 2019-04-29
  • 来自专栏全栈程序员必看

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

    最近在做的项目有用到HOG+SVM这一方面的知识,参考相关论文和网上一些博文在此对HOG特征进行下总结。 参考资料: HOG的经典论文:Dalal N, Triggs B. 归一化之后的块描述符(向量)就称之为HOG描述符。 通常使用的HOG结构大致有三种:矩形HOG(简称为R-HOG),圆形HOG和中心环绕HOG。它们的单位都是Block(即块)。 Dalal的试验证明矩形HOG和圆形HOG的检测效果基本一致,而环绕形HOG效果相对差一些。 对block块内的HOG特征向量进行归一化。 11 Conclusions HOG的优点: – 核心思想是所检测的局部物体外形能够被梯度或边缘方向的分布所描述,HOG能较好地捕捉局部形状信息,对几何和光学变化都有很好的不变性; – HOG是在密集采样的图像块中求取的

    1.5K30编辑于 2022-11-17
  • 来自专栏小鹏的专栏

    使用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)

    76410编辑于 2022-05-09
  • 来自专栏和蔼的张星的图像处理专栏

    FHOG传统hog特征提取。FHOG

    传统hog特征提取。 关于HOG特征(梯度统计直方图)简单介绍一下,首先是对原图进行灰度化(hog统计的是梯度信息,色彩几乎没有贡献),再进行gamma压缩和归一化(减轻光照影响)。 那么hog特征怎么用到CSK的框架中呢?直接用显然是不可以的,因为很难把一个一维特征和pos信息联系起来,而且对一个hog特征进行循环移位也是没有意义的。 Discriminatively Trained Part Based Models,论文的第六部分详细说明了hog特征和fhog特征的提取方法,对于传统的hog特征还是做了一些改进。 5.hog特征融合入相关滤波之中 剩下的东西就简单很多了,在2中我们获得了图像的hog特征的cell级映射,无论是31维的或者是36维的,在下面的处理都是一样的了。 无论是在训练或者检测,我们都用获得的hog特征去替代CSK中的灰度特征。简单的叠加肯定是不行的了,完全失去了统计hog特征的意义。 回顾一下CSK中训练和检测时的两个公式: ?

    8.5K63发布于 2018-09-04
  • 来自专栏计算机视觉理论及其实现

    Color exploitation in HOG-based traffic sign detection

    我们比较了特定算法和HOG算法的性能,并表明HOG在大多数情况下比特定算法的性能高出数十个百分点。此外,我们提出了一种新的迭代支持向量机训练范式来处理背景外观的大变化。 然而,HOG特征不是旋转和尺度不变的。在特征生成阶段之后,使用支持向量机(SVM)对高维特征进行分类。在最近的行人检测评估中,HOG算法给出了具有竞争力的性能[5]。 此外,我们建议通过使用颜色信息作为每个通道HOG特征的串联来扩展标准HOG算法。我们证明了颜色空间的选择对性能有显著影响,并且最优选择取决于交通标志的类型。 我们考虑了不同版本的HOG算法。Dalal和Triggs提出在最大梯度幅度的颜色通道中使用梯度,而传统的HOG只使用单个颜色通道。 我们将其与通用的定向梯度直方图(HOG)算法进行比较,后者从一组训练图像中自动学习检测器。在标准HOG算法的基础上,提出了一种同时使用多个颜色通道信息的扩展算法,并证明其优于单通道算法。

    41710编辑于 2024-04-13
  • 来自专栏往期博文

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

    前言 在【模式识别】SVM实现人脸表情分类一文中,我曾使用Hog特征+SVM的方式实现表情分类,但对于Hog特征的原理并未做深入整理。 此篇将结合scikit-image来简单分析Hog特征的原理和维度关系。因为没看过原论文,因此自己的理解可能会有偏差,如有错误,欢迎评论区指正。 图像梯度 在进入到Hog之前,需要先了解图像中梯度的概念。 计算公式的数学表达如下[2]: 有了上面的概念之后,下面进入到Hog特征提取的流程。 标准化gamma空间和颜色空间(Gamma/Colour Normalization) 标准化gamma空间和颜色空间是Hog特征提取的第一步。

    1.3K20编辑于 2022-06-14
  • 来自专栏深度学习与计算机视觉

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

    方向梯度直方图(Histogram of Oriented Gradient, HOG)于2005年提出,是一种常用的特征提取方法,HOG+SVM在行人检测中有着优异的效果。 HOG基本思想: 在一幅图像中,梯度或边缘的方向密度分布能够很好地描述局部目标区域的特征,HOG正是利用这种思想,对梯度信息做出统计,并生成最后的特征描述。 HOG构建方向梯度直方图: HOG构建方向梯度直方图在cell中完成,bins的个数决定了方向的范围。 ? 细胞单元中的每一个像素点都为某个基于方向的直方图通道投票。 HOG的OpenCV实现: OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale() int DescriptorDim;//HOG描述子的维数 Mat samFeatureMat, samLabelMat; //依次读取正样本图片,生成HOG描述子 for (int i = 1

    7K50发布于 2018-01-02
  • 来自专栏深度学习与计算机视觉

    学习KNN(三)KNN+HOG实现手写数字识别

    学习KNN(一) 图像分类与KNN原理 学习KNN(二)KNN算法手写数字识别的OpenCV实现 学习KNN(三)KNN+HOG实现手写数字识别 在学习KNN(二)KNN算法手写数字识别的OpenCV 下面用HOG原理及OpenCV实现中介绍的HOG算法提取特征,作为KNN的的输入,最后与像素值特征的结果进行对比。 在数据方面还是使用之前生成的5000张手写数字图片,并根据之前介绍的KNN与HOG的OpenCV实现,写出如下代码: #include <iostream> #include <opencv2/opencv.hpp int main() { Mat samFeatureMat ,samLabelMat; int k=5,testnum=0,truenum=0; HOGDescriptor hog int DescriptorDim;//HOG描述子的维数 //读取训练数据 4000张 for (int i = 0; i < 10; i++) { for (

    1.9K80发布于 2018-01-08
  • 来自专栏DeepHub IMBA

    梯度直方图(HOG)用于图像多分类和图像推荐

    最后,将所有这些直方图串联起来,形成一个一维向量,称为HOG特征描述符。 HOG可以通过下面的代码段进行实现。 ##HOG Descriptor#Returns a 1D vector for an image ppcr = 8 ppcc = 8 hog_images = [] hog_features =True) hog_images.append(hog_image) hog_features.append(fd) hog_features = np.array(hog_features = [] hog_features_test = []blur = cv.GaussianBlur(image,(5,5),0) fd_test,hog_img = hog(blur, orientations (hog_img) hog_features_test.append(fd)hog_features_test = np.array(hog_features_test) y_pred_user =

    1.6K30发布于 2020-11-02
领券