李伯男,赵彤,吴敏
(1 中国科学院大学计算机与控制学院, 北京 101408; 2 中国科学院大学数学科学学院, 北京 100049; 3 中国科学院大数据挖掘与知识管理重点实验室, 北京 100049)
在过去的100多年里,由于指纹具有生物特征识别系统中特征所必需的唯一性和不变性,使其在公安、海关及国防等领域担任了极其重要的角色。现代指纹识别相关理论最早是由Henry[1]提出的,之后学者便投入大量精力研发自动指纹识别系统(automatic fingerprint identification system,AFIS),并不断地提高其精度和速度。目前基本各类AFIS均使用1V1匹配模式,即将模板指纹与数据库中所有指纹逐一比对,当指纹数据库体积爆发式增长时,识别速度过慢便成为一个极为棘手的问题,所以很有必要利用精度高且速度快的指纹索引算法减少识别海量指纹数据库时的匹配次数。指纹纹型是人们最易观察且不会发生形变的指纹特征,所以自然成为研究指纹索引算法的首选特征。在文献[1]的指纹分类体系中,纹型被分成5类,即弓(arch)、帐弓(tented arch)、左箕(left loop)、右箕(right loop)和斗(whorl),如图1所示。然而在自然分布情况下,这5种类型的分布是不均匀的,分别为3.7%、2.9%、33.8%、31.7% 和 27.9%,所以目前大部分AFIS的系统将弓和帐弓归为一类,只有弓、左箕、右箕和斗4类纹型。在指纹纹型分类领域,已有很多研究者做出了十分突出的贡献,目前国内外的大多数主流指纹分类算法均是基于人工预定义的传统指纹特征进行分类,如方向场[2-4]、脊线流[5-7]和奇异点[7-8]等,还有一些学者将以上两种或者多种特征结合在一起对纹型进行分类[9-10],也取得了较好的效果。但是由于这些算法都严重依赖人工预定义特征,当图像噪声较大时便不能有效提取出人工预定义特征,从而使得准确率严重下降,最终导致识别效果很差。因此,利用指纹其他不易被人为定义的特征以及将特征提取和纹型分类步骤结合在一起的方法,将大幅度提高该问题的准确率。在早些年的时候,就有学者利用神经网络(neural networks,NN)[9-11]对指纹纹型进行分类,但都没有取得令人满意的成果,因此将此方法用于指纹分类的工作便停滞了。直到2012年深度卷积网络(deep convolution neural networks,DCNN)在图像识别[12-13]、图像分割[14-15]、人脸识别[16-18]以及语音识别[19-20]等领域获得前所未有的成功,研究人员才将DCNN用于处理指纹分类问题并取得98.3%的准确率[21-22]。即使DCNN在各个领域已经取得巨大的成功,但科技的进步依然没有停止。
图1 NIST-DB04中5种常见指纹类型Fig.1 Five fingerprint images from NIST-DB04
最近,学界首次提出利用“胶囊”(capsule)的概念解决图像识别问题。胶囊是一种可以代表多属性特征的高维度向量,即向量的每一维度可以代表特征的一种属性信息,如位置、方向、大小及颜色等,利用胶囊构成的网络被称为胶囊网络(capsule networks,CapsNet)[23]。多个低级胶囊通过路由(routing-by-agreement)的方式组合成高级胶囊,因此高级胶囊一般维度较高,并且能表示更加复杂的特征信息。在胶囊网络中,普遍利用胶囊的模长作为此胶囊真实存在于图像中的概率,所以需要利用压缩函数(squashing)将模长压缩在0~1之间。网络最终输出与类别个数相同的胶囊,计算其概率值并得出最后预测结果。在最新的研究结果中,基于胶囊网络的EM-Routing算法[24]在一些简单数据集上取得了更优良的结果。
在本文中,我们针对指纹图像在Caps-FingerNet中添加了注意力模型机制,使其较原有胶囊网络有更强的特征提取能力,特别是对细节特征的有效提取,从而获得更为出色的性能,目前还没有文献表明已有研究者在胶囊网络中添加了类似于注意力胶囊的方法。与此同时,利用Batch-Normalization[25]解决复杂胶囊网络所引入的梯度消失及梯度爆炸问题,使得网络可以有效训练。文中所提出的基于全局的胶囊压缩算法可以更加准确且快速地筛选出有效胶囊,普遍适用于各种胶囊网络模型,使模型获得更好的泛化性能。经过反复大量实验,Cap-FingerNet在指纹分类任务上获得99.63%的准确率,较基于DCNN的网络模型[21-22]有了很大提升,是目前我们所查相关文献中的最优结果。
胶囊网络利用多个神经元组成一个基本单元(胶囊)代替单个神经元解决图像识别问题。胶囊可以代表图像中某些物体或物体部分的多维信息,如姿态、变形、色调、纹理等,而某一类型胶囊属于特定物体的概率是由胶囊的模长来衡量的。与DCNN具有低级神经元和高级神经元相似,胶囊网络也包括低级胶囊和高级胶囊,与之不同的是胶囊网络的低级胶囊通过路由协议构成可以表示更多信息的高级胶囊。每一个层的低级胶囊都需要乘一个变换矩阵Wyx获得预测向量uyx,每一个预测向量都有概率cyx构成+1层的高级胶囊具体公式如下所示:
因为在胶囊网络中需使用胶囊模长衡量胶囊存在的概率,所以要将胶囊长度压缩在0~1之间,文献[24]中利用压缩函数解决此问题。在此,qy代表压缩前胶囊,vy代表压缩后胶囊,具体可数学表示为
(3)
对于MNIST任务来说,胶囊网络对输入的每一张手写数字图片都会输出10个胶囊,从而对输入图像进行预测。
本文创新点可总结如下:
1)目前大部分基于DCNN构造的网络结构均具有池化层,特征在经过池化层后会损失特征的方向及位置信息,这对于处理指纹纹型这类严重依赖特征间相互位置关系的任务是极为致命的,所以采用使用路由迭代算法保留更多特征信息的胶囊网络来解决指纹分类问题会更为有效。在我们所调研的文献中,本文首次将胶囊网络用于处理指纹分类问题。
2)指纹图像较其他图像数据更为特殊,其分类结果不仅依赖于图像的全局特征信息,还与更为细致的局部特征信息有着密切的联系。所以本文在原始胶囊网络中添加了注意力胶囊机制,通过在浅层的卷积层中提取可以有效表示局部信息的注意力胶囊,使得网络更加关注指纹图像的细节信息而非仅通过全局特征对图像进行预测,此方法有助于帮助网络更好地区分一些特殊图像(如曲率较大的左箕),从而提高算法准确率。
3)提出一种基于全局的胶囊压缩方法,让每一个胶囊与全局范围内的所有胶囊进行比较,而不是仅与自身相关。本文提出的全局压缩算法使得在全局表现较好的胶囊能够更快获得更大的模长,反之在全局表现较差的胶囊模长将迅速被压缩到0。
胶囊网络问世以来便备受各领域学者关注,我们也对其概念及网络结构进行了深入研究,并实践完成大量相关实验。在实验过程中发现,具有大量背景信息的图像会严重影响胶囊网络的性能,比如CIFAR-10[26],PASCAL-VOC[27]等数据集。相反,将胶囊网络用于前景信息较多而背景信息较少的数据集,如MNIST[28],Fashion-MNIST[29]和smallNorb[30]等,则会取得十分优秀的成绩,这个实验现象使我们产生如下疑问,“胶囊网络相对于DCNN是否保留了过多的冗余信息,从而使得分类效果下降?”。为了继续探索这个问题,我们利用白色像素点从4边将MNIST数据集中大小为28×28的图像扩充为36×36的图像,并在不遮盖数字的情况下在周围添加一些噪声,从而构造出一个特殊数据集。在验证实验时,同时利用胶囊网络及DCNN对此特殊数据集进行训练并测试,发现DCNN对这些噪声并不是很敏感,准确率依然较高,而胶囊网络却损失了较多的精度。因此我们认为由于胶囊网络利用路由迭代算法代替了传统DCNN中的池化层而让图像内的一些冗余信息得以保留,所以在胶囊网络对实验图像进行分类时准确率会有所下降。结合大部分指纹图像具有背景冗余信息较少,且前景信息较多的优良特性,指纹分类问题很适合利用能保留更多特征信息的胶囊网络来解决,以下章节将详细说明如何构建用于处理指纹分类任务的胶囊网络模型。
文章中所构建的模型可分为3部分,分别为特征提取、初级胶囊以及由低级胶囊生成高级胶囊。在模型中还添加了许多优化算法,使其在指纹分类任务上的性能显著优于最早提出的胶囊网络。大致流程为在输入端输入大小为512×512的图像,为了获得维度较低且具有代表性的初级胶囊,模型利用5个卷积层对原始图像进行特征提取,并在第3及第4卷积层中的特定位置提取出一定数量的注意力胶囊,以期获得更为细致的特征信息。之后利用路由迭代算法将初级胶囊聚合成更具有代表性的高级胶囊,与文献[23]不同的是,模型中的胶囊压缩算法采用更有效的全局压缩算法。最后在输出端获得4个16维向量即4个胶囊,并根据向量长度进行类别预测。模型示意图如图2所示,以下将对模型的3部分分别进行详细说明。
图2 Caps-FingerNet网络架构Fig.2 Caps-FingerNet structure
2.1.1 Caps-FingerNet特征提取
首先使用5个卷积层提取特征,并在多次实验后选用较小的卷积核,因为较大的卷积核会导致网络过拟合,所以在网络中使用了较少且较小的卷积核。由于提取原始特征的卷积层数较多,所以在每一个卷积层后面均添加一个Batch-Normalization(BN)层[25]以避免梯度消失及梯度爆炸而导致的损失函数不收敛问题,从而使网络能正常训练。
2.1.2 初级胶囊
最初试验时,我们直接利用最初胶囊网络构造胶囊的方法构造胶囊,虽然能获得还算不错的性能,但是通过对实验结果的仔细观察和分析,发现其在一些人类很容易分辨的样本上却做出了错误判断,我们认为是因为网络过于关注全局特征信息而忽略了那些稳定且重要的局部信息。为解决这一问题,将注意力胶囊机制引入到模型中。注意力胶囊即从非最后一层卷积层中提取特征而构成的胶囊,如本文中利用第3及第4卷积层中特征所构造的胶囊。根据经验,稳定性高、分辨度强的细节特征一般分布在中心点周围,而中心点很大概率落在如图3所示的4个方框内,所以构造模型时本文使用此部分区域的特征构造注意力胶囊。
图3 注意力胶囊位置Fig.3 Attention capsule location in fingerprint images
由于图中方框大小是根据人为经验设定,所以大概率会存在冗余特征,在此利用一个精炼矩阵Wi去除冗余信息,最后得到有效的注意力胶囊Zi,如下
Zi=Wi×Di,
(4)
式中:Di代表形状为[Qi,Ni]并带有冗余信息的注意力胶囊,Qi代表胶囊总个数,Ni表示胶囊维度;Wi的形状为[Ti,Qi],Ti表示模型要保留的注意力胶囊个数。
2.1.3 低级胶囊与高级胶囊之间的交互
图4 原始胶囊压缩算法Fig.4 Capsule squashed algorithm
全局压缩方法可以有效解决这一问题,将相似胶囊之间的距离变得更大,使得全局范围内表现较好的胶囊被有效利用而较差的胶囊被舍弃,算法性能比较见图5,具体算法可表达为
(5)
图5 原始压缩算法与全局压缩算法Fig.5 Squashed and global squashed algorithms
Caps-FngerNet算法流程如表1所示。
在实验过程中,选用图像三元组{Ix,Iy,Iz}共同训练,其中Ix与Iy为同类指纹图像,Iz为其他类指纹图像。为使同类指纹输出胶囊更为相似,不同类别特征间距更加明显,我们在交叉熵函数中引入正则项ζ。正则项ζ要求相同类别图像间特征更为相似,但是不要求其绝对相似,这将在一定程度上解决网络的过拟合问题。与此同时,ζ要求不同类别图像特征间距足够大,以使得网络提取的指纹特征更具有区分力,但正如人所直观看到的,不同类别指纹纹型依然具有某些相似的特征,所以当不同类别特征间隔达到一定大小时,便不会对网络损失产生任何影响。
表1 Caps-FingerNet算法Table 1 Caps-FingerNet algorithm
ξ=max(0,0.9-tanh(GxGy))+
max(0,0.9+tanh(GxGz))+
max(0,0.9+tanh(GyGz)),
(6)
式中:Gx、Gy、Gz分别代表Ix、Iy、Iz输出类别的胶囊。
最终损失函数由交叉熵损失函数与正则项ζ共同构成,具体形式可写为
(7)
式中:yi为训练标签,ai为预测结果。
训练数据取自公安部指纹数据库(640×640)及NIST-DB4数据库(512×512)。NIST-DB4是国际公开指纹数据库,其中5类指纹图像共2 000张,每类400张。由于目前实用指纹数据库中数据较多,指纹之间差异较大,所以需要更多数据对网络进行训练,使得网络泛化性能更好。在实验过程中,我们在公安部指纹数据库中每类数据随机获取指纹6 000张,其中5 000张为训练数据,剩余1 000作为测试数据(实验中将弓与帐弓归为一类,所以公安部训练库容量为20 000,测试库容量为4 000)。为了统一指纹图像尺寸并扩充数据集,我们对公安部指纹图像分别在左上角、左下角、中心、右上角及右下角进行裁剪,最终得到100 000张训练数据,20 000张测试数据。同时值得注意的是,即使此批公安部数据存在0.5%的错误标签,Caps-FingerNet依然表现出良好的性能,并对错误标签有一定的辨别能力,具体实验结果在后面的分析中会详细介绍。
首先,分别测试注意力胶囊机制与全局压缩算法对胶囊网络的影响。在此构建3个模型,分别为仅加入注意力胶囊机制的胶囊网络(A),仅加入全局压缩算法的胶囊网络(B)及原始胶囊网络(C)。实验结果如图6所示,虽然注意力胶囊机制与全局压缩算法对胶囊网络影响程度略有不同,但显然均对胶囊网络性能有着不错的提升效果。
图6 注意力胶囊和全局压缩算法对胶囊网络的影响Fig.6 Effects of attention capsule and global squashed algorithm on capsule network
接下来的实验共构建4种模型,分别为结构如图2所示的Caps-FingerNet(模型A),基于文献[23]构建的胶囊网络模型,基于文献[24]构建的胶囊网络模型,及基于文献[21]所构建的指纹分类网络作为对比模型。
图7(a)~7(c)和表2为路由迭代分别为1、2、3时对网络分类准确率的影响,在图中可以看出路由迭代次数对模型A、文献[23]及文献[24]中模型有着不同程度的影响。模型A和文献[23]均在路由迭代为2时分别获得最大分辨准确率99.63%和98.51%,但是文献[24]却在路由迭代为1时取得最高准确率98.29%,并且当迭代为3时出现随机猜测的情况。实验从侧面验证了当迭代次数较小时,低级胶囊不能进行有效的聚类,即不能生成具有代表性的高级胶囊,而当迭代次数过多时,低级胶囊着重对训练样本进行聚类而丧失了泛化能力,从而导致分类准确率降低。
图7 不同路由次数对网络模型的影响Fig.7 Performance of three models with different numbers of iterations
由于注意力胶囊所在区域面积大小是人为规定的,所以最后所使用的注意力胶囊即AP-Caps个数依然是超参数。如图8及表3所示,实验中在第3和第4卷积层分别取32、64及128个注意力胶囊,实验结果与预测大致相同,胶囊较多会导致冗余特征,而胶囊过少则不能提取出有效的细节特征。
表2 不同路由次数下3种网络模型准确率Table 2 Results of three models with different numbers of iterations
图8 不同数目注意力胶囊对Caps- FingerNet准确率影响Fig.8 Results of Caps-FingerNet with different numbers of AP-Caps
模型路由次数注意力胶囊数目准确率/%A23298.21A26499.63A212898.69
为了更好地说明注意力胶囊对分类准确率的影响,我们在不能被文献[23]正确分类而Caps-FingerNet可以正确分类的样本中随机取出200张图像,部分图像如图9(a)~9(c)所示。实验中首先根据初级胶囊对高级胶囊的影响程度(即cyx) 对初级胶囊进行降序排序,之后每个样本取出其影响程度最高的150个胶囊,最后计算注意力胶囊在其中的比例。从图10中可以明显看出,Caps-FingerNet在处理那些难以被文献[23]正确分类的图片时利用了大量注意力胶囊所提供的细节特征。
图9 部分指纹图像Fig.9 Some fingerprint images
图10 注意力胶囊所占比例Fig.10 The proportion of attention capsules
经过一系列试验后,文献[23]和文献[24]分别得到98.51%和98.29%的准确率。模型A是文献[23]的改进模型,在加入优化算法之后达到99.63%的准确率,具有约1%的性能提升,而作为对比实验的文献[21]仅达到97.11%的准确率。
图9(d)~9(f)所示为可以被基于胶囊网络所构模型正确分类而无法被文献[21]正确分类的图像,此类样本的共同点均为在中心点处有较高曲率,且具有非常清晰的三角点。在利用文献[21]对其进行识别时,网络均将其识别为弓型,我们认为是因为文献[21]虽然也有效地提取出了弓型指纹的特征(中心点有较高曲率,且有三角点),但却忽略了特征间的位置关系,即三角点应该在中心点下方,所以造成了类别误分。与之相反,包含指纹全部特征且无姿态信息损失的胶囊网络在这些样本上的表现尤为出色。
在实验结果及表4的分析过程中,我们发现Caps-FingerNet在对指纹纹型进行识别时更像是一个具有弱先验知识的人去观察指纹图像,它会根据全局特征和细节特征判断图像类别,但却不会和传统算法一样因为个别细节特征模糊而将图像划分到错误类别,如传统算法经常会把一个三角点模糊的斗型图像误分为左箕或右箕。
表4 不同网络模型在指纹分类任务上的最佳准确率Table 4 The best performance of four models in fingerprint dataset
如上文所说,这些公安部指纹图像存在错误标签,所以我们在测试集中随机反复选取图像以观察错误标签对不同模型的影响。为了更好地说明错误标签对模型的影响,本文提出FIC和TII两个指标以便更好地对其进行量化。FIC被定义为将错误标签分类到错误类别的概率,错误标签分类到错误类别,即如某样本在数据库中被错误标记为左箕,模型对其分类为左箕,但样本的真实标签为斗。TII则定义为将错误标签分类到正确类别的概率,错误标签分类到正确类别,即如某样本在数据库中被错误标记为左箕,模型对其分类为右箕,并且样本的真实标签也为右箕。如表5所示,模型A的TII值显著高于文献[23]和文献[24]并且FIC值低于这两者而文献[21]在TII和FIC两项指标的表现均不如其他3个模型。此实验可以说明胶囊网络在指纹分类上对错误标签的分辨能力较DCNN更强,并在加入本文所提出的优化算法后分辨能力会进一步提高。
表5 不同模型的FIC和TIITable 5 The FIC and TII of four models in the fingerprint dataset
由于NIST-DB04数据集数据较少,所以做了相应的数据增强处理。首先,将数据10等分,其中9份用做训练集,剩下一份作为测试集,之后将训练数据随机裁剪为400×400的图像并随机调整亮度、对比度及饱和度,测试数据则从中心位置裁剪成同样为400×400的图像。本文在NIST-DB04数据集上分别进行了4分类(将弓和帐弓划分为1类)及5分类实验,从表6、表7和表8中可看出Caps-FingerNet在两组实验中均获得了令人满意的性能,准确率分别为96.25%和94.5%,反之,文献[21]仅仅获得82.5%和80.5%的准确率,说明Caps-FingerNet在数据量较少的情况下依然可以保持良好的性能,而基于DCNN的文献[21]则会损失较大精度。
表6 不同算法在NIST-DB04上4分类和5分类准确率Table 6 Four-class and five-class classification accuracies on NIST-DB04 using different algorithms
表7 Caps-FingerNet和Res-FingerNet在NIST-DB04上4分类准确率Table 7 Four-class classification results on NIST-DB04 with Caps-FingerNet and Res-FingerNet
经过大量实验反复验证,基于胶囊网络架构的Caps-FingerNet在指纹纹型分类任务上具有极其优越的性能,已经达到目前我们所调研文献中的最高准确率。首先,胶囊网络能很好地提取出指纹图像的全局特征,在加入注意力胶囊后则能更精确地提取出中心点附近的细节特征信息,同时全局压缩方法也使得表现优异的胶囊可以被更有效地使用,所以准确率进一步提高。
表8 Caps-FingerNet和Res-FingerNet在NIST-DB04上5分类准确率Table 8 Five-class classification results on NIST-DB04 with Caps-FingerNet and Res-FingerNet
综上所述,本文首先提出将胶囊网络用于处理指纹分类任务并将其实现,之后加入注意力胶囊及全局压缩的优化算法使得分类准确率进一步提高,最终在公安部指纹数据集及NIST-DB04数据集上均获得了令人满意的结果。不过实验结果也表明左箕与斗、右箕与斗特征之间的距离依然较小,所以接下来的实验中应尝试更好的损失函数及正则项来避免这一问题。
最近,越来越多的学者开始关注胶囊网络,在不远的将来一定会融入更多的创新与技术,我们也会持续关注并将最新的模型用于指纹分类任务,以期获得更好的结果。