图像特征(HOG、LBP、SIFT、SURF)

引言

最近看了些使用将传统的人工特征用于脱机签名的特征提取文章,思路大差不差,都是从脱机签名中提取某种图像特征,再送入判别器进行判别。具体到提取的图像特征层面,当前的图像知识就有点捉襟见肘了,所以去学习了下这里面常用的图像特征。

HOG

 HOG(Histogram of oriented Gradients)用于描述图像全局的梯度特征,统计了图像不同区域不同方向的梯度幅值分布情况。在HOG算法中,我们将图片分为三个层面:pixel、cell、block。

  • pixel为图像的像素,是我们计算梯度的最小单位;

  • -cell通常由原图上8*8大小的pixel构成,彼此之间不发生重叠,我们统计这个区域内pixel的梯度幅值-方向分布情况,需要注意的是这里的梯度方向将是0~180°范围的,即梯度方向20°与200°被认为是一致的。将0~180°的方向范围划分为9个子区域,形如0~20°,20~40°。将cell内梯度方向为该方向范围内的像素梯度进行累加.还有种统计方式是从0~180°的方向范围均匀取出9个单独的角度,形如0°、20°。当像素点梯度方向位于两个角度之间时,依照距离远近分配其梯度幅值,最终这两种方式都是获得一个9维的特征向量(梯度直方图)用于描述该cell内的梯度分布状况。之所以要使用cell这种结构统计直方图而不是直接记录每个像素点的梯度向量或者在全图上统计,是因为前者的有效信息过少,平滑区域梯度基本可以忽略;而全图层面统计又将会丧失局部信息。
    在这里插入图片描述

  • block由2*2的cell构成,彼此之间发生重叠,通过一个2*2的窗口在原图的cell划分上以stride=1滑动得到。我们将block范围内4个cell的特征向量进行首尾拼接构成一个36维的特征向量,并对其进行归一化以获得36维的block层面特征向量。使用block的目的主要是在高一级的层面通过归一化消除光照的影响,如果某个block内光照对比强烈导致梯度直方图的值都特别大,通过归一化即可消除光照影响。

 最终将图片每个block的特征向量再次首尾拼接即获得了整个图像层面的梯度特征描述符,HOG特征。HOG算子没有旋转和尺度不变性,有良好的几何和光学不变性。

LBP

 LBP(Local binary pattern)用于描述图像的纹理特征。计算方式为对每个像素点3*3领域范围内的像素值进行阈值化,若周围像素灰度值大于该像素点灰度值则映射为1,否则映射为0。由此对每个像素点领域范围,从左上角顺时针取值即可获得一8bit的01序列,该序列即为当前的LBP描述子,通常可将这8位序列视为二进制数转为十进制处理,这一描述子即反映了当前点的纹理信息。
在这里插入图片描述

  通过这一计算方式获得的LBP描述子具有灰度不变性,即光线变化时某点和领域范围内的相对大小基本不变,LBP特征不变。但它不具有尺度和旋转不变性,为了解决这一问题,后续研究者又提出了具有尺度不变性的圆形LBP特征(半径可变圆形领域内采样)、具有旋转不变性的LBP特征(从不同点开始读取01序列获得最小值)。
 LBP用于实际检测时,同样不是基于每个像素点或图像整体的匹配,而是和HOG一样划分为多个cell,计算cell内每个点的LBP特征,构建LBP频率直方图,再在cell尺度内归一化(没有block),拼接每个cell的LBP特征向量即获得了全局层面的纹理特征。

HARR

 准确来说Harr特征是一类特征,使用不同的特征模板在图片上滑动以获得相对于该模板的特征,不同的模板可以提取出图片中不同的细节。
在这里插入图片描述

常用模板如上,特征计算方式为:
Σ ( i , j ) ∈ w h i t e P ( i , j ) − S w h i t e S b l a c k Σ ( i , j ) ∈ b l a c k P ( i , j ) \Sigma_{(i,j)\in white}P(i,j)-\frac{S_{white}}{S_{black}}\Sigma_{(i,j)\in black}P(i,j) Σ(i,j)whiteP(i,j)SblackSwhiteΣ(i,j)blackP(i,j)
这里后项像素灰度值和要乘上系数是为了排除模板本身面积划分不均等的影响。
最早harr特征是用于人脸识别中面部特征提取的,所以这些模板很多可以找到相应的面部形容,边缘特征就是简单的轮廓,线性特征中某些模板可以用于检测鼻梁或者眼睛区域等等。总的来看harr就是矩形区域内灰度值的加减,为了更快的实现这一目标,实际运用中采用了积分图的方式来快速计算图片中一快矩形区域灰度值的累加和,此处不再展开。

SIFT

 SIFT特征参见本人另一篇博客详细介绍:
SIFT算法详解

SURF

 SURF特征是在SIFT特征上进行了改进,保持了SIFT特征角度、缩放、尺度不变性的情况下计算更加的高效。

特征点获取

 在SIFT中我们通过下采样获得不同尺寸的图片,使用不同的高斯核以获得不同尺度的图片,通过计算高斯差分金字塔以检测出初始的特征点,在SURF中我们对这三方面进行了改进:

  1. 特征点获取不再需要计算高斯差分金字塔,使用高斯差分金字塔是想用DOG算子来进行LOG算子,而此处我们直接使用DOH算子获得相似的结果,算是结合了DOG部分及边缘效应去除部分。DOH算子如下:
    H ( x , y ) = [ L x x ( x , y ) L x y ( x , y ) L y x ( x , y ) L y y ( x , y ) ] H(x,y)=\begin{bmatrix} L_{xx}(x,y)&L_{xy}(x,y)\\ L_{yx}(x,y)&L_{yy}(x,y) \end{bmatrix} H(x,y)=[Lxx(x,y)Lyx(x,y)Lxy(x,y)Lyy(x,y)]
    D O H = D e t ( H ) = L x x ( x , y ) L y y ( x , y ) − L x y 2 ( x , y ) DOH=Det(H)=L_{xx}(x,y)L_{yy}(x,y)-L^2_{xy}(x,y) DOH=Det(H)=Lxx(x,y)Lyy(x,y)Lxy2(x,y)
    L x x L_{xx} Lxx是高斯二阶偏导算子 ∂ 2 g ∂ x 2 \frac{\partial^2{g}}{\partial{x^2}} x22g和原图在 ( x , y ) (x,y) (x,y)处卷积的结果,其余情况同理,由此我们无需再计算DOG,只需在不同尺寸图片上用不同尺度的高斯二阶偏导算子即可获得同样的结果。
  2. 尺寸不变性不再由不同尺寸图片的提供,而是通过不同尺寸的滤波器模板在原图上卷积得到;->构成组
  3. 尺度不变性不再由不同的高斯核获得,而是用不同尺度的盒状滤波器获得,这里的高斯核实际指的是在改进1里提到的高斯二阶偏导算子;->构成层

具体而言,通过以上改进,我们将原SIFT算法中的高斯金字塔构建、高斯差分金字塔构建、边缘效应的去除三个步骤用不同尺寸尺度的高斯二阶偏导算子核原图卷积计算DOH特征来代替,更进一步的使用盒状滤波器代替了高斯二阶偏导算子核原图卷积。
对于 σ = 1.2 \sigma=1.2 σ=1.2的高斯滤波器,我们可以用9*9的盒状滤波器来代替,这样做的好处是可以避免卷积运算,因为盒状滤波器的实质是不同矩形区域内像素点灰度值累加和做差,这一运算可以通过前面在Harr特征里提到的积分图运算迅速解决。
在这里插入图片描述

上图给出了 ∂ 2 g ∂ x 2 \frac{\partial^2{g}}{\partial{x^2}} x22g ∂ 2 g ∂ x y \frac{\partial^2{g}}{\partial{xy}} xy2g对应的盒状滤波器。
但实际上由于盒状滤波器与高斯二阶偏导算子仍然有着差距,计算出的DOH特征并不一致,需要进行修正。
使用盒状滤波器D时
KaTeX parse error: Undefined control sequence: \ at position 370: …xx}(\sigma)|_F}\̲ ̲\end{aligned}
σ = 1.2 , l = 9 \sigma=1.2,l=9 σ=1.2,l=9时, ∣ L x y ( σ ) ∣ F ∣ D x x ( l ) ∣ F ∣ D x y ( l ) ∣ F ∣ L x x ( σ ) ∣ F = 0.9 \frac{|L_{xy}(\sigma)|_F|D_{xx}(l)|_F}{|D_{xy}(l)|_F|L_{xx}(\sigma)|_F}=0.9 Dxy(l)FLxx(σ)FLxy(σ)FDxx(l)F=0.9,这也就是为何用9*9的盒状滤波器代替 σ = 1.2 \sigma=1.2 σ=1.2的高斯二阶偏导算子,后续尺度计算公式为 s = 1.2 × l 9 s=1.2\times\frac{l}{9} s=1.2×9l。理论上来说这个值会随着 σ , l \sigma,l σ,l变化,实际应用假定它为固定值,最终
D O H = D e t ( H ) = D x x ( x , y ) D y y ( x , y ) − D x y 2 ( x , y ) ∗ 0.9 DOH=Det(H)=D_{xx}(x,y)D_{yy}(x,y)-D^2_{xy}(x,y)*0.9 DOH=Det(H)=Dxx(x,y)Dyy(x,y)Dxy2(x,y)0.9

 盒状滤波器尺度大小同样由尺寸参数 l l l所决定,因此实际应用中不同组、不同层的区别都是盒状滤波器尺寸不同。通常第一组第一层为9*9滤波器,转为高斯响应图像的瓣长为 1 3 l = 3 \frac{1}{3}l=3 31l=3 3 σ 3\sigma 3σ原则),第二层在瓣长上累加改变尺度,为保证左右对称增加像素范围,增加取最小值为1时新的瓣长为5, l = 15 l=15 l=15,第一组其余值以此类推;第二组第一层采用第一组第二层的相同尺寸,瓣长增加取前一组的2倍为2;后续组以此类推,最终参数如下:
在这里插入图片描述

通过上述步骤我们获得了和SIFT中一样的初始特征点,后续进行极大值抑制、低对比度去除就获得了最终的特征点。

特征点描述子

 SURF中特征点描述子同样需要确定主方向,确定方式为计算特征点为中心 6 s 6s 6s为半径区域内的harr(横纵边缘模板)响应,再使用 2 s 2s 2s的高斯函数对响应幅值进行加权。而后使用一 π 3 \frac{\pi}{3} 3π大小的扇形区域以0.2弧度划过整个圆形区域,区域的幅值和方向定义为:
m w = Σ d x + Σ d y θ w = a r c t a n ( Σ d y Σ d x ) m_w=\Sigma dx+\Sigma dy\\ \theta_w=arctan(\frac{\Sigma dy}{\Sigma dx}) mw=Σdx+Σdyθw=arctan(ΣdxΣdy)
选取幅值最大区域的方向作为主方向。
 获取特征描述子时同样是将区域旋转到主方向,与SIFT不同的是不再使用圆形区域统计,而是沿着主方向将20s*20s的区域划分为4*4的子块,统计块内的harr特征( Σ d x , Σ d y , Σ ∣ d x ∣ , Σ ∣ d y ∣ \Sigma dx,\Sigma dy,\Sigma |dx|,\Sigma |dy| Σdx,Σdy,Σdx,Σdy),对区域内 d x , d y dx,dy dx,dy使用 3.3 s 3.3s 3.3s的高斯窗加权,拼接后作为该特征区域的特征描述子。
在这里插入图片描述

总结

  SURF相较于SIFT,基本就是大量使用了积分图的计算,为此引入了盒状滤波器和harr特征。

参考

一文讲解方向梯度直方图(hog)
LBP特征
积分图(一) - 原理及应用
Haar特征与积分图
SURF算法与源码分析、上
Surf特征提取分析

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值