发明内容
基于上述背景,本发明提供一种基于嵌入式设备的掌脉识别系统及方法,解决掌脉识别技术在商业应用场景的中面对大流量、大并发量下的识别速度慢和不够稳定可靠的问题。
为实现上述目的,本发明提供的一种基于嵌入式设备的掌脉识别系统,具体包括掌脉识别终端和服务器端:
所述的掌脉识别终端包括嵌入式处理模块、掌脉图像获取模组、人机交互模组和接口模块,嵌入式处理模块由海思HI3519RFCV101处理芯片、ROM、RAM和各路输入/输出接口印制在一块电路板构成,掌脉图像获取模组包括近红外光源模块和高速掌脉摄像头模块,人机交互模组包括触控交互显示屏和音频输出模块,接口模块包括电源输入接口、网络及服务器连接接口;
所述的服务器端通过服务器连接接口与掌脉识别终端进行连接和数据通信,掌脉识别用户数据库存储在服务器端,掌脉识别终端生成的每一级类特征向量均与服务器端数据库进行比对,当第三级类特征向量的比对分数大于一定阈值,经排序,最大分数的掌脉图像ID将作为最终认证成功的目标ID。
一种基于嵌入式设备的掌脉识别方法,具体包括如下的实施步骤:
步骤1:通过掌脉图像获取模组拍摄采集掌脉图像;
步骤2:对掌脉图像预处理,去除图像噪声,增强掌脉脉络微特征;
步骤3:手掌关键点定位,再将掌脉图像ROI区域进行定位和截取;
具体的,所述的ROI区域进行定位和截取,是通过定位手掌关键点,再进行ROI区域的定位和截取,手掌中心矩形区域表示为R0,大拇指矩形区域表示为R1,食指矩形区域表示为R2,中指矩形区域表示为R3、无名指矩形区域表示为R4,小拇指矩形区域表示为R5;
步骤4:将截取得到的ROI区域进行分块处理,划分小方块,作为三级级联CNN模型的输入;
进一步地,所述的ROI区域进行分块处理,即将ROI区域划分为n×m个小方块,即每行有n个小方块,每列有m个小方块,将掌脉图像的所有小方块进行编号,设定编号为1~M,通常M大于20,并采用级联的方式来扩展小方块的掌脉脉络纹理分类;
步骤5:采用三级级联分类,第一级CNN模型对小方块进行特征提取,得到类特征向量X,计算X与数据库中每一个掌脉图像的第一级类特征向量的比对分数Score1,当Score1大于阈值Th1,则第一级比对成功的掌脉图像的ID集合记为Set1;
进一步地,所述的采用三级级联分类具体为:
1)第一级将小方块图像分成N1类,通常N1取值比较小,对所有小方块提取类别值之后,就得到了第一级类特征向量(X1,X2,...,XM),其中1≤Xi≤N1;
2)将这N1个类别中的每一个类再细分成N2个子类,设将类别Xi继续细分成Xi1,Xi2,...,XiN2个子类别,根据第一级类特征向量,在对应位置提取该小方块的第二级类别,得到第二级类特征向量(Y1,Y2,...,YM),其中Xi1≤Yi≤XiN2;
3)将第二级中的每个子类继续细分为N3个类,设将类别Yi继续细分成Yi1,Yi2,...,YiN3个子类别,根据第二级类特征向量,在对应位置提取该小方块的第三级类别,得到第三级类特征向量(Z1,Z2,...,ZM),其中Yi1≤Zi≤YiN3;
4)通过级联的方式将小方块掌脉图像分类数目扩展到N1×N2×N3,但同时也增加了需要训练的CNN模型的数目,按照三级级联的方式需要训练1+N1+N1×N2个不同的CNN模型,所以选取N1≤N2≤N3,减少CNN模型的数量,同时降低拒真;
进一步地,所述的CNN模型包括CNN特征提取网络及判别网络,其中CNN特征提取网络包含4个CRP运算包,CRP运算包由卷积层Conv、激活函数Relu和池化层Pool(max)组成,判别网络包括3个全卷积层FC和1个Softmax函数层;
步骤6:第二级CNN模型对小方块进行特征提取,得到类特征向量Y,计算Y与Set1中每一个掌脉的第二级类特征向量的比对分数Score2,当Score2大于阈值Th2,则第二级比对成功的掌脉图像的ID集合记为Set2;
步骤7:第三级CNN模型对小方块进行特征提取,得到类特征向量Z,计算Z与Set2中每一个掌脉的第三级类特征向量的比对分数Score3,当Score3大于阈值Th3,则第三级比对成功的掌脉图像的ID集合记为Set3;
具体的,步骤5~7所述的比对分数Score,其比对算法采用汉明距离,设A=(A1,A2,...,AM)和B=(B1,B2,...,BM)是两个类别特征向量,定义两个特征向量比对分数如下:
其中,如果A
i与B
i取值相等,则
等于1;否则
等于0。
步骤8:将掌脉图像的ID集合Set3按比对分数进行排序,选取分数最大的掌脉图像ID作为最终匹配成功的目标ID。
本发明提供的技术方案,能够在大流量、大并发量的应用场景下,实现海量掌脉数据的快速搜索、比对识别,克服传统掌脉识别在大数据量下识别速度慢的问题,突破掌脉识别技术的发展瓶颈。
具体实施方式
为了使本发明的目的及技术方案更加清晰,以下结合附图,对本发明作进一步清楚、完整地描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明的技术方案,本领域技术人员在没有作出创造性劳动前提下所获得的其他实施例,应属于本发明的保护范围。
一种基于嵌入式设备的掌脉识别系统,具体包括掌脉识别终端和服务器端:
所述的掌脉识别终端包括嵌入式处理模块、掌脉图像获取模组、人机交互模组和接口模块,嵌入式处理模块由海思HI3519RFCV101处理芯片、ROM、RAM和各路输入/输出接口印制在一块电路板构成,掌脉图像获取模组包括近红外光源模块和高速掌脉摄像头模块,人机交互模组包括触控交互显示屏和音频输出模块,接口模块包括电源输入接口、网络及服务器连接接口;
所述的服务器端通过服务器连接接口与掌脉识别终端进行连接和数据通信,掌脉识别用户数据库存储在服务器端,掌脉识别终端生成的每一级类特征向量均与服务器端数据库进行比对,当第三级类特征向量的比对分数大于一定阈值,经排序,最大分数的掌脉图像ID将作为最终认证成功的目标ID。
参照图1所示,一种基于嵌入式设备的掌脉识别系统,具体包括如下的实施步骤:
步骤1:通过掌脉图像获取模组拍摄采集掌脉图像。
步骤2:对掌脉图像预处理,去除图像噪声,增强掌脉脉络微特征。
步骤3:手掌关键点定位,再将掌脉图像ROI区域进行定位和截取。
具体的,所述的手掌关键点定位,在公开号CN108537203A中提供了一种基于卷积神经网络的手掌关键点定位方法,采用卷积神经网络的方法定位四个手指的关键点和手指间隙点,在本发明技术方案中作进一步拓展,将大拇指的手指关键点定位纳入检测范围,参照图2所示为手掌关键点定位网络示意图,图3所示为手掌关键点定位及标记示意图,通过五个手指的关键点和手指根部的四个间隙点的定位,可以进行掌脉图像ROI区域的定位和截取;
进一步地,所述的ROI区域进行定位和截取,是通过定位手掌关键点,再进行ROI区域的定位和截取,参照图4所示为掌脉图像ROI区域定位截取示意图,手掌中心矩形区域表示为R0,大拇指矩形区域表示为R1,食指矩形区域表示为R2,中指矩形区域表示为R3、无名指矩形区域表示为R4,小拇指矩形区域表示为R5。
步骤4:将截取得到的ROI区域进行分块处理,划分小方块,作为三级级联CNN模型的输入。
具体的,所述的ROI区域进行分块处理,即将ROI区域划分为n×m个小方块,即每行有n个小方块,每列有m个小方块,将掌脉图像的所有小方块进行编号,设定编号为1~M,通常M大于20,并采用级联的方式来扩展小方块的掌脉脉络纹理分类。
步骤5:采用三级级联分类,第一级CNN模型对小方块进行特征提取,得到类特征向量X,计算X与数据库中每一个掌脉图像的第一级类特征向量的比对分数Score1,当Score1大于阈值Th1,则第一级比对成功的掌脉图像的ID集合记为Set1。
具体的,海思HI3519的CNN模型有一些限制条件,根据HI3519官方文档列举如下表:
表1:CNN模型中单层Conv-ReLU-Pooling运算包参数配置表
表2:CNN模型中全连接运算包参数配置表
海思HI3519的CNN模型分类的类别数目与全连接最后一层的输出一致,因此如果采用CNN模型的分类结果,每个小方块的类别最多只有256类。但是人的掌脉纹理特征是千差万别的,即使一个小方块的纹理分类也远不止256类,因此采用三级级联分类的方式来扩展小方块的掌脉纹理分类。
进一步地,所述的采用三级级联分类具体为:
1)第一级将小方块图像分成N1类,通常N1取值比较小,对所有小方块提取类别值之后,就得到了第一级类特征向量(X1,X2,...,XM),其中1≤X1≤N1;
2)将这N1个类别中的每一个类再细分成N2个子类,设将类别Xi继续细分成Xi1,Xi2,...,XiN2个子类别,根据第一级类特征向量,在对应位置提取该小方块的第二级类别,得到第二级类特征向量(Y1,Y2,...,YM),其中Xi1≤Yi≤XiN2;
3)将第二级中的每个子类继续细分为N3个类,设将类别Yi继续细分成Yi1,Yi2,...,YiN3个子类别,根据第二级类特征向量,在对应位置提取该小方块的第三级类别,得到第三级类特征向量(Z1,Z2,...,ZM),其中Yi1≤Zi≤YiN3;
4)通过级联的方式将小方块掌脉图像分类数目扩展到N1×N2×N3,但同时也增加了需要训练的CNN模型的数目,按照三级级联的方式需要训练1+N1+N1×N2个不同的CNN模型,所以选取N1≤N2≤N3,减少CNN模型的数量,同时降低拒真;
进一步地,参照图6所示,所述的CNN模型包括CNN特征提取网络及判别网络,其中CNN特征提取网络包含4个CRP运算包;参照图7所示,CRP运算包由卷积层Conv、激活函数Relu和池化层Pool(max)组成;判别网络包括3个全卷积层FC和1个Softmax函数层。
步骤6:第二级CNN模型对小方块进行特征提取,得到类特征向量Y,计算Y与Set1中每一个掌脉的第二级类特征向量的比对分数Score2,当Score2大于阈值Th2,则第二级比对成功的掌脉图像的ID集合记为Set2。
步骤7:第三级CNN模型对小方块进行特征提取,得到类特征向量Z,计算Z与Set2中每一个掌脉的第三级类特征向量的比对分数Score3,当Score3大于阈值Th3,则第三级比对成功的掌脉图像的ID集合记为Set3。
具体的,步骤5~7所述的比对分数Score,其比对算法采用汉明距离,设A=(A1,A2,...,AM)和B=(B1,B2,...,BM)是两个类别特征向量,定义两个特征向量比对分数如下:
其中,如果A
i与B
i取值相等,则
等于1;否则
等于0。
更具体的,将所有小方块进行编号,设定编号为1~M,比对算法如下:
S1、将所有小方块输入到第一级CNN模型中,得到所有小方块的第一级类别,同时得到第一级类特征向量(X1,X2,...,XM)。
S2、将第一级类特征向量(X1,X2,...,XM)与数据库中每个掌脉图像的第一级类特征向量进行比对,计算其比对分数Score1;
S3、设定第一级比对的阈值为Th1,如果Score1>Th1,则进入第二级比对,否则比对失败至结束;第一级比对成功的掌脉图像集合远低于数据库保存的掌脉数量,将第一级比对成功的掌脉图像的ID集合记为Set1;
S4、将每个小方块输入到与第一级类别相对应的第二级CNN模型中,提取每个小方块掌脉图像的二级类别,得到第二级类特征向量(Y1,Y2,...,YM),将当前图像的第二级类特征向量与Set1集合中每个掌脉图像的第二级类特征向量进行比对,计算其比对分数Score2;
S5、设定第二级比对的阈值为Th2,如果Score2>Th2,则进入第三级比对,否则比对失败至结束;第二级比对成功的掌脉图像的ID集合记做Set2;
S6、将每个小方块输入到与第二级类别相对应的第三级CNN模型中,提取每个小方块掌脉图像的三级类别,得到第三级类特征向量(Z1,Z2,...,ZM),将当前图像的第三级类特征向量与Set2集合中每个掌脉图像的第三级类特征向量进行比对,计算比对分数Score3;
S7、设定第三级比对的阈值为Th3,如果Score3>Th3,则将该掌脉图像作为最终匹配成功的候选者;否则丢弃;再将第三级比对成功的掌脉图像的ID集合记为Set3。
步骤8:将掌脉图像的ID集合Set3按比对分数进行排序,选取分数最大的掌脉图像ID作为最终匹配成功的目标ID。
因此,最终由比对分数最大的掌脉图像ID为最终匹配的目标,所对应的用户ID为最终比对识别的结果。本发明提供的技术方案,基于海思HI3519的嵌入式设备,应用于掌脉识别上,能够广泛地在大规模、大流量和高频次的商业应用场景下实现掌脉识别的快速比对,解决了传统掌脉识别因速度慢、识别精度不够而不能进行大规模大流量应用的技术难题。
以上所述对于本领域的技术人员来说能够实现,在不脱离本发明技术方案构思的前提下,所作的修改、等同替换,都理应视为属于本发明的保护范围。