掌纹识别的过程和景象匹配技术有一些相似点:它们都可以看做是将预先获取的模板图像与不同光照条件、不同位置传感器或是不同类型传感器获得的样本图像进行匹配的过程。掌纹识别与景象匹配技术也有一些区别:掌纹识别的模板图一般为实时图的一个子图像,而景象匹配的实时图一般为模板图的一个子图像;掌纹识别只需要判别模板图和样本图是否属于同一个人,而景象匹配技术要求更为严格,它需要准确得到实时样本图在模板图中的位置,而且获得实时图和模板图的传感器往往是不同的,未知和不稳定因素也更多些,图像分辨率大多数情况下也是不同的,因此相较于掌纹识别技术,景象匹配技术要求更高、更复杂,难度更大,匹配时间一般也要更长。
在注册阶段,为了提取用户掌纹模板图像中的较好图像区域,依然需要ROI提取操作。我们希望模板图像要体现用户的独特性,具有较多的类间差异和较小的类内差异。在注册阶段的实际操作,我们一般采用较为成熟稳定的ROI提取方法,从训练样本中提取出包含较多主线特征等纹理信息的感兴趣区域,并将其存储为模板图像。在识别阶段,则不需要对实时掌纹图像进行ROI提取操作,直接利用景象匹配技术将模板图像与实时掌纹样本进行匹配判别。如果样本和模板图像来自同一个人,模板图像在样本图像上的准确位置都能够确定出来。将景象匹配技术应用到掌纹识别中后,识别阶段将不再需要ROI提取操作,复杂度和耗费时间都会降低。
3.2.2.1 SIFT在掌纹识别中的具体应用
目前有直接将SIFT特征技术应用于掌纹ROI图像的匹配判别,也有将SIFT技术和2D SAX(symbolic aggregate approximation)技术融合后应用于掌纹识别。然而,他们的工作都是应用SIFT特征于掌纹ROI图像,通过对模板ROI和样本ROI进行SIFT特征点匹配来获得相似性度量。
在本节方法中的识别阶段,我们直接应用SIFT技术到模板图像和实时样本图像中,避开了ROI提取环节,另外,还对SIFT特征点进行了约束,只有当特征点与其最近邻的距离远远大于它与次近邻的距离时,才认为该特征点是有效的。
本节方法的模板注册阶段有些不同,模板图像的截取不是通过传统的基于矩形区域或者最大内切圆的方法,而是从训练样本中的手掌区域中选取包含最多有效特征点的图像区域作为模板图像。一般而言,用户在注册阶段比较友好和耐心,且往往有工作人员进行指导,所得到的训练掌纹样本一般质量较好,可以通过手掌边缘和手指角点很容易得到有效手掌区域。在有效手掌区域中,可以得到若干个子图像,通过3.3.1.1节所述SIFT技术提取出各个子图像的有效特征点信息,并选取包含最多有效特征点的子图像为模板图像。可以看出,这种提取模板图像的过程较为复杂且非常耗时,不过在实际操作中,由于注册阶段用户一般很有耐心,时间多一些影响不大,这种方法可以被接受。
在识别阶段,相应得到模板图和实时图的SIFT特征点信息。假设I和T表示实时图像和模板图像,它们的有效SIFT点序列表示为:
它们的匹配分数可以表示为:
3.2.2.2 Fractal code在掌纹识别中的具体应用
在本节中,将研究将fractal code方法应用于匹配实时图和模板图。考虑到掌纹识别的特定需求,我们采用了R块的概念对模板图和实时图进行编码。
假设模板图为m×n而实时图为M×N,将模板图平均分为NumW×NumH个R块,R块大小为k×k:(www.xing528.com)
边缘R块的fractal code没有定义,内部R块的fractal code通过下面两个公式来计算出。模板图像的fractal code可以定义为fr(i,j),i=1,2…NumW-2,j=1,2…NumH-2。根据景象匹配技术,模板图像假定位于实时图某个位置的一部分。对于每个可能的位置(lx,ly),从实时图中截取出一个固定大小的m×n子图像,它的fractal code可以表示为FR(lx+i,ly+j)。FR(lx+i,ly+j)和fr(i,j)之间的匹配分数Score(lx,ly)定义为它们之间匹配上(即具有相同fractal code)的R块数量和:
模板图和实时图之间的相似性度量可以表示为在实时图所有可能位置(lx,ly)中搜索出Score(lx,ly)最大值,并通过它来判定模板图和实时图是否来自同一个人。
直接在实时图中的所有可能位置进行搜索匹配会非常耗时且效率低下,所有可能的位置数量为(M-m)×(N-n),计算量非常大。一个常用的加快搜索策略是由粗到精的金字塔分层搜索方法,它可以减少不必要的搜索位置和计算量。将原始模板图与实时图称为金字塔结构的零级(底层),第1级影像是通过对零级影像进行低通滤波并降低一级分辨率而得到的,第2级影像则是通过对第1级影像进行同样的处理得到的,如此逐层递推,从而构成了影像金字塔,如图3.10所示。实际中常常简单使用2×2邻域平均模板对图像进行低通滤波实现降低一级分辨率。
图3.10 金字塔分层搜索示意图
首先从影像金字塔的最高级(顶层)开始图像匹配,由于顶层影像图像尺寸小,包含信息少,图像匹配速度非常快;通过图像缩放的知识,用上层的匹配结果可以确定下一层匹配的近似范围,可以提高下一层图像匹配的速度,依此类推,直到匹配到达0级(底层)就实现了模板图在实时图中的准确定位。
金字塔分层搜索也存在一些问题:金字塔层数的确定非常关键,层数过多或者过少会影响图像匹配的速度和精度,需要根据图像大小、纹理结构等实际因素综合选取。由于分辨率增加导致误差放大,上层的匹配误差会导致下层更大、更多的匹配错误,所以上层匹配的可靠程度需要加强和保证。层数过多一方面会降低匹配精度,另一方面误差放大有时候很难控制,综合考虑一些实用性因素,在我们的实验中,取3层金字塔结构,每层通过2倍的简单下采样得到下一层的图像数据。
另外,为了提高算法的实时性,还采用了像素点跳跃加速的匹配算法。对匹配函数Score(l,ly)进行数学分析:纵向像素点跳跃加速,固定lx,分析Score(lx,ly)、Score(lx,ly-2)和Score(lx,ly-1)之间的关系,可以发现Score(lx,ly)的最大值不可能处在该函数斜率为0或者负数的附近,即在这些位置可以考虑进行像素点跳跃加速,可以大幅度加大搜索的步长,而在该函数的斜率为正值的情况下必须使用较小的步长进行遍历搜索;横向像素点跳跃加速,固定ly,分析Score(lx,ly)、Score( lx-2,l y)和Score(lx-1,ly-1)之间的关系,具有和纵向像素点跳跃加速类似的规律。
综合考虑匹配精度和匹配速度,跳跃加速幅度一般取实时图尺寸的1/4左右,跳跃像素点幅度一般取大于10,以达到像素点跳跃加速的效果。在我们的实验中,跳跃像素点幅度取为:
Njump=min(m/k,m/k)/4
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。