提取HOG特征训练SVM分类器(一)HOG篇

来源:互联网 发布:张艺兴而立24淘宝 编辑:程序博客网 时间:2024/06/04 20:09
利用hog特征训练svm分类器的总体思路:

1、提取正负样本hog特征

2、投入svm分类器训练,得到model
3、由model生成检测子

4、利用检测子检测负样本,得到hardexample

5、提取hardexample的hog特征并结合第一步中的特征一起投入训练,得到最终检测子。


本文主要先介绍hog特征,以及描述子的计算。hog特征提取算法的实现过程:

HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):

1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);

2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

4)将图像划分成小cells(例如6*6像素/cell);

5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个celldescriptor

6)将每几个cell组成一个block(例如3*3cell/block),一个block内所有cell的特征descriptor串联起来便得到该blockHOG特征descriptor

7)将图像image内的所有blockHOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。

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

特征维数n=窗口块数X块中胞元数X向量维数(bin)

HOG Descriptor(WinSize(64.128),BlockSize(16.16),BlockStride(8.8),CellSize(8.8))

窗口块数目:(64-16)/8+1 *(128-16)/8+1=105块


参考:http://blog.csdn.net/masibuaa/article/details/12917961,非常优秀的同类型博客


0 0