参考论文: Gabor Convolutional Networks (IEEE Transactions on Image Processing(Volume: 27,Issue: 9, Sept. 2018)) 中文描述
1.概要
将多个Gabor滤波器调制为GoF,用GoF代替卷积层,得到Gabor卷积神经网络。
1.1 GoF
将多个Gabor滤波器调制为GoF,GoF功能类似于CNN中的卷积层,本质上也是一种卷积计算,GoF中的参数是U、V,分别对应于Gabor滤波器的方向和尺度,表示这样的滤波器能够提取掌纹U个方向和V种尺寸上的特征,这两个参数类似于卷积核的大小,可以根据需要设置。 文献中设置的是让U=N,大小在1-6之间,V随着层数从1-4变化。
1.2 Gabor卷积神经网络
GoF中只有可学习滤波器
C
i
,
o
C_{i,o}
Ci,o?中的参数参与权重的更新,在源代码中,所有的前向传播和反向传播是在C++中完成的,在Python中进行调用,为此最好在Linux系统中运行。(本菜鸟在Windows上改了很久,调不动[哭]~)
2.运行
直接调用源码中的“gcn”文件夹,主函数和框架仍是用自己的,相当于只是用GConv层直接代替nn.Conv2d: 参数channel就是U,nScale就是V。
2.1 U和V
仿效原论文对U和V两个参数对实验结果的影响做了对比,使用的是IITD非接触掌纹数据集:
2.2 GConv和Conv2d
使用0-4个GConv依次替代CNN中的Conv2d,对比5种模型的结果:
在IITD上Gabor卷积神经网络的结果总不如CNN,尝试多次调整参数,这几种模型也都是经过优化的,仍不符合预期,但结果相对于以往几年的经典网络模型还是不错的,就是打不败CNN… 在Tongji非接触掌纹数据集上两种最好的模型都达到了1.0的识别率,这一点还不错。 找机会会把代码传上去。
总之实验到这里就彻底告一段落了,没有创新,没有优化,只是搬弄粉饰,拾人牙慧,捡着前辈的东西重现一番,为大学生活画上一个潦草的句号,没有留恋,没有遗憾。
|