CN110263659A - 一种基于三元组损失和轻量级网络的指静脉识别方法及系统 - Google Patents
一种基于三元组损失和轻量级网络的指静脉识别方法及系统 Download PDFInfo
- Publication number
- CN110263659A CN110263659A CN201910445146.XA CN201910445146A CN110263659A CN 110263659 A CN110263659 A CN 110263659A CN 201910445146 A CN201910445146 A CN 201910445146A CN 110263659 A CN110263659 A CN 110263659A
- Authority
- CN
- China
- Prior art keywords
- sample
- loss
- network
- triple
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/243—Aligning, centring, orientation detection or correction of the image by compensating for image skew or non-uniform image deformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/12—Fingerprints or palmprints
- G06V40/1347—Preprocessing; Feature extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/12—Fingerprints or palmprints
- G06V40/1365—Matching; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/14—Vascular patterns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于三元组损失和轻量级网络的指静脉识别方法及系统,该方法包括:对数据库中的指静脉样本图像进行预处理;构建小型轻量级网络模型结构,在训练集中选择三元组(A,P,N)并进行网络训练;将训练集作为待录入指静脉数据库的人物信息,读取训练集内图像并输入模型中,得到embeddings向量库;将某个样本图像输入所述网络模型中,若样本图像与训练集中的样本图像之间的相似度大于阈值,则该人不在该数据库中;反之,选取符合阈值范围内的距离最小值,识别为相似度最高的人。本发明引入三元组损失结合轻量级网络,训练模型,实现静脉特征的空间映射,避免数据库动态变化时需要多次训练网络模型,最终有效提升指静脉识别的精度和效率。
Description
技术领域
本发明涉及数字图像处理技术领域,具体涉及一种基于三元组损失和轻量级网络的指静脉识别方法及系统。
背景技术
近年来,指静脉识别问题一直是图像处理领域中一个热门的方向,流程包括获取图像、预处理、特征提取和识别分类四个部分,其中特征提取是最为核心的一个部分。在传统的图像识别领域,基本上是人工提取特征,不仅费时而且费力,更无法保证特征的有效性,且鲁棒性差,而利用深度学习进行特征提取则回避了这些问题。
深度学习,即在多层神经网络上运用各种机器学习算法来解决图像、文本等各种问题的算法集合。深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习是一个端到端的系统,可以用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。但目前的识别方法普遍存在对噪声敏感,鲁棒性差以及由于指静脉样本数量缺乏导致网络模型精度不高的问题。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于三元组损失和轻量级网络的指静脉识别方法,该方法解决了现有识别方法中对噪声敏感,鲁棒性差,由于指静脉样本数量缺乏导致网络模型精度不高以及由于样本的改变,需要多次训练网络模型的问题,另一方面,本发明还提供一种基于三元组损失和轻量级网络的指静脉识别系统。
技术方案:本发明所述的基于三元组损失和轻量级网络的指静脉识别方法,该方法包括以下步骤:
(1)对数据库中的指静脉样本图像进行预处理,并划分测试集和训练集;
(2)构建小型轻量级CNN网络模型结构,在训练集中选择三元组(A,P,N)并使用Triplet Loss训练网络进行训练,其中,A表示目标,P为正样本,N为负样本;
(3)根据A与P之间的距离、A与N之间的距离以及正则化损失计算损失函数total_loss,采用梯度下降算法计算梯度并更新优化模型参数;
(4)将所述训练集作为待录入指静脉数据库的人物信息,读取训练集内图像并输入已训练好的CNN模型中,生成相应的特征向量并保存,得到embeddings向量库,所述embeddings向量库存储了数据库中所有样本的特征信息;
(5)将所述测试集中的某个样本图像输入已训练好的所述网络模型中,生成对应的静脉的embedding数组,计算所述embedding数组与embeddings向量库中的各个embedding之间的距离,得到所述样本图像与所述训练集中的样本图像之间的相似度,若相似度大于设定的阈值,则认为该人不在该数据库中;反之,则选取符合阈值范围内的距离最小值,识别为相似度最高的人,得出最终识别结果。
进一步地,包括:
所述步骤(1)中,对数据库中的指静脉样本图像进行预处理,具体包括:
首先,采用双线性差值将样本图像缩小,然后,计算样本图像梯度模板,提取roi区域边缘点,根据所述边缘点找到中心线,根据斜率对所述样本图像进行旋转矫正,最后将样本图像压缩至所述网络模型需要的输入尺寸。
进一步地,包括:
所述步骤(2)中,构造三元组(A,P,N)具体包括:
(21)从所述训练集中抽样一组图片,通过所述小型轻量级CNN模型计算这组图片的embedding向量并保存于数组emb_array中;
(22)遍历batch中第i类样本的每个样本,计算其与其他所有样本图像的欧氏距离distance并存入数组neg_dist_sqr,将同类中的样本之间组成(A,P)样本对,计算A,P之间的距离并记作pos_dist_sqr;
(23)遍历所述(A,P)对,并将i类样本图片对应索引位置的neg_dist_sqr值设定为无穷大;
(24)把所有满足neg_dists_sqr-pos_dist_sqr<alpha且pos_dist_sqr<neg_dists_sqr条件的样本记录下来,并从中随机选择一个样本与上述已有的(A,P)对结合,即组成三元组(A,P,N),其中,alpha为预设的常数。
进一步地,包括:
所述步骤(3)中,损失函数total_loss表示为:
triplet_loss=d(A,P)-d(A,N)+alpha;
total_loss=triplet_loss+regulation_losses
其中,regulation_losses为正则化损失,d(A,P)为A与P之间的距离,d(A,N)为A与N之间的距离。
进一步地,包括:
所述步骤(2)中,构建小型轻量级CNN网络模型结构,具体包括:
SqueezeNet中的Fire Module网络模块替换原来的卷积与池化操作,Fire Module网络模块是由两部分构成:sequeeze以及后面连接的enpand,其中,sequeeze部分是卷积核为1*1的卷积层,expand部分是由1*1以及3*3的两个卷积层共同构成,并推迟下采样。
一种基于三元组损失和轻量级网络的指静脉识别系统,所述系统包括:
样本预处理模块,用于对数据库中的指静脉样本图像进行预处理,并划分测试集和训练集;
网络训练模块,用于构建小型轻量级CNN网络模型结构,在训练集中选择三元组(A,P,N)并使用Triplet Loss训练网络进行训练,其中,A表示目标,P为正样本,N为负样本;
损失函数确定模块,用于根据A与P之间的距离、A与N之间的距离以及正则化损失计算损失函数total_loss,采用梯度下降算法计算梯度并更新优化模型参数;
向量库生成模块,用于将所述训练集作为待录入指静脉数据库的人物信息,读取训练集内图像并输入已训练好的CNN模型中,生成相应的特征向量并保存,得到embeddings向量库,所述embeddings向量库存储了数据库中所有样本的特征信息;
结果识别模块,用于将所述测试集中的某个样本图像输入已训练好的所述网络模型中,生成对应的静脉的embedding数组,计算所述embedding数组与embeddings向量库中的各个embedding之间的距离,得到所述样本图像与所述训练集中的样本图像之间的相似度,若相似度大于设定的阈值,则认为该人不在该数据库中;反之,则选取符合阈值范围内的距离最小值,识别为相似度最高的人,得出最终识别结果。
进一步地,包括:
所述样本预处理模块中,对数据库中的指静脉样本图像进行预处理,具体包括:
缩小单元,用于采用双线性差值将样本图像缩小;
roi提取单元,用于计算样本图像梯度模板,提取roi区域边缘点;
矫正压缩单元,用于根据所述边缘点找到中心线,根据斜率对所述样本图像进行旋转矫正,最后将样本图像压缩至网络模型需要的输入尺寸。
进一步地,包括:
所述网络训练模块中,构造三元组(A,P,N)具体包括:
特征向量计算单元,用于从所述训练集中抽样一组图片,通过所述小型轻量级CNN模型计算这组图片的embedding向量并保存于数组emb_array中;
正距离计算单元,用于遍历batch中第i类样本的每个样本,计算其与其他所有样本图像的欧氏距离distance并存入数组neg_dist_sqr,将同类中的样本之间组成(A,P)样本对,计算A,P之间的距离并记作pos_dist_sqr;
设定单元,用于遍历所述(A,P)对,并将i类样本图片对应索引位置的neg_dist_sqr值设定为无穷大;
三元组生成单元,用于把所有满足neg_dists_sqr-pos_dist_sqr<alpha且pos_dist_sqr<neg_dists_sqr条件的样本记录下来,并从中随机选择一个样本与上述已有的(A,P)对结合,即组成三元组(A,P,N),其中,alpha为预设的常数。
进一步地,包括:
所述损失函数确定模块中,损失函数total_loss表示为:
triplet_loss=d(A,P)-d(A,N)+alpha;
total_loss=triplet_loss+regulation_losses
其中,regulation_losses为正则化损失,d(A,P)为A与P之间的距离,d(A,N)为A与N之间的距离。
进一步地,包括:
所述网络训练模块中,构建小型轻量级CNN网络模型结构,具体包括:
SqueezeNet中的Fire Module网络模块替换原来的卷积与池化操作,Fire Module网络模块是由两部分构成:sequeeze以及后面连接的enpand,其中,sequeeze部分是卷积核为1*1的卷积层,expand部分是由1*1以及3*3的两个卷积层共同构成,并推迟下采样。
有益效果:本发明与现有技术相比,其显著优点是:1、本发明的图像预处理方法可以有效提取感兴趣区域(即静脉特征区域),对样本进行较小尺寸的放缩和裁剪,在保证精度的前提下减小计算量,可以提升处理图片时的速度,提高网络计算效率;2、本发明采用轻量级卷积神经网络实现指静脉的识别,在保证高识别精度的情况下,训练更快,模型的参数大大减小,只有约0.5MB大小,降低资源耗费,可部署到移动端;3、本发明将样本组成三元组triplets的方式,不同的(A,P,N)组合方式大大增加了样本的数量;4、本发明中TripletLoss方式训练网络模型,实现个体级别的细粒度识别;只需要输入样本,不需要输入标签,这样避免标签过多、同标签样本过少的问题;在相似性计算和检索中的效果较好,可以学习到样本与变换样本之间的关联,形成特征空间映射,检索出与当前样本最相似的其他样本;避免数据库动态变化时需要多次训练网络模型,最终有效提升指静脉识别的精度和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所涉及的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1为本发明的识别方法流程图;
图2为本发明引用的轻量级网络优化模块Fire Module示意图;
图3为本发明的三元组triplets选取流程图;
图4为本发明的指静脉特征映射识别结果对比示意图;
图5为本发明所述的识别系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
本发明针对已有的传统手工获取指静脉特征识别算法在实际应用中的不足,以及深度学习背景下样本不足和网络结构复杂的问题,提出一种基于三元组损失和轻量级网络的指静脉识别方法,得以在指静脉识别技术实现过程中,有效避免传统指静脉识别算法对噪声敏感,鲁棒性差的弊端,采用轻量级网络模型优化深度学习算法的性能,并且采用Triplet Loss训练卷积神经网络,有效地增加了样本的数量,使得anchor和positive之间的距离尽量趋近,而anchor和negtive之间的距离尽量远离,尽量将一个类标识的所有平面投影到嵌入空间的一个点上,在不同类别的状态之间强制预留出一个间隙,实现静脉特征到三位空间的映射然后进行识别。
本方法根据特征向量计算图像之间特征相似度,进一步避免数据库动态变化时需要多次训练网络模型的one-shot问题,提升了基于深度学习的指静脉识别算法的性能和效果。
为实现上述目的,本发明专利采用如下技术方案:
参阅图1所示,一种基于三元组损失和轻量级网络的指静脉识别方法,包括以下步骤:
S100采集指静脉样本图像,形成一定数量样本图像的数据库或者从公开数据库中提取样本,对训练集中的样本进行图像预处理,提取样本中的感兴趣区域,压缩图像并调整样本至适合网络的输入尺寸,本实施例中采用160*160,为不同的指静脉创建类别id和相应目录,生成手指静脉的数据库,将样本按照比例进行划分为测试集dataset_test和训练集dataset_train。
图像预处理包括:采用双线性差值将图像实现缩小,加快后期处理速度;计算图像梯度模板,提取roi区域边缘点;根据边缘点找到中心线midline,根据斜率对特征图像进行旋转矫正,然后将特征图像压缩至网络需要的输入尺寸,本实施例中采用160*160。
S110构建小型轻量级CNN模型结构,在保证精度的前提下减少了模型参数,兼顾计算速度,用于后续抽取样本特征并形成较好特征映射。
参阅图2所示,构建小型轻量级CNN模型结构,具体的:使用Fire Module网络模块替换原来的卷积与池化操作,用1x1filters来代替3x3filters,减少3x3filters的输入通道数,从而减少参数;具体而言是由两部分构成:sequeeze以及后面连接的enpand两部分,其中sequeeze部分是卷积核为1*1的卷积层,后面expand部分是由1*1以及3*3的两个卷积层共同构成,推迟下采样,保证网络有大的activation map,在限制的参数数量条件下提高模型精度,使模型减小
S120选择三元组(A,P,N)进行训练,使用Triplet Loss训练网络,根据目标(anchor),和正样本(positive),以及目标和负样本(negative)之间的距离分别得到pos_dist和neg_dist,根据求出的特征信息结合损失函数计算triplet_loss。
参阅图4所示,选择三元组select_triplets,具体包括:
从数据集中抽样一组图片,通过网络模型计算这组图片的embedding并保存于数组emb_array中,遍历batch中第i类样本的每个样本,即id=i,计算其与其他所有图像的欧氏距离distance存入数组neg_dist_sqr,将同类中的样本之间组成(A,P)样本对,计算A,P之间的距离并记作pos_dist_sqr;遍历(A,P)对,并将i类样本图片对应索引位置的neg_dist_sqr值设定为无穷大(NaN),这样设定就不会把positive选作negtive,选出实际训练时更有价值的三元组,然后把所有满足neg_dists_sqr-pos_dist_sqr<alpha(常数)且pos_dist_sqr<neg_dists_sqr条件的样本记录下来,并从中随机选择一个样本与上述已有的(A,P)对结合,即组成三元组(A,P,N)。
其中,batch为使用批处理对样本循环抽样,即设定了几个batch就循环多少次。采用批处理的方式从数据集中抽样图片提取特征,循环遍历每个批次(batch)中第i类样本的中的每个样本(假设每个batch中包含了X类样本,那么i的取值范围即为0至X-1)。
将选出的三元组(A,P,N)送入网络进行向前计算,根据损失函数以及求出的特征计算triplet_loss以及total_loss,然后采用AdaGrad梯度下降算法计算梯度并更新优化模型参数,达到训练网络目的,其中,triplet_loss和total_loss的计算公式为:
triplet_loss=d(A,P)-d(A,N)+alpha,其中,alpha为常量;d(A,P)为A与P之间的距离,d(A,N)为A与N之间的距离。
total_loss=triplet_loss+regulation_losses,其中regulation_losses为正则化损失。
经过上述Triplet Loss训练得到的CNN模型可以使得anchor和positive之间的距离尽量趋近,而anchor和negtive之间的距离尽量远离,尽量将一个类标识的所有平面投影到嵌入空间的一个点上,在不同类别的状态之间强制预留出一个间隙,实现静脉特征到三位空间的映射。
S130在triplet_loss的基础之上加入正则化损失,然后计算得到总损失total_loss,根据损失计算梯度并进行模型参数优化,训练得到所需轻量级网络模型。
S140通过上述已训练好的CNN模型,输入静脉数据计算映射向量embeddings,保存并录入静脉数据库;采集某个人的静脉图像,经过训练好的模型生成该静脉的embedding,然后和数据库中的embeddings计算相似度,最小值和阈值Tn比较,得出最终识别结果。
将训练集dataset_train作为待录入指静脉数据库的人物信息,读取dataset_train内图像并送入已训练好的模型中,生成相应的128维特征向量,并以numpy数组的形式记录,同时的到三个数组embeddings,lables以及label_strings代表已录入的人物信息作为指静脉数据库,其中embeddings数组存储了数据库中所有人的特征信息,lables对应的是特征数组的标签索引,lable_string存储该静脉对应的人物姓名。
通过已训练好的CNN模型,将静脉数据库中的样本输入网络即可计算出各自对应的空间映射向量embedding,将所有embedding保存,记为embeddings,相当于为静脉样本库建立了对应的一个向量库。采集某人的静脉图像,同样地,将其输入训练好的网络模型中可生成该静脉图像对应的embedding数组,然后计算其和向量库embeddings中的各个embedding之间的距离distance,记为distances,从而得到采集的图像与样本库中各个样本之间的相似度,按照算法流程图中的提示完成与数据库中的静脉样本的比对识别,即如果distances中的数值均大于设定的阈值,则认为该人不在该数据库中;反之,则选取符合阈值范围内的距离最小值distance_min,识别为相似度最高的人,读取其对应人物的标签和lable_string的值,输出二者,得出最终识别结果。
实验结果,本方法的识别效果可以参照图4进行说明,如图4所示:
其中,图4a为指静脉数据库一个人的不同采集样本数据处理后样本示例;从北大指静脉数据库DS0中任意选取了4个人的指静脉数据来对比实验的识别结果,具体结果如图4b所示,左右为同一个的手指不同的静脉采集样本的特征映射距离对比,上下为不同人的不同手指静脉之间的特征映射距离对比,很明显,不同的手指静脉之间的映射距离远大于相同手指静脉特征的映射距离差,很容易在相同与不同之间设定一个合理阈值Tn,通过比较得到静脉识别得到结果,针对我们的数据库目前识别率可达99.3%。
参阅图5,基于三元组损失和轻量级网络的指静脉识别方法实现了一种识别系统,所述系统包括:
样本预处理模块,用于对数据库中的指静脉样本图像进行预处理,并划分测试集和训练集;
网络训练模块,用于构建小型轻量级CNN网络模型结构,在训练集中选择三元组(A,P,N)并使用Triplet Loss训练网络进行训练,其中,A表示目标,P为正样本,N为负样本;
损失函数确定模块,用于根据A与P之间的距离、A与N之间的距离以及正则化损失计算损失函数total_loss,采用梯度下降算法计算梯度并更新优化模型参数;
向量库生成模块,用于将所述训练集作为待录入指静脉数据库的人物信息,读取训练集内图像并输入已训练好的CNN模型中,生成相应的特征向量并保存,得到embeddings向量库,所述embeddings向量库存储了数据库中所有样本的特征信息;
结果识别模块,用于将所述测试集中的某个样本图像输入已训练好的所述网络模型中,生成对应的静脉的embedding数组,计算所述embedding数组与embeddings向量库中的各个embedding之间的距离,得到所述样本图像与所述训练集中的样本图像之间的相似度,若相似度大于设定的阈值,则认为该人不在该数据库中;反之,则选取符合阈值范围内的距离最小值,识别为相似度最高的人,得出最终识别结果。
进一步地,包括:
所述样本预处理模块中,对数据库中的指静脉样本图像进行预处理,具体包括:
缩小单元,用于采用双线性差值将样本图像缩小;
roi提取单元,用于计算样本图像梯度模板,提取roi区域边缘点;
矫正压缩单元,用于根据所述边缘点找到中心线,根据斜率对所述样本图像进行旋转矫正,最后将样本图像压缩至网络模型需要的输入尺寸。
进一步地,包括:
所述网络训练模块中,构造三元组(A,P,N)具体包括:
特征向量计算单元,用于从所述训练集中抽样一组图片,通过所述小型轻量级CNN模型计算这组图片的embedding向量并保存于数组emb_array中;
正距离计算单元,用于遍历batch中第i类样本的每个样本,计算其与其他所有样本图像的欧氏距离distance并存入数组neg_dist_sqr,将同类中的样本之间组成(A,P)样本对,计算A,P之间的距离并记作pos_dist_sqr;
batch为使用批处理对样本循环抽样次数,后求特征,设定了几个batch就循环多少次。
设定单元,用于遍历(A,P)对,并将i类样本图片对应索引位置的neg_dist_sqr值设定为无穷大;
三元组生成单元,用于把所有满足neg_dists_sqr-pos_dist_sqr<alpha且pos_dist_sqr<neg_dists_sqr条件的样本记录下来,并从中随机选择一个样本与上述已有的(A,P)对结合,即组成三元组(A,P,N),其中,alpha为预设的常数。
进一步地,包括:
所述损失函数确定模块中,损失函数total_loss表示为:
triplet_loss=d(A,P)-d(A,N)+alpha;
total_loss=triplet_loss+regulation_losses
其中,regulation_losses为正则化损失,d(A,P)为A与P之间的距离,d(A,N)为A与N之间的距离。
进一步地,包括:
所述网络训练模块中,构建小型轻量级CNN网络模型结构,具体包括:
SqueezeNet中的Fire Module网络模块替换原来的卷积与池化操作,Fire Module网络模块是由两部分构成:sequeeze以及后面连接的enpand,其中,sequeeze部分是卷积核为1*1的卷积层,expand部分是由1*1以及3*3的两个卷积层共同构成,并推迟下采样。
以下参照附图详细说明本发明实施。本实施案例在以本技术方法为前提下进行实施,给出了详细的实施方式和操作过程,但本发明的保护范围不仅限于下述的实施例。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于三元组损失和轻量级网络的指静脉识别方法,其特征在于,该方法包括以下步骤:
(1)对数据库中的指静脉样本图像进行预处理,并划分测试集和训练集;
(2)构建小型轻量级CNN网络模型结构,在训练集中选择三元组(A,P,N)并使用TripletLoss训练网络进行训练,其中,A表示目标,P为正样本,N为负样本;
(3)根据A与P之间的距离、A与N之间的距离以及正则化损失计算损失函数total_loss,采用梯度下降算法计算梯度并更新优化模型参数;
(4)将所述训练集作为待录入指静脉数据库的人物信息,读取训练集内图像并输入已训练好的CNN模型中,生成相应的特征向量并保存,得到embeddings向量库,所述embeddings向量库存储了数据库中所有样本的特征信息;
(5)将所述测试集中的某个样本图像输入已训练好的所述网络模型中,生成对应的静脉embedding数组,计算所述embedding数组与embeddings向量库中的各个embedding之间的距离,得到所述样本图像与所述训练集中的样本图像之间的相似度,若相似度大于设定的阈值,则认为该人不在该数据库中;反之,则选取符合阈值范围内的距离最小值,识别为相似度最高的人,得出最终识别结果。
2.根据权利要求1所述的基于三元组损失和轻量级网络的指静脉识别方法,其特征在于,所述步骤(1)中,对数据库中的指静脉样本图像进行预处理,具体包括:
首先,采用双线性差值将样本图像缩小,然后,计算样本图像梯度模板,提取roi区域边缘点,根据所述边缘点找到中心线,根据斜率对所述样本图像进行旋转矫正,最后将样本图像压缩至所述网络模型需要的输入尺寸。
3.根据权利要求1所述的基于三元组损失和轻量级网络的指静脉识别方法,其特征在于,所述步骤(2)中,构造三元组(A,P,N)具体包括:
(21)从所述训练集中抽样一组图片,通过所述小型轻量级CNN模型计算这组图片的embedding向量并保存于数组emb_array中;
(22)遍历设定的批次batch中第i类样本的每个样本,计算其与其他所有样本图像的欧氏距离distance并存入数组neg_dist_sqr,将同类中的样本之间组成(A,P)样本对,计算A,P之间的距离并记作pos_dist_sqr;
(23)遍历所述(A,P)对,并将i类样本图片对应索引位置的neg_dist_sqr值设定为无穷大;
(24)把所有满足neg_dists_sqr-pos_dist_sqr<alpha且pos_dist_sqr<neg_dists_sqr条件的样本记录下来,并从中随机选择一个样本与上述已有的(A,P)对结合,即组成三元组(A,P,N),其中,alpha为预设的常数。
4.根据权利要求3所述的基于三元组损失和轻量级网络的指静脉识别方法,其特征在于,所述步骤(3)中,损失函数total_loss表示为:
triplet_loss=d(A,P)-d(A,N)+alpha;
total_loss=triplet_loss+regulation_losses
其中,regulation_losses为正则化损失,d(A,P)为A与P之间的距离,d(A,N)为A与N之间的距离。
5.根据权利要求1所述的基于三元组损失和轻量级网络的指静脉识别方法,其特征在于,所述步骤(2)中,构建小型轻量级CNN网络模型结构,具体包括:
SqueezeNet中的Fire Module网络模块替换原来的卷积与池化操作,Fire Module网络模块是由两部分构成:sequeeze以及后面连接的enpand,其中,sequeeze部分是卷积核为1*1的卷积层,expand部分是由1*1以及3*3的两个卷积层共同构成,并推迟下采样。
6.一种根据权利要求1-5任一项所述的基于三元组损失和轻量级网络的指静脉识别方法实现的系统,其特征在于,所述系统包括:
样本预处理模块,用于对数据库中的指静脉样本图像进行预处理,并划分测试集和训练集;
网络训练模块,用于构建小型轻量级CNN网络模型结构,在训练集中选择三元组(A,P,N)并使用Triplet Loss训练网络进行训练,其中,A表示目标,P为正样本,N为负样本;
损失函数确定模块,用于根据A与P之间的距离、A与N之间的距离以及正则化损失计算损失函数total_loss,采用梯度下降算法计算梯度并更新优化模型参数;
向量库生成模块,用于将所述训练集作为待录入指静脉数据库的人物信息,读取训练集内图像并输入已训练好的CNN模型中,生成相应的特征向量并保存,得到embeddings向量库,所述embeddings向量库存储了数据库中所有样本的特征信息;
结果识别模块,用于将所述测试集中的某个样本图像输入已训练好的所述网络模型中,生成对应的静脉的embedding数组,计算所述embedding数组与embeddings向量库中的各个embedding之间的距离,得到所述样本图像与所述训练集中的样本图像之间的相似度,若相似度大于设定的阈值,则认为该人不在该数据库中;反之,则选取符合阈值范围内的距离最小值,识别为相似度最高的人,得出最终识别结果。
7.根据权利要求6所述的基于三元组损失和轻量级网络的指静脉识别系统,其特征在于,所述样本预处理模块中,对数据库中的指静脉样本图像进行预处理,具体包括:
缩小单元,用于采用双线性差值将样本图像缩小;
roi提取单元,用于计算样本图像梯度模板,提取roi区域边缘点;
矫正压缩单元,用于根据所述边缘点找到中心线,根据斜率对所述样本图像进行旋转矫正,最后将样本图像压缩至网络模型需要的输入尺寸。
8.根据权利要求6所述的基于三元组损失和轻量级网络的指静脉识别系统,其特征在于,所述网络训练模块中,构造三元组(A,P,N)具体包括:
特征向量计算单元,用于从所述训练集中抽样一组图片,通过所述小型轻量级CNN模型计算这组图片的embedding向量并保存于数组emb_array中;
正距离计算单元,用于遍历设定的批次batch中第i类样本的每个样本,计算其与其他所有样本图像的欧氏距离distance并存入数组neg_dist_sqr,将同类中的样本之间组成(A,P)样本对,计算A,P之间的距离并记作pos_dist_sqr;
设定单元,用于遍历所述(A,P)对,并将i类样本图片对应索引位置的neg_dist_sqr值设定为无穷大;
三元组生成单元,用于把所有满足neg_dists_sqr-pos_dist_sqr<alpha且pos_dist_sqr<neg_dists_sqr条件的样本记录下来,并从中随机选择一个样本与上述已有的(A,P)对结合,即组成三元组(A,P,N),其中,alpha为预设的常数。
9.根据权利要求8所述的基于三元组损失和轻量级网络的指静脉识别系统,其特征在于,所述损失函数确定模块中,损失函数total_loss表示为:
triplet_loss=d(A,P)-d(A,N)+alpha;
total_loss=triplet_loss+regulation_losses
其中,regulation_losses为正则化损失,d(A,P)为A与P之间的距离,d(A,N)为A与N之间的距离。
10.根据权利要求6所述的基于三元组损失和轻量级网络的指静脉识别系统,其特征在于,所述网络训练模块中,构建小型轻量级CNN网络模型结构,具体包括:
SqueezeNet中的Fire Module网络模块替换原来的卷积与池化操作,Fire Module网络模块是由两部分构成:sequeeze以及后面连接的enpand,其中,sequeeze部分是卷积核为1*1的卷积层,expand部分是由1*1以及3*3的两个卷积层共同构成,并推迟下采样。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445146.XA CN110263659B (zh) | 2019-05-27 | 2019-05-27 | 一种基于三元组损失和轻量级网络的指静脉识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445146.XA CN110263659B (zh) | 2019-05-27 | 2019-05-27 | 一种基于三元组损失和轻量级网络的指静脉识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110263659A true CN110263659A (zh) | 2019-09-20 |
CN110263659B CN110263659B (zh) | 2023-09-26 |
Family
ID=67915453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910445146.XA Active CN110263659B (zh) | 2019-05-27 | 2019-05-27 | 一种基于三元组损失和轻量级网络的指静脉识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110263659B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110942001A (zh) * | 2019-11-14 | 2020-03-31 | 五邑大学 | 指静脉数据扩充后再识别的方法、装置、设备和存储介质 |
CN111046738A (zh) * | 2019-11-14 | 2020-04-21 | 五邑大学 | 针对指静脉分割的轻量化u-net的精度提升方法 |
CN111274915A (zh) * | 2020-01-17 | 2020-06-12 | 华南理工大学 | 一种指静脉图像的深度局部聚合描述子提取方法及系统 |
CN111325242A (zh) * | 2020-02-03 | 2020-06-23 | Oppo广东移动通信有限公司 | 一种图像的分类方法、终端及计算机存储介质 |
CN111460915A (zh) * | 2020-03-13 | 2020-07-28 | 华南理工大学 | 一种基于轻量神经网络的指静脉验证方法及系统 |
CN111652285A (zh) * | 2020-05-09 | 2020-09-11 | 济南浪潮高新科技投资发展有限公司 | 一种茶饼类别识别方法、设备及介质 |
CN111667050A (zh) * | 2020-04-21 | 2020-09-15 | 佳都新太科技股份有限公司 | 度量学习方法、装置、设备及存储介质 |
CN112507804A (zh) * | 2020-11-17 | 2021-03-16 | 南京航空航天大学 | 一种基于手部图像的身份识别方法 |
CN112560710A (zh) * | 2020-12-18 | 2021-03-26 | 北京曙光易通技术有限公司 | 一种用于构建指静脉识别系统的方法及指静脉识别系统 |
CN112561866A (zh) * | 2020-12-04 | 2021-03-26 | 重庆忽米网络科技有限公司 | 基于ai与云计算技术的半导体基板光刻胶层缺陷检测系统 |
CN112800852A (zh) * | 2020-12-31 | 2021-05-14 | 公安部第三研究所 | 实现指静脉生物特征测试图片自动生成的方法、系统、装置、处理器及其存储介质 |
CN113269136A (zh) * | 2021-06-17 | 2021-08-17 | 南京信息工程大学 | 一种基于triplet loss的离线签名验证方法 |
CN113435443A (zh) * | 2021-06-28 | 2021-09-24 | 中国兵器装备集团自动化研究所有限公司 | 一种从视频中自动识别地标的方法 |
CN114926445A (zh) * | 2022-05-31 | 2022-08-19 | 哈尔滨工业大学 | 一种基于孪生网络的小样本农作物病害图像识别方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888956A (zh) * | 2017-11-01 | 2018-04-06 | 深圳智英电子有限公司 | 基于北斗卫星定位的指纹识别认证数字机顶盒及控制方法 |
CN107977609A (zh) * | 2017-11-20 | 2018-05-01 | 华南理工大学 | 一种基于cnn的指静脉身份验证方法 |
-
2019
- 2019-05-27 CN CN201910445146.XA patent/CN110263659B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888956A (zh) * | 2017-11-01 | 2018-04-06 | 深圳智英电子有限公司 | 基于北斗卫星定位的指纹识别认证数字机顶盒及控制方法 |
CN107977609A (zh) * | 2017-11-20 | 2018-05-01 | 华南理工大学 | 一种基于cnn的指静脉身份验证方法 |
Non-Patent Citations (1)
Title |
---|
戴庆华等: "基于Siamese卷积神经网络的指静脉识别", 《电子测量技术》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046738B (zh) * | 2019-11-14 | 2023-03-17 | 五邑大学 | 针对指静脉分割的轻量化u-net的精度提升方法 |
CN111046738A (zh) * | 2019-11-14 | 2020-04-21 | 五邑大学 | 针对指静脉分割的轻量化u-net的精度提升方法 |
CN110942001A (zh) * | 2019-11-14 | 2020-03-31 | 五邑大学 | 指静脉数据扩充后再识别的方法、装置、设备和存储介质 |
CN111274915A (zh) * | 2020-01-17 | 2020-06-12 | 华南理工大学 | 一种指静脉图像的深度局部聚合描述子提取方法及系统 |
CN111274915B (zh) * | 2020-01-17 | 2023-04-28 | 华南理工大学 | 一种指静脉图像的深度局部聚合描述子提取方法及系统 |
CN111325242A (zh) * | 2020-02-03 | 2020-06-23 | Oppo广东移动通信有限公司 | 一种图像的分类方法、终端及计算机存储介质 |
CN111460915A (zh) * | 2020-03-13 | 2020-07-28 | 华南理工大学 | 一种基于轻量神经网络的指静脉验证方法及系统 |
CN111460915B (zh) * | 2020-03-13 | 2023-04-18 | 华南理工大学 | 一种基于轻量神经网络的指静脉验证方法及系统 |
CN111667050A (zh) * | 2020-04-21 | 2020-09-15 | 佳都新太科技股份有限公司 | 度量学习方法、装置、设备及存储介质 |
CN111652285A (zh) * | 2020-05-09 | 2020-09-11 | 济南浪潮高新科技投资发展有限公司 | 一种茶饼类别识别方法、设备及介质 |
CN112507804A (zh) * | 2020-11-17 | 2021-03-16 | 南京航空航天大学 | 一种基于手部图像的身份识别方法 |
CN112561866B (zh) * | 2020-12-04 | 2022-03-01 | 重庆忽米网络科技有限公司 | 基于ai与云计算技术的半导体基板光刻胶层缺陷检测系统 |
CN112561866A (zh) * | 2020-12-04 | 2021-03-26 | 重庆忽米网络科技有限公司 | 基于ai与云计算技术的半导体基板光刻胶层缺陷检测系统 |
CN112560710A (zh) * | 2020-12-18 | 2021-03-26 | 北京曙光易通技术有限公司 | 一种用于构建指静脉识别系统的方法及指静脉识别系统 |
CN112560710B (zh) * | 2020-12-18 | 2024-03-01 | 北京曙光易通技术有限公司 | 一种用于构建指静脉识别系统的方法及指静脉识别系统 |
CN112800852A (zh) * | 2020-12-31 | 2021-05-14 | 公安部第三研究所 | 实现指静脉生物特征测试图片自动生成的方法、系统、装置、处理器及其存储介质 |
CN113269136A (zh) * | 2021-06-17 | 2021-08-17 | 南京信息工程大学 | 一种基于triplet loss的离线签名验证方法 |
CN113269136B (zh) * | 2021-06-17 | 2023-11-21 | 南京信息工程大学 | 一种基于triplet loss的离线签名验证方法 |
CN113435443A (zh) * | 2021-06-28 | 2021-09-24 | 中国兵器装备集团自动化研究所有限公司 | 一种从视频中自动识别地标的方法 |
CN114926445A (zh) * | 2022-05-31 | 2022-08-19 | 哈尔滨工业大学 | 一种基于孪生网络的小样本农作物病害图像识别方法及系统 |
CN114926445B (zh) * | 2022-05-31 | 2024-03-26 | 哈尔滨工业大学 | 一种基于孪生网络的小样本农作物病害图像识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110263659B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263659A (zh) | 一种基于三元组损失和轻量级网络的指静脉识别方法及系统 | |
CN111738301B (zh) | 一种基于双通道学习的长尾分布图像数据识别方法 | |
Kadam et al. | Detection and localization of multiple image splicing using MobileNet V1 | |
CN107679082A (zh) | 问答搜索方法、装置以及电子设备 | |
CN106383912A (zh) | 一种图片检索方法和装置 | |
EP3008632A1 (en) | Color sketch image searching | |
CN103617609B (zh) | 基于图论的k-means非线性流形聚类与代表点选取方法 | |
CN113361636B (zh) | 一种图像分类方法、系统、介质及电子设备 | |
CN108805102A (zh) | 一种基于深度学习的视频字幕检测与识别方法及系统 | |
JP7085600B2 (ja) | 画像間の類似度を利用した類似領域強調方法およびシステム | |
CN111753923A (zh) | 基于人脸的智能相册聚类方法、系统、设备及存储介质 | |
CN110866564A (zh) | 多重半监督图像的季节分类方法、系统、电子设备和介质 | |
CN113705276A (zh) | 模型构建方法、模型构建装置、计算机设备及介质 | |
CN115062709A (zh) | 模型优化方法、装置、设备、存储介质及程序产品 | |
CN108090117B (zh) | 一种图像检索方法及装置,电子设备 | |
CN109344309A (zh) | 基于卷积神经网络堆叠泛化的文档图像分类方法和系统 | |
CN113537187A (zh) | 文本识别方法、装置、电子设备及可读存储介质 | |
CN112836611A (zh) | 确定身体部位语义图、模型训练和行人重识别方法及设备 | |
CN116912924A (zh) | 一种目标图像识别方法和装置 | |
CN112132062A (zh) | 一种基于剪枝压缩神经网络的遥感图像分类方法 | |
CN116824246A (zh) | 一种基于注意力机制的昆中细粒度图片分类方法 | |
CN116244464A (zh) | 一种基于多模态数据融合的手绘图像实时检索方法 | |
CN113780241B (zh) | 一种显著物体检测的加速方法与装置 | |
CN112200275B (zh) | 人工神经网络的量化方法及装置 | |
CN116977763A (zh) | 模型训练方法、装置、计算机可读存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |