显隐特征融合的指静脉识别网络

news2024/10/7 4:25:37

文章目录

  • 显隐特征融合的指静脉识别网络
    • 总结
    • 摘要
    • 介绍
    • 显隐式特征融合网络(EIFNet)
      • 掩膜生成模块(MGM)
      • 掩膜特征提取模块(MFEM)
      • 内容特征提取模块(CFEM)
      • 特征融合模块(FFM)
    • THUFVS
    • 实验和结果
      • 数据集
      • 实现细节
      • 评估掩膜生成模型
      • 消融实验
        • FFM模块
        • 门控层
        • Batch Size
        • 损失函数超参数选择

论文 EIFNet: An Explicit and Implicit Feature Fusion Network for Finger Vein Verification

显隐特征融合的指静脉识别网络

总结

这是一个基于深度学习的指静脉识别方法。从任务类型上说是分类任务。

传统方法分为显式和隐式方法,这里的显式和隐式应该是从人的角度或者说人眼的角度,如血管分割二值掩膜这种人可以清楚识别并且理解其含义的就是显式特征。那么以人为例,首先识别出容易清晰的容易理解的特征,然后根据这种特征完成匹配,是直觉性的做法。因此从直觉上来说给网络提供一个显式特征,或者说给网络的特征提取规定一个良好的标准答案,会增强效果。

因此为了得到二值掩膜这一补充信息,要通过一个U-net做一个分割任务。而两种特征要做融合,因此有了中间平行的融合模块。而作者基于特征层次与卷积层深度相关这个认识,用门控层将特征前后分开,并用其对不同层次特征加权。网络使用非常基础的组件,基本全是卷积层,夹杂一小部分池化层。两个分支间是解耦的,即两种特征不会相互作用在彼此的提取过程中,这样能够更好的互补,而不是重复训练一种单一的特征。如果不解耦,例如通过已有的二值Mask引导下方分支的提取,那么相当于是在重复提取显性特征。

数据增强包括对比度亮度变换,MixUP策略。MixUP用来生成更多的样本,应该只在训练MGM时使用。

这种显式特征可以被叫做人眼感知的特征,对于传统方法来说,输出有一定可解释性方便我们评估方法的准确性,也就是人无法直接判断隐性特征的优劣,所以自然会选择发展显性特征。这种显性特征可以被称作人眼感知的特征,这种和人类对齐的方法是否有效,尤其是在这种特殊图像下,例如调节亮度和对比度可以显著提升人眼的识别效率,但对于网络来说,可能只是一个图像值的简单的线性变换,并没有那么必要对数据做过多处理。以人的先验或者已知的定律对网络做约束,一定条件下应该是有效的,因为除了网络自身的学习能力外,数据多少训练策略等也会影响到网络最后的能力,因此人的先验作为一种预训练很有可能是有效的。

问题

首先得到显性特征的网络是单独训练的,而且使用了额外的数据集,是否相对于其他方法不公平。预训练的ResNet,ViT等如果用作特征提取似乎没有问题,但是使用任务相关的数据集去做预训练是否合理。从图上来看,门控层是串联在干路上,即下一层特征提取要受上一层门控的控制,按照我的理解,门控应该控制往支路即特征融合模块中的信息流动,而不是和干路耦合在一起,导致特征融合和特征提取互相影响,虽然可能实验表明这样更加有效。

摘要

指静脉识别因其高安全性和发展前景在近年受到很多关注。但是从很难从低对比度的原始图片中提取完全的指纹模式,大大限制了指静脉识别算法的表现。收到这一动机的启发,我们提出了一种显式和隐式特征融合网络EIFNet,它可以通过互补融合从二值血管掩膜和原始灰度图像中提取更易理解和区分度的特征。我们设计了一个特征融合模块(FFM)作为掩膜特征提取模块(FFM)和上下文特征提取模块(CFEM)之间的桥梁来实现特征的优化融合。为了获取更加准确的血管掩膜,我们发展了一种新的指血管模式提取方法并且提供了第一个指静脉分割数据集THUFVS。我们还以一种简单有效的方法解决了建立指静脉分割数据集的问题,并发展了一个完整的流程包括数据集建立,数据增强和网络设计,称为掩膜生成模块,对于基于深度学习的指静脉模式提取方法。实验结果表明EIFNet在三个广泛使用的数据集上相比于其他现存的优越表现。

介绍

指静脉识别通常使用近红外相机采集。当血液中的血红蛋白吸收近红外光时,静脉在拍摄的图像中显示为暗线。指静脉识别技术上的优势总结如下(1)自然活体检测:必须对活体手指进行图像采集(2)稳定性高:手指静脉位于手指内部,不易受到外部环境的破坏。(3)高安全性:作为人体内的内部特征,指静脉有效放置了身份信息的丢失和遗忘。

存在很多指静脉识别算法,可以被总结为基于显式特征和隐式特征的方法。基于显式特征的方法主要关注于提取血管模式基于生成的掩膜进行匹配。由于指静脉图片的低对比度,因此并没有手工标注的指静脉分割标签。因此,大多数这些算法是通过检测谷状特征来提取血管模式的传统方法,例如重复线形跟踪(RLT),局部最大曲率点(LMC),主曲率(PC)和现状特征,例如Gabor滤波器,宽线检测器(WLD)。别的方法从原始指静脉图片中直接提取特征进行匹配。大多数的方法基于深度学习,例如卷积自编码器,双流网络,FVRAS-Net,因为深度神经网络相比于传统算法更加鲁棒和强大。

然而,指静脉成像的质量受限于一些因素,如无接触的图片采集,个人皮肤颜色,光照分布和手指粗细导致了低对比度的静脉图像包含了复杂的背景存在如噪声和皮肤纹理在内的冗余信息。

显隐式特征融合网络(EIFNet)

显隐式特征融合网络有两股信息流,一个分支表达隐性特征(从原始输入图片中提取的特征),一个分支表达显性特征(即掩膜生成器产生的掩膜)。这两个分支分别称作内容特征提取模块和掩膜特征提取模块,这两种特征间的特征融合是通过平行的两个特征融合块完成的,以混合完成的特征作为最终提取到的特征。图中所有垂直对齐的卷积块参数设置相同参考下面的表。

在这里插入图片描述

掩膜生成模块(MGM)

掩膜生成模块是一个U-net,同时使用了卷积注意力(CBAM)模块。因为没有公开的指静脉分割数据集,因此使用作者提出的THUFVS进行训练。每个下采样单元后接一个CBAM。

损失函数:
L m a s k = L C E + L D i c e + λ L p \mathcal{L}_{mask} = \mathcal{L}_{CE}+\mathcal{L}_{Dice}+\lambda\mathcal{L}_p Lmask=LCE+LDice+λLp
L p \mathcal{L}_p Lp是惩罚项,定义为
L p = l o g ∑ i = 1 N s i ^ ∑ i = 1 N y i \mathcal{L}_p = log\frac{\sum_{i = 1}^{N}\hat{s_i}}{\sum_{i = 1}^{N}{y_i}} Lp=logi=1Nyii=1Nsi^
N N N是所有训练batch的总像素数, s ^ i \hat{s}_i s^i是一个batch预测的掩膜图像第 i i i个像素值。这一项用来限制生成额外错误的血管,当生成mask中的点多余GT图像中的点数时提高损失函数的值。 λ \lambda λ设置为0.05。

在这里插入图片描述

掩膜特征提取模块(MFEM)

似乎只是简单的卷积层堆叠,还有一个门控层,从图上来看这个门控层并不是分支,而是直接串在后面,可能是图没有画完整。

在这里插入图片描述

内容特征提取模块(CFEM)

似乎只是简单的卷积层堆叠,具体的卷积参数设置见下图

在这里插入图片描述

特征融合模块(FFM)

特征融合模块也是简单的卷积层堆叠。

由于指静脉图像的低对比度,隐式特征的区分性被冗余的背景信息限制。在同时,掩膜很难包含所有的血管模式,导致了特征缺乏有效性。因此,为了实现特征互补和增强指静脉图像的特征表达,我们在FFM融合这两种特征。

为了保持多层次的信息,我们设计了信息融合结点,对应生成 F 1 F_1 F1 F 2 F_2 F2 F 3 F_3 F3

我们使用对比损失 L c o n L_{con} Lcon训练EIFNet。区别于传统方法基于样本的和,对比损失使用样本对进行计算。令 x i x_i xi x j x_j xj为训练数据集中的一对输入。当 x i x_i xi x j x_j xj 属于同一类时,属于正例对 y = 1 y=1 y=1,不同类属于负例对 y = 0 y = 0 y=0 x i x_i xi x j x_j xj之间的距离通过输出特征的欧几里得距离定义
d ( x i , x j ) = ∥ f ( x i ) − f ( x j ) ∥ 2 d(x_i,x_j)=\|f(x_i) - f(x_j)\|_2 d(xi,xj)=f(xi)f(xj)2
对比损失定义为:
L c o n = 1 2 B ∑ b = 1 B y d b 2 + ( 1 − y ) m a x ( α − d b , 0 ) 2 \mathcal{L}_{con} = \frac{1}{2B}\sum_{b=1}^{B}yd_b^2+(1-y)max(\alpha-d_b,0)^2 Lcon=2B1b=1Bydb2+(1y)max(αdb,0)2
d b d_b db时第b对样本对, B B B是一个训练batch中总的样本对的总数目, α \alpha α大于0,表示样本 x x x的特征距离半径,只有距离小于 α \alpha α的负例对会计算损失。当大于 α \alpha α损失等于0,并关注于更难得样本对,在这篇文章中 α \alpha α设置为2。

THUFVS

我们建立了第一个基于切块得指静脉切割数据集称为THUFVS,并且提供了一个简单有效得方法供研究者建立一个这样的数据集。流程图如下。

在这里插入图片描述

1)数据增强:MGM即分割网络在THUFVS上训练,其任务是从不同数据中提取出二值血管模式。THUFVS有以下特性1)血管结构简单稀疏2)切块是有高对比度的血管区域3)图片强度范围大,如过暗或者过曝。为了提升网络的泛化性,数据增强是至关重要的。基于比较,我们将在血管结构和对比度亮度上做了数据增强。

2)Mixup 因为目前没有关于血管结构的数据增强方法,我们提出了一个简单有效的方法。受MIXup想法的启发,使用了成对的图片和标签的凸组合并常用于图像分类。不同于Mixup,我们使用两个标签的结合作为新产生的标签来提升网络在低对比度下分割复杂血管结构的能力。
I m = θ I i + ( 1 − θ ) I j S m = S i ∪ S j I_m = \theta I_i+(1-\theta)I_j \\ S_m = S_i \cup S_j Im=θIi+(1θ)IjSm=SiSj
I i I_i Ii I j I_j Ij是两个静脉图像切块, s i , s j s_i,s_j si,sj是他们的分割标签。 I m I_m Im S m S_m Sm是生成的图像切块和标签。 θ \theta θ是超参数这里设置为0.5。生成的新样本如下。

在这里插入图片描述

实验和结果

数据集

1)USM数据集:数据集包括123个对象,包括每个被采集者双手的中指和食指,因此共有123 x 2 x 2 = 492类别。并且分为两期,每期间隔两个星期。每期每根手指拍摄6张图片,因此总的图片数为492 x 2 x 6 = 5904张。

分辨率为640 x 480 ROI图像尺寸300 x 100。

在这里插入图片描述

2)SDUMLA-HMT数据集:包括106个对象的食指,中指和无名指,同样两期,因此共有 106 x 3 x 2 = 636类,

每个手指重复6次,636 x 6 = 3816图片,分辨率320 x 240。

3)MMCBNU_6000数据集:MMCBNU包含100个对象的食指中指无名指,重复10次,因此共有600类别,6000图像,分辨率480 x 640

实现细节

首先我们独立训练MGM,进行灰度变换,对比度变换和mixup等数据增强,不包含模型其他部分。第二阶段,我们在保持MGM参数冻结情况下,训练EIFNet。我们直接使用USM提供的ROI图像和从SDU和MMCBNU中提取出的300x100ROI图像。所有的ROI图像处理成224 x 224。因为我们使用对比损失,因此训练数据是成对送入网络。我们使用随机采样策略,样本属于同类或不同类有相同的概率。每次采样作为一个循环。对于网络测试,每一类三分之一的图像用于测试。两张图片的匹配分数通过欧几里得距离定义。

为了更好评估提出方法的表现公平比较其他算法。等错误率(ERR)被用于度量,EER是一个广泛用于生物识别的度量,表示在ROC曲线上错误接受率(FAR)等于错误拒绝率(FRR)的位置。通常来说,更小的EER,更好的系统表现
F A R = f a l s e   a c c e p t e d i m p o s t e r   m a t c h i n g F R R = f a l s e   r e j e c t e d g e n u i n e   m a t c h i n g FAR = \frac{false\ accepted}{imposter\ matching} \\ FRR = \frac{false\ rejected}{genuine\ matching} FAR=imposter matchingfalse acceptedFRR=genuine matchingfalse rejected

F A R = F P F P + T P F R R = F N F N + T N FAR = \frac{FP}{FP +TP} \\ FRR = \frac{FN}{FN +TN} FAR=FP+TPFPFRR=FN+TNFN

评估掩膜生成模型

从解剖知识上总结指静脉的结构如下 1)方向性:核心分支和手指几乎平行,其他分支倾斜不同角度2)连续性:从头到尾不断3)粗细变化,核心分支更厚4)光滑和稳定性,每个分支光滑无噪点或者洞。

消融实验

在这里插入图片描述

样本间特征距离的分布如图10所示。距离通过欧几里得距离计算,通过图10,我们发现EIFNet使特征更具可分性。

FFM模块

FFFM分为F1,F2,F3。提取不同层次的信息,并且通过F2在中间的桥接,使得底层和高层信息更容易融合,消融实验表明,如果拼接将三者的输出都拼接在一起,会导致相对于只有F3性能都会下降。而F2和F3融合效果最好。作者解释是F1和F2之间的差距比较大,不适合直接拼接在一起。

门控层

作者解释没有门控层的较差结果因为网络深度变浅导致学习能力下降

Batch Size

随着batch_size增加表现变好,但是受限于显存,因此设置为32

损失函数超参数选择

对比损失中的 α \alpha α如果较小,会导致难以区分不同类别。而较大会导致难以训练。 λ \lambda λ是限制MGM生成错误血管的惩罚项,如果太小不能起到限制作用,当达到 λ = 0.5 \lambda = 0.5 λ=0.5时会导致不完整的模式生成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1526421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java 线上生产问题排查思路,jvm内存溢出实例重启原因排查生产实战

java jvm内存溢出实例重启排查生产实战(使用VisualVM) 背景 项目组线上生产环境不定期的发生内存爆满然后实例重启,实例发布上线后实例内存不断增长最后维持在百分之九十多,十分危险。因此我参与到了排查中,本篇博客将…

2258: 【搜索】【广度优先】最少转弯问题

题目描述 给出一张地图&#xff0c;这张地图被分为nm&#xff08;n,m<100&#xff09;个方块&#xff0c;任何一个方块不是平地就是高山。平地可以通过&#xff0c;高山则不能。现在你处在地图的&#xff08;x1,y1&#xff09;这块平地&#xff0c;问&#xff1a;你至少需要…

二、SQL基础学习(函数、约束、事务)

目录 1、函数1.1、字符串函数1.2、数值函数1.3、日期函数1.4 、流程函数 2、约束2.1、外键约束2.2、删除/更新行为 3、事务3.1、事务的四大特性3.2、并发事务问题3.2、事务的隔离级别 1、函数 1.1、字符串函数 # concat select concat(Hello, MySql);# lower select lower(He…

第六十回 吴用智赚玉麒麟 张顺夜闹金沙渡-飞桨科学计算套件PaddleScience

吴用说我到北京让卢俊义上山&#xff0c;小菜一碟&#xff0c;但是我需要一个粗心大胆的同伴一起去。黑旋风李逵自告奋勇&#xff0c;答应了吴用三件事才被允许去&#xff1a;一、 不喝酒 二、扮做道童听吩咐 三、不说话当哑巴。 两人拜做算命的道士和道童&#xff0c;来到北京…

zookeeper集群安装部署和集群异常处理

准备jdk和zookeeper安装包【官网即可下载】 zookeeper-3.5.1-alpha.tar.gz jdk1.7.0_8020200612.tar 准备三台linux虚拟机【具体以项目实际需要为准】&#xff0c;并安装jdk和zookeeper 虚拟机地址如下&#xff1a;194.1.1.86&#xff08;server.1&#xff09;、194.1.1.74…

Alma Linux - Primavera P6 EPPM 安装及分享

引言 继上一期发布的Rocky Linux版环境发布之后&#xff0c;近日我又制作了基于Alma Enterprise Linux 的P6虚拟机环境&#xff0c;同样里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机&#xff0c;请先与Oracle Primaver…

2024-03-18 作业

作业要求&#xff1a; 1> 将广播发送端和接收端各实现一遍 2> 将组播发送端和接收端各实现一遍 3> 将流式域套接字的服务器端和客户端各实现一遍 1&#xff1a;将广播发送端和接收端各实现一遍 运行代码&#xff1a; 服务端&#xff1a; 客户端&#xff1a; 运行截…

FREERTOS任务调度和切换

我们已经学会了 FreeRTOS 的任务创建和删除&#xff0c;挂起和恢复等基本操作&#xff0c;并且也学习了分析FreeRTOS 源码所必须掌握的知识&#xff1a;列表和列表项。但是任务究竟如何被创建、删除、挂起和恢复的&#xff1f;系统是怎么启动的等等这些我们还不了解&#xff0c…

html--花瓣

代码 <!DOCTYPE html> <html lang"en" ><head> <meta charset"UTF-8"> <title>Petals</title><link rel"stylesheet" href"css/style.css"></head><body><div class"…

探索ChatGPT时代下的下一代信息检索系统:机遇与挑战

1 Introduction 2022 年 11 月 30 日&#xff0c;OpenAI 推出了 ChatGPT&#xff0c;这是一款由先进的 GPT3.5 和更高版本的 GPT-4 生成语言模型提供支持的 AI 聊天机器人应用程序。该应用迅速吸引了全球超亿用户&#xff0c;创下了产品快速传播的新纪录。 它能够以对话的方式…

Linux docker2--镜像及容器操作-nginx部署示例

一、上一篇已经完成了docker的基础环境搭建&#xff0c;和docker的安装。不清楚的小伙伴可以自己找上一篇看一下。本例以部署nginx为例展示 二、镜像相关 1、切换docker的镜像源为阿里云 命令&#xff1a; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <&l…

数据库管理-第161期 数据库,走着瞧(20240318)

数据库管理161期 2024-03-18 数据库管理-第161期 数据库&#xff0c;走着瞧&#xff08;20240318&#xff09;MySQLSACC走着瞧RACAIOps 总结 数据库管理-第161期 数据库&#xff0c;走着瞧&#xff08;20240318&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&am…

php7.3.4连接sqlserver(windows平台)

前言 有个项目需要手上laravel连接客户的sqlserver数据库读取数据&#xff0c;故在本地开发的lnmp环境中&#xff0c;php需要增加扩展 过程 从微软官网下载sqlsrv扩展,注意注意php版本&#xff0c;下载地址 解压的文件会有nts和ts两个版本&#xff0c;本地打开phpinfo查看 将…

大型机开发入门

这里写目录标题 零 大型机应用场景1 IBM官方网站1.1 保险业务1.2 证券业务1.3 银行业务 2 日语2.1 常见口语 一 Cobol 古董1 cobol 语言的前景1.1 tiobe编程网站排名1.2 cobol &#xff08;Common Business-Oriented Language&#xff09; 2 环境安装及开发工具1.1 VScode Gnu…

最小化战斗力差距——算法思路

题目链接&#xff1a;1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn) 可分析&#xff0c;把一个数组分成两组&#xff0c;求一组的最大值与另一组的最小值的差值的绝对值最小&#xff0c;可以转换为求任意两个相邻数字之间的最小插值的绝对值。 可看图示&#xff1a; package lan…

Morris法解决二叉树问题,展开链表及中序遍历

问题一&#xff1a;二叉树展开成单链表 问题二&#xff1a;二叉树中序遍历 咋一看非常简单的两道题&#xff0c;但是如果我们加以一些限制&#xff0c;这两题就不简单了。对于这两道题&#xff0c;我们的空间复杂度都必须控制在O(1)。也就是说&#xff0c;迭代和递归全部失效…

Ventana Veyron V系列处理器架构分析

概述 Ventana的产品策略 计算die IO die&#xff08;友商产品/用户自定义^^&#xff09; Veyron V1 2022年12月发布&#xff0c;Ventana发布了全球首款基于RISC-V架构的服务器CPU——Veyron V1&#xff0c;号称性能可超越AMD EPYC 7763。 服务器级别的CPU IP chiplets解…

考研复习C语言进阶(4)

1. 为什么存在动态内存分配 我们已经掌握的内存开辟方式有&#xff1a; int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的方式有两个特点&#xff1a; 1. 空间开辟大小是固定的。 2. 数组在申明的时候&#…

2.7 ROC曲线相比P-R曲线有什么特点?

2.7 ROC曲线相比P-R曲线有什么特点&#xff1f; 前情提要&#xff1a; P-R曲线详见&#xff1a;2.2 什么是精确率&#xff08;Precision&#xff09;与召回率&#xff08;Recall&#xff09;&#xff1f;二者如何权衡&#xff1f;&#xff09; 2.4 ROC曲线是什么&#xff1f; 2…

海康威视相机SDK二次开发(JAVA语言)

目录 前言客户端创建虚拟相机示例代码保存图片程序运行结果修改需求 二次开发引入外部包对SaveImage.java文件进行修改保存图片saveDataToFile方法选择相机chooseCamera方法主方法 FileUtil类处理过期照片启动类与配置文件application.yml通过实体类读取yml启动类 SaveImage.ja…