最好的建站公司,深圳制作宣传片公司,工艺品网站模版,做网站的人还能做什么一、方向梯度 梯度#xff1a;在向量微积分中#xff0c;标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向#xff0c;梯度的长度是这个最大的变化率。更严格的说#xff0c;从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个…一、方向梯度 梯度在向量微积分中标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向梯度的长度是这个最大的变化率。更严格的说从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个意义上梯度是雅可比矩阵的一个特殊情况。 在单变量的实值函数的情况梯度只是导数或者对于一个线性函数也就是线的斜率。
在图像中梯度的概念也是像素值变换最快的方向把边缘在图像合成中单一物体的轮廓叫做边缘引入进来边缘与梯度保持垂直方向。
方向梯度中的方向是如何确定的P0到P1的梯度方向 具体在HOG中方向梯度的实现首先用[-1,0,1]梯度算子对原图像做卷积运算得到x方向水平方向以向右为正方向的梯度分量gradscalx然后用[1,0,-1]T梯度算子对原图像做卷积运算得到y方向竖直方向以向上为正方向的梯度分量gradscaly。然后再用以下公式计算该像素点的梯度大小和方向。
二、算法基本流程
在一幅图像中方向梯度直方图Histogram of Oriented Gradient, HOG能够很好地描述局部目标区域的特征是一种常用的特征提取方法HOGSVM在行人检测中有着优异的效果。在HOG中对一幅图像进行了如下划分 图像(image)-检测窗口(win)-图像块(block)-细胞单元(cells) 流程图如下 大概过程
大概过程
HOG特征提取方法就是将一个image你要检测的目标或者扫描窗口
1灰度化将图像看做一个x,y,z灰度的三维图像
2采用Gamma校正法对输入图像进行颜色空间的标准化归一化目的是调节图像的对比度降低图像局部的阴影和光照变化所造成的影响同时可以抑制噪音的干扰
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特征descriptor串联起来就可以得到该image你要检测的目标的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。
1标准化gamma空间和颜色空间 为了减少光照因素的影响首先需要将整个图像进行规范化归一化。在图像的纹理强度中局部的表层曝光贡献的比重较大所以这种压缩处理能够有效地降低图像局部的阴影和光照变化。因为颜色信息作用不大通常先转化为灰度图 Gamma压缩公式 比如可以取Gamma1/2
归一化的目的就是使得预处理的数据被限定在一定的范围内比如[0,1]或者[-1,1]从而消除奇异样本数据导致的不良影响 梯度直方图由梯度大小、方向生成 光照变化无非就是强度和方向变化你尝试从以下几点去理解 1、光照强度会不会影响梯度强度归一化能不能消除这个差异 2、光照方向变化会不会影响梯度的方向变化需不需要归一化消除还是本身就不会影响到
2.计算图像梯度
对数字图像而言每个像素水平和垂直方向的梯度可以通过下图的kernels计算 即可写为 每个像素梯度大小和方向可表示为 其中I(x,y)是图像在点(x,y)处的像素值。 梯度图像移除了不必要的信息但是高亮了轮廓线。在每一个像素上梯度都有大小和方向。对于彩色图像3个通道的梯度都将被计算出来然而图像素的梯度值为3个通道中最大的梯度值角度也是最大角度。
3为每个细胞单元构建梯度方向直方图 第三步的目的是为局部图像区域提供一个编码同时能够保持对图像中人体对象的姿势和外观的弱敏感性。
我们将图像分成若干个“单元格cell”例如每个cell为8*8个像素。假设我们采用9个bin的直方图来统计这8*8个像素的梯度信息。也就是将cell的梯度方向360度分成9个方向块如图所示 例如如果这个像素的梯度方向是20-40度直方图第2个bin的计数就加一这样对cell内每个像素用梯度方向在直方图中进行加权投影映射到固定的角度范围就可以得到这个cell的梯度方向直方图了就是该cell对应的9维特征向量因为有9个bin。
梯度大小就是作为投影的权值的。
这边的加权投影所用的权值为当前点的梯度幅值。例如说某个像素的梯度方向是20-40度其梯度幅值是4那么直方图第2个bin的计数就不是加1了而是加4。这样就得到关于梯度方向的一个加权直方图。之前提到过cell的中方向范围的个数由bins来决定还是以9为例所以一个cell中的向量为9个。以上面的例子在一个尺寸为64×64的检测窗中描述子的维数就应该为9×4×491764 。其中4为一个block中cell的个数49为一个win中block的个数。 细胞单元可以是矩形的rectangular也可以是星形的radial。 4把细胞单元组合成大的块block块内归一化梯度直方图 由于局部光照的变化以及前景-背景对比度的变化使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。 作者采取的办法是把各个细胞单元组合成大的、空间上连通的区间blocks。这样一个block内所有cell的特征向量串联起来便得到该block的HOG特征。这些区间是互有重叠的这就意味着每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。我们将归一化之后的块描述符向量就称之为HOG描述符。 区间有两个主要的几何形状——矩形区间R-HOG和环形区间C-HOG。R-HOG区间大体上是一些方形的格子它可以有三个参数来表征每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞的直方图通道数目。
例如行人检测的最佳参数设置是2×2细胞/区间、8×8像素/细胞、9个直方图通道。则一块的特征数为2*2*9 5收集HOG特征 最后一步就是将检测窗口中所有重叠的块进行HOG特征的收集并将它们结合成最终的特征向量供分类使用。 三、HOG的win ,block ,cell 对于图像中检测窗口的尺寸为64×64假设给出块的尺寸为16×16块步长为(8,8)经过计算检测窗口中共滑动7×749个block。在一个块中选择细胞单元不再滑动给出细胞单元的尺寸为(8,8)所以一个块中一共有2×24个cell。
那么一个图像的HOG特征维数是多少呢 把样本图像分割为若干个像素的单元cell把梯度方向平均划分为9个区间bin在每个单元里面对所有像素的梯度方向在各个方向区间进行直方图统计得到一个9维的特征向量每相邻的4个单元构成一个块block把一个块内的特征向量联起来得到36维的特征向量用块对样本图像进行扫描扫描步长为一个单元。最后将所有块的特征串联起来就得到了人体的特征。例如对于64X128的图像而言每16X16的像素组成一个cell每2X2个cell组成一个块因为每个cell有9个特征所以每个块内有4X936个特征以8个像素为步长那么水平方向将有7个扫描窗口垂直方向将有15个扫描窗口。也就是说64X128的图片总共有36X7X153780个特征。 注意
上面举例说的是64X128图像对应的HOG特征。但是64X128可能是一个更大图片的滑动窗口这个滑动窗口用于物体检测
单独将其中一个8*8的小格拿出来方向梯度中指的方向范围为2π360°为了画直方图我们还需要选取合适的组距也就是bin这里组距选取2π/9也就是最后的直方图组数为9。下图为8*8像素的cell对应的方向梯度未全部画出共有8*864个。 图5 将上面的64个方向梯度按着直方图的参数设置进行画图其中梯度的大小在统计数量中呈线性关系比如梯度大小为2上述公式可以计算梯度大小则直方图对应增加2个单位 画出的对应直方图假设如下所示 图6
把上图中单个cell对应的方向直方图转换为单维向量也就是按规定组距对对应方向梯度个数进行编码8,10,6,12,4,5,8,6,14 和为得到单个cell的9个特征每个block扫描窗口包含2*2个cell也就是2*2*936个特征一个64*128大小的图像最后得到的特征数为36*7*153780个。这样将一幅直观的梯度图通过分解提取变为计算机容易理解的特征向量。 以上工作为HOG提取的主要内容最后得到对应的行人的由方向梯度直方图HOG提取到的特征向量但是计算机还是不知道这个数据数组代表了什么意思什么时候这组向量代表行人什么时候代表其他东西怎样train最后通过不断地学习而后在检测积累的基础上对对未知图像检测识别有没有行人呢那就是后一步SVM要做的事了。 参考自https://blog.csdn.net/akadiao/article/details/79685323
https://blog.csdn.net/LUFANGBO/article/details/82491680