钱 鹏 刘满华,2*
1(上海交通大学仪器科学与工程系 上海 200240) 2(上海交通大学人工智能研究院 上海 200240)
生物特征识别是如今进行身份识别的重要手段,相较于其他身份识别技术,生物特征识别不易被篡改、伪造,并且具有唯一不变性[1]。指纹识别作为生物特征识别的重要组成部分,研究起步早,发展迅速,现在已经得到了广泛的研究和应用。尽管如此,指纹识别技术仍然存在许多挑战性问题,比如现有的自动指纹识别系统对多种低质量和低分辨率的指纹并不能很好地完成识别。虽然现在已有许多针对低质量指纹进行增强的算法被提出[2-6],但针对低分辨率指纹的研究并不常见[7]。目前针对低分辨率或者婴幼儿指纹,自动指纹识别系统仍然采用上采样的方式提高图像分辨率,图像在上采样过程中会出现明显的信息不足和模糊,影响识别精度。如何在提高指纹图像分辨率的同时不丢失指纹细节信息是解决该问题的关键。
超分辨率任务主要是通过计算机图像处理技术,将一幅低分辨率图像转换成一幅高分辨率图像。超分辨率算法目前广泛应用于医疗图像和遥感图像等领域[8-9]。该任务最具挑战性的问题是如何重建在低分辨率图像中丢失的细节。传统的图像插值上采样算法(如最近邻插值、双线性插值和双三次插值)无法重建细节,放大的图像通常比较模糊。目前已经有大量经典的超分辨率算法被提出[10],主要有基于预测的方法[20]、基于边缘的方法[21]、基于统计的方法[22]、基于图像块的方法[23]和稀疏表示方法[8,24]等。
随着深度学习算法的快速发展,已经有多种基于深度学习的超分辨率方法被提出。SRCNN[11]首次将深度卷积神经网络应用于超分辨率任务。近几年,大量基于卷积神经网络的超分辨率算法被提出。文献[12]提出了一种改进的FSRCNN,它可以将图像从低分辨率直接转换为高分辨率。文献[13]提出使用PixelShuffle层代替反卷积作为上采样层以提高效率。文献[14]将ResNet[15]结构引入了超分辨率网络,并提出了VDSR。他们认为低分辨率图像和高分辨率图像在很大程度上共享相同的信息,因此使用残差网络可以更充分地利用低分辨率图像信息以提高超分辨率重建效果。除此之外,文献[19]提出将条件生成式对抗网络引入图像超分辨率任务。
指纹超分辨率任务相关研究仍然较少,文献[7]和文献[16]提出了基于字典学习的指纹超分辨率重建算法,该方法使用高分辨率指纹图像块作为基本特征构建字典,通过字典稀疏表示重建指纹高分辨率特征,效率和效果并不是特别理想。
本文参考其他领域基于深度学习的图像超分辨率算法,提出了一种基于密集连接卷积神经网络(SRDenseNet)的指纹超分辨率重建方法。首先采集大量高分辨率指纹图像作为训练数据,然后搭建SRDenseNet学习指纹低分辨率到高分辨率的重建,最后将低分辨率指纹图像输入已训练好的SRDenseNet,从而完成端到端的指纹图像超分辨率重建。
基于SRDenseNet的指纹超分辨率重建是将低分辨率指纹图像输入经过训练的SRDenseNet,输出重建后的高分辨率指纹图像。图1展示了基于SRDenseNet的指纹超分辨率重建算法的具体流程,主要分为离线训练和在线测试部分。离线训练部分使用低分辨率和高分辨率图像对训练SRDenseNet,训练过程网络将学习如何从低分辨率图像中重建高分辨率特征。在线测试部分使用训练好的SRDenseNet,将待测试数据库低分辨率图像作为输入,输出对应高分辨率图像。
图1 基于SRDenseNet的指纹超分辨率重建流程
作为有监督学习算法的一种,SRDenseNet的训练需要大量训练数据。为保证训练数据和测试数据保持独立,本文采集了大量高分辨率指纹图像用于训练,测试数据采用国际公开FVC指纹数据库[25]。图2展示了部分采集的高分辨率指纹图像,为保证神经网络能够充分学习到各种指纹图像的高分辨率特征,采集过程中对重压、轻压、干湿状态等情况进行了模仿。由图1可知,网络训练所需的低分辨率输入图像由高分辨率图像下采样获得,与原始高分辨率图像组成训练数据对。为增加训练数据量,对采集的指纹图像进行了裁剪、平移和灰度变换等数据增强操作。
图2 训练用高分辨率指纹图像
SRDenseNet参考了DenseNet[17]结构,网络结构如图3所示,其中图3(a)展示了基础的SRCNN[11]基本结构,图3(b)展示了本文改进的SRDenseNet结构。表1展示了Dense块内部网络结构参数。
表1 Dense块内部网络结构
图3 SRDenseNet指纹超分辨率网络结构图
SRCNN中卷积层采用3×3卷积核。本文所提出的SRDenseNet将SRCNN中卷积层替换成Dense块并在Dense块外部加入Dense跳连接。Dense块结构如表1所示,每个Dense块中含有6个卷积层,Dense块中每个卷积层的输入是该Dense块中该层前序所有卷积层输出的级联。例如第6个卷积层的输入为该Dense块中前序所有卷积层输出在第3维度的级联,前序总计6个128×128×32输出层,因此输入尺寸为128×128×192。多层跳连接的加入可以充分利用各层级提取出的特征信息,同时减轻深度网络所产生的梯度消失和过拟合现象。每个卷积层包含了一组卷积核大小为1×1的卷积和一组卷积核大小为3×3的卷积,每组含有32个卷积核。由于Dense块中每个卷积层的输入为前序所有卷积层输出的级联,1×1卷积层可以在融合各层信息的同时减少计算量,之后通过3×3卷积层进一步提取特征信息。激活函数使用LeakyReLU,并且在激活函数前使用批归一化以加快收敛速度。另外,本文在每个Dense块外部加入了跳连接,与Dense块内部相似,每个Dense块的输入由之前所有Dense块输出的级联,同样起到了与Dense块类似的作用。
网络经过3个Dense块后,经过一组上采样卷积层扩大图像尺寸。上采样卷积层包含了一组3×3的卷积层和PixelShuffle层[13],PixelShuffle层通过将卷积输出的特征图矩阵进行重新排布,扩大输出尺寸。例如一个尺寸为32×32×4的特征图可以通过PixelShuffle层转换为一个64×64×1的特征图。相较于反卷积层,PixelShuffle层计算量更小,同时可以避免生成图像产生棋盘效应。最后经过Sigmoid激活层输出最终超分辨率图像。
损失函数用于计算当前网络输出与目标之间的差异,通过损失函数值计算更新网络参数以达到训练网络目的。作为回归任务的一种,超分辨率任务常用损失函数为均方差损失(MSE),其计算公式如下:
(1)
式中:(x,y)为像素坐标,S为生成网络生成图像,H为真实高分辨率图像;w和h分别为图像的宽和高。
均方误差损失函数将生成图像与真实图像按像素逐一计算误差,最终计算全图的方差均值。均方差损失关注生成图像与真实图像之间全局灰度值之间的差异。
除均方误差外,指纹图像还需要关注图像脊线结构和局部细节之间的差异。因此,本文将平均结构相似度损失(MSSIM)[26]引入SRDenseNet的训练。平均结构相似度损失公式如下:
(2)
(3)
最后图像损失函数线性组合均方误差损失和平均结构相似度损失,计算如下:
loss=λ1MSE(S,H)+λ2[1-MSSIM(S,H)]
(4)
式中:λ1和λ2为MSE和MSSIM权重。需要注意的是,式(3)计算获得的局部结构相似度范围为[0,1],数值越大,图像结构越相似,因此在计算损失函数时需要将其反转,保证图像越相似损失函数值越小且接近0。平均结构相似度损失的加入可以使SRDenseNet在训练过程中学习如何重建图像灰度信息的同时学习如何重建指纹纹理结构信息,保证指纹最重要的纹理结构和特征点信息不丢失。
SRDenseNet训练主要包含数据生成、前向传播和反向传播,步骤如下。
步骤1加载高分辨率指纹训练数据作为目标,对该数据进行下采样作为输入,并对输入和输出图像做归一化处理;
步骤2输入数据经过神经网络计算超分辨率输出图像,根据式(4)计算输出超分辨率图像与真实高分辨率图像之间的损失函数值;
步骤3由损失函数值计算神经网络参数梯度,更新神经网络参数;
步骤4重复上述步骤,直至损失函数值收敛至稳定。
SRDenseNet采用PyTorch神经网络架构进行搭建和训练,采用Adam优化器,初始学习率设置为0.001,训练块大小设置为8,总共迭代50次,采用NVIDIA RTX 2080Ti GPU进行训练,大约6个小时完成训练。
在SRDenseNet模型训练后,为对比验证所提出超分辨率算法的有效性,本文对算法进行了相关实验。实验内容主要包含网络结构消融实验和指纹匹配准确率比较实验。
实验数据选取FVC公开指纹数据库[25],该数据库包含大量子数据库,为方便与其他文献进行对比,本文选取了文献[16]中使用的FVC2004DB3进行对比实验。该数据库包含10个不同的手指,每个手指采集8幅图像,总计80幅指纹图像。
为验证网络结构有效性,采用对网络结构进行消融裁剪的方式进行对比实验。消融实验采用图像相似度作为评价指标,主要包含结构相似度(SSIM)和峰值信噪比(PSNR)。结构相似度和峰值信噪比广泛应用于图像超分辨率任务,反映了超分辨率重建图像与真实高分辨率图像之间的相似度。其中结构相似度由式(2)计算获得,峰值信噪比计算公式如下:
(5)
式中:MAX为图像灰度值最大值,本文中该值为255;MSE(S,H)由式(1)计算得到。为保证消融实验公平性,除对比所改变的网络结构外,其余数据和参数均保持一致。结构相似度范围为[0,1];峰值信噪比范围为[0,+∞),均为值越大相似度越高。
网络结构消融实验部分主要对比三种不同的网络参数结构对生成图像效果的影响,其中结构1采用图3(a)所示的SRCNN结构,损失函数采用式(1)的均方差损失;结构2如图3(b)所示,在结构1的基础上将卷积层替换为Dense块,Dense块的内部和外部均加入大量Dense跳连接,损失函数相较于结构1不变;结构3在结构2的基础上将损失函数修改为式(4),将平均结构相似度损失引入损失函数,该结构为本文所提出的最终结构。图4展示了不同结构超分辨率图像的结果,并展示了真实高分辨率指纹图像作为对比参考。表2展示了不同结构超分辨率结果的图像相似度指标,其中包含了相似度指标的绝对数值和相较于上一个结构的相对提升。
表2 不同网络结构的图像相似度和峰值信噪比性能比较
图4 基于不同网络结构的指纹超分辨率结果比较
从图4可以看出,图4(b)由结构1生成的图像拥有一定的超分辨率重建能力,对于指纹脊线清晰的部分能够成功提高分辨率并重建纹理,但对于脊线密集部分并不能很好地重建,甚至出现了严重的纹理结构错误。图4(c)由结构2生成的图像相较于结构1有着更强的重建能力,图像大部分区域能够正确地重建,由此证明Dense块的加入可以很好地提升网络的抗噪和重建能力,但图中框选区域仍出现了纹理结构错误的情况。图4(d)由结构3生成的图像相较于结构2拥有了更强的超分辨率重建能力,图像框选区域纹理结构走向没有出现错误,能够很好地完成超分辨率重建,由此证明平均局部结构损失的加入能够提高网络对于图像结构的重建能力。
从表2中可以看到结构2相较于结构1,结构相似度和峰值信噪比均有明显提升,证明了Dense块的加入能够在整体上很好地提升网络超分辨率重建能力。结构3相较于结构2,结构相似度和峰值信噪比均有一定的提升,其中结构相似度的相对提升比峰值信噪比更大,证明平均局部结构损失的加入能够提升网络超分辨率重建的能力,并且对图像结构重建能力的提升更明显。
除网络结构消融实验外,本文还通过实验测试了指纹匹配准确率,并与其他文献进行了比较。为与其他文献保持相同的实验环境,本文采用开源的指纹匹配算法架构(http://www.codeproject.com)进行指纹匹配,指纹匹配算法采用由文献[18]提出的M3gl指纹匹配算法。由于该算法只能处理500 dpi的指纹图像,因此本文采用文献[16]中提出的先下采样降低分辨率,然后使用超分辨率算法将分辨率重新提升至500 dpi的方式进行匹配测试。匹配方案与其他文献保持一致:相同手指之间匹配,总计280对匹配指纹;不同手指之间同一编号匹配,总计360对不匹配指纹。
指纹自动匹配系统将输入两幅待匹配指纹,输出对应匹配分数,通过设定匹配阈值确定待匹配指纹是否匹配。指纹匹配算法性能一般通过检测误差曲线(DET)和等错误率(EER)评判。DET曲线横坐标为错误接受率(FMR),纵坐标为错误拒绝率(FNMR)。
DET曲线展示了当匹配阈值变化时,错误接受率和错误拒绝率之间的变化关系。当错误接受率等于错误拒绝率时,此时的值称为等错误率。实验过程中,本文使用不同的超分辨率算法对相同数据库进行超分辨率,并使用相同的指纹匹配算法进行性能验证。最终不同超分辨率算法之间的性能将通过匹配错误率进行评价,匹配错误率越低,超分辨率算法效果越好。
本文使用双三次插值上采样算法作为对比的基准方法,并选取了来自文献[7-8,16]的指纹超分辨率算法进行对比。图5展示了低分辨率图像和不同算法超分辨率之后的图像,图6展示了FVC2004DB3中使用不同超分辨率算法放大不同倍率的DET曲线,表3展示了图6中DET曲线不同放大倍率对应的EER相关结果。
表3 不同方法在不同放大倍率下EER结果(%)
图5 不同超分辨率算法结果比较
图6 不同倍率超分辨率DET曲线
从图5中可以看出,双三次插值上采样获得的图像模糊,细节点区分困难。文献[7-8]提出的方法生成的图像相较于双三次插值上采样图像有明显的清晰度提升,但白框中细节点仍然存在模糊的情况。文献[16]方法生成的图像脊线更加清晰,但脊线灰度值平滑严重,且白框中细节点仍然无法还原。本文提出的基于SRDenseNet的指纹超分辨率重建算法生成的图像更加清晰,保留了指纹脊线的灰度信息,白框中细节点能够很好地还原,图像整体效果和细节点还原都更好。由图6可以看出,SRDenseNet生成的高分辨率图像在后续指纹匹配结果错误率明显低于其他算法,DET曲线更低。从表3中可以看到,SRDenseNet在2、3、4倍率下的匹配等错误率从相较于目前最好的文献[16]的5.456%、8.730%和16.091%下降至4.762%、7.500%和12.540%,并且放大倍率越高,优势越明显。实验证明,本文提出的基于SRDenseNet的指纹超分辨率算法能够有效地提升图像质量以及指纹匹配准确率。
本文提出了一种基于SRDenseNet的超分辨率算法,该算法通过对大量高分辨率指纹图像进行学习,重建低分辨率指纹图像纹理结构。网络结构中加入Dense块和Dense跳连接以充分利用卷积网络各层级信息,并在损失函数中加入平均局部结构相似度。该网络结构能够在提升指纹图像分辨率的同时,重建指纹纹理脊线,保留指纹特征点信息。实验结果表明,本文方法生成的超分辨率指纹图像更加清晰,细节更完整。Dense块和平均局部结构相似度的加入能够有效提升网络超分辨率重建和抗噪能力。相较于其他超分辨率算法,后续匹配错误率更低,且放大倍数越大,优势越明显。下一步的工作将在本文工作基础上,进一步提高指纹图像质量,以提高指纹匹配准确率。