收藏 分销(赏)

hog算法汇总.doc

上传人:丰**** 文档编号:4859420 上传时间:2024-10-15 格式:DOC 页数:13 大小:613.51KB
下载 相关 举报
hog算法汇总.doc_第1页
第1页 / 共13页
hog算法汇总.doc_第2页
第2页 / 共13页
hog算法汇总.doc_第3页
第3页 / 共13页
hog算法汇总.doc_第4页
第4页 / 共13页
hog算法汇总.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、1、HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。(1)主要思想: 在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边

2、缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。(2)具体的实现方法是: 首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。(3)提高性能: 把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。(4)优点: 与其他的特征描述方法相

3、比,HOG有很多优点。首先,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此HOG特征是特别适合于做图像中的人体检测的。2、HOG特征提取算法的实现过程:大概过程:HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);2)采用Gamma校正法对输入图像进行颜色

4、空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。4)将图像划分成小cells(例如6*6像素/cell);5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。7)将图像image内的所有block的HOG

5、特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。具体每一步的详细过程如下:(1)标准化gamma空间和颜色空间为了减少光照因素的影响,首先需要将整个图像进行规范化(归一化)。在图像的纹理强度中,局部的表层曝光贡献的比重较大,所以,这种压缩处理能够有效地降低图像局部的阴影和光照变化。因为颜色信息作用不大,通常先转化为灰度图; Gamma压缩公式:比如可以取Gamma=1/2;(2)计算图像梯度计算图像横坐标和纵坐标方向的梯度,并据此计算每个像素位置的梯度方向值;求导操作不仅能够捕获轮廓,人影和一些

6、纹理信息,还能进一步弱化光照的影响。图像中像素点(x,y)的梯度为: 最常用的方法是:首先用-1,0,1梯度算子对原图像做卷积运算,得到x方向(水平方向,以向右为正方向)的梯度分量gradscalx,然后用1,0,-1T梯度算子对原图像做卷积运算,得到y方向(竖直方向,以向上为正方向)的梯度分量gradscaly。然后再用以上公式计算该像素点的梯度大小和方向。(3)为每个细胞单元构建梯度方向直方图第三步的目的是为局部图像区域提供一个编码,同时能够保持对图像中人体对象的姿势和外观的弱敏感性。我们将图像分成若干个“单元格cell”,例如每个cell为6*6个像素。假设我们采用9个bin的直方图来统

7、计这6*6个像素的梯度信息。也就是将cell的梯度方向360度分成9个方向块,如图所示:例如:如果这个像素的梯度方向是20-40度,直方图第2个bin的计数就加一,这样,对cell内每个像素用梯度方向在直方图中进行加权投影(映射到固定的角度范围),就可以得到这个cell的梯度方向直方图了,就是该cell对应的9维特征向量(因为有9个bin)。像素梯度方向用到了,那么梯度大小呢?梯度大小就是作为投影的权值的。例如说:这个像素的梯度方向是20-40度,然后它的梯度大小是2(假设啊),那么直方图第2个bin的计数就不是加一了,而是加二(假设啊)。 细胞单元可以是矩形的(rectangular),也可

8、以是星形的(radial)。(4)把细胞单元组合成大的块(block),块内归一化梯度直方图 由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。 作者采取的办法是:把各个细胞单元组合成大的、空间上连通的区间(blocks)。这样,一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。我们将归一化之后的块描述符(向量)就称之为HOG描述符。 区间有两个主要的几何形状矩形区间(R-H

9、OG)和环形区间(C-HOG)。R-HOG区间大体上是一些方形的格子,它可以有三个参数来表征:每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞的直方图通道数目。 例如:行人检测的最佳参数设置是:33细胞/区间、66像素/细胞、9个直方图通道。则一块的特征数为:3*3*9;(5)收集HOG特征最后一步就是将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量供分类使用。(6)那么一个图像的HOG特征维数是多少呢? 顺便做个总结:Dalal提出的Hog特征提取的过程:把样本图像分割为若干个像素的单元(cell),把梯度方向平均划分为9个区间(bin),在每个单元里

10、面对所有像素的梯度方向在各个方向区间进行直方图统计,得到一个9维的特征向量,每相邻的4个单元构成一个块(block),把一个块内的特征向量联起来得到36维的特征向量,用块对样本图像进行扫描,扫描步长为一个单元。最后将所有块的特征串联起来,就得到了人体的特征。例如,对于64*128的图像而言,每8*8的像素组成一个cell,每2*2个cell组成一个块,因为每个cell有9个特征,所以每个块内有4*9=36个特征,以8个像素为步长,那么,水平方向将有7个扫描窗口,垂直方向将有15个扫描窗口。也就是说,64*128的图片,总共有36*7*15=3780个特征。HOG维数,1616像素组成的bloc

11、k,8x8像素的cell注释:行人检测HOG+SVM总体思路:1、提取正负样本hog特征2、投入svm分类器训练,得到model3、由model生成检测子4、利用检测子检测负样本,得到hardexample5、提取hardexample的hog特征并结合第一步中的特征一起投入训练,得到最终检测子。深入研究hog算法原理:一、hog概述Histograms of Oriented Gradients,顾名思义,方向梯度直方图,是目标的一种描述的方式,既是描述子。二、hog提出hog是05年一位nb的博士提出来的,论文链接三、算法理解 终于到10月了,终于可以松一口气了,整理一下hog的算法流程。

12、首先要有一个整体的认识,每一个目标都对应一个一维特征向量,这个向量一共有n维,这个n不是凭空瞎猜的,是有理有据,打个比方,为什么opencv自带的hog检测子是3781维的?这个问题在初期确实比较头疼,纠结了好长的时间,不过别着急,我们先来看一下opencv里的HOGDescriptor这个结构的构造函数HOGDescriptor(SizewinSize,Size blocksize,Size blockStride,Size cellSize,.(后面的参数在这里用不到)),去查一下opencv默认的参数我们可以看到,winSize(64,128),blockSize(16,16),bloc

13、kStride(8,8),cellSize(8,8),很显然hog是将一个特征窗口win划分为很多的块block,在每一个块里又划分为很多的细胞单元cell(即胞元),hog特征向量既是把这些所有的cell对应的小特征串起来得到一个高维的特征向量,那么这个窗口对应的一维特征向量维数n就等于窗口中的块数 x 块中的胞元数 x 每一个胞元对应的特征向量数。写到这里,我们计算一下3781如何得到的,窗口大小64x128,块大小16x16,块步长8x8,那么窗口中块的数目是((64-16)/8+1)*(128-16)/8+1) = 7*15 =105个块,块大小为16x16,胞元大小为8x8,那么一个

14、块中的胞元cell数目是 (16/8)*(16/8) =4个胞元,到这里我们可以看到要求最后需要的维数n,只需要计算每一个胞元对应的向量,这个参数在哪呢?别急,我们把每一个胞元投影到9个bin(如何投影?这里卡了很长一段时间,后面会说),那么每一个胞元对应的向量就是9维,每个bin对应该9维向量的一个数,现在看一下是不是计算窗口维数的三个需求量都知道了,n =窗口中的块数 x 块中的胞元数 x 每一个胞元对应的特征向量数,带入看一下n= 105x4x9 = 3780,这就是这个窗口对应的特征了。有人会说,为什么opencv里的getDefaultPeopleDetector()得到的是3781

15、维呢?这是因为另外一维是一维偏移,(很崩溃是吧,我也崩溃很久。,下一段解释)。我们利用hog+svm检测行人,最终的检测方法是最基本的线性判别函数,wx + b = 0,刚才所求的3780维向量其实就是w,而加了一维的b就形成了opencv默认的3781维检测算子,而检测分为train和test两部分,在train期间我们需要提取一些列训练样本的hog特征使用svm训练最终的目的是为了得到我们检测的w以及b,在test期间提取待检测目标的hog特征x,带入方程是不是就能进行判别了呢?*华丽的分割线写到这里,至少对hog的运作流程有了一个大概的认识,在网上能看到很多的hog计算方法,神马归一化,

16、计算梯度,对每个胞元进行投影,千篇一律,对刚开始接触的人来说,看完好像懂了,但就是不知道怎么用,hog和svm如何配合,而且那些东西对我们的初期的学期完全没用,好处就是会用hog了,再回过头去看原理,才有收获,那些资料网上一堆,这里就不画蛇添足了。另外值得一提的是在计算胞元特征的时候,需要向各个bin投影,这个投影里面大有文章,师兄毕业论文里就提到了,取名叫三维一次线性插值,如果想深入了解hog的可以仔细琢磨去。*继续华丽的分割下面说一下libsvm和CvSVM的使用,我觉得libsvm更好用,不过cvsvm也是基于libsvm2.6(没记错的话)改写的,这两个的区别就是libsvm训练得到的

17、是一个model,而cvsvm是xml文件,在计算最后的wx+b=0中的w向量的时候,对于libsvm直接处理model文件即可,但是对于cvsvm则可以跳过产生xml文件,直接使用cvsvm的对象中的属性即可(这里说的有点模糊,二者选一个即可,关系倒不是很大)欢迎大家批评指正、交流学习方向梯度直方图(HOG,HistogramofGradient)学习笔记二HOG正篇(2012-09-26 13:39:33)转载标签:杂谈分类:图像处理1.介绍HOG(Histogram of Oriented Gradient)是2005年CVPR会议上,法国国家计算机科学及自动控制研究所的Dalal等人提

18、出的一种解决人体目标检测的图像描述子,该方法使用梯度方向直方图(Histogram of Oriented Gradients,简称HOG)特征来表达人体,提取人体的外形信息和运动信息,形成丰富的特征集。2.生成过程1)图像归一化归一化图像的主要目的是提高检测器对光照的鲁棒性,因为实际的人体目标可能出现的各种不同的场合,检测器,必须对光照不太敏感才会有好的效果。2)利用一阶微分计算图像梯度图像平滑对于灰度图像,一般为了去除噪点,所以会先利用离散高斯平滑模板进行平滑:高斯函数在不同平滑的尺度下进行对灰度图像进行平滑操作,Dalal等实验表明在下,人体检测效果最佳(即不做高斯平滑),使得错误率缩小

19、了约一倍。不做平滑操作,可能原因:图像时基于边缘的,平滑会降低边缘信息的对比度,从而减少图像中的信号信息。梯度法求图像梯度一阶微分处理一般对灰度阶梯有较强的响应 一阶微分:对于函数f(x,y),在其坐标(x,y)上的梯度是通过如下二维列向量定义的:这个向量的模值由下式给出:因为模值的计算开销比较大,一般可以按如下公式近似求解:Dalal等人利用许多一阶微分模板进行求梯度近似值,但在实验中表明模板-1,0,1效果最好。采用模板-1,0,1为例计算图像梯度以及方向,通过梯度模板计算水平和垂直方向的梯度分别如下:其中,分别表示该像素点的水平,垂直梯度值。计算该像素点的梯度值(梯度强度)以及梯度方向:

20、对于梯度方向的范围限定,一般采用无符号的范围,故梯度方向可表示为:3)基于梯度幅值的方向权重投影HOG结构通常使用的HOG结构大致有三种:矩形HOG(简称为R-HOG),圆形HOG和中心环绕HOG。它们的单位都是Block(即块)。Dalal的试验证明矩形HOG和圆形HOG的检测效果基本一致,而环绕形HOG效果相对差一些。矩形HOG块的划分:一般一个块(Block)都由若干单元(Cell)组成,一个单元都有如干个像素点组成。在每个Cell中有独立做梯度方向统计,从而以梯度方向为横轴的的直方图,前面我们已经提到过,梯度方向可取0度到180度或0度360度,但dalal实验表明,对于人体目标检测0

21、度180度这种忽略度数正负级的方向范围能够取得更好的结果。然后又将这个梯度分布平均分成 个方向角度(orientation bins),每个方向角度范围都会对应一个直方柱。根据Dalal等人实验,在人体目标检测中,在无符号方向角度范围并将其平均分成9份(bins)能取得最好的效果,当bin的数目继续增大效果改变不明显,故一般在人体目标检测中使用bin数目为9范围0180度的度量方式。Block中各个参数的最终选取:对于人体对象检测,块的大小为33个单元格,单元格的大小为66个象素时,检测效果是最好的,错误率约为10%左右。块的大小为22个单元格,单元格大小为88个象素时,也相差无几。68个象素

22、宽的单元格,23个单元格宽的块,其错误率都在最低的一个平面上。块的尺寸太大时标准化的作用被削弱了从而导致错误率上升,而如果块的尺寸太小时,有用的信息反而会被过滤掉。在实际应用中,在Block和Cell划分之后,对于得到各个像区域中,有时候还会为了进行一次高斯平滑,但是对于人体目标检测等问题,该步骤往往可以忽略,实际应用效果不大,估计在主要还是去除区域中噪点,因为梯度对于噪点相当敏感。对梯度方向的投影权重方式的选取:对于梯度方向的加权投影,一般都采用一个权重投影函数,它可以是像素点的梯度幅值,梯度幅值的平方根或梯度幅值的平方,甚至可以使梯度幅值的省略形式,它们都能够一定程度上反应出像素上一定的边

23、缘信息。根据Dalal等人论文的测试结果,采用梯度幅值量级本身得到的检测效果最佳,使用量级的平方根会轻微降低检测结果,而使用二值的边缘权值表示会严重降低效果(约为5%个单位10-4FPPW(False Positives Per Window)。4)HOG特征向量归一化对block块内的HOG特征向量进行归一化。对block块内特征向量的归一化主要是为了使特征向量空间对光照,阴影和边缘变化具有鲁棒性。还有归一化是针对每一个block进行的,一般采用的归一化函数有以下四种:在人体检测系统中进行HOG计算时一般使用L2-norm,Dalal的文章也验证了对于人体检测系统使用L2-norm的时候效果

24、最好。5)得出HOG最终的特征向量3.HOG的应用:主要用在object detection 领域,特别是行人检测,智能交通系统,当然也有文章提到把HOG用在手势识别,人脸识别等方面。4.HOG与SIFT区别HOG和SIFT都属于描述子,以及由于在具体操作上有很多相似的步骤,所以致使很多人误认为HOG是SIFT的一种,其实两者在使用目的和具体处理细节上是有很大的区别的。HOG与SIFT的主要区别如下:SIFT是基于关键点特征向量的描述。HOG是将图像均匀的分成相邻的小块,然后在所有的小块内统计梯度直方图。SIFT需要对图像尺度空间下对像素求极值点,而HOG中不需要。SIFT一般有两大步骤,第一个步骤是对图像提取特征点,而HOG不会对图像提取特征点。5.HOG的优点:HOG表示的是边缘(梯度)的结构特征,因此可以描述局部的形状信息;位置和方向空间的量化一定程度上可以抑制平移和旋转带来的影响;采取在局部区域归一化直方图,可以部分抵消光照变化带来的影响。由于一定程度忽略了光照颜色对图像造成的影响,使得图像所需要的表征数据的维度降低了。而且由于它这种分块分单元的处理方法,也使得图像局部像素点之间的关系可以很好得到的表征。6.HOG的缺点:描述子生成过程冗长,导致速度慢,实时性差;很难处理遮挡问题。由于梯度的性质,该描述子对噪点相当敏感

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服