Gabor滤波器及Gabor特征提取

1.Gabor变换简介

该部分主要摘自:Gabor滤波进行目标图像纹理特征的提取

说起Gabor变换就得先从Fourier变换说起。傅里叶变换是线性系统分析的有力工具,提供了一种把时域信号转换到频域进行分析的途径,时域和频域之间是一对一的映射关系。图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对 于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。


傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的 谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将 图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为 灰度分布函数。


但是傅里叶变换的不足之处也是显而易见的,经典Fourier变换只能反映信号的整体特性(时域,频域)。对傅里叶谱中的某一频率,无法知道这个频率是在什么时候产生的。从傅里叶变换的定义也可看出,傅里叶变换是信号在整个时域内的积分,因此反映的是信号频率的统计特性,没有局部化分析信号的功能。另外,要求信号满足平稳条件。傅里叶变换时域和频域是完全分割开来的。此外从傅里叶变换的定义可以看出,要用Fourier变换研究时域信号频谱特性,必须要获得时域中的全部信息;信号在某时刻的一个小的邻域内发生变化,那么信号的整个频谱都要受到影响,而频谱的变化从根本上来说无法标定发生变化的时间位置和发生变化的剧烈程度。也就是说,Fourier变换不能给出在各个局部时间范围内部频谱上的谱信息描述。然而在实际应用中,我们所关心的正是信号局部范围内的特性。如,音乐,语言信号等。即:局部化时间分析,图形边缘检,地震勘探反射波的位置等信息极重要。为解决傅里叶变换的局限性,产生了Gabor变换和小波变换。


Gabor变换是D.Gabor1946年提出的。为了由信号的Fourier变换提取局部信息,引入了时间局部化的窗函数,得到了窗口Fourier变换。由于窗口Fourier变换只依赖于部分时间的信号,所以,现在窗口Fourier变换又称为短时Fourier变换,这个变换又称为Gabor变换。
Gabor小波与人类视觉系统中简单细胞的视觉刺激响应非常相似。它在提取目标的局部空间和频率域信息方面具有良好的特性。虽然Gabor小波本身并不能构成正交基,但在特定参数下可构成紧框架。Gabor小波对于图像的边缘敏感,能够提供良好的方向选择和尺度选择特性,而且对于光照变化不敏感,能够提供对光照变化良好的适应性。上述特点使Gabor小波被广泛应用于视觉信息理解。
Gabor滤波器和脊椎动物视觉皮层感受野响应的比较:第一行代表脊椎动物的视觉皮层感受野,第二行是Gabor滤波器,第三行是两者的残差。可见两者相差极小。Gabor滤波器的这一性质,使得其在视觉领域中经常被用来作图像的预处理。

clip_image012[4]


关于Gabor变换的定义和Gabor核函数请参考Gabor特征总结


2. Gabor特征提取

该部分主要摘自:人脸识别---Gabor特征(mean pooling和max pooling)

通常我们使用的Gabor滤波器有8个方向,5个尺度,这些参数都可以调节。Gabor滤波器分为实数部分和虚数部分,如图1所。图1a为实数部分,图1b为虚数部分。 

这里写图片描述 
图1a Gabor滤波器实数部分 
这里写图片描述 
图1b Gabor滤波器虚数部分

      从图1a和图1b可以清楚看出,每一列为尺度变化,一共有5个尺度。每一行为方向变化,一共有五个方向。 
      把人脸图像分别用对应的实部虚部滤波器进行滤波,再进行平方相加开根号。就可以得到人脸的Gabor特征了,如图2待提取的人脸图像。图3为Gabor的特征图。


这里写图片描述
图2 待提取的人脸图像
这里写图片描述 
图3 Gabor的特征图

图3为Gabor特征的特征图,图像大小为100*70,假设不损失边缘进行滤波,那么将得到100*70*40=28w特征,这个特征太大!(1)不适合存储。(2)有很多不需要的特征,导致维数灾难。 
      下面我介绍一种特征降维的方法,称为pooling,在Deep learning有用到过。对特征图可以进行max pooling或者mean pooling。如图4所示 

这里写图片描述 
图4 人脸特征图像分块方式

      每一个小块,我们可以取平均或者这个小块的最大值,取平均叫mean pooling,取最大值为max pooling。假设每一个小块为10*10,那么一张feature map大小为7*10。对于40张feature map,总特征维度为7*10*40=2800。这样的特征便于存储。 
当然还有其他特征处理的方式

  • 关键点采样(SIFT,SURF关键点都可以)
  • 定点采样,坏处在于不知道采的特征是否具体代表性。
  • Adaboost等方法特征选择方法选择特征。
3.Opencv实现

目前Opencv3.2中仅仅集成了计算gabor核的API:getGaborKernel()。如果想获得像上面提到的5个尺度,8个方向的gabor核,可以参考Gabor滤波器的生成。关于利用gabor变换来进行人脸识别,可以参考 基于Gabor的人脸检测的Opencv代码



  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值