一种手部感兴趣区域的获取方法及手纹识别方法与流程

文档序号:19787930发布日期:2020-01-24 13:50阅读:628来源:国知局
一种手部感兴趣区域的获取方法及手纹识别方法与流程
本发明涉及生物特征识别
技术领域
,尤其涉及一种手部感兴趣区域的获取方法及手纹识别方法。
背景技术
:生物特征识别是指通过提取人体的生物特征来识别人的身份。生物特征识别方法包括人脸识别、指纹识别、虹膜识别和掌纹识别等。随着大数据和深度学习技术的发展,人脸识别和指纹识别已经在安防领域得到广泛应用,相比之下,掌纹识别还没有得到大规模推广。掌纹识别是通过手掌区域的掌纹特征来进行身份识别,手掌区域通常是指手指根部至手腕部分。在提取掌纹特征的时候,不是使用整个手掌,而是先在手掌区域定义一个感兴趣区域(roi,regionofinterest),然后在roi内进行掌纹特征提取。roi的定义方法决定了roi的稳定性,不稳定的roi会使得同一个手掌两次提取出来的特征不一致,导致掌纹识别不可靠。掌纹识别按照手掌的固定与否可以分为接触式掌纹识别和非接触式掌纹识别。接触式掌纹识别技术可以参考专利“掌纹识别方法和设备”(cn03822593.x),该技术的roi提取方法为:手掌张开放在采集设备上,利用设备外壳的凸起固定手掌的位置和手指的姿态,并采集手掌图像;找出食指和中指所夹角的顶点,找出中指和无名指所夹角的顶点;使用这两个关键点作为基准建立坐标系提取roi。非接触式掌纹识别技术可以参考申请号为201910302774.2的专利“一种掌纹识别方法、装置及终端设备”,该技术的roi提取方法为:从图像中识别出手掌的矩形区域;从手掌区域中识别出食指指根点和小指指根点;使用这两个关键点为基准建立坐标系画出一个矩形;去掉矩形中靠近拇指的一个角;使用剩下的五边形区域作为roi。cn03822593.x和201910302774.2的共同缺点是roi的提取仅仅取决于两个关键点。由于手掌的姿态在每次图像采集的时候都有可能发生变化,因此用于roi的两个关键点并非是稳定的。一旦这两个关键点中的任意一个点发生变化,提取出来的roi都有可能发生移动或旋转,也就是特征提取的区域发生了改变,因此掌纹特征也发生了变化,很可能无法对同一个手掌进行正确识别。cn03822593.x的另一个缺点是手掌必须固定在设备上,并且使用专用设备进行图像采集,无法使用网络摄像头、手机摄像头等其他设备来采集掌纹图像。技术实现要素:本发明为了解决现有的问题,提供一种手部感兴趣区域的获取方法及手纹识别方法。为了解决上述问题,本发明采用的技术方案如下所述:一种手部感兴趣区域的获取方法,其特征在于,包括如下步骤:s1:采集包含完整手部的图像;s2:从所述图像中找到包含完整手部的最小矩形区域,并采用手部检测算法判断所述最小矩形区域内包含的手部是否符合预设要求,若不符合则重新采集至得到符合所述预设要求的包含完整手部的最小矩形区域;s3:在符合所述预设要求的包含完整手部的最小矩形区域中找到第一组关键点,所述第一组关键点包括:手掌根部靠小指端的点、手掌根部靠拇指端的点、食指根部点、中指根部点、无名指根部点、小指根部点、拇指根部点、拇指指间关节点、拇指指尖点、食指近端指间关节点、食指远端指间关节点、食指指尖点、中指近端指间关节点、中指远端指间关节点、中指指尖点、无名指近端指间关节点、无名指远端指间关节点、无名指指尖点、小指近端指间关节点、小指远端指间关节点、小指指尖点;s4:采用深度学习算法建立检测模型对所述第一组关键点进行检测筛选出包含第一组关键点的手部图像;s5:提取手部的感兴趣区域,所述手部的感兴趣区域包括手掌的感兴趣区域和手指的感兴趣区域;所述手掌的感兴趣区域为:手掌根部靠小指端的点、手掌根部靠拇指端的点、食指根部点、中指根部点、无名指根部点、小指根部点的相邻两点以直线连接形成的六边形;所述手指的感兴趣区域为:小指、无名指、中指和食指的近端指间关节点的周围区域和远端指间关节点周围的区域;s6:对所述手掌的感兴趣区域和所述手指的感兴趣区域的大小进行归一化处理。优选地,所述手指的感兴趣区域为小指、无名指、中指和食指的近端指间关节点和远端指间关节点以直线相连,并且分别以近端指间关节点和远端指间关节点作相连直线的垂线并分别与所述小指、无名指、中指和食指的两个边缘相交得到两条线段,分别以两条线段的中点为中心作正方形,且所述正方形的一条边平行于近端指间关节点和远端指间关节点相连的直线。优选地,所述食指根部点、中指根部点、无名指根部点、小指根部点、拇指根部点分别为每个手指指根两侧点连线的中点。优选地,所述手部检测算法是faster-rcnn、ssd或yolo。优选地,步骤s4包括如下步骤:s41:采集大量符合所述预设要求的包含完整手部的图像作为正样本,并在所述图像标注所述第一组关键点,获取所述第一组关键点的位置的真实值记为:s42:使用手部关键点检测算法openpose对所述图像进行关键点检测,可以得到手部关键点检测算法openpose的第二组关键点的坐标,记为:s43:计算所述第一组关键点和所述第二组关键点的对应点的欧氏距离作为该点的检测误差:s44:将所述第一组关键点和所述第二组关键点的检测误差进行加权求和,作为损失函数:s45:锁定已训练好的openpose网络的所有vgg-19层和前5个子网络,使用梯度下降法对最后一个子网络进行训练,最小化所述损失函数;s46:当所述损失函数小于预设阈值后,停止训练,得到可用于检测第一组关键点的检测模型。本发明还提供一种手纹识别方法,包括如下步骤:t1:采用如前任一所述的手部感兴趣区域的获取方法获取手部感兴趣区域;t2:从所述手部感兴趣区域中提取手掌和手指的纹理特征并融合,输出手纹特征向量;t3:将所述手纹特征向量与预先存储的手纹特征向量作对比并计算两者的差异,若差异小于需要训练的参数则匹配成功。优选地,使用卷积神经网络提取手掌和手指的纹理特征。优选地,使用卷积神经网络提取手掌和手指的纹理特征包括如下步骤:p1:将手指的感兴趣区域分别输入到多层卷积网络,其输出经过级联后输入到多层卷积网络,最后输出手指的纹理特征;p2:将手掌的感兴趣区域输入到多层卷积网络,输出手掌的纹理特征;p3:所述手指的纹理特征和所述手掌的纹理特征经过级联后输入到多层卷积网络,其后经过全连接层,输出手纹特征向量。优选地,所述卷积神经网络的训练过程中使用contrastiveloss作为损失函数,训练目标为最小化所述损失函数;设两个不同的手部的图像经所述卷积神经网络输出的手纹特征向量分别为fi、fj,则损失函数可以表达为:其中,θm为需要训练的参数,||fi-fj||2是fi、fj的二范数。本发明再提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。本发明的有益效果为:提供一种手部感兴趣区域的获取方法及手纹识别方法,通过在完整手部图像中确定第一组关键点,并通过手部关键点检测算法确保图像中包含这些关键点,从而通过六个关键点确定了手掌感兴趣区域,结合手指感兴趣区域共同确定稳定的手部感兴趣区域;更进一步的,从手部感兴趣区域提取特征进行手纹识别,因为手纹特征融合了手指特征和手掌特征,提高了识别的可靠度。附图说明图1是本发明实施例中一种手部感兴趣区域的获取方法的示意图。图2是本发明实施例中第二组手部关键点的示意图。图3是本发明实施例中第一组手部关键点的示意图。图4是本发明实施例中手掌感兴趣区域的示意图。图5是本发明实施例中手指感兴趣区域的示意图。图6是本发明实施例中openpose模型重新练的方法示意图。图7是本发明实施例中一种手纹识别方法的示意图。图8是本发明实施例中手纹特征编码器的网络结构示意图。图9是本发明实施例中使用卷积神经网络提取手掌和手指的纹理特征的方法示意图。图10是本发明实施例中一般情况下的roi偏差的示意图。图11是本发明实施例中本发明提取到的标准手掌roi的示意图。图12是本发明实施例中对比文件提取到的标准手掌roi的示意图。图13(a)-图13(f)是本发明实施例中本发明的六个关键点像素偏差后产生的roi示意图。图14(a)-图14(c)是本发明实施例中对比文件中三个关键点像素偏差后产生的roi示意图。具体实施方式为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接既可以是用于固定作用也可以是用于电路连通作用。需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。实施例1如图1所示,本发明提供一种手部感兴趣区域的获取方法,包括如下步骤:s1:采集包含完整手部的图像;使用高清rgb相机采集一张包含完整手部的图像,要求:手部自然张开,手指相互间不能并拢,手掌面朝相机镜头并尽量正对着镜头。图像分辨率建议不低于1280×720。手部在图像中所占面积的大小建议不小于图像的四分之一。s2:从所述图像中找到包含完整手部的最小矩形区域,并采用手部检测算法判断所述最小矩形区域内包含的手部是否符合预设要求,若不符合则重新采集至得到符合所述预设要求的包含完整手部的最小矩形区域;从图像中找到包含完整手部的最小矩形区域,并判断区域中的手部是否符合上一步骤所述的采集要求,只有满足了条件才进行下一步骤。手部检测算法的一种可选方案为faster-rcnn。预先采集大量符合要求的手部图像作为正样本,并且采集大量不符合要求的图像作为负样本,负样本包括但不限于:没有手部的图像、只有部分手部的图像、手掌没有正对镜头的图像、手部没有张开的图像、手部张开但手指并拢的图像。使用这些正样本和负样本对faster-rcnn模型进行训练,得到一个可以检测出符合要求的手部区域的模型。faster-rcnn为现在技术方案,在当前的物体检测算法中准确率和召回率最高的算法之一。其他替代方案有ssd、yolo等。s3:在符合所述预设要求的包含完整手部的最小矩形区域中找到第一组关键点,所述第一组关键点包括:手掌根部靠小指端的点、手掌根部靠拇指端的点、食指根部点、中指根部点、无名指根部点、小指根部点、拇指根部点、拇指指间关节点、拇指指尖点、食指近端指间关节点、食指远端指间关节点、食指指尖点、中指近端指间关节点、中指远端指间关节点、中指指尖点、无名指近端指间关节点、无名指远端指间关节点、无名指指尖点、小指近端指间关节点、小指远端指间关节点、小指指尖点;本发明中关键点的定义参考了手部关键点检测算法openpose。如图2所示,为openpose对手部21个关键点的定义,所有的点都是关节点或者手指尖端。本发明所定义的关键点同为21个,但与openpose略有不同。openpose中的p0、p1、p5、p9、p13、p17分别是腕关节两侧点连线的中点、拇指的腕掌关节点、食指的掌指关节点、中指的掌指关节点、无名指的掌指关节点、小指的掌指关节点。如图3所示,为本发明定义的关键点,其中p0、p1、p5、p9、p13、p17六个点与openpose的定义不同,其余点与openpose的定义相同。具体说明,p0为手掌根部靠小指端的点,p1为手掌根部靠拇指端的点,p5为食指根部点,p9为中指根部点,p13为无名指根部点,p17为小指根部点。为避免歧义,剩下的关键点也逐一说明。p2为拇指根部点,p3为拇指指间关节点,p4为拇指指尖点。p6为食指近端指间关节点,p7为食指远端指间关节点,p8为食指指尖点。中指上的p10、p11、p12,无名指上的p14、p15、p16,小指上的p18、p19、p20,均与食指上的p6、p7、p8的定义一致。食指根部点、中指根部点、无名指根部点、小指根部点、拇指根部点分别为每个手指指根两侧点连线的中点。s4:采用深度学习算法建立检测模型对所述第一组关键点进行检测筛选出包含所有第一组关键点的手部图像;手部关键点检测方法可以分为基于描述子的方法、基于传统机器学习的方法和基于深度学习的方法三大类。其中基于描述子的方法和基于传统机器学习的方法都需要根据先验知识人为定义关键点的特征,再根据特征设计一个描述子或者训练出一个检测器。这两种方法的缺点是过于依赖经验,泛化能力不强。基于深度学习的方法通过卷积神经网络直接从大量的输入图像中学习特征并训练出一个检测模型,中间无需人为的干预。基于深度学习的方法其准确度高、泛化能力强,已经成为主流的手部关键点检测方法。现有技术方案中,openpose是一种基于深度学习的手部关键点检测算法,是目前准确率最高的手部关键点检测算法之一,可以提取图2所示的21个关键点。openpose的训练网络使用vgg-19作为基础架构,用vgg-19的前10层作为全局特征提取网络,后接6个串联的局部特征提取子网络。s5:提取手部的感兴趣区域,所述手部的感兴趣区域包括手掌的感兴趣区域和手指的感兴趣区域;所述手掌的感兴趣区域为:手掌根部靠小指端的点、手掌根部靠拇指端的点、食指根部点、中指根部点、无名指根部点、小指根部点的相邻两点以直线连接形成的六边形;如图4所示,p0、p1、p5、p9、p13、p17六个点,相邻两点以直线连接,形成一个六边形,将此六边形定义为手掌roi。所述手指的感兴趣区域为:小指、无名指、中指和食指的近端指间关节点的周围区域和远端指间关节点周围的区域。s6:对所述手掌的感兴趣区域和所述手指的感兴趣区域的大小进行归一化处理。如图4所示,手掌roi归一化的可选方案为:以线段p1p5为基准,把六边形等比例放大或者缩小使得线段p1p5为某个固定值,并且旋转roi使得射线p1p5竖直朝上。p1p5缩放为一个固定值,此值可以选取为256个像素。如图5所示,手指roi归一化的可选方案为:对于每个手指,旋转图像使得手指指向为正方向,以食指为例,也就是旋转图像使得射线p6p7竖直朝上;对于每个旋转到正方向的roi,将其等比例放大或者缩小为固定大小的正方形。8个正方形缩放至同样大小,边长为p1p5的四分之一。当p1p5为256个像素时,8个正方形的边长均为64个像素。所述手指的感兴趣区域为小指、无名指、中指和食指的近端指间关节点和远端指间关节点以直线相连,并且分别以近端指间关节点和远端指间关节点作相连直线的垂线并分别与所述小指、无名指、中指和食指的两个边缘相交得到两条线段,分别以两条线段的中点为中心作正方形,且所述正方形的一条边平行于近端指间关节点和远端指间关节点相连的直线。如图5所示,以食指为例:两个指间关节点p6、p7以直线相连;过p6作p6p7的垂线,与食指两个边缘相交与a6、b6,线段a6b6的中点为q6;以a6b6为边长、q6为中心作正方形,要求其中一边平行于直线p6p7;将此正方形定义为食指的近端roi。同理,从p7出发作出q7,以q7作为中心,可以作出食指的远端roi。对于中指、无名指、小指,用同样的方法定义出每个手指的两个roi。由于拇指的姿态不稳定,因此不使用拇指的roi。用此方法,每个手部共有8个手指roi。如图6所示,本发明定义了图3所示的21个关键点,并对已训练好的openpose模型的最后一个子网络进行重训练,以适用于检测图3中的关键点。具体的重训练步骤如下:s41:采集大量符合所述预设要求的包含完整手部的图像作为正样本,并在所述图像标注所述第一组关键点,获取所述第一组关键点的位置的真实值记为:s42:使用手部关键点检测算法openpose对所述图像进行关键点检测,可以得到手部关键点检测算法openpose的第二组关键点的坐标,记为:s43:计算所述第一组关键点和所述第二组关键点的对应点的欧氏距离作为该点的检测误差:s44:将所述第一组关键点和所述第二组关键点的检测误差进行加权求和,作为损失函数:s45:锁定已训练好的openpose网络的所有vgg-19层和前5个子网络,使用梯度下降法对最后一个子网络进行训练,最小化所述损失函数;s46:当所述损失函数小于预设阈值后,停止训练,得到可用于检测第一组关键点的检测模型。上述重训练过程使用的正样本均为符合要求的手部图像,训练好的检测模型可以过滤不符合要求的图像,因此无需进行再一次判断。如图7所示,一种手纹识别方法,包括如下步骤:t1:采用如前面所述的手部感兴趣区域的获取方法获取手部感兴趣区域;t2:从所述手部感兴趣区域中提取手掌和手指的纹理特征并融合,输出手纹特征向量;t3:将所述手纹特征向量与预先存储的手纹特征向量作对比并计算两者的差异,若差异小于需要训练的参数则匹配成功。特征提取的可选方案有很多,主要依靠提取手指roi和手掌roi的纹理特征并进行适当的特征融合。其中一种方案为:把手掌roi和手指roi作为输入图像,使用卷积神经网络(cnn,convolutionalneuralnetwork)进行特征提取,在神经网络的最后一层使用全连接层进行特征融合,并输出一个特征向量。所述网络结构称为手纹特征编码器,提取出来的特征称为手纹特征。如图8所示,手纹特征编码器的网络结构示意图。如图9所示,使用卷积神经网络提取手掌和手指的纹理特征包括如下步骤:p1:将手指的感兴趣区域分别输入到多层卷积网络,其输出经过级联后输入到多层卷积网络,最后输出手指的纹理特征;p2:将手掌的感兴趣区域输入到多层卷积网络,输出手掌的纹理特征;p3:所述手指的纹理特征和所述手掌的纹理特征经过级联后输入到多层卷积网络,其后经过全连接层,输出手纹特征向量。具体的,8个手指r0i分别输入到多层卷积网络1-8中,这八个多层卷积网络应该具有同样的结构,其输出经过级联后输入到多层卷积网络9,然后输出手指的纹理特征;手掌roi输入到多层卷积网络10,输出手掌的纹理特征;上述手指的纹理特征和手掌的纹理特征经过级联后输入到多层卷积网络11,其后经过全连接层,输出手纹特征向量。卷积神经网络的训练过程中使用contrastiveloss作为损失函数,训练目标为最小化所述损失函数;设两个不同的手部的图像经所述卷积神经网络输出的手纹特征向量分别为fi、fj,则损失函数可以表达为:其中,θm为需要训练的参数,||fi-fj||2是fi、fj的二范数。使用此损失函数训练可以使得相同手掌的特征差异尽量小、不同手掌的特征差异尽量大。把当前采样的手纹特征向量fsample与数据库中的手纹特征向量ftemplate作比较,计算两者的差异||fsample-ftemplate||2,若差异小于θm,则当前采样的手纹与数据库中的手纹匹配。本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。roi的稳定性依赖于关键点提取的准确性。一个好的关键点提取方法,每个关键点都应该是独立提取的,不相互依赖。对比文件cn104866804a中需要提取三个关键点a、b、c,三个点不互相依赖。本发明中提取的手部21个关键点均为手部关键点检测模型独立提取,不相互依赖,其中p0、p1、p5、p9、p13、p17构成的六边形为手掌roi。由于关键点之间相互独立,因此当某个关键点发生偏差时不会影响其他的关键点。如图10所示,是一般情况下的roi偏差,虚线框为原roi,实线框为关键点发生偏差后形成的当前roi。两个roi交叠形成三个区域:1为重叠区域、2为属于当前roi但不属于原roi的区域、3为属于原roi但不属于当前roi的区域。其中,1区域为正确部分,2区域和3区域均为错误部分应该计算到偏差率中。设原roi面积为as,当前roi面积为at,两个roi的重叠区域面积为ao,则当前roi相比原roi所产生的偏差率可以定义为按照上述roi偏差率的定义,下面对比本发明的手掌roi与对比文件cn104866804a中的手掌roi的稳定性。对比实验中使用同一张含有整个手部的图像,图像大小为632×800。如图11所示,为在所述图像中使用本发明提取到的标准手掌roi,如图12为在所述图像中使用对比文件cn104866804a的方法提取到的标准手掌roi。现假设两种方法所依赖的关键点各自独立地在原位置上随机偏差了10个像素,产生了对应的roi。如图13(a)-图13(e)虚线框为本发明的原roi,实线框为本发明中p0、p1、p5、p9、p13、p17六个关键点各自独立发生10个像素偏差后产生的当前roi,对应的roi偏差率在表1中列出。图14(a)-图14(c)虚线框为对比文件cn104866804a的原roi,实线框为对比文件cn104866804a中a、b、c三个关键点各自独立发生10个像素偏差后产生的当前roi,对应的roi偏差率在表2中列出。表1本发明的方法对应的roi偏差率原roi面积当前roi面积重叠面积偏差率p0点错位10270998303983034.3%p1点错位1027091071131027094.3%p5点错位1027091054611027092.7%p9点错位1027091008121008121.8%p13点错位1027091041991027091.5%p17点错位10270999963999632.7%表2现有技术的方法对应的roi偏差率原roi面积当前roi面积重叠面积偏差率a点错位30976309762717824.5%b点错位30976309762412844.2%c点错位30976309762619430.9%由于表1和表2的数据可以得出,使用本发明的手掌roi提取方法比对比文件cn104866804a中的roi提取方法的偏差率更低,roi更为稳定。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1