韦 静,周洪成,牛 犇
(1.盐城工学院机械工程学院,江苏 盐城 224051;2.金陵科技学院电子信息工程学院,江苏 南京 211169)
随着高度智能化时代的到来,信息技术逐渐被应用到生活的各个角落,各类信息都在以前所未有的速度被共享和传递,个人身份信息安全时刻都在面临着各类挑战。生物特征识别技术[1]的发展与应用提供了有效的解决方案,即使用人体具有隐蔽性、唯一性和永久性的生理特征或行为特征,结合模式识别、计算机视觉和图像处理等计算机技术来进行个人身份的识别和验证。卷积神经网络(convolutional neural network,CNN)作为深度学习的代表算法之一,被成功地应用于各项生物特征识别技术,主要包括人脸识别[2]、指纹识别[3]、掌纹识别[4]和虹膜识别[5]等。
在信息技术快速发展和应用的背景下,唇纹识别得到了快速发展,国内外学者相继提出了识别算法。Niu B 等人[6]提出融合Gabor特征和局部二值模式(local binary pattern,LBP)特征的唇纹识别框架,以支持向量机(support vector machine,SVM)为分类器进行识别,在自建的数据集上获得86.7%的识别率。Wrobel K 等人[7]引入唇纹皱纹分析,分别建立唇纹皱纹模式进行分类识别,使用多个唇沟来确定4个方向最常见的唇沟分布,最终得到了92.73%的识别率。Sandhya S等人[8]实现了基于机器学习的唇纹识别系统,采用SVM、K 近邻(K-nearest neighbor,KNN)、集成分类器和神经网络等分类器分别进行实验,最终集成分类器在120张数据集上取得了97%的识别率。
综合分析上述识别算法,建立的唇纹数据集规模较小,图像均为高质量和高分辨率,而低分辨率唇纹图像的研究和分析相对较少。且算法中存在图像预处理过程复杂、识别成本较高和特征提取效率较低等问题,以致识别周期较长和不具备实时性,而且识别率还有待提高,很难将其实际应用在生活场景中。
为解决上述算法中存在的问题,本文结合CNN 的优势,创建了低分辨率唇纹数据集,充分借鉴CNN 在人脸识别、掌纹识别等领域的成功应用,探索研究适用于唇纹识别的CNN模型。
Krizhevsky A 等人[9]提出的AlexNet 包含5 个卷积(Conv)层和3 个全连接(fully connected,FC)层,采用并行结构设计且使用2 块图形处理器(graphic processing unit,GPU)同时进行训练,在ImageNet数据集的分类大赛获得冠军。随着计算机视觉技术的发展,以及硬件设备功能的提升,不断地优化改进网络结构提出新的网络,提升网络模型识别效果最直接的方法就是增加网络的深度和宽度,网络结构越深,其特征表达能力越强。由Szegedy C 等人[10]提出的GoogleNet,其网络结构是基于Inception 模块的设计。如图1所示,使用多个不同大小的卷积核,将网络碎片化以增加网络宽度,能够提取多尺度的特征信息,最后将特征信息进行拼接融合,首次以模块化的结构搭建网络。
图1 Inception模块
通过简单的堆叠网络层可以提高识别率,同时也会带来梯度消失、梯度爆炸和参数量巨大等问题,还会产生网络退化问题。即随着网络深度的增加,模型的准确率出现饱和现象,导致训练集准确率下降。针对这些问题,He K 等人[11]提出基于残差块的网络ResNet,能够将网络层数延伸至上千层,该网络的残差单元采用快捷方式(shortcut)的连接方式,如图2 所示,恒等映射有效地解决了梯度消失问题,并将参数量巨大的FC层替换为全局平均池化层,同时提出ResNet_18、34、50和ResNet_101等网络结构。
图2 残差模块
Huang G 等人[12]以鼓励特征重用的角度出发,提出DenseNet进一步将网络层数从121 层增加至264 层,设计了稠密连接和过渡层,稠密连接是每一层的输入都来自于前面所有层的输出,使得低维和高维特征都能被有效利用,不仅有效地解决了梯度消失问题,还加强了特征信息之间的传递。过渡层则是控制特征通道数,该结构包含批归一化(batch normalization,BN)、1 ×1 的卷积层和2 ×2 的均值池化层,降低了网络的参数。
Iandola F N等人[13]提出了SqueezeNet,该网络结构的亮点是设计了Fire模块。如图3 所示,包含压缩层和扩展层2个部分,将3 ×3 的卷积核替换为1 ×1 大小以减少参数,减少输入3 ×3 的输入特征数量,每隔3 个Fire 模块进行下采样操作,使卷积层具有较大的激活图。在ImageNet数据集上训练达到与AlexNet相近的分类精度,且模型大小缩小了近510倍,同时降低了模型的计算与内存开销,从此揭开了对轻量级CNN的研究。
图3 Fire模块
ShuffleNet[14]是由旷视科技提出可应用于计算力受限的移动设备的网络,其新颖性主要体现在使用分组卷积和通道混洗操作。为解决不同组之间的特征通信问题,在组卷积操作后使用通道混洗操作,提升不同组之间的信息融合度。通过改进后提出ShuffleNetV2[15],在数据输入后增加了通道分离操作,没有使用分组卷积操作,并在特征图拼接操作后再进行通道混洗,保证模型准确率的同时大幅度压缩模型的大小。
Google 团队提出一种新的轻量化神经网络,即MobileNet[16],主要针对移动端与嵌入式设备视觉应用。传统的标准卷积过程会产生大量的参数,该网络的创新点是提出深度可分离卷积,有效减少了网络参数。但深度卷积产生的特征通道数较少,在激活函数ReLU6 的作用下易产生较高的信息损耗。为此,改进后提出的MobileNetV2[17],借鉴ResNet 的思想设计倒残差结构和线性瓶颈结构,图4(a)为倒残差结构,将1 ×1 卷积核用来提升数据维度,使用ReLU6激活函数,以提高网络的准确率。图4(b)将ReLU6 替换成线性激活函数,减少对低维数据进行非线性激活运算,降低数据信息的丢失。
图4 MobileNetV2 不同步长对应的块结构
华为诺亚方舟实验室[18]将ResNet_50 的第一个残差块处理输出的特征图进行可视化,发现存在很多相似的“特征图对”,并提出特征图对中的一个特征图可以通过简单的线性变换操作得到,以降低计算成本。GhostNet中的Ghost模块如图5所示,通过使用少量的参数来生成更多的特征图,先用部分卷积核生成少量的内部特征图,再以简单的线性变换操作生成Ghost特征图,最后把两组特征图拼接在一起即输出结果。在ImageNet数据集上与其他模型进行对比实验,相同计算量的情况下,GhostNet 的识别精度相对较高。
图5 Ghost模块
2.1.1 数据采集与处理
文献[6]采用接触式采集方法,即使用美容霜、磁粉和磁粉涂抹器以及带白纸的滚筒等,再将唇纹转移到白纸,使用扫描仪将白纸上的唇纹转化为数字图像,建立了一个共350张灰度图像的唇纹数据库,图像分辨率为800 ×400(300 dpi),如图6(a)中所示,更适合应用于刑侦调查领域。
图6 不同分辨率的唇纹图像
实验所用的唇纹图像分别来自于30 个志愿者,采用非接触式采集方法获取图像。为获取到不同角度的唇纹图像,采取视频录像的方式,使用海康威视的日夜型枪型网络摄像机搭配高清镜头进行拍摄。在自然光照的条件下,志愿者将嘴唇与摄像机镜头保持30 cm的距离,并保持正常闭合状态从左往右、从上往下的移动,得到每个志愿者的嘴唇视频录像。视频中每个人唇纹的清晰度不同,因此以每隔5帧抓取一张图片的方式获得清晰的三原色(RGB)图像。再将每张图片大小统一裁剪为458 ×234(96 dpi),如图6(b)中所示,与传统识别方法建立数据库相比,采集的图片均属于低分辨率唇纹图像,更适用于实际生活场景的应用。最终每个志愿者提取70 张清晰的图像,将30 个志愿者的图像分别保存并建立以数字01~30 为类别标签,整个数据集共2 100张唇纹图像。
2.1.2 实验环境与参数配置
实验中所使用的网络模型均基于Pytorch 深度学习框架进行搭建,硬件系统配置为AMD-R7 5800H处理器,Windows10 操作系统,16 GB 运行内存,显卡(GPU)为NVIDIA GeForce RTX3050Ti,CUDA是使用的CUDA11.4。数据集以8∶2的比例划分为训练集和测试集,即训练集样本数为1 680张图像,测试集的样本数为420 张。选择Adam 网络优化算法进行训练,采用交叉熵损失函数来计算损失值,批处理大小(batch_size)为16,网络的训练次数(epochs)为200。
实验均采用准确率(Accuracy,A)作为评价网络性能的指标,即模型正确预测的样本数与样本总数的比值,计算过程如下所示
式中 TP(true positive)为正样本被预测为正的样本数,FP(false positive)为负样本被预测为正的样本数,TN(true negative)为负样本被预测为负的样本数,FN(false negative)为正样本被预测为负的样本数。为保证模型的泛化能力,本文所有实验结果中的识别率均取最后20 个epochs 的测试准确率的平均值。
2.2.1 不同网络模型的识别结果
选取8种经典的和轻量化的网络模型,除AlexNet的原始输入图像大小为227 ×227,其余模型的输入图像大小均为224 ×224,分别进行唇纹识别模型训练,将学习率的大小设置为0.000 1,实验结果如表1所示。
表1 不同网络模型的识别效果
除SqueezeNet模型的识别率为81.21%,其余模型均达到了90%以上。综合考虑各项评价指标,识别性能最好的是MobileNetV2网络,倒残差结构结合深度可分离卷积操作,既降低了模型的参数计算量,又提高了识别准确率,识别率高达97.22%。AlexNet网络的参数量最大,采用单块GPU进行训练,识别率也达到了92.91%,而模型参数量最少及网络训练时间最短的是ShuffleNetV2,验证了模型参数量是影响模型训练速度的主要因素。由于DenseNet_121 的特征图较大、卷积过程计算量大以及内存访问次数较多导致其训练时间最长。因此,通过比较分析8 种网络模型的识别性能,MobileNetV2是最适合应用于低分辨率唇纹识别的CNN模型。
2.2.2 不同学习率下的MobileNetV2网络识别效果
在上述8类模型的性能比较实验中,MobileNetV2 模型的识别率最高,所以选择MobileNetV2作为网络模型分别以不同的学习率进行训练,对比分析实验结果,讨论学习率对模型识别性能的影响,实验结果如表2所示。
表2 MobileNetV2 不同学习率下的识别结果
结合图7不同学习率下模型的训练损失变化曲线进行综合分析,当学习率的大小为0.000 1 时MobileNetV2 网络的性能达到了最佳,识别率高达97.22%;当学习率的值大于0.000 1时,随着学习率的增大,收敛速度越来越快,而识别率却在逐渐降低;当学习率小于0.000 1 时,模型收敛速度变慢且识别准确率大幅度地降低;在相同的训练迭代次数内,学习率为0.000 01的损失值最大,验证了当学习率过小会导致模型收敛速度慢,其准确率也未达到90%以上。
图7 不同学习率下训练集的损失值变化曲线
2.2.3 不同层数的CNN唇纹识别性能
选择ResNet和DenseNet 的不同层数的网络进行唇纹识别实验,将学习率的大小设置为0.000 1,其余参数保持不变,实验结果如表3。
表3 不同网络层数的模型识别结果
分析表3的实验结果可以得出:ResNet 随网络层数的增加,识别率则逐渐降低。网络层数由18 增加至50,识别率由96.32%降低至93.79%,主要原因是增加网络层数使模型变得更复杂,且实验训练所用的数据较少,产生过拟合问题以及模型泛化能力较差。而DenseNet的网络层数均在100层以上,与ResNet_18 相比,DenseNet_121 的网络层数较多但参数量较少,其特征图较大、卷积过程计算量大和内存访问次数较多等问题导致训练时间更长。网络层数从169层增加到201 层识别率下降了0.65%,主要原因是增加网络层数使模型出现退化问题。所以网络层数并非越多越好,需要综合考虑网络的识别性能影响因素进行设计。
本文选取AlexNet、GoogleNet 和MobileNet 等8 种不同的网络,探索适合应用于低分辨率唇纹识别任务的最佳网络,在创建的低分辨率数据集上开展不同的CNN 模型、学习率和网络层数等方面的实验。综合分析实验结果,轻量化网络MobileNetV2较其他模型更适合唇纹识别任务,可以有效地解决传统识别算法中存在的问题,其识别率高达97.22%,模型大小仅8.63 MB,较合适的学习率为0.000 1,并非网络结构越深识别性能就越好,有助于未来在移动终端设备上实现唇纹的高效实时识别。
在未来的唇纹识别研究工作中,需要进一步扩大数据集规模,不断改进优化网络结构和调整各项参数,构建识别率高、泛化能力强及更适用于移动设备的低分辨率唇纹识别模型。