您的位置:首页 > 其它

目标检测的图像特征提取之(一)Hog特征提取

2017-05-25 15:01 411 查看
Hog特征实质是:梯度的统计信息,即针对边缘作特征提取

意义:目标的表象和形状

转载于zouxy09大神的文章,加上自己些微的理解和应用!
http://blog.csdn.net/zouxy09/article/details/7929348/
上述基本讲清楚了,其实重点在于如下:

大概过程:
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了。这个就是最终的可供分类使用的特征向量了。
其中用Opencv实现需要注意:

HOGDescriptor *hog = new HOGDescriptor(cvSize(64, 48), cvSize(32, 32), cvSize(8, 8), cvSize(16, 16), 9);


cvSize(64,
48)
:滑动窗口大小(不明白为什么设为图像的大小)
cvSize(32, 32)
:block大小
cvSize(8, 8)
:block的移动步长
cvSize(16, 16)
:cell大小
9
:bins个数
前四个参数的单位都是像素。

一个重要的公式是: (window_size - block_size)/block_stride + 1 
上述公式说明一个样本图像的block数量的计算方法,
而一个样本图像的特征数量的计算方法为        
特征数量= bins * 每个block的cell数量 * block数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: