匹配算法
image.png

点模式匹配文章

https://www.docin.com/p-761982246.html
https://www.docin.com/p-758965084.html?docfrom=rrela

https://www.docin.com/p-397106701.html?docfrom=rrela

点模式匹配算法介绍

https://kns.cnki.net/KXReader/Detail?invoice=uAv8KebmSZE9Cd8hNKRrmV1Btd8AV2xVYDOBD2EOT8oI0avM7LjRibXNOBuyiT4DorYPVk2B6eKS5SDyu%2F7Q2516staXqKfNsK9HhnENsgWWzefoVUVa5WWnBNaAZPKq7tKisfABRR1XxvWsUtL96lO7WxMsd%2BHVHVzuJ41sITk%3D&DBCODE=CJFD&FileName=DLXZ201803016&TABLEName=cjfdlast2018&nonce=2EB3FC3C90F34403A05C051BE3D119C4&uid=&TIMESTAMP=1649936127899&PlatForm=kdoc

点模式匹配算法可分为2个步骤, 步骤内容可分述如下:
(1) 初匹配[8]:通过运算识别图像与未知图像之间的匹配基准点。
(2) 二次匹配:优先寻找基准点, 对坐标给出校正, 再对校正后2幅图的匹配点对数进行计算。
假设有一枚未知指纹A和已知指纹B, 指纹A中包含M个特征点, 指纹B中包含N个特征点。研究可得, 数学形式表述如下:

将纹线组成的指纹图像A与B, 转化得出M维和N维的向量组成形式, 从而将这2个向量展开逐项比对, 得到一个M×N的匹配矩阵ScoreM×N。这一过程的数学形式可表示如下:

综合上述的初次匹配设计后, 就可以初步判定出匹配指纹。通过初次匹配可以得到最佳参考点, 利用最佳参考点则可降低匹配分数, 删除差异明显指纹, 提高匹配效率。至此, 可得数学公式如下:

坐标转换后, 可以在极坐标系统中得到2个新的极坐标点集A'= (A'1, A'2, …, A'M) 与B'= (B'1, B'2, …, B'N) , 再利用限界盒将A'与B'实现一一匹配。

3.1 指纹图

指纹是由皮肤表面凸起的纹线构成。指纹由人类遗传基因与环境作用而产生, 人人皆有指纹却各不相同。指纹重复率极低, 重复率大约为150亿分之一, 因而可将其称之为人体身份证。这里, 即给出了典型人体指纹视像及采集效果可分别如图1、图2所示。

图1 指纹图Fig.1 Fingerprints 下载原图

图2 采集图Fig.2 Collection diagram 下载原图

3.2 点模式匹配算法

点模式匹配算法可分为2个步骤, 步骤内容可分述如下:
(1) 初匹配[8]:通过运算识别图像与未知图像之间的匹配基准点。
(2) 二次匹配:优先寻找基准点, 对坐标给出校正, 再对校正后2幅图的匹配点对数进行计算。
假设有一枚未知指纹A和已知指纹B, 指纹A中包含M个特征点, 指纹B中包含N个特征点。研究可得, 数学形式表述如下:

将纹线组成的指纹图像A与B, 转化得出M维和N维的向量组成形式, 从而将这2个向量展开逐项比对, 得到一个M×N的匹配矩阵ScoreM×N。这一过程的数学形式可表示如下:

综合上述的初次匹配设计后, 就可以初步判定出匹配指纹。通过初次匹配可以得到最佳参考点, 利用最佳参考点则可降低匹配分数, 删除差异明显指纹, 提高匹配效率。至此, 可得数学公式如下:

坐标转换后, 可以在极坐标系统中得到2个新的极坐标点集A'= (A'1, A'2, …, A'M) 与B'= (B'1, B'2, …, B'N) , 再利用限界盒将A'与B'实现一一匹配。

3.3 限界盒算法[9]

限界盒算法用来解决非线性形变。限界盒算法是通过将特征点上的某一固定范围限定为一个盒子, 落在限定方位内的比对点可以判定为匹配。得到中心点5个相邻特征点的匹配数, 即称作匹配分数, 进而由极角与极径组成限界盒子。限界盒的定义可如图3所示。

图3 限界盒定义图Fig.3 Limit box definition diagram 下载原图

matlab代码:

指纹匹配算法matlab,指纹识别算法matlab程序
https://blog.csdn.net/weixin_42353402/article/details/115831138

指纹识别源代码(2)-特征点提取

博客:https://www.yuque.com/u22061728/zapph7/ve2w3o#udm0b
代码:https://github.com/xingbod/FingerRecognitionFromScratch

特征点匹配方法

特征点
为此,计算机视觉的研究者们设计了许多更为稳定的的特征点,这些特征点不会随着相机的移动,旋转或者光照的变化而变化。例如:SIFT,SURF,ORB等一个图像的特征点由两部分构成:关键点(Keypoint)和描述子(Descriptor)关键点指的是该特征点在图像中的位置,有些还具有方向、尺度信息;通常是一个向量,按照人为的设计的方式,描述关键点周围像素的信息。通常描述子是按照外观相似的特征应该有相似的描述子设计的。

进行特征点匹配的步骤:

  • 提取图像中的关键点,这部分是查找图像中具有某些特征(不同的算法有不同的)的像素
  • 根据得到的关键点位置,计算特征点的描述子
  • 根据特征点的描述子,进行匹配

(一)特征描述子
仅仅利用关键点的信息(位置信息(有可能包含尺度和方向信息))无法很好的进行特征点的匹配,所以就需要更详细的信息,将特征区分开来,这就是特征描述子
另外,通过特征描述子可以消除视角的变化带来图像的尺度和方向的变化,能够更好的在图像间匹配。

为了能够更好的匹配,一个好的描述子通常要具有以下特性:

  • 不变性 指特征不会随着图像的放大缩小旋转而改变。(尺度不变性和旋转不变性)
  • 鲁棒性 对噪声、光照或者其他一些小的形变不敏感
  • 可区分性 每一个特征描述子都是独特的,具有排他性,尽可能减少彼此间的相似性。

  • 其中描述子的可区分性和其不变性是矛盾的,一个具有众多不变性的特征描述子,其区分局部图像内容的能力就比较稍弱;而如果一个很容易区分不同局部图像内容的特征描述子,其鲁棒性往往比较低。所以,在设计特征描述子的时候,就需要综合考虑这三个特性,找到三者之间的平衡。

image.png
从上表可以看出,SIFT,SURF和BRIEF描述子都是一个向量,只是维度不同。其中,SIFT和SURF在构建特征描述子的时候,保存了特征的方向和尺度特征,这样其特征描述子就具有尺度和旋转不变性;而BRIEF描述子并没有尺度和方向特征,不具备尺度和旋转不变性。
(二)常用特征点算法
SIFT,SURF,FAST,BRIEF,ORB
具体请见:SLAM入门之视觉里程计(1):特征点的匹配 - Brook_icv - 博客园

(三)特征点匹配

1)特征点相似度:
特征的匹配是针对特征描述子的进行的
上面提到特征描述子通常是一个向量,两个特征描述子的之间的距离可以反应出其相似的程度,也就是这两个特征点是不是同一个。
根据描述子的不同,可以选择不同的距离度量。如果是浮点类型的描述子,可以使用其欧式距离;对于二进制的描述子(BRIEF)可以使用其汉明距离(两个不同二进制之间的汉明距离指的是两个二进制串不同位的个数)。
2)特征点匹配
有了计算描述子相似度的方法,那么在特征点的集合中如何寻找和其最相似的特征点,这就是特征点的匹配了。
暴力匹配方法(Brute-Froce Matcher):计算某一个特征点描述子与其他所有特征点描述子之间的距离,然后将得到的距离进行排序,取距离最近的一个作为匹配点。
过滤错误匹配方法:
汉明距离小于最小距离的两倍选择已经匹配的点对的汉明距离小于最小距离的两倍作为判断依据,如果小于该值则认为是一个错误的匹配,过滤掉;大于该值则认为是一个正确的匹配。
交叉匹配:交叉过滤的是想很简单,再进行一次匹配,反过来使用被匹配到的点进行匹配,如果匹配到的仍然是第一次匹配的点的话,就认为这是一个正确的匹配。举例来说就是,假如第一次特征点A使用暴力匹配的方法,匹配到的特征点是特征点B;反过来,使用特征点B进行匹配,如果匹配到的仍然是特征点A,则就认为这是一个正确的匹配,否则就是一个错误的匹配。
KNN匹配:K近邻匹配,在匹配的时候选择K个和特征点最相似的点,如果这K个点之间的区别足够大,则选择最相似的那个点作为匹配点,通常选择K = 2,也就是最近邻匹配。对每个匹配返回两个最近邻的匹配,如果第一匹配和第二匹配距离比率足够大(向量距离足够远),则认为这是一个正确的匹配,比率的阈值通常在2左右。
RANSAC(随机采样一致性):该方法利用匹配点计算两个图像之间单应矩阵,然后利用重投影误差来判定某一个匹配是不是正确的匹配。


写论文用到:

1.开头

指纹识别背景
https://blog.csdn.net/cpongo1/article/details/89542550

点模式匹配介绍:
https://www.fx361.com/page/2018/0111/2680790.shtml


指纹识别技术作为生物识别技术中最为具有应用前景的技术之一,近年来取得了长足的发展,并广泛应用于各种场合。由于指纹所具有的唯一性和不变性,以及指纹识别技术具有很高的可行性和实用性,指纹识别成为目前最流行、最可靠的个人身份认证技术之一。所以对指纹识别技术的研究具有重要的理论和实际意义。
指纹识别的一般性过程分为三步:指纹图像的预处理,指纹特征提取以及特征匹配。

2.3 指纹的局部特征

局部特征是指指纹上的节点的特征,这些具有某种特征的节点称为特征点。两枚指纹经常会具有相同的总体特征,但它们的局部特征—特征点(Minutia),却不可能完全相同。
指纹纹路并不是连续的、平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就称为”特征点”。就是这些特征点提供了指纹唯一性的确认信息。特征点的分类有以下几种(如图2-4),最典型的是端点和分叉点。
image.png
图2-4指纹特征示意图
很多研究者试图解决指纹分类问题,其核心的问题就是指纹局部与整体特征的定义问题,至今分类算法的种类繁多,所以不同识别系统普遍存在误识率较高的问题。如何提高指纹分类的准确率在指纹识别研究中是一个较关键的问题。

2.方法介绍

传统模式识别方法 (下面四个方法放第四问)

(1)统计模式识别方法 (第一问)

统计模式识别用一个特征向量来表达要识别的对象,并用一个由有穷或无穷个具有类似数值特征的模式构建的集合来表达模式类。识别则是指从模式中拾取一组特征属性,并组成特征向量来表达模式,然后利用划分特征空间的方法对模式进行分类识别,其主要适用于用较少对象就能表示要识别对象的场合[74]。 统计模式识别用于指纹特征的匹配(比对),主要是基于指纹的细节特征,首先提取指纹的细节特征数据,如位置、种类、方向等,构成一定的特征向量,然后在一定的误差允许范围内和指纹库中特征数据进行比对找到最佳匹配。该模式识别方法用于指纹特征比对的优点在于指纹识别的唯一性较好,由于这种方法依赖于指纹的局部信息,易受局部信息特别是特征点丢失的影响,并且随着指纹特征点数量的增多,其匹配时间表现出指数型增长,因此,存在一定的局限性。

(2)结构模式识别方法

结构模式识别采用一些比较简单的子模式组成多级结构来表示一个复杂的模式。对于比较复杂的模式,要对其进行充分的描述需要很多数值特征,因此采用结构模式识别方法进行识别。首先将模式分成若干个子模式,子模式又分成更简单的子模式,依次进行分解,直至在某个研究水平上不再需要细分得到一个模式基元,模式基元的
识别比模式的识别简单的多。结构模式识别把要识别对象表达为一个由基元组成的句子,将模式类表达为由有限或无限个具有相似结构特性的模式组成的集合,然后进行句法分析,最后给出模式的结构描述和识别结果。

结构模式识别用于指纹的特征匹配,主要是基于指纹的纹线结构信息,根据纹线的走向构成描述纹线的句子,然后根据一定的句法分析进行指纹分类、特征的匹配等。这种方法依赖于指纹的整体结构信息,因而不易受指纹特征点丢失的影响。但这种方法受指纹分类类别数目的限制,很难实现识别的唯一性,并且对噪声比较敏感。

(3)模糊模式识别方法
模糊模式识别的实质就是判定要识别对象和模式类之间的从属关系。传统集合论中,元素与集合的关系是绝对的,要么属于,要么不属于,绝不模棱两可。模糊集合论中,采用隶属度来描述元素与集合的关系,根据隶属度来判断元素隶属于集合的程度,解决信息的不确定性问题。模糊模式识别以模糊集合论为基础,对应的判别方式
是一种软判决。 模糊模式识别用于指纹的特征匹配,由于指纹图像存在着噪声干扰,对于指纹特征的提取存在一定的不准确性,因此需要采用模糊匹配的方法进行弥补,但是采用此方法往往识别效率较低。

(4)神经网络模式识别方法
神经网络即人工神经网络,是指由大量简单的处理单元广泛互连而成的复杂网络,用于模拟人类大脑神经网络的结构和行为。其研究目标是利用计算机实现人类的识别能力,而人类识别事物的生理基础是神经系统,所以根据人脑的生理结构构造了人工神经网络。该模式识别方法利用人工神经网络的学习、记忆和归纳功能对待识别对象
进行识别。 神经网络模式识别用于指纹特征的匹配,主要是将提取到的具有代表性的指纹特征作为神经网络的输入,对神经网络进行训练,将指纹所属的个体作为神经网络的输出。该模式识别方法对指纹特征信息的要求较高,如果提取的特征不具代表性则不能得到较好的识别结果,因此该识别方法对指纹特征的提取具有很高的求。

指纹图像匹配方法简介

指纹匹配要解决的是对两幅给定指纹图像的特征模式进行比对,判断这两幅图像是否来自同一个人的同一手指。指纹匹配是自动指纹识别的最后一步,也是非常关键的一步。

指纹图像匹配方面,主要有基于图像,脊线结构和特征点的方法。

基于特征点的匹配算法具有简单、快速、鲁棒性等优点。目前最为常用的方法是FBI提出的细节点坐标模型来做细节匹配。它利用脊线上的端点和分叉点这两种关键点来鉴定指纹。通过将细节点表示为点模式,一个指纹识别问题可以转化为一个点模式匹配问题。点匹配算法是通过某些变换,如平移变换、旋转变化、伸缩变换,可以把两个点集中的对应点匹配起来。对于基于细节点的匹配思路大体分两种:基于直角坐标系的特征识别和基于极坐标系的特征识别。

点模式匹配将注册指纹和待识指纹的特征点定义为两个点集和P和Q通过平移和旋转使得两个点集重合点数最多。点模式匹配是著名的数学难题。目前的指纹识别系统主要采用基于节点的匹配方法,即点模式匹配。从模板指纹和输入指纹中选取一个节点作为参考节点对,在进行节点匹配时先利用基准点将指纹对齐,然后再评估其它节点的匹配程度。很多情况下选用图片的中心点。当然,他所带来的难题有:

  • (1) 如何快速找到基准点把两幅指纹对齐。
  • (2) 图片A中有图片B中不存在的点,集合B中也有图片A中不存在的点,匹配的时候如何处理这些点。
  • (3) 由于指纹存在变形位移,任何一对匹配点之间都不是绝对相等,而是存在一定的差距。设计算法的时候,必须要有一定的容错能力。
  • (4) 最终得到的是两幅指纹的相似度,怎么确定相似度的计算方式。
    另外,计算匹配的时间即效率性也很重要。参考点在指纹图像的识别中是也至关重要的。能获得参考点表明从被识别图像中获得的任意比特流与登记图像中获得的比特流相近,则有可能得出两图像相同的结果;没有参考点表明被识别图像完全是另一不同图像。

本文的指纹匹配方法

指纹匹配是模式识别中的一个有名的难题。它是对于两个含有不同数量的点集 和,如何找出它们之间的匹配关系。因此,一个好的指纹匹配算法应该能够有效地解决两个点集间的几何不变量问题
人们对一般的指纹匹配提出很多算法,比如松弛算法,其中有的文献只处理了点模式间因平移带来的偏差;也有文献处理了因平移和旋转带来的误差;另外有文献不仅考虑到位移和旋转误差,还处理了因伸缩尺度不同而带来的误差。
指纹图像匹配中的两个点集合,其中从第一幅图像抽取,有n个特征点构成,从第二幅图像抽取,有个n特征点构成集合。因为在实际应用中,点的相对位置存在误差,所以它们之间的匹配就是对每一个特征点分别提取再相对于中心点取得的向量进行比对的过程,使两个点集有最大数量点对之间存在稳定的一一对应关系
对于点集中的特征点,这里用方向和方向的坐标来描述,指纹图像每一特征点是一个五维向量,
1.2其中分别是该点的坐标位置,
3.是特征点相对于中心点的方向向量
4.为特征点的类型(即是分叉点还是端点),
5.为特征点相对于中心点的距离向量。
可以通过一些合适的算法,通过在一定范围搜索参数空间,计算其匹配支持数,也就是在该参数空间里,有多少指纹对匹配。当匹配支持数最大时,也就得到了所需要的结果
算法步骤:
(1)分别读取两个特征点集合中的特征点
(2)对特征点进行分类。定义取“1”时,属于特征点端点分类,取“2”时,属于特征点分叉点分类;
(3)分别计算他们相对于中心点的方向向量和距离向量;
(4)若两特征点的距离向量之差小于“2”且梁特征点的方向向量小于等于,则认为两特征点匹配;
(5)若不满足(4)的条件则认为不匹配,并删除。
一般能找到13个相同的特征就可以认为这两个指纹出自同一个手指,但从匹配来看,平均50个特征匹配点会有3~4个误配,于是将成功匹配点设置为>30个,认为是出自同一个手指。
匹配成功的特征点:端点用红色‘o’标注,分叉点用绿色标注‘o’。

3.实验

4.结尾:

在本次设计中,我发现指纹识别系统的设计过程中还存在着一些较难解决的瓶颈问题,阻碍了指纹识别系统的应用和普及。今后指纹识别整体的研究方向主要致力于解决这些问题,提高系统的识别率。这些问题如下:
1)指纹方向图(或方向场)的求取。
预处理的结果主要依赖于方向图的估计和求取。由于指纹图像中存在奇异点(中心点和三角点),在奇异点附近,方向的变化特别剧烈,此时要估计出正确的方向是有一定困难的。不仅如此,奇异点主要是利用检测方向场变化的剧烈程度实现的,而采用分区估计方向的方法有可能模糊方向场的这种剧烈变化,会对后面的奇异点检测造成一定的影响。此外,由于输入的指纹图像存在平移、旋转和尺度变化,而划分子块时并不考虑这种变化,因此同一个手指在不同时间获得的指纹图像,其所得到的方向场是不同的,这对后面的预处理过程、特征提取、指纹分类、指纹比对会产生巨大的影响。
2)细节特征的提取。
现有的几乎所有的细节提取算法的性能都严重依赖于输入的指纹图像的质量。而由于诸多的因素(譬如,指纹表面的异常信息,胎记,偶然的污迹,取像系统的问题等等),指纹图像中并不是总有完整的脊的结构。因此,可靠的细节提取算法不能假定有很好的脊的结构,而应该对指纹图像的质量有很好的容忍性。
3)匹配算法中的若干问题。
在基于细节的空间坐标以及细节点的方向,也就是细节的空间相对位置关系的匹配方法中,初始匹配位置的对齐,即如何确定基准点或者说是坐标原点的定位问题,包括原点和方向;尽管分类以及细分子类已经大大减少了匹配时搜索的范围,但是对于大规模的指纹库来说,仍然需要进一步缩小指纹匹配的搜索范围,同时引入辅助识别的信息;在指纹采集的过程中,指纹图像存在非线性变形,如何克服这种变形。
当然,指纹识别的识别率以及识别速度的提高还取决于指纹采集设备精度以及处理速度的提高,但是算法的优劣仍然是影响系统性能的关键因素。

FINGERPRINT IMAGE POSTPROCESSING: A COMBINED STATISTICAL AND STRUCTURAL APPROACH

本文提出了一种统计与结构相结合的指纹图像后处理方法。该方法首先计算指纹脊线的统计特性。然后利用这些统计信息来表示指纹脊的属性。基于吸引子-bute表示,构造并处理了伪细节结构。与其他方法不同,本文提出的方法对细节结构进行了分析。这就像人类分析指纹图案的方式——从整体上分析脊关系,而不是在一个小正方形上

image.png
image.png