基于注意力胶囊网络的高分辨率掌纹图像识别
2022-10-25吴碧巧王天一
吴碧巧,王天一
(贵州大学大数据与信息工程学院,贵州 贵阳 550025)
1 引言
生物特征识别越来越成为一种流行且重要的身份鉴别方式,同指纹,虹膜一样,掌纹也是生物特征识别中重要的一员。高分辨率掌纹特指清晰度在 300 dpi 以上的掌纹图像,其图像大,包含有丰富的信息可以用于身份鉴定,目前多应用在刑侦领域和法律层面。
目前,主要采用对脊线、褶皱线、不同的脊线分布形成的细节特征点等特征进行细节特征点提取、掌纹匹配的方法来对高分辨率掌纹进行识别和匹配。文献[2]和文献[3]都是针对褶皱进行检测,其中文献[2]采用二阶高斯滤波器对褶皱进行检测,文献[3]融合了动态交叉模板方法和方向滤波方法。文献[4]提出了一种基于区域融合的匹配策略,使用主要折痕特征分割的区域进行高分辨率掌纹识别。文献[5]对掌纹匹配设计了基于细节簇和细节匹配传播的粗略匹配策略,识别准确度为79.4%。传统的高分辨率掌纹识别方法依赖于预先设计的人工特征来训练分类器,这种方法在很大程度上依赖于设计者设计特征的能力,并且由于高分辨率的掌纹图像部分区域图像质量较差,存在着掌纹图像残缺不全的情况,对细节点的提取和掌纹的正确匹配造成很大困难。
深度学习能够实现端到端的深度神经模型自动提取特征和分类,免除了繁杂的特征提取算法和掌纹匹配过程,且具有很好的可移植性。胶囊网络是一种使用动态路由算法的新型卷积神经网络,使用向量神经元解决了标量神经元对特征的空间方位不敏感以及物体旋转变形后无法识别的问题。本文以胶囊算法为基础对胶囊网络进行改进,提出一种拥有深度特征提取网络和注意力机制的双重增强型胶囊网络。
由于胶囊网络的计算量很大,特别是其重构部分是三个全连接层有大量的参数计算量,本文选择去掉重构网络,牺牲一点精度来换取模型体量的精简和运算速度的提升;采用超深度小卷积神经网路来优化特征提取部分和进行下采样操作,为胶囊算法的输入提供高质量的输入胶囊和减小胶囊算法的参数量;注意力算法可以关注到掌纹识别中具有很好区分性的特征,在提取特征的卷积神经网路中加入通道注意力算法能够增加重要特征的权重,进一步提高网络在高分辨率掌纹图像上的识别精度。
2 胶囊网络
2.1 胶囊网络结构
胶囊网络是一个非常浅的卷积神经网络,主要包括输入层、卷积层、主胶囊层,数字胶囊层和重构层,其核心为由主胶囊层到数字胶囊层的动态路由算法,该算法将标量神经元转换为向量神经元对图像进行特征提取和分类操作。
图1 胶囊网络模型
图1为不包括重构网络的胶囊网络模型,在下文中直接称为胶囊网络。第一个卷积层采用9×9×256的卷积核,步长为1。从卷积层到主胶囊层采用9×9(×8)×32的卷积核,步长为2。数字胶囊层的输出为16×10的向量矩阵,其中,包含10个标准胶囊向量(10个类别),每个胶囊的特征维数为16。对每个胶囊向量进行L2范数计算得到输出(10×1),对输出求最大值的索引值即为输入图像的类别。胶囊网络的损失函数为间隔损失函数,公式如下:
(1)
其中,是分类类别,是分类的指示函数(存在为1,不存在为0);为上界,用于惩罚假阳性,即预测类存在但真实不存在;为下界,用于惩罚假阴性,即预测类不存在但真实存在;是比例系数,用于调整两者比重。总的损失是各个样例损失之和,在本论文中=09,=01,=05。
重构网络为三层全连接网络,输入为16个神经元,中间两层的神经元个数为512和1024,最后一层的神经元为784(28×28)个,即输入图像的大小。前两层使用relu激活函数,最后一层使用sigmoid函数,重构损失函数为重建图像与输入图像的平方差之和。
2.2 动态路由算法
动态路由算法是由向量到向量,一个向量也就是一个胶囊。要得到向量,首先将主胶囊层的6×6(×8)×32的特征图转换为1152×8的特征矩阵,表示有1152个特征维度为8的胶囊。
图2 动态路由算法
图2为动态路由算法的示意图,图中以输入两个胶囊输出三个胶囊为例。输入向量与变换矩阵相乘得到预测向量,其中变换矩阵为参数,通过学习得到。耦合系数通过权重应用函数得到,使得=1且均为非负数。表示表示第个低级胶囊到第个高级胶囊的连接权重,设置初始为0。与对应相乘再相加得到,将通过函数即可得到输出向量,。根据公式=+*更新权重,然后重复这个过程。函数的表达式如下
(2)
式子=+*是动态路由算法的核心,确定低层胶囊和高层胶囊的相关性,越相关的通过迭代算法是它们更加相关,不相关的让它们的相关性越差。如图3所示,与1最高,则它们的向量点积最大,使得下一次的计算更加相关1。
图3 路由算法概念图
3 注意力胶囊网络模型
本文提出的注意力胶囊网络如图4所示,输入图像经过图像预处理后为(510×510×1),经过一个深度卷积网络提取特征,然后引入通道注意力,用来给不同的特征分配不同的权重。主胶囊层的卷积核为(5×5×256),s=2,主胶囊层将标量神经元转换为向量神经元,最后在数字胶囊层应用路由算法得到(16×160)的向量矩阵,其中,包含160个胶囊向量(160个类别),每个胶囊的特征维数为16。对每个胶囊进行L2范数计算得到输出(160×1),对输出求最大值的索引值即为输入图像的类别。
图4 注意力胶囊网络模型
3.1 深度卷积网络
更深的卷积网络可以提取到更高级的特征,从而得到更优质的胶囊。VGG网络在卷积层使用小卷积核(3×3)来减少参数,增加网络层数来获取与大卷积核相同的感受野,整个网络不仅提高了运算速度,图像识别的效果也显著提升。本文基于VGG网络提出三种深度卷积网络用于路由算法前提取更高级的掌纹图像特征。3种深度卷积网络如图5所示。考虑到深度卷积网络的输出特征图大小不能过大,否则会在主胶囊层生成过多的胶囊,特征冗余的同时给路由算法带来大量的计算成本,造成过拟合甚至计算机无法正常工作;另外,由于高分辨率掌纹数据集的训练数据少,不宜加过多的卷积层,会造成无法训练的情况,故,只提出了三种很相近的三种深度卷积网络,未使用池化层,而是选择步长为2的卷积层来进行下采样操作。结构a和结构b的区别只在最后一个卷积层是否进行步长为2的下采样,结构c和结构a、b的区别在于少了一个卷积层。
图5 三种深度卷积网络
3.2 通道注意力
视觉注意力机制基于人眼看到物体时的信息处理过程,在观察一个物体时,人眼和大脑会自动给重要的特征更多的注意力,对于不同的物体,注意力的中心区域也会发生变化。神经网络可以很好的查找出图像中所有的特征点,但没法去区分那些特征点是更重要的,需要给予更多关注和权重的,因此注意力机制就是给神经网络一组权重,可以从众多的特征中选择出重要特征赋予更多权重并抑制不重要的特征。
路由算法不仅会学习到特征是什么,还会学习到特征之间的位置关系,对特征的空间方位具有感知力,所以注意力胶囊网络模型中只在用到了通道注意力,即特征是什么。本文的通道注意力模块是采用的CBAM中的注意力模块,其公式如下:
()=((())+((()))
(3)
图6 通道注意力模块
4 实验
所有实验均在Ubuntu18.04.4LTS 操作系统上进行,采用TensorFlow深度学习框架,i7-9700 处理器,RTX 2080Ti显卡,32GB 内存。损失函数默认使用margin Loss,m=0.9,m=0.1,λ=0.5,Adam优化器,路由算法迭代3次,Batch Size为2。
4.1 数据集以及图像预处理
实验使用清华大学自动化学院采集的THU 高分辨率掌纹数据库。数据库中总共包含了 一共160个不同手掌的1280 张高分辨率掌纹图像,每个手掌有8 张图像。每一张高分辨率掌纹图像的分辨率都是 500 ppi,大小2040×2040 像素,大部分的掌纹图像都是灰度图像,但有少数掌纹图像是彩色图像。处理数据时,将所有的高分辨率掌纹图像都读取为灰度图像。
实验将数据集中每一类掌纹图像的第1、2、3、4、6、8张图像,即160×6张掌纹图像作为训练样本;把其余的 160×2 张掌纹图像作为测试样本。数据集里本来的高分辨率掌纹图像大小为2040×2040 像素,为了减小运算量提高运算速度,对数据集进行降采样预处理,处理后的掌纹图片大小为510×510像素。图7中显示了一张来自 THU 数据库中的掌纹图像样例。
图7 高分辨率掌纹图像
4.2 实验结果分析
表1为无重构网络的三种特征提取模型下的高分辨率掌纹图像识别率。由表可知,结构a的训练时间大约只有另外两种结构的三分之一,这是因为结构a的输出特征图只有另外两种结构的一半,在主胶囊层形成的胶囊数量只有它们的四分之一,整个模型的的计算成本主要集中在路由算法。结构b在最后一个卷积层步长为1,增大了学习难度和复杂度,识别效果略低于结构a。结构c直接减少一个卷积层,也就减少了一个卷积层的参数量,直接使用路由算法进行学习分类能得到更好的识别效果,可以看出,对于小数据集,胶囊网络识别效果明显优于卷积网络。
表1 三种卷积网络识别率对比
由表可知,结构c的特征提取模型的识别率明显由于另外两种特征提取模型,因此在后面的注意力胶囊算法中采用结构c的特征提取模型。另外,在结构下c,加上三层的全连接重构网络之后,识别率为84.06%,重构网络的参数量为
16×512+512×1024+1024×(510×510×1)=266,874,880
在增加计算成本之后,识别率只增加了0.93%,因此选择以较小的识别精度来换取模型的精简和训练速度。
图8 为加入通道注意力模块的胶囊网络测试结果,横坐标为训练次数,纵坐标分别为准确率和损失值。网络在第23个epoch得到最好的测试准确率88.13%,损失值为0.07。
图8 注意力胶囊网络测试结果
表2为注意力胶囊网路和基础胶囊网路、VGG16的实验结果对比图,可以看到,加了通道注意力的胶囊网络识别准确率提升了5%,训练时间只增加了0.33s;相对于VGG16网络,准确率高了16.26%,训练时间少2.57s。
表2 各算法在测试集上的测试结果
5 结论
本文通过对胶囊网络进行改进算法,首先,选择去掉重构网络,精简网络模型提升运算速度;采用超深度小卷积神经网路来优化特征提取部分的同时设置步长为2进行下采样操作,为胶囊算法的输入提供高质量的输入胶囊和减小胶囊算法的参数量;加入通道注意力能够挑选出重要特征并增加重要特征的权重,进一步提高网络在高分辨率掌纹图像上的识别精度。实验证明,注意力胶囊网络在识别精度优于没有注意力模块的胶囊网络。