本发明属于生物特征识别和计算机视觉领域,特别涉及到一种基于cs-tcgan的指静脉图像去噪方法。
背景技术:
指静脉识别是一种新兴的生物识别技术,由于其特征存在于手指内部并且难以复制的特性,使其在军工、金融领域的相关应用越来越广泛。在实际使用的过程,由于环境因素(粉尘容易附着于镜面),人为因素(手指携带皮裂纹),导致采集到的指静脉图像存在污染噪声。这些污染噪声作为干扰信息,影响指静脉识别技术在实际应用场景中的识别性能。因此,指静脉去噪算法的研究是至关重要的。
传统图像去噪算法主要分为两类,一类是变换域去噪算法,另一类是空间域去噪算法。变换域去噪算法通过将图像转换到变换域进行处理,之后再通过反变换得到目标图像,主要依据噪声与图像主体在变换域的分布差异性。li等提出基于组稀疏编码理论的新型去噪模型,将图像转化到稀疏域,以秩最小化作为目标进行优化,用以恢复干净的图像,实现了更高的psnr值。空间域去噪算法通过设计滤波核对图像进行直接卷积操作,达到去除噪声的目的。thanh等提出自适应开关加权均值滤波的图像去噪算法,根据根据滤波窗口内噪声点与信息点的分布情况来自适应调整滤波核的参数。该方法对各类模拟噪声都有较好地去噪效果,且由于其开关特性,对于滤波带来的误识问题有一定的抑制作用。传统去噪算法对于噪声特征的挖掘以经验性设定为主,泛化能力较弱。而指静脉实际使用过程中由于受到屏幕脏污和手指起皮的多重影响,噪声特征比较复杂,难以用传统的经验特征去完整的构造静脉噪声分布。
随着深度学习在图像处理领域的应用逐渐成熟,使得愈来愈多的学者研究基于深度学习的去噪模型。基于深度学习的去噪模型通过网络参数训练使得去噪模型较传统去噪模型的泛化性更强,对特征的挖掘更准确。burger等采用cnn对图像进行去噪,通过学习带噪图像到干净图像的映射关系,实现了图像的去噪,但由于对浅层信息利用较少,存在高频细节丢失问题。针对cnn去噪模型对于高频细节丢失的问题,tian等提出一种基于注意力导向的cnn去噪模型,增加了浅层网络对深层网络的影响,在合成和真实的噪声场景中,都取得了不错的效果。cnn去噪模型通过堆叠更多的卷积层来获取带噪图像到清晰图像的映射,但当要求更具体的细节特征时,该方法就难以满足目标。lyu等提出基于生成对抗网络的去噪模型,进一步改善了带噪图像的图像质量和视觉效果。生成对抗网络采用了对抗竞争的思想,通过生成器网络和判决器网络的竞争,来强化带噪图像到干净图像的映射效果。
尽管目前基于生成对抗网络的去噪方法在信噪比、视觉效果等评价指标上已经取得一定的成绩,但都是基于纹理清晰的图像进行的研究,对纹理不清晰的指静脉图像去噪性能下降。经典的生成对抗网络去噪模型的损失函数为对抗损失和内容损失,内容损失将图像之间的灰度差值作为约束,对于纹理较模糊的指静脉图像,仅依靠图像灰度差值作为约束难以在去除噪声的同时较好地恢复静脉细节信息,所以需要针对指静脉图像的纹理特性设计特定的去噪模型。
因此,本文提出了一种基于cs-tcgan(customsampletextureconditionalgenerativeadversarialnets)的指静脉去噪算法。
技术实现要素:
本发明的目的在于解决经典cgan去噪模型对于纹理较模糊的指静脉图像去噪效果不佳的问题,提出一种基于cs-tcgan的指静脉图像去噪方法。
本发明所采用的技术方案为:
一种基于cs-tcgan的指静脉图像去噪方法,包括以下步骤:
s1、构造训练数据集,将带噪指静脉图像inoise作为待适配图像以及条件约束图像ic,对应的正常指静脉图像iclean作为目标图像;
由于现实中的带噪图像几乎不存在合适的标签图像,所以无法利用现实噪声图像构造训练集。因此,针对真实带噪指静脉图像,利用模拟噪声构造训练集。为了解决随机设定的噪声样本训练集所获取的模型泛化性弱的问题,针对实际噪声的噪声密度和噪声特性设计以椒盐噪声为主、高斯噪声、泊松噪声、斑点噪声为辅的训练集,以获取泛化性更强的去噪模型;
s1-1:采集真实带噪指静脉图像,统计噪声密度分布,对比真实噪声和模拟噪声颗粒大小;
s1-2:选择模拟噪声类型以及噪声密度,构造以椒盐噪声为主,高斯噪声、泊松噪声、斑点噪声为辅的训练集。
s2、设计生成器网络结构;
指静脉图像去噪的实际目的是将带噪图像映射为干净图像,同时尽可能保留图像中的静脉信息,故需围绕该目的设计网络结构。为了避免反卷积过程中上采样引起的伪影和棋盘化效应对静脉信息造成的损失,网络采用特征维度保持的结构,去噪的过程中特征的维度不发生变化。为了进一步增强静脉信息的恢复效果,卷积核的大小随通道数的变化而变化,以学习到不同感受野下的细节信息。
s2-1:生成器网络结构编码器部分包括五层结构,第一层到第四层是卷积核大小分别为r1*r1、r2*r2、r3*r3、r4*r4的卷积层。输入三通道带噪静脉图像,第一层输出通道数为d,后三层通道数依次为2d、4d和8d,每一层都经过bn层以及relu激活层,带噪指静脉图像inoise的特征维度不变,第五层是一层残差结构,该残差结构将编码器输入的带噪指静脉图像inoise与第四层卷积输出相加,残差结构的输出作为解码器的输入。
s2-2:生成器网络结构解码器部分包含四层反卷积层,卷积核大小分别为r4*r4、r3*r3、r2*r2、r1*r1,前三层均经过bn层以及relu激活层,第四层经过bn层以及tanh激活层激活输出,获得去噪后的指静脉图像ide-noise;
s3、设计判决器网络结构;
判决器网络实际是二分类网络,对去噪的结果进行评价,0代表是去噪失败,1代表去噪成功,判决器网络评价的准确性影响着最终模型的去噪性能好坏。判决器过强会导致生成器竞争失败,无法进行正常去噪;判决器过弱会导致判决器的评价指标失去参考意义,最终得到的去噪模型去噪能力过弱。判决器网络结构需要注意结合生成器网络模型进行设计。
s3-1:结合生成器网络结构,设计的判别器网络由五层卷积层组成,卷积核大小均为r*r,每层卷积均包含bn层以及relu激活层。输入三通道的带噪指静脉图像inoise,前四层输出通道数分别为d、2d、4d和8d,带噪指静脉图像inoise大小逐层缩小为原来的1/4,第五层输出的特征维度为1*1*1,最后采用sigmoid函数将特征维度映射到0到1之间的概率。
s4、设计基于纹理损失的损失函数;
本发明提出的cs-tcgan网络优化的目标函数为:
式(1)中,g代表生成器网络,d代表判决器网络,v(d,g)是目标函数,是被优化的目标,d(x|c)表示将真实样本x和条件样本c输入判决网络后判断为真实样本的概率,g(z|c)表示由输入样本z结合条件样本c输入到生成器网络后得到的生成样本,e(*)代表分布函数的数学期望值。g使得目标函数最小化,d使得目标函数最大化,二者产生对抗,使得g和d的性能更优。因此,cs-tcgan的损失函数主要由生成损失和判决损失组成。
s4-1:判决器的损失函数如式(2)所示:
式中,s_ce(*)代表交叉熵损失函数,作用是计算经sigmoid函数激活之后的交叉熵,n代表图像的像素点数;iclean代表正常指静脉图像,inoise代表带噪指静脉图像,ic代表条件约束图像;约束去噪的过程如下:
式中,logit表示输入图像,label表示分类结果。
对于纹理较为模糊的指静脉图像,除了考虑生成类似于正常指静脉图像的分布外,更多地需要考虑图像内容(图像灰度)、纹理(静脉信息)的恢复情况。
s4-2:本发明提出的cs-tcgan采用网络对抗损失、内容损失、纹理损失加权和的生成器损失函数,如式(4)所示:
式中,losspixel为网络对抗损失,losscont为内容损失,losslbp为纹理损失,λp、λc、λlbp分别为网络对抗损失、内容损失、纹理损失的加权系数。
losspixel采用经典的对抗损失函数,旨在通过去噪后的图像成功被判决器判为正常图像的概率描述对抗损失值,具体公式如式(5)所示:
内容损失losscont采用去噪图像和正常图像的均方差损失表示,表示图像整体灰度差异,具体公式如式(6)所示:
针对内容损失项对于纹理较模糊的指静脉图像约束效果不佳的问题,在损失函数中加入纹理损失项,以恢复更多的静脉纹理细节特征。losslbp采用经典的lbp(局部二值化模式,localbinarypattern)对图像进行纹理特征表示,再用获取的特征进行均方差损失计算,对g起到纹理辅助的作用。公式如下所示:
式中,lbp(*)为局部二值模式纹理提取函数,其公式表示如下式所示:
式中,ωc表示中心点(xc,yc)范围为1的邻域,s(*)为符号函数。
s5、训练整个模型,直至迭代训练整个训练集若干次;
s6、将测试集图像输入训练好的生成器中,获得去噪后的指静脉图像。
本发明有益效果如下:
本发明提出一种基于cs-tcgan的指静脉图像去噪方法,首先针对实际噪声的噪声密度和噪声特性设计以椒盐噪声为主、高斯噪声、泊松噪声、斑点噪声为辅的训练集,以获取泛化性更强的去噪模型,解决了随机设定的噪声样本训练集所获取的模型泛化性弱的问题。其次,对生成器网络进行改善,针对内容损失项对于纹理较模糊的指静脉图像约束效果不佳的问题,在损失函数中加入纹理损失项,以恢复更多的静脉纹理细节特征。同时对生成器网络中指静脉图像的信息维度进行保持,避免了反卷积过程中上采样引起的伪影和棋盘化效应对静脉信息造成的损失。基于cs-tcgan的指静脉去噪算法较传统去噪算法以及经典生成对抗网络去噪方法在视觉效果、psnr、识别性能等评价指标上表现更优异,充分说明了本发明提出的基于cs-tcgan的指静脉去噪算法的有效性,进一步提升了指静脉识别技术在噪声环境下的应用性能。
附图说明
图1为现实中带噪图像的噪声密度分布情况;
图2为真实携带粉尘和横纹噪声指静脉图像以及模拟带噪指静脉图像;
图3为本发明提出的cs-tcgan的生成器网络结构;
图4为本发明提出的cs-tcgan的判别器网络结构;
图5为本发明提出的cs-tcgan的模型结构图;
图6为对于真实携带粉尘以及手指皮裂纹指静脉图像,基于cs-tcgan的指静脉图像去噪方法与其他经典去噪方法的去噪效果比对图;
图7为四种模拟噪声经过基于cs-tcgan的指静脉图像去噪方法与其他经典去噪方法处理下的psnr值比较;
图8为四类模拟噪声在不同去噪模型处理下平均识别性能;
图9为粉尘噪声在不同去噪模型处理下平均识别性能;
图10为皮裂纹噪声在不同去噪模型处理下平均识别性能;
图11为本发明基于cs-tcgan的指静脉图像去噪方法步骤图;
具体实施方式
下面结合附图对本发明的具体实施例作进一步的说明。
本实施例的基于一种基于cs-tcgan的指静脉图像去噪方法,包括以下步骤:
s1、构造训练数据集,以及带噪指静脉图像测试集;
s1-1:采集现实中带噪图像,并统计噪声密度,比较真实噪声与模拟噪声颗粒大小,最接近真实噪声的是椒盐噪声,其次是高斯噪声,结果如图1、2;
s1-2:训练集组成结构为:噪声密度为0.02、0.06、0.1、0.14、0.18、0.22的椒盐噪声样本各68组,每组10幅,共680幅,噪声密度为0.1和0.2的高斯噪声样本各68组,每组10幅,共680幅,为了增加去噪模型对噪声复杂度的容忍性,训练集中亦加入泊松噪声和斑点噪声各68组,每组10幅,共680幅。
s2、设计生成器网络结构,如图3;
s2-1:生成器网络编码器部分包括五层结构,第一到第四层是卷积核大小分别为3*3,3*3,4*4,5*5的卷积层。输入160*64*3带噪指静脉图像,第一层输出通道数为64,后三层通道数依次为128,256,512,每一层都经过bn层以及relu激活层,第五层结构是一层残差结构,将编码器输入与第四层卷积输出相加,作为解码器的输入;
s2-2:生成器网络解码器部分包含四层反卷积层,卷积核大小分别为5*5,4*4,3*3,3*3,前三层均经过bn层以及relu激活层,第四层经过bn层以及tanh激活层激活输出,获得去噪后的静脉图像;
s3、设计判决器网络结构,如图4;
s3-1:结合生成器网络结构,设计的判别器网络由五层卷积层组成,卷积核大小均为4*4,每层卷积均包含bn层以及relu激活层。输入160*64*3指静脉图像图像,前四层输出通道数分别为32,64,128,256,指静脉图像大小逐层缩小为原来的1/4,第五层输出特征维度为1*1*1,最后采用sigmoid函数将数据映射到0到1之间的概率。
s4、设计基于纹理损失的损失函数;
s4-1:根据式(2)、(3),计算判别器损失;
s4-2:根据式(4)、(5)、(6)、(7)、(8)计算生成器损失:
为了提升指静脉纹理恢复效果同时避免纹理损失项加权系数过大造成伪静脉的生成,本发明λp设为0.3,λc设为0.5,λlbp设为0.2。
s5、训练整个模型,如图5,直至迭代训练整个训练集若干次;
s6、将测试集图像输入训练好的生成器中,获得去噪后的指静脉图像。
以下是基于图像数据库对本发明所提算法的实验数据分析,本发明算法与现有几种经典图像去噪算法分别在模拟带噪指静脉图像与真实带噪指静脉图像上进行测试比对。
本发明实验所用服务器gpu为nvidiatitanrtx,训练所使用的的深度学习框架是pytorch,批次大小为32,迭代次数为100000次,全局学习率为0.004,通过adam优化器进行优化。
为了验证经过训练后去噪模型的性能,本发明实验的应用数据集包括两部分组成,首先是模拟噪声数据集,由携带椒盐噪声、高斯噪声、泊松噪声、斑点噪声的指静脉图像集各600张,其次是真实噪声数据集,由现实中采集得到的携带粉尘噪声、皮裂纹噪声的指静脉图像各600张。
本文从视觉效果、psnr(peaksignal-to-noiseratio,峰值信噪比)、识别性能三个指标来对基于自适应开关空间域滤波的传统去噪方法、采用随机选取的椒盐噪声作为训练集进行训练的cgan去噪模型、采用本文设计的训练集进行训练的cgan去噪模型(customsample-cgan,cs-cgan)、本文提出的基于cs-tcgan的去噪模型进行评价。
图6中(a)、(b)分别为携带粉尘噪声、皮裂纹噪声的指静脉图像经过五种不同方式处理后的图像。
从图6(a)区块1中可以看到,经过传统去噪方法处理后,噪声被去除的同时,静脉信息特征也被模糊;从图6(a)区块2中可以看到,经过cgan模型处理后,虽然相较于传统去噪方法边缘信息保持程度更高,但依旧存在静脉信息模糊化的问题;从图6(a)区块3中可以看到,经过cs-cgan去噪模型处理后,静脉模糊化问题得到较大的改善,但静脉信息与周围背景区域的对比度仍需要进一步提升;从图6(a)区块4中可以看出,经过cs-tcgan去噪模型处理后,静脉模糊化问题得到解决,同时静脉信息与周围背景区域的对比度有所提升。
从图6(b)区块1中可以看到,被皮裂纹损坏的静脉区域,经过传统去噪方法处理后静脉结构连贯性不佳;从图6(b)区块2中可以看到,cgan去噪模型虽然提升了静脉结构的连贯性,但模型的泛化性弱导致了去噪后部分区域静脉断裂的现象;从图6(b)区块3中可以看到,cs-cgan去噪模型泛化性有所增强,但去噪处理后,所恢复的静脉区域较浅,边缘信息保持程度不高;从图6(b)区块4中可以看出,经过cs-tcgan去噪模型处理后,静脉区域被很好地还原,且静脉边缘锐化程度更高。
从图7的比较结果可以看出,对于不同的噪声类型,本文算法的去噪性能对比传统去噪、cgan去噪模型、cs-cgan去噪模型都有一定的提升,说明本文提出的基于cs-tcgan的去噪模型对不同的噪声类型具有更强的鲁棒性。
图8、图9、图10中的roc曲线表明,噪声对指静脉图像的静脉纹理信息损坏严重,导致当far为0时,携带模拟噪声、携带粉尘噪声、携带皮裂纹噪声的指静脉图像,不处理的情况下frr仅为7.79%、7.83%、40.16%;经过传统去噪方法处理后,frr提升到了32.54%、37.33%、48%,虽然经过该方法处理后识别性能得到一定提升,但依旧存在纹理修复不佳、噪声掩码不准确导致噪声处理不完全的问题;经过cgan去噪模型处理后,解决了传统去噪方法需要准确的噪声掩码的问题,frr提升到了48.11%、41.2%、48.16%;经过cs-cgan去噪模型处理后,进一步提升了应对复杂的噪声类型的去噪性能,frr提升到了57.88%、44.5%、50.16%,但依旧存在静脉纹理恢复不完全的问题;经过cs-tcgan去噪模型处理后,解决了纹理修复不完全的问题,进一步提升了去噪模型对细节信息的恢复能力,frr提升到了60.83%、47.5%、56.65%。
上面结合附图对本发明的实施例作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出得各种变化,也应视为本发明的保护范围。
1.一种基于cs-tcgan的指静脉图像去噪方法,其特征在于包括以下步骤:
s1、构造训练集,将带噪指静脉图像inoise作为待适配图像以及条件约束图像ic,对应的正常指静脉图像iclean作为目标图像;
s2、设计生成器网络结构;采用特征维度保持的网络结构,去噪的过程中特征的维度不发生变化,且卷积核的大小随通道数的变化而变化;
s3、设计判决器网络结构;
s4、设计基于纹理损失的损失函数;
s5、训练整个模型,直至迭代训练整个训练集若干次;
s6、将测试集的图像输入训练好的生成器中,获得去噪后的指静脉图像。
2.根据权利要求书1所述的一种基于cs-tcgan的指静脉图像去噪方法,其特征在于步骤1具体实现如下:
s1-1:采集真实带噪指静脉图像,统计噪声密度分布,对比真实噪声和模拟噪声颗粒大小;
s1-2:选择模拟噪声类型以及噪声密度,构造以椒盐噪声为主,高斯噪声、泊松噪声、斑点噪声为辅的训练集。
3.根据权利要求书1或2所述的一种基于cs-tcgan的指静脉图像去噪方法,其特征在于步骤2具体实现如下:
s2-1:生成器网络结构编码器部分包括五层结构,第一层到第四层是卷积核大小分别为r1*r1、r2*r2、r3*r3、r4*r4的卷积层;输入三通道带噪静脉图像,第一层输出通道数为d,后三层通道数依次为2d、4d和8d,每一层都经过bn层以及relu激活层,带噪指静脉图像inoise的特征维度不变,第五层是一层残差结构,该残差结构将编码器输入的带噪指静脉图像inoise与第四层卷积输出相加,残差结构的输出作为解码器的输入;
s2-2:生成器网络结构解码器部分包含四层反卷积层,卷积核大小分别为r4*r4、r3*r3、r2*r2、r1*r1,前三层均经过bn层以及relu激活层,第四层经过bn层以及tanh激活层激活输出,获得去噪后的指静脉图像ide-noise。
4.根据权利要求书3所述的一种基于cs-tcgan的指静脉图像去噪方法,其特征在于步骤3具体实现如下:
s3-1:结合生成器网络结构,设计的判别器网络由五层卷积层组成,卷积核大小均为r*r,每层卷积均包含bn层以及relu激活层;输入三通道的带噪指静脉图像inoise,前四层输出通道数分别为d、2d、4d和8d,带噪指静脉图像inoise大小逐层缩小为原来的1/4,第五层输出的特征维度为1*1*1,最后采用sigmoid函数将特征维度映射到0到1之间的概率。
5.根据权利要求书4所述的一种基于cs-tcgan的指静脉图像去噪方法,其特征在于步骤4具体实现如下:
cs-tcgan网络优化的目标函数为:
式(1)中,g代表生成器网络,d代表判决器网络,v(d,g)是目标函数,是被优化的目标,d(x|c)表示将真实样本x和条件样本c输入判决网络后判断为真实样本的概率,g(z|c)表示由输入样本z结合条件样本c输入到生成器网络后得到的生成样本,e(*)代表分布函数的数学期望值;g使得目标函数最小化,d使得目标函数最大化,二者产生对抗,使得g和d的性能更优;因此,cs-tcgan的损失函数主要由生成损失和判决损失组成;
s4-1:判决器的损失函数如式(2)所示:
式中,s_ce(*)代表交叉熵损失函数,作用是计算经sigmoid函数激活之后的交叉熵,n代表图像的像素点数;iclean代表正常指静脉图像,inoise代表带噪指静脉图像,ic代表条件约束图像;约束去噪的过程如下:
式中,logit表示输入图像,label表示分类结果;
s4-2:cs-tcgan采用网络对抗损失、内容损失、纹理损失加权和的生成器损失函数,如式(4)所示:
式中,losspixel为网络对抗损失,losscont为内容损失,losslbp为纹理损失,λp、λc、λlbp分别为网络对抗损失、内容损失、纹理损失的加权系数;
losspixel采用经典的对抗损失函数,具体公式如式(5)所示:
内容损失losscont采用去噪图像和正常图像的均方差损失表示,具体公式如式(6)所示:
losslbp采用经典的lbp对图像进行纹理特征表示,再用获取的特征进行均方差损失计算,对g起到纹理辅助的作用;公式如下所示:
式中,lbp(*)为局部二值模式纹理提取函数,其公式表示如下式所示:
式中,ωc表示中心点(xc,yc)范围为1的邻域,s(*)为符号函数。
技术总结