图像处理之特征提取(一):HOG特征

HOG方向梯度直方图:

(1)具体在HOG中方向梯度的实现:首先用[-1,0,1]梯度算子对原图像做卷积运算,得到x方向(水平方向,以向右为正方向)的梯度分量gradscalx,然后用[1,0,-1]T梯度算子对原图像做卷积运算,得到y方向(竖直方向,以向上为正方向)的梯度分量gradscaly。然后再用以下公式计算该像素点的梯度大小和方向。

      对于64*128的图像而言,每8*8的像素组成一个cell,每2*2个cell组成一个块,以8个像素为步长,那么,水平方向将有7个扫描窗口,垂直方向将有15个扫描窗口。

      单独将其中一个8*8的小格拿出来,方向梯度中指的方向范围为2π,360°,为了画直方图我们还需要选取合适的组距也就是bin, 这里组距选取2π/9,也就是最后的直方图组数为9。

 把上图中单个cell对应的方向直方图转换为单维向量,也就是按规定组距对对应方向梯度个数进行编码,(8,10,6,12,4,5,8,6,14),得到单个cell的9个特征,每个block(扫描窗口)包含2*2个cell也就是2*2*9=36个特征,一个64*128大小的图像最后得到的特征数为36*7*15=3780个。这样将一幅直观的梯度图通过分解提取变为计算机容易理解的特征向量。

 HOG描述子高维图像特征向量生成步骤:

1.图像归一化;

 2.利用一阶微分计算图像梯度;

3.基于梯度幅值的方向权重投影;

4.HOG特征向量归一化;

 5.得出HOG最终的特征向量

step 1:图像归一化

  归一化图像的主要目的是提高检测器对光照的鲁棒性,因为实际的人体目标可能出现的各种不同的场合,检测器,必须对光照不太敏感才会有好的效果。

Step 2 利用一阶微分计算图像梯度

1、图像平滑

        对于灰度图像,一般为了去除噪点,所以会先利用离散高斯平滑模板进行平滑:高斯函数在不同平滑的尺度下进行对灰度图像进行平滑操作,Dalal等实验表明在下,人体检测效果最佳(即不做高斯平滑),使得错误率缩小了约一倍。不做平滑操作,可能原因:图像时基于边缘的,平滑会降低边缘信息的对比度,从而减少图像中的信号信息。

2、梯度法求图像梯度

Step 3 基于梯度幅值的方向权重投影

       HOG结构:  通常使用的HOG结构大致有三种:矩形HOG(简称为R-HOG),圆形HOG和中心环绕HOG。它们的单位都是Block(即块)。Dalal的试验证明矩形HOG和圆形HOG的检测效果基本一致,而环绕形HOG效果相对差一些。并且,圆形与环绕形的HOG文献比较少,应用研究没有矩形HOG普遍。所以,着重讲解矩形HOG的情况。矩形HOG块的划分:一般一个块(Block)都由若干单元(Cell)组成,一个单元都有如干个像素点组成。

      在每个Cell中有独立做梯度方向统计,从而以梯度方向为横轴的的直方图,梯度方向可取0度到180度或0度~360度,但dalal实验表明,对于人体目标检测0度~180度这种忽略度数正负级的方向范围能够取得更好的结果。然后又将这个梯度分布平均分成个方向角度(orientation bins),每个方向角度范围都会对应一个直方柱。 根据Dalal等人实验,在人体目标检测中,在无符号方向角度范围并将其平均分成9份(bins)能取得最好的效果,当bin的数目继续增大效果改变不明显,故一般在人体目标检测中使用bin数目为9范围0~180度的度量方式。

      对梯度方向的投影权重方式的选取: 对于梯度方向的加权投影,一般都采用一个权重投影函数,它可以是像素点的梯度幅值,梯度幅值的平方根或梯度幅值的平方,甚至可以使梯度幅值的省略形式,它们都能够一定程度上反应出像素上一定的边缘信息。根据Dalal等人论文的测试结果,采用梯度幅值量级本身得到的检测效果最佳,使用量级的平方根会轻微降低检测结果,而使用二值的边缘权值表示会严重降低效果(约为5%个单位10-4FPPW(False Positives Per Window))。

         问:块与块之间是相互独立的么?答:通常的将某个变量范围固定划分为几个区域,由于边界变量与相邻区域也有相关性,所以变量只对一个区域进行投影而对相邻区域完全无关时会对其他区域产生混叠效应。

        分块之间的相关性问题的解决:方案一:块重叠,重复统计计算。

                                                           方案二:线性插值权重分配

         重叠块:Datal等人在他们那篇关于HOG最为经典的论文《Histogram of Oriented Gradient for Human Detection》提出了利用块与块的重叠(Overlap)来解决混叠,并且取得了不错的效果。 在重叠方式中,块与块之间的边缘点被重复根据权重投影到各自相邻块(block)中,从而一定模糊了块与块之间的边界,处于块边缘部分的像素点也能够给相邻块中的方向梯度直方图提供一定贡献,从而达到关联块与块之间的关系的作用。Datal对于块和块之间相互重叠程度对人体目标检测识别率影响也做了实验分析。

        利用线性插值的方法解决分块之间联系问题:有些文献采用的不是块与块重叠的方法,而是采用线性插值的方法来削弱混叠效应。这种方法的主要思想是每个Block都对邻近的Block都有影响,这种影响,我们可以以一种加权方式附加上去。

Step 4:HOG特征向量归一化

      我们要对block块内的HOG特征向量进行归一化。对block块内特征向量的归一化主要是为了使特征向量空间对光照,阴影和边缘变化具有鲁棒性。还有归一化是针对每一个block进行的,一般采用的归一化函数有以下四种:

        在人体检测系统中进行HOG计算时一般使用L2-norm,Dalal的文章也验证了对于人体检测系统使用L2-norm的时候效果最好。

Step 5 HOG最终的特征向量生成

原文:http://blog.csdn.net/zhufanqie/article/details/8474528

          https://blog.csdn.net/coming_is_winter/article/details/72850511

猜你喜欢

转载自blog.csdn.net/qq_37207090/article/details/83932211