gabor特征 gabor滤波器

article/2025/9/15 16:19:43

gabor特征

Gabor 特征是一种可以用来描述图像纹理信息的特征,Gabor 滤波器的频率和方向与人类的视觉系统类似,特别适合于纹理表示与判别。Gabor 特征主要依靠 Gabor 核在频率域上对信号进行加窗,从而能描述信号的局部频率信息。Gabor 核靠傅里叶变换,我们才能将信号转换到频率域,才能让Gabor核在频率域去加窗。而在原本的空间域中,一个 Gabor 核实际上就是一个高斯核与正弦波调制的结果,可以看做是高斯核应用在了正弦波的频域部分。

1.傅里叶变换

 傅里叶变换是一个线性的积分变换,从时域到频域,傅立叶变换分为连续傅立叶变换、傅立叶级数、离散时域傅立叶变换、离散傅立叶变换(DFT).原理即是将输入的长度为N信号分解为N/2+1 正余弦,通过正交的原理。傅里叶变换,实际上就是给一个时域上的函数乘上旋转因子,然后在全时间域上积分。在全时间域上积分,所以最后结果就刨去了时间t的影响。最后的积分结果是一个只关于的函数,也就是说是一个关于角频率的函数。这样就实现了时域到频域的转换。通过傅里叶变换,我们能将任何波分解为不同频率波的叠加。这样转换的好处是:有些情况下空域中很复杂的问题,在频率域会变得十分简单。时间域中的一个正弦波波形,在频率域中只要一个点就能表示

2.一维Gabor核

  • 一维傅里叶变化定义如下:

    这里写图片描述

    其中,f 为输入信号,ξξ 表示分解得到的各个波的频率,f̂ (f,ξ)f^(f,ξ) 为变换后的信号。公式中的 e−i2πxξe−i2πxξ 表示一个复数波

  • 一维 Gabor 核

    一维Gabor核由一个高斯核与一个复数波的乘积定义:

    这里写图片描述

    其中,

    这里写图片描述

    将复数波s(t)=ei(2πf0t)s(t)=ei(2πf0t)代入式中,得到:

    这里写图片描述

    上面最后一步得到了 Gabor 核的复数表示,我们就可以按实部和虚部将其拆分为实核和虚核,在很多应用中,我们只需要应用 Gabor核的实数部分即可:

    这里写图片描述

  • Gabor 核的傅里叶变换

    将 Gabor 核套入一维傅里叶变换中,得到 Gabor 核的傅里叶变换

    这里写图片描述

    上式中出现了 ω̂ (f−f0/a) 的形式,这里需要补充高斯核一个很有趣的性质:ω̂ (f)=ω(f)=e^−πf^2。根据这个性质,上式中的 ω̂ (f−f0/a)也可以写作 ω(f−f0/a),二者可以自由转换。

    Gabor核傅里叶变换后是这样一个形式:

    这里写图片描述

    这个形式可以看做是一个复数波,它的幅度

    这里写图片描述

    Gabor核相当于在频率域应用了一个高斯核窗口。假设我们这时有了一个信号的频率域:fin(f),那么我们直接用频率域的Gabor核 Gabor^ 与其相乘,就实现了对 f0 频率邻域范围内的滤波效果:输入信号频率离这个 Gabor 核的 f0 越远,则乘上Gabor核之后的结果就越小,尤其是当 fin 在 f0 的 3σ 区间外时,这个频率几乎可以忽略不计。于是,最终能保留下来的信号就都是 f0频率附近的信号了。

    滤波公式:

    这里写图片描述

    给我们任意一个输入信号,我们先用傅里叶变换将其变换到频率域得到fin^,再用 Gabor 核的傅里叶变换结果与之相乘,就是频域滤波的结果了。

    不过我们大可不必这么麻烦,因为有卷积定理:

    这里写图片描述

    gabor特征:

    用 Gabor 核和输入信号卷积就可以得到输入信号在某频率邻域附近的响应结果响应结果来实现频域滤波,又可以用它来描述信号的频率信息。Gabor特征就是用Gabor核来描述信号的频率信息,从而作为信号的特征的。
    

3.二维Gabor核

  • 二维复数波

    这里写图片描述

    于初始相位对Gabor核影响不大,因此可以将其省略

    这里写图片描述

  • 二维高斯函数

    这里写图片描述

    考虑全面的话,高斯函数还要有(顺时针)旋转

    这里写图片描述

    所以,

    这里写图片描述

  • 二维的Gabor核

    二维高斯函数与二维复数波相乘

    这里写图片描述

    各个参数含义如下:

    • (x0,y0): 高斯核的中心点
    • θ: 高斯核的旋转方向(顺时针)
    • (σx,σy): 高斯核两个方向上的尺度
    • (u0,v0): 频域坐标
    • K: 高斯核的幅度(magnitude)的比例

4.Gabor核作为图像特征

一个Gabor核能获取到图像某个频率邻域的响应情况,这个响应结果可以看做是图像的一个特征。那么,我们如果用多个不同频率的Gabor核去获取图像在不同频率邻域的响应情况,最后就能形成图像在各个频率段的特征,这个特征就可以描述图像的频率信息了

这里写图片描述

上图展示了一系列具有不同频率的 Gabor 核,用这些核与图像卷积,我们就能得到图像上每个点和其附近区域的频率分布情况。

Gabor滤波器

  • 介绍

    通常有8个方向,5个尺度

    这里写图片描述

    从图1a和图2a可以清楚看出,每一列为尺度变化,一共有5个尺度。每一行为方向变化,一共有五个方向。

  • 例子

    把人脸图像分别用对应的实部虚部滤波器进行滤波,再进行平方相加开根号。就可以得到人脸的Gabor特征了,如图2待提取的人脸图像

    这里写图片描述
    这里写图片描述

  • 优化

    这个特征太大!(1)不适合存储。(2)有很多不需要的特征,导致维数灾难。

    这里写图片描述

    一种特征降维的方法,称为pooling池化,

    1)对特征图可以进行max pooling | mean polling |Stochastic-pooling

    • mean-pooling

      即对邻域内特征点只求平均:假设pooling的窗大小是2x2, 在forward的时候,就是在前面卷积完的输出上依次不重合的取2x2的窗平均,得到一个值就是当前mean pooling之后的值。backward的时候,把一个值分成四等分放到前面2x2的格子里面就好了。举例:

      forward: [1 3; 2 2] -> [2]
      backward: [2] -> [0.5 0.5; 0.5 0.5]

    • max-pooling

      即对邻域内特征点取最大。forward的时候你只需要把2x2窗子里面那个最大的拿走就好了,backward的时候你要把当前的值放到之前那个最大的位置,其他的三个位置都弄成0。举例:

      forward: [1 3; 2 2] -> 3
      backward: [3] -> [0 3; 0 0]

    • Stochastic-pooling

      通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则
      只需对feature map中的元素按照其概率值大小随机选择,即元素值大的被选中的概率也大。而不像max-pooling那样,永远只取那个最大值元素

  • 例子

    假设feature map中的pooling区域元素值如下:

    这里写图片描述

    3*3大小的,元素值和sum=0+1.1+2.5+0.9+2.0+1.0+0+1.5+1.0=10
      方格中的元素同时除以sum后得到的矩阵元素为:

    这里写图片描述
      
    每个元素值表示对应位置处值的概率,现在只需要按照该概率来随机选一个,方法是:将其看作是9个变量的多项式分布,然后对该多项式分布采样即可,theano中有直接的multinomial()来函数完成。当然也可以自己用01均匀分布来采样,将单位长度1按照那9个概率值分成9个区间(概率越大,覆盖的区域越长,每个区间对应一个位置),随机生成一个数后看它落在哪个区间。

    比如如果随机采样后的矩阵为:

    这里写图片描述

    则这时候的poolng值为1.5

    使用stochastic pooling时(即test过程),其推理过程也很简单,对矩阵区域求加权平均即可。比如对上面的例子求值过程为为:
     

    在反向传播求导时,只需保留前向传播已经记录被选中节点的位置的值,其它值都为0,这和max-pooling的反向传播非常类似。

  • 比较

    特征提取的误差主要来自两个方面:

    (1)邻域大小受限造成的估计值方差增大;

    (2)卷积层参数误差造成估计均值的偏移。

    mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。 
    
  • 应用

    窗口滑动卷积的时候,卷积值就代表了整个窗口的特征。因为滑动的窗口间有大量重叠区域,出来的卷积值有冗余,进行最大pooling或者平均pooling就是减少冗余。

    平移不变性 如果人们选择图像中的连续范围作为池化区域,并且只是池化相同(重复)的隐藏单元产生的特征,那么,这些池化单元就具有平移不变性 1、连续范围 2、池化相同隐藏单元产生的特征

    而平移不变性,就是一个特征,无论出现在图片的那个位置,都会识别出来。所以平移不变性不是pooling带来的,而是层层的权重共享带来的。

2)

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

我见解

gabor特征其实就是gabor核跟输入信号卷积,得到的相应结果实现频域滤波,作为信号的特征。

通常使用一系列不同频率的gabor核与图像卷积,得到图像上的每个点和附近区域的频率分布。

详细python实现代码见我的下一篇博客~


http://chatgpt.dhexx.cn/article/F6Tbs7Ew.shtml

相关文章

Log-Gabor Filters

原文转自:http://www.csse.uwa.edu.au/~pk/research/matlabfns/PhaseCongruency/Docs/convexpl.html What Are Log-Gabor Filters and Why Are They Good? Gabor filters are a traditional choice for obtaining localised frequency information. They offer the…

Gabor

出处:http://zhenyulu.cnblogs.com/articles/325968.html 二、Gabor函数 Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。另外Gabor函数与人眼的生物作用相仿,所以经常用作纹理识别上,并取…

Gabor滤波器与特征提取

一、Gabor滤波器 Gabor滤波器,最主要使用优势体现在对物体纹理特征的提取上。 二维Gabor基函数能够很好地描述哺乳动物初级视觉系统中一对简单视觉神经元的感受野特性。随着小波变换和神经生理学的发展,Gabor变换逐渐演变成二维Gabor小波的形式。Gabor…

【图像处理】Gabor滤波器

Gabor的核函数参考的wiki 使用实数Real的公式计算核函数代码&#xff1a; Mat getGaborFilter(float lambda, float theta, float sigma2,float gamma, float psi 0.0f){if(abs(lambda-0.0f)<1e-6){lambda 1.0f;} float sigma_x sigma2;float sigma_y sigma2/(gamma*gam…

生物特征识别中的Gabor滤波器

Daugman&#xff08;1980&#xff09;提出的2D Gabor滤波器&#xff08;以下简称Gabor滤波器&#xff09;&#xff0c;在纹理分类、纹理分割、生物特征识别中取得了广泛的应用。本文首先简要介绍Gabor滤波器&#xff0c;然后列举它在生物特征识别方面的代表性应用。 2D Gabor滤…

matlab的gabor类解读

为什么要进行解析&#xff0c;因为自带的gabor函数有个小坑&#xff0c; 转opencv的时候&#xff0c;因为没有完全理解自带的gabor源码被小小的坑了一下&#xff0c; 所以做一下记录&#xff0c; 以方便后人。‘ 版本是2016B 文章目录 Matlab gabor函数解析1 gabor基本公式2 m…

Gabor滤波 + 多尺度问题

Gabor函数 Gabor变换属于加窗傅立叶变换&#xff0c;Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。另外Gabor函数与人眼的生物作用相仿&#xff0c;所以经常用作纹理识别上&#xff0c;并取得了较好的效果。二维Gabor函数可以表示为&#xff1a; 其中&#xff1a;…

Gabor算法

在数字图像处理领域&#xff0c;Gabor滤波器是以Dennis Gabor命名的&#xff0c;Gabor滤波器是用作边缘检测的线性滤波器。Gabor滤波器的频率和方向的表达与人类的视觉系统很相似。研究发现&#xff0c;Gabor滤波器非常适合纹理表达和分离。在空间域中&#xff0c;一个二维Gabo…

Log-Gabor滤波器

Log-Gabor滤波器 G ( f ) e l n 2 ( ω / ω 0 ) 2 l n 2 ( k / ω 0 ) G(f)e^{\frac {ln^2({\omega /\omega_0})}{2{ln}^2(k/\omega_0)}} G(f)e2ln2(k/ω0​)ln2(ω/ω0​)​ 式中&#xff1a; ω 0 \omega_0 ω0​为滤波器中心频率&#xff0c;通常将 k / ω 0 k/\omega_0 k…

Gabor滤波器原理

一、什么是Gabor函数&#xff08;以下内容含部分翻译自维基百科&#xff09; 在图像处理中&#xff0c;Gabor函数是一个用于边缘提取的线性滤波器。Gabor滤波器的频率和方向表达同人类视觉系统类似。研究发现&#xff0c;Gabor滤波器十分适合纹理表达和分离。在空间域中&#x…

Gabor的OpenCV代码

唯一持续维护地址&#xff1a;http://52coding.com/opencv-gabor 最近弄人脸识别&#xff0c;用到Gabor卷积核&#xff0c;但网上的代码似乎没有和我心意的&#xff0c;于是参考了自己写了下&#xff01;参考了Zhou Mian以及matlab的Gabor实现代码的代码。虽然OpenCV的imporc下…

2021-08-07 Gabor滤波器简介以及简单应用

Gabor滤波器&#xff08;Gabor Filter&#xff09; 文章目录 Gabor滤波器&#xff08;Gabor Filter&#xff09;简介Gabor滤波器的不同参数Gabor滤波器的简单应用&#xff08;python&#xff09; 简介 Gabor滤波器是一种线性滤波器&#xff0c;用于边缘检测、纹理分析、特征提…

Gabor Filters

Gabor Filters: Manjunath, B. S., & Ma, W. Y. (1996). Texture features for browsing and retrieval of image data. IEEE Transactions on Pattern Analysis and Machine Intelligence, 18(8), 837-842. Gabor滤波器是一种基于Gabor函数的特定频率和方向选择性滤波器。…

基于Gabor滤波器的人脸特征提取

Gabor小波变换的核函数&#xff0c;其最大的特点是其与人脑的皮层神经细胞的二维反射区具有相似的特征。基于Gabor小波变换的特征信息能够有效提取各种细节结构信息&#xff0c;因此Gabor小波变换在图像识别领域有着较为广泛的应用。根据Gabor小波变换的特点&#xff0c;基于Ga…

Gabor特征提取

Gabor小波与人类视觉系统中简单细胞的视觉刺激响应非常相似。它在提取目标的局部空间和频率域信息方面具有良好的特性。虽然Gabor小波本身并不能构成正交基&#xff0c;但在特定参数下可构成紧框架。Gabor小波对于图像的边缘敏感&#xff0c;能够提供良好的方向选择和尺度选择特…

Gabor 卷积神经网络

与不涉及学习过程的 hand-crafted 滤波器不同&#xff0c;DCNNs-based feature extraction 是一种 data-driven 技术&#xff0c;可以直接从数据中学习具有鲁棒性的特征表示。然而&#xff0c;它有非常大的训练成本和复杂的模型参数。 DCNNs 有限的几何变换建模能力主要来自于…

如何理解Gabor滤波器

转载自如何理解Gabor滤波器 介绍 我们已经知道&#xff0c;傅里叶变换是一种信号处理中的有力工具&#xff0c;可以帮助我们将图像从空域转换到频域&#xff0c;并提取到空域上不易提取的特征。但是经过傅里叶变换后&#xff0c;图像在不同位置的频度特征往往混合在一起&…

基于python的图像Gabor变换及特征提取

基于python的图像Gabor变换及特征提取 1.前言2. “Gabor帮主”简介3.“Gabor帮主”大招之图像变换3.“Gabor帮主”大招之图像特征提取 深圳中兴网信科技有限公司&#xff1a;廖海斌 1.前言 在深度学习出来之前&#xff0c;图像识别领域北有“Gabor帮主”&#xff0c;南有“SIF…

Gabor滤波器详解

转载自如何理解Gabor滤波器 介绍 我们已经知道&#xff0c;傅里叶变换是一种信号处理中的有力工具&#xff0c;可以帮助我们将图像从空域转换到频域&#xff0c;并提取到空域上不易提取的特征。但是经过傅里叶变换后&#xff0c;图像在不同位置的频度特征往往混合在一起&…

Gabor 变换

http://blog.sina.com.cn/s/blog_48a242d601000a3j.html Gabor变换属于加窗傅立叶变换&#xff0c;Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。另外Gabor函数与人眼的生物作用相仿&#xff0c;所以经常用作纹理识别上&#xff0c;并取得了较好的效果。 Gabor变换…