天天看点

特征描述子之HOG算子

HOG是一个比较理想的描述边缘、形状信息的算子了,它能够有部分抗光照变化能力,但是不具备旋转不变性和尺度不变性。

HOG算子在检测边缘分明的目标时有较好的效果,比如与SVM结合起来做行人检测...网上对于HOG算子原理分析的文章比比皆是,本人也是现学现卖,班门弄斧了。

HOG描述子的提取步骤:

特征描述子之HOG算子

①拉低图像亮度

拉低图像亮度的作用不仅仅是为了减少阴影和光照的影响,也淡化了次级的边缘,便于目标外形轮廓的提取。

拉低图像亮度采用伽马压缩方法,即对每个颜色通道分别做开平方运算或者求Log。

②求取各像素点梯度向量

提取梯度向量的工作大家应该都信手拈来了吧,用梯度算子([-1,0,1])分别做水平和垂直方向的卷积,在数学意义上也就是分别求取图像x,y方向的偏导,将偏导的平方和开平方即可得到改点的梯度幅值,两个偏导比值的arctan即为该梯度的方向。HOG算子会分别计算三个通道的梯度,选取其中幅值最大的作为该点的梯度向量。

梯度幅值及方向计算公式:

特征描述子之HOG算子

③统计cell

将图像分割为N*N大小的像素单元(cell),并将梯度方向均分为9个区间(bin)(360/9=40),之后对cell中的梯度向量在各bin的区间内做直方图统计,即可得到该cell的梯度方向分布,它是一个9维的特征向量,接着将相邻的2*2个cell组成一个block,将它们的特征向量串联起来得到一个36维的特征向量,该向量即为HOG特征向量。block在全图的扫描步长为1个cell,也cell是block间共享的,一个cell并不唯一属于一个block。

所以,HOG特征向量便是一个block所描述的梯度特征向量。

继续阅读