论文地址:https://arxiv.org/pdf/1705.01450.pdf
代码地址:jxgu1016/Gabor_CNN_PyTorch: WACV2018/TIP: Gabor Convolutional Networks (github.com)
摘要:
本文将传统的边缘检测算子Gabor滤波器引入CNN中,以增强深度学习特征对方向和尺度变化的适应性(方向不变性和尺度不变性,因为一般来说深度卷积网络是没有这两个特性的,除非加上很多池化层)。
本文中,我们提出使用传统的手工制作的Gabor滤波器来调节可学习卷积滤波器,以减少可学习网络参数的数量,增强所学特征对方向和尺度变化的鲁棒性。具体地说,在每个卷积层中,卷积滤波器通过具有不同方向和尺度的Gabor滤波器进行调制,以产生卷积Gabor方向滤波器(GoFs),从而使得卷积滤波器在输出特征图中捕捉空间位置、方向选择性和空间频率选择性。GoFs是在CNN的基本元素即卷积滤波器上实现的,因此可以很容易地集成到任何深度的架构中。带有GoF的DCNN,称为GCN,可以学习更健壮的特征表示,特别是对于具有空间转换的图像。此外,由于GoF是基于一组小的可学习卷积滤波器生成的,因此所提出的GCNs模型更紧凑,更易于训练。主要贡献点:(1)首次将Gabor滤波器融合到DCNNs中,从而提高后者针对各种变化的鲁棒性,比如变换,尺度和方向变化;(2)GCNs提高了基于DCNNs架构的性能,获得了最好的结果。
3 Gabor Convolutional Networks:
Gabor卷积网络(GCN)是使用Gabor方向滤波器(GoF)的深卷积神经网络。GoF是一个参数可调的滤波器,通过Gabor滤波器组操纵学习的卷积滤波器来生成增强的特征图。
3.1 Convolutional Gabor orientation Filters (GoFs)
Gabor滤波器具有U个方向和V个尺度。为了将可操纵特性合并到GCN中,方向信息被编码到学习的卷积滤波器中,同时尺度信息被嵌入到不同的层中。由于Gabor滤波器在GoF中捕获了方向和尺度信息,增强了相应的卷积特征。
假设一个学习的卷积滤波器大小为,其中 是2D滤波器的尺寸, 是Gabor滤波器的方向数U(N=U)。因此一个GoF对应给定尺度下U个Gabor滤波器,而尺度为 的滤波器的调制如下:
是学习的滤波器, 为点积操作, 为Gabor滤波器。GoF则表示为
因此,第i 个GoF实际上是 U个3D滤波器,如图2所示
图2 GoFs获得和卷积示意图
在GoFs中,v 随着层数增加而增加,意味着Gabor滤波器的尺度随着层数变化。在每一种尺度下,GoF的尺寸为 。但是,我们只保存 的可学习滤波器,这样我们就可以通过调制学习到增强性特征,而不会增加参数的数量。
3.2 GCN convolution
在GCNs中,GoFs是用来产生特征图的,可以增强深度特征的尺度和方向信息。输出特征图表示如下:
特征图 的通道可以通过下面卷积获得:
对于图2的理解,左边是得到GoFs的过程,其中可学习的滤波器和Gabor滤波器组进行点积,可以看到尺度为4的四个不同方向的Gabor卷积模板,每个方向分别和可学习的滤波器进行点积,最终获得 的GoF,这个可以看做常规的CNN中的卷积模板,可以看成4个卷积滤波器,每个大小为 。再看右边的那个图,输入特征图为 ,GoF中的每个 的卷积分别和特征图进行卷积操作,最终得到 。
“ “中的“1”是啥玩意儿?(转自https://zhuanlan.zhihu.com/p/146410470)
根据下图描述的过程,“1”所在位置的计算过程类似于普通卷积时Channel的转换过程。只不过是将channel转换成了特征图。