本发明涉及数据处理方法,特别是涉及用于图像比对和图像拼接的数据处理方法。
背景技术:
为实现图像比对,以及根据图像比对结果进行图像拼接,现有技术将图像比对的基础图像作为模板图像,将用于比对的图像作为待测试图像,模板图像和待测试图像特征点的描述符经过汉明hamming匹配以及空间去伪之后得到若干粗匹配点对,运用英文简写为ransac的随机取样一致randomsamplingconsensus算法去除误匹配和计算旋转平移变换矩阵。传统随机取样一致ransac思路是通过在粗匹配点对集合中任意选择三对点估算h矩阵,然后使用估算出来的h矩阵对两个点集当中的所有点对进行一致集consensusset判断,把一个点集当中的点经过h矩阵映射之后判断跟另外一个点集当中对应点之间的欧氏距离小于一定的阈值,则认为这些点对属于这个h矩阵的一致集,最后选取包含点对的数量最多的一致集为最终的精确匹配点对,对应的h矩阵为最终的旋转平移变换矩阵。
传统随机取样一致ransac算法因为每次都是随机选取点对来估算h矩阵,随机性比较强、运算量较大、效率较低、需要重复迭代很多次才能找到合适的h矩阵,尤其是当输入随机取样一致ransac算法的两个匹配点集合当中错误点对的数量越多而且占比越大,则需要的重复迭代次数越大,否则有可能找不到h矩阵,但是重复迭代次数越大则运算时间和存储量将会正比地增加,而且每次随机取样一致ransac算法之后计算出来的h矩阵和一致集都不完全一样。
技术实现要素:
本发明要解决的技术问题在于避免现有技术的不足之处而提出一种基于投票决策和最小二乘法的图像识别随机取样一致算法,引入了投票决策方式找出最有可能正确的点对,采用最小二乘法原理计算旋转平移变换矩阵,设计了新的随机取样一致ransac算法以解决上述问题。本发明在模板图像和待测试图像特征点的描述符经过汉明hamming匹配以及空间去伪之后得到两个粗匹配的点集,分别是模板图像粗匹配点集referenceset,英文简写refset,以及测试图像粗匹配点集testset,每个点在点集当中都有顺序标号index,这两个点集当中的粗匹配点对是一一对应的,但是粗匹配的正确性需要进一步验证,即通过本发明的随机取样一致ransac算法去伪。
本发明解决所述技术问题可以通过采用以下技术方案来实现:
实施一种基于投票决策和最小二乘法的图像识别随机取样一致算法,以存储的图像模板中的一个为模板图像,以输入的图像为测试图像,通过测试图像的特征点信息与各模板图像的特征点信息的比对甄别测试图像是否与模板图像匹配。尤其是,测试图像的特征点信息分别与各模板图像的特征点信息都进行如下步骤处理:
a.在测试图像内选取特征点组成测试图像特征点集,在模板图像内选取特征点组成模板图像特征点集;
对测试图像的每个特征点在模板图像特征点集内找出粗匹配点,从而分属测试图像特征点集和模板图像特征点集的、互相对应的两个粗匹配点成为粗匹配点对;
如果粗匹配点对的数量大于设定的粗匹配阈值,进行步骤b;否则进行步骤i;
b.粗匹配点对中属于测试图像特征点集的粗匹配点组成测试图像粗匹配点集,属于模板图像特征点集的粗匹配点组成模板图像粗匹配点集;
c.用投票决策方法在测试图像粗匹配点集和模板图像粗匹配点集内分别找到得票最高的、互相对应的两对点并构成两个最佳点对;
d.基于最小二乘法原理用所述测试图像粗匹配点集和模板图像粗匹配点集构成的两个最佳点对计算旋转平移变换矩阵;
e.借助旋转平移变换矩阵从测试图像粗匹配点集和模板图像粗匹配点集筛选点对构成一致集;
如果一致集内点对数量大于设定的一致点对数量阈值,进行步骤f;否则进行步骤i;
f.判断测试图像与模板图像匹配;
j.算法结束。
本发明还在上述随机取样一致ransac算法基础上提出图像拼接方法,以进一步提高图像比对精度,扩大模板图像范围,在上述步骤f与步骤j之间加入如下步骤,
g.基于最小二乘法原理使用一致集内的点对计算更新的旋转平移变换矩阵;
i.借助更新的旋转平移变换矩阵,将测试图像特征点集内的点映射为更新的拼接特征点,将所述更新的拼接特征点加入到模板图像特征点集内。
上述投票决策方法可采用的一种方案是,所述步骤c包括如下分步骤:
c11.为模板图像粗匹配点集的m个点设置序号,按顺序设置m行m列的点对距离投票矩阵,矩阵内非主对角线的元素是投票元素;
c12.获取模板图像粗匹配点集内任一点与其它点的模板粗配点距离,以及测试图像粗匹配点集内任一点与其它点的测试粗配点距离,按照模板图像粗匹配点集与测试图像粗匹配点集各粗匹配点的序号对应关系,使各个模板粗配点距离与测试粗配点距离一一对应;
c13.逐个判断对应的模板粗配点距离与测试粗配点距离的差值是否小于设定的粗配距离差阈值,如果是,即在所述点对距离投票矩阵中的以该模板粗配点距离对应的两个点的序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述点对距离投票矩阵中的以该两点序号互为行号和列号的两元素置位为不投票标志;
c14.选取投票标志数量排在前两位的两行的序号的模板图像的点,并与对应测试图像的点构成两对最佳点对;
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
上述投票决策方法在基于上述分步骤c11至c14的基础上进一步衍生的方案是,所述步骤c包括如下分步骤:
c21.为模板图像粗匹配点集的m个点设置序号,按顺序设置m行m列的点对距离投票矩阵,矩阵内非主对角线的元素是投票元素;
c22.获取模板图像粗匹配点集内任一点与其它点的模板粗配点距离,以及测试图像粗匹配点集内任一点与其它点的测试粗配点距离,按照模板图像粗匹配点集与测试图像粗匹配点集各粗匹配点的序号对应关系,使各个模板粗配点距离与测试粗配点距离一一对应;
c23.逐个判断对应的模板粗配点距离与测试粗配点距离的差值是否小于设定的粗配距离差阈值,如果是,即在所述点对距离投票矩阵中的以该模板粗配点距离对应的两个点的序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述点对距离投票矩阵中的以该两点序号互为行号和列号的两元素置位为不投票标志;
c24.在点对距离投票矩阵选取投票标志数量的排在前z位的z行的行序号所代表的z个点组成模板图像初判点集,该模板图像初判点集在测试图像粗匹配点集对应的z个点组成测试图像初判点集,z是不小于2的自然数;
c25.获取模板图像初判点集内任意两点之间的向量,组成具有y个向量的模板向量集,y是从z个点中取出两个点的组合数,相应地,获取测试图像初判点集内任意两点之间的向量,组成具有y个向量的测试向量集,按照模板图像初判点集与测试图像初判点集之间各点的对应关系,使模板向量与测试向量一一对应;
c26.为模板向量集的y个向量设置序号,按顺序设置构建y行y列的向量夹角投票矩阵,矩阵内非主对角线的元素是投票元素;
c27.计算模板向量集内任意两个向量之间的夹角,相应地,计算测试向量集内任意两个向量之间的夹角,判断模板向量集内的夹角和相同序号的测试向量集内的夹角的差值是否小于设定的向量夹角差阈值,如果是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述向量投票矩阵中的以该两向量序号互为行号和列号的两元素置位为不投票标志;
c28.选取向量夹角投票矩阵中投票标志最多的一行的行序号所代表的模板向量,从而找出形成该模板向量的两点,该两点与测试图像的对应两点构成两最佳点对;
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
具体而言,所述z是不小于2的自然数,且不超过模板图像粗匹配点集内点数的十分之一。
上述投票决策方法可采用的另一种方案是,所述步骤c包括如下分步骤:
c31.获取模板图像粗匹配点集内任意两点之间的向量,组成具有x个向量的模板向量集,x是从模板图像粗匹配点集的点数中取出两个点的组合数,相应地,获取测试图像粗匹配点集内任意两点之间的向量,组成具有x个向量的测试向量集,按照模板图像粗匹配点集与测试图像粗匹配点集之间各点的对应关系,使模板向量与测试向量对应;
c32.为模板向量集的x个向量设置序号,按顺序设置构建x行x列的向量夹角投票矩阵,矩阵内非主对角线的元素是投票元素;
c33.计算模板向量集内任意两个向量之间的夹角,相应地,计算测试向量集内任意两个向量之间的夹角,判断模板向量集内的夹角和相同序号的测试向量集内的夹角的差值是否小于设定的向量夹角差阈值,如果是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述向量投票矩阵中的以该两向量序号互为行号和列号的两元素置位为不投票标志;
c34.选取向量夹角投票矩阵中投票标志最多的一行的行序号所代表的模板向量,从而找出形成该模板向量的两点,该两点与测试图像的对应两点构成两最佳点对;
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
上述投票决策方法在基于上述分步骤c31至c34的基础上进一步衍生的方案是,所述步骤c包括如下分步骤:
c41.获取模板图像粗匹配点集内任意两点之间的向量,组成具有x个向量的模板向量集,x是从模板图像粗匹配点集的点数中取出两个点的组合数,相应地,获取测试图像粗匹配点集内任意两点之间的向量,组成具有x个向量的测试向量集,按照模板图像粗匹配点集与测试图像粗匹配点集之间各点的对应关系,使模板向量与测试向量对应;
c42.为模板向量集的x个向量设置序号,按顺序设置构建x行x列的向量夹角投票矩阵,矩阵内非主对角线的元素是投票元素;
c43.计算模板向量集内任意两个向量之间的夹角,相应地,计算测试向量集内任意两个向量之间的夹角,判断模板向量集内的夹角和相同序号的测试向量集内的夹角的差值是否小于设定的向量夹角差阈值,如果是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为不投票标志;
c44.在向量夹角投票矩阵当中选取投票标志数量的排在前w位的w行的行序号所代表的w个向量的端点为模板图像初判点集,该模板图像初判点集在测试图像粗匹配点集对应的w个向量的端点组成测试图像初判点集,w是不小于2的自然数;
c45.为模板图像初判点集的n个点设置序号,n小于或者等于2×w,按顺序设置n行n列的点对距离投票矩阵,矩阵内非主对角线的元素是投票元素;
c46.获取包括n个点的模板图像初判点集内任一点与其它点的模板初判点距离,以及包括n个点的测试图像初判点集内任一点与其它点的测试初判点距离,按照模板图像初判点集与测试图像初判点集各点的序号对应关系,使各个模板初判点距离与测试初判点距离一一对应;
c47.逐个判断对应的模板初判点距离与测试初判点距离的差值是否小于设定的初判距离差阈值,如果是,即在所述点对距离投票矩阵中的以该模板初判点距离对应的两个点的序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述点对距离投票矩阵中的以该两点序号互为行号和列号的两元素置位为不投票标志;
c48.选取投票标志数量排在前两位的两行的序号的模板图像的点,并与对应测试图像的点构成两对最佳点对。
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
具体地,以上分步骤中所述模板向量集和测试向量集内各个向量的方向为从序号较小的点指向序号较大的点。
具体而言,在所述步骤d中,设通过步骤c找到的模板图像点集内两个最佳点坐标是(xr0,yr0)和(xr1,yr1),测试图像点集内对应的两个最佳点坐标是(xt0,yt0)和(xt1,yt1);
那么,旋转平移变换矩阵是
当
上述步骤e构成一致集及判断图像匹配的具体方案是,所述步骤e包括如下分步骤,
e1.对测试图像粗匹配点集内所有点逐个执行以下步骤,
e11.将当前点的坐标通过旋转平移变换矩阵映射为映射点坐标,
计算当前点在模板图像粗匹配点集内的对应点坐标与映射点坐标的偏差绝对值之和作为点对偏差值,
e12.如果所述点对偏差值小于设定的一致集阈值,将该点以及与该点对应的模板图像粗匹配点集内的点作为一对点对加入一致集;否则,不加入一致集;
e2.对于经过上述分步骤e1得到的一致集,如果一致集内点对数量大于设定的一致点对数量阈值,进行步骤f;否则进行步骤i。
为了获取更新的旋转平移变换矩阵以实现图像拼接,设一致集内的属于测试图像粗匹配点集的各点的坐标是(xt0,yt0)、(xt1,yt1)、……、(xtn,ytn),那么它们在模板图像粗匹配点集内对应的各点的坐标是(xr0,yr0)、(xr1,yr1)、……、(xrn,yrn),也就是一致集内的匹配点对数量是n+1;
那么步骤g中更新的旋转平移变换矩阵是
同现有技术相比较,本发明“基于投票决策和最小二乘法的图像识别随机取样一致算法”的技术效果在于:
本发明计算出的旋转平移变换矩阵不仅比较准确,速度较快,而且很稳定,每次计算结果不会随机波动;本发明不仅优化了图像比对方法,而且有助于数据处理芯片后续的学习功能,即不断增加模板图像的特征信息,从而有效改善拒真率,使数据处理芯片更加智能;本发明还通过不断更新的旋转平移变换矩阵,更为高效、准确地实现图像拼接。
附图说明
图1是本发明“基于投票决策和最小二乘法的图像识别随机取样一致算法”优选实施例的流程示意图。
具体实施方式
以下结合附图所示优选实施例作进一步详述。
本发明提出一种基于投票决策和最小二乘法的图像识别随机取样一致算法,本发明优选实施例以应用于设备解锁的指纹识别过程为例具体说明本发明方案。本发明图像识别随机取样一致ransac算法基于包括存储器、数据处理器和输入装置的硬件设备。如图1所示步骤101,在存储器内预先录入可解锁硬件设备的指纹模板,从输入装置输入指纹,将指纹分别用以下详细说明的图像识别随机取样一致ransac算法与指纹模板逐一比对,当判断指纹与指纹模板匹配时,硬件设备解锁,否则待测试的指纹图像无法解锁硬件设备。所述指纹模板就是本发明所述存储的图像模板,录入指纹模板的过程就是存储模板图像reference的图像特征点的过程。用于进行比对的指纹图像就是以存储的图像模板中的一个为模板图像reference。如图1步骤102所示,从输入装置输入的指纹以图像形式作为测试test图像,测试test图像以特征点作为数据表达方式。通过测试test图像数据与各模板图像reference数据的比对甄别测试test图像是否与模板reference图像匹配,即通过输入指纹与指纹模板内的指纹图像比对,甄别输入指纹是否与指纹模板内的指纹图像匹配。测试test图像数据分别与各模板reference图像数据都进行如下处理过程:
a.如图1步骤101和102所示,在作为测试test图像的输入的指纹图像内选取特征点组成测试test图像特征点集,在模板reference图像内选取特征点组成模板reference图像特征点集。
如图1所示步骤103,对测试test图像的每个特征点在模板reference图像特征点集内找出粗匹配点,从而分属测试test图像特征点集和模板reference图像特征点集的、互相对应的两粗匹配点成为粗匹配点对;
本发明优选实施例使用featuresfromacceleratedsegmenttest高速特征检测算法,简称fast算法提取特征点,找出每个特征点的x、y坐标和主方向以及128位、16个字节的超短二进制ultrashortbinary描述符,简称usb描述符。特征点及其坐标主方向和usb描述符的求法是程序拟定好的。对于测试test图像中的每个特征点,在模板reference图像特征点集内寻找与之相对应的匹配点,即测试test图像中的每个特征点分别与模板reference图像中的所有特征点进行128位usb描述符判别汉明hamming距离寻找与之匹配的点。根据设定好的程序筛选出最终的匹配点对。但是如上所述这个过程得到的匹配点对为粗匹配点对,存在一些误匹配点,而且往往无法预知匹配点对的正确性,所以有必要通过本发明提出的图像识别随机取样一致ransac算法进行精匹配去伪存真。
如图1所示,如果粗匹配点对的数量大于设定的粗匹配阈值,进行步骤b;否则进行步骤i。
本发明优选实施例设定粗匹配阈值为20对,如果粗匹配点对数量不小于20对,则认为两幅图像不匹配,则不能指纹解锁。如果匹配点对数量超过20对,继续进行后续步骤,对粗匹配点对进行去伪存真。通常88×88像素的来源于同一个手指的两幅图像粗匹配点对数量可达150到500甚至更多。
b.如图1步骤104所示,粗匹配点对中属于测试test图像特征点集的粗匹配点组成测试图像粗匹配点集testset,属于模板reference图像特征点集的粗匹配点组成模板图像粗匹配点集referenceset。
基于88×88像素的两幅图像,且referenceset和testset来自同一手指时,进入后续步骤的粗匹配点对数量通常可达150到500甚至更多。各粗匹配点的坐标(x,y,θ)已在提取阶段得知。
c.如图1步骤105所示,用投票决策方法在测试图像粗匹配点集和模板图像粗匹配点集内分别找到得票最高的、互相对应的最佳点并构成最佳点对。所述点对是由测试图像粗匹配点集内的点和模板图像粗匹配点集内的点组成。
投票决策方法可以采用距离投票方法,向量夹角投票方法或者采用距离投票和向量夹角投票相结合的方式。对于距离投票和向量夹角投票相结合的方式,原则上对它们的先后顺序不限制。本发明优选实施例以距离投票和向量夹角投票相结合的方式,先进行距离投票再进行向量夹角投票为例详细说明距离投票和向量夹角投票,而单独采用它们中的任何一种,采用先向量夹角投票后距离投票,以及两者之间的衔接的变通方案,通过本发明优选实施例的详细说明,对于本领域普通技术人员都应当是显而易见的。
采用距离投票方法,所述步骤c包括如下分步骤:
c11.为模板图像粗匹配点集的m个点设置序号,按顺序设置m行m列的点对距离投票矩阵,矩阵内非主对角线的元素是投票元素;
c12.获取模板图像粗匹配点集内任一点与其它点的模板粗配点距离,以及测试图像粗匹配点集内任一点与其它点的测试粗配点距离,按照模板图像粗匹配点集与测试图像粗匹配点集各粗匹配点的序号对应关系,使各个模板粗配点距离与测试粗配点距离一一对应;
c13.逐个判断对应的模板粗配点距离与测试粗配点距离的差值是否小于设定的粗配距离差阈值,如果是,即在所述点对距离投票矩阵中的以该模板粗配点距离对应的两个点的序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述点对距离投票矩阵中的以该两点序号互为行号和列号的两元素置位为不投票标志;
c14.选取投票标志数量排在前两位的两行的序号对应的模板图像特征点集内的点,并与对应测试图像特征点集内的点构成两对最佳点对;
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
本发明优选实施例,找出输入图像识别随机取样一致ransac算法的模板图像粗匹配点集referenceset(简称refset)和测试图像粗匹配点集testset当中的每个点对的重要性ptimportance,这个重要性通过投票决策方法求取。referenceset后文简写为refset。对于每一个点对都与其他所有点对分别依次进行欧氏距离判断,每次判断这四个点的空间位置的欧氏距离是否吻合,如果refset当中的两个点欧式距离与testset当中两个点的欧氏距离的差值小于某个设定的粗配距离差阈值ransac_dist就“投票”,本发明优选实施例中设置粗配距离差阈值ransac_dist为2。该“投票”在一个构造出来的根据distance衡量重要性的矩阵,即后文称为d矩阵的点对距离投票矩阵的对应位置标1,矩阵行号和列号分别是这两个点对的标号index。
例如:refset当中的第i点和第j点的距离为distance1,testset当中的第i点和第j点的距离为distance2,如果distance1减去distance2小于阈值2,则把d矩阵的第i行第j列以及第j行第i列元素设为1,否则设为0。遍历各个点对之后得到一个d(distance)矩阵,把d矩阵第i行当中包含1的个数用ptimportance[i]表示,即代表第i个点对的重要性。
在本发明优选实施例由此得到的d矩阵的分布如下,n为输入图像识别随机取样一致ransac算法的点集refset和testset当中的匹配点对的对数,该矩阵是关于主对角线对称的矩阵,主对角线位置的元素不取值。本发明优选实施例,矩阵元素取值为0或者1的含义为,投票标志是1,不投票标志是0。
点对序号
d矩阵
这个矩阵的第i行当中的1的个数越大,即ptimportance[i]数值越大,说明第i个点对与更多的点对满足基本欧氏距离条件,即认为第i个点对越重要,更有可能是正确的点对,即给它投赞成票的人数越多则它越重要,越有可能是正确点。这就是距离投票方法,即以上分步骤c11至c14的方案。ptimportance[i]数值排在前两位的两行的序号对应的模板图像的两点,以及与对应测试图像的两点构成两对最佳点对。
但是实际指纹识别过程中点对的重要性,ptimportance数值,并没有呈现出两极分化,而且考虑到指纹图像特征点的旋转等因素,只用欧氏距离去判断点对的重要性还不够,即只用距离投票方法还不够,需要在此基础上增加一个a(angle)矩阵,根据两个向量之间的夹角angle衡量重要性的矩阵,即增加向量夹角投票方法。
采用距离投票和角度投票相结合的方式,所述步骤c包括如下分步骤:
c21.为模板图像粗匹配点集的m个点设置序号,按顺序设置m行m列的点对距离投票矩阵,矩阵内非主对角线的元素是投票元素;
c22.获取模板图像粗匹配点集内任一点与其它点的模板粗配点距离,以及测试图像粗匹配点集内任一点与其它点的测试粗配点距离,按照模板图像粗匹配点集与测试图像粗匹配点集各粗匹配点的序号对应关系,使各个模板粗配点距离与测试粗配点距离一一对应;
c23.逐个判断对应的模板粗配点距离与测试粗配点距离的差值是否小于设定的粗配距离差阈值,如果是,即在所述点对距离投票矩阵中的以该模板粗配点距离对应的两个点的序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述点对距离投票矩阵中的以该两点序号互为行号和列号的两元素置位为不投票标志;
c24.在点对距离投票矩阵选取投票标志数量的排在前z位的z行的行序号所代表的模板图像粗匹配点集内的z个点组成模板图像初判点集,该模板图像初判点集在测试图像粗匹配点集对应的z个点组成测试图像初判点集,z是不小于2的自然数;
c25.获取模板图像初判点集内任意两点之间的向量,组成具有y个向量的模板向量集,y是从z个点中取出两个点的组合数,相应地,获取测试图像初判点集内任意两点之间的向量,组成具有y个向量的测试向量集,按照模板图像初判点集与测试图像初判点集之间各点的对应关系,使模板向量与测试向量一一对应;
c26.为模板向量集的y个向量设置序号,按顺序设置构建y行y列的向量夹角投票矩阵,矩阵内非主对角线的元素是投票元素;
c27.计算模板向量集内任意两个向量之间的夹角,相应地,计算测试向量集内任意两个向量之间的夹角,判断模板向量集内的夹角和相同序号的测试向量集内的夹角的差值是否小于设定的向量夹角差阈值,如果是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述向量投票矩阵中的以该两向量序号互为行号和列号的两元素置位为不投票标志;
c28.选取向量夹角投票矩阵中投票标志最多的一行的行序号所代表的模板向量,从而找出形成该模板向量的两点,该两点与测试图像的对应两点构成两最佳点对;
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
所述分步骤c21至c24的过程是距离投票方法,分步骤c25至c28的过程是向量夹角投票方法。
以上已经详细说明用d矩阵找出ptimportance[i]较大点对的方法,即距离投票方法,在此方法基础上,找出由d矩阵算出来的各行当中包含投票标志1的个数ptimportance[i]数值较大的前10个点对再进一步用a矩阵判断重要性,即分步骤c21至c28中的z=10。所述z是不小于2的自然数,且不超过模板图像粗匹配点集内点数的十分之一。取出ptimportance[i]数值较大的前10个点对重新构成两个点集,模板图像初判点集refset2含10个点,测试图像初判点集testset2含10个点,把refset2当中的10个点两两构成一个向量,向量的方向规定为由index较小的点指向index较大的点,得到45个向量,即从10当中取出2的组合数是向量个数,即分步骤c21至c28中的y=45。同理testset2也得到对应的45个向量,与refset2当中的一一对应。对于每一对向量都与其他所有向量对分别依次进行夹角判断,每次判断这四个向量的空间位置的角度关系是否吻合,如果refset2当中的两个向量的夹角与testset2当中两个向量的夹角的差值小于某个设定的向量夹角差阈值ransac_angle就“投票”,本发明优选实施例,向量夹角差阈值ransac_angle设为2度。在一个构造出来根据angle衡量重要性的向量夹角投票矩阵,即a矩阵,a矩阵的行号和列号分别是这两对向量的顺序标号index_vector。例如:refset2当中的第i个向量和第j个向量的夹角为angle1,testset2当中的第i个向量和第j个向量的夹角为angle2,如果angle1减去angle2所得的差小于向量夹角差阈值2(角度值),则把a矩阵的第i行第j列以及第j行第i列元素设为1,否则设为0。遍历各对向量之后得到一个a矩阵,把a矩阵第i行当中包含1的个数用vectorimportance[i]表示,即代表第i对向量的重要性。
由此得到的a矩阵可能的分布如下,n=45为上述构造出来的向量对的对数,该矩阵是关于主对角线对称的矩阵,主对角线位置的元素不取值。本发明优选实施例,矩阵元素取值为0或者1的含义为,投票标志是1,不投票标志是0。
点对序号
a矩阵
找出vectorimportance数组当中最大的元素vectorimportance[i]对应的一对向量(对应refset2当中的两个点和testset2当中的两个点),用来计算出的h矩阵就是理论上的最佳旋转平移变换矩阵,即
显然,投票决策方法也可以单独采用向量夹角投票方法,以及先向量夹角投票后距离投票的方法。
投票决策方法单独采用向量夹角投票方法,所述步骤c包括如下分步骤:
c31.获取模板图像粗匹配点集内任意两点之间的向量,组成具有x个向量的模板向量集,x是从模板图像粗匹配点集的点数中取出两个点的组合数,相应地,获取测试图像粗匹配点集内任意两点之间的向量,组成具有x个向量的测试向量集,按照模板图像粗匹配点集与测试图像粗匹配点集之间各点的对应关系,使模板向量与测试向量对应;
c32.为模板向量集的x个向量设置序号,按顺序设置构建x行x列的向量夹角投票矩阵,矩阵内非主对角线的元素是投票元素;
c33.计算模板向量集内任意两个向量之间的夹角,相应地,计算测试向量集内任意两个向量之间的夹角,判断模板向量集内的夹角和相同序号的测试向量集内的夹角的差值是否小于设定的向量夹角差阈值,如果是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为不投票标志;
c34.选取向量夹角投票矩阵中投票标志最多的一行的行序号所代表的模板向量,从而找出形成该模板向量的两点,该两点与测试图像的对应两点构成两最佳点对;
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
投票决策方法采用先向量夹角投票后距离投票方法,所述步骤c包括如下分步骤:
c41.获取模板图像粗匹配点集内任意两点之间的向量,组成具有x个向量的模板向量集,x是从模板图像粗匹配点集的点数中取出两个点的组合数,相应地,获取测试图像粗匹配点集内任意两点之间的向量,组成具有x个向量的测试向量集,按照模板图像粗匹配点集与测试图像粗匹配点集之间各点的对应关系,使模板向量与测试向量对应;
c42.为模板向量集的x个向量设置序号,按顺序设置构建x行x列的向量夹角投票矩阵,矩阵内非主对角线的元素是投票元素;
c43.计算模板向量集内任意两个向量之间的夹角,相应地,计算测试向量集内任意两个向量之间的夹角,判断模板向量集内的夹角和相同序号的测试向量集内的夹角的差值是否小于设定的向量夹角差阈值,如果是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述向量夹角投票矩阵中的以该两向量序号互为行号和列号的两元素置位为不投票标志;
c44.在向量夹角投票矩阵当中选取投票标志数量的排在前w位的w行的行序号所代表的w个向量的端点为模板图像初判点集,该模板图像初判点集在测试图像粗匹配点集对应的w个向量的端点组成测试图像初判点集,w是不小于2的自然数;
c45.为模板图像初判点集的n个点设置序号,因为各个向量的端点有可能重合,所以n小于或者等于2×w,按顺序设置n行n列的点对距离投票矩阵,矩阵内非主对角线的元素是投票元素;
c46.获取包括n个点的模板图像初判点集内任一点与其它点的模板初判点距离,以及包括n个点的测试图像初判点集内任一点与其它点的测试初判点距离,按照模板图像初判点集与测试图像初判点集各点的序号对应关系,使各个模板初判点距离与测试初判点距离一一对应;
c47.逐个判断对应的模板初判点距离与测试初判点距离的差值是否小于设定的初判距离差阈值,如果是,即在所述点对距离投票矩阵中的以该模板初判点距离对应的两个点的序号互为行号和列号的两元素置位为投票标志;如果不是,即在所述点对距离投票矩阵中的以该两点序号互为行号和列号的两元素置位为不投票标志;
c48.选取投票标志数量排在前两位的两行的序号的模板图像的点,并与对应测试图像的点构成两对最佳点对。
所述投票标志是1,不投票标志是0;或者,所述投票标志是0,不投票标志是1。
以上所述模板向量集和测试向量集内各个向量的方向为从序号较小的点指向序号较大的点。
通过投票决策找到最佳点对后,就需要通过最佳点对获得旋转平移变换矩阵h,即步骤d:
d.基于最小二乘法原理用所述测试图像点集和模板图像点集相对应的最佳点对计算旋转平移变换矩阵。
本发明优选实施例,用找到的最佳的两个点对计算h矩阵,该两个点对,即四个点的坐标分别为:(xr0,yr0)、(xr1,yr1)、(xt0,yt0)和(xt1,yt1)。利用最小二乘法原理计算旋转平移变换矩阵h,需要求h矩阵的3个未知数:旋转角度θ和平移量dx、dy,把testset当中的两个点(xt0,yt0)和(xt1,yt1)经过h矩阵做旋转和平移变换之后得到对应的映射点
为了使经过h矩阵旋转平移之后的两个映射点
error=(xt0·cosθ-yt0·sinθ+dx-xr0)2+(xt0·sinθ+yt0·cosθ+dy-yr0)2+(xt1·cosθ-yt1·sinθ+dx-xr1)2+(xt1·sinθ+yt1·cosθ+dy-yr1)2
由
解得
由
解得
由
把dx和dy表达式代入得,
(2xt0·cosθ-2yt0·sinθ-xt0·cosθ+yt0·sinθ+xr1-xt1·cosθ+yt1·sinθ-xr0)·(-xt0·sinθ-yt0·cosθ)++(2xt0·sinθ+2yt0·cosθ-xt0·sinθ-yt0·cosθ+yr1-xt1·sinθ-yt1·cosθ-yr0)·(xt0·cosθ-yt0·sinθ)++(2xt1·cosθ-2yt1·sinθ+xr0-xt0·cosθ+yt0·sinθ-xt1·cosθ+yt1·sinθ-xr1)·(-xt1·sinθ-yt1·cosθ)++(2xt1·sinθ+2yt1·cosθ+yr0-xt0·sinθ-yt0·cosθ-xt1·sinθ-yt1·cosθ-yr1)·(xt1·cosθ-yt1·sinθ)=0
化简得
[sinθ·(yt1-yt0)+cosθ·(xt0-xt1)+(xr1-xr0)]·(-xt0·sinθ-yt0·cosθ)++[sinθ·(xt0-xt1)+cosθ·(yt0-yt1)+(yr1-yr0)]·(xt0·cosθ-yt0·sinθ)++[sinθ·(yt0-yt1)+cosθ·(xt1-xt0)+(xr0-xr1)]·(-xt1·sinθ-yt1·cosθ)++[sinθ·(xt1-xt0)+cosθ·(yt1-yt0)+(yr0-yr1)]·(xt1·cosθ-yt1·sinθ)=0
合并化简以及利用sin2θ+cos2θ=1得
(xr1-xr0)·(-xt0·sinθ-yt0·cosθ)+(yr1-yr0)·(xt0·cosθ-yt0·sinθ)++(xr0-xr1)·(-xt1·sinθ-yt1·cosθ)+(yr0-yr1)·(xt1·cosθ-yt1·sinθ)=0
整理得
即
特例是①当
获取旋转平移变换矩阵就能够通过以下步骤e构成一致集。
e.如图1所示步骤106,借助旋转平移变换矩阵从测试图像粗匹配点集和模板图像粗匹配点集筛选点对构成一致集;
如果一致集内点对数量不小于设定的一致点对数量阈值,进行步骤f;否则进行步骤i;
本发明优选实施例,步骤e构成一致集及判断图像匹配的具体方案是,所述步骤e包括如下分步骤,
e1.对测试图像粗匹配点集内所有点逐个执行以下步骤,
e11.将当前点的坐标通过旋转平移变换矩阵映射为映射点坐标,
计算当前点在模板图像粗匹配点集内的对应点坐标与映射点坐标的偏差绝对值之和作为点对偏差值,
e12.如果所述点对偏差值小于设定的一致集阈值,将该点以及与该点对应的模板图像粗匹配点集内的点作为一对点对加入一致集;否则,不加入一致集;
当测试图像粗匹配点集内所有点都经过分步骤e11至e12之后,就获得一致集以进行分步骤e2,
e2.对于经过上述分步骤e1得到的一致集,如果一致集内点对数量大于设定的一致点对数量阈值,进行步骤f;否则进行步骤i。
本发明优选实施例,根据已经计算出来的旋转平移变换矩阵h矩阵寻找一致集consensusset。对于已经匹配上的refset和testset当中的点对,即粗匹配得到的点对,把每个点对的testset上的点使用h矩阵映射之后的坐标与refset上对应的点的坐标的偏差的绝对值之和,得到err=|xri-xti·cosθ+yti·sinθ-dx|+|yri-xti·sinθ-yti·cosθ-dy|。
设置一致集阈值为4,即当第i个点对的err<4的时候则第i个点对就加入一致集当中。
通过获取的一致集即可判断图像是否匹配,对于本发明优选实施例,就是判断指纹是否吻合,即以下步骤f,
f.如图1所示步骤107,判断测试图像与模板图像匹配。
本发明图像识别随机取样一致ransac算法的终结点是如下步骤j,
j.如图1所示步骤110,算法结束。
上述图像识别随机取样一致ransac算法已经完成粗匹配点去伪存真,即图像比对甄别过程。作为拓展,为了实现图像拼接,增加旋转平移变换矩阵的准确度,再使用一致集当中的所有点对重新更新所求出来的旋转平移变换矩阵,即h′矩阵,使用该更新的旋转平移变换矩阵,h′矩阵进一步提高图像比对精度,实现图像拼接,扩大模板图像范围。因而如图1所示,在上述步骤f与步骤j之间还可以加入如下步骤,
g.如图1所示步骤108,使用一致集内的点对计算更新的旋转平移变换矩阵。
本发明优选实施例,使用一致集当中的所有点对重新计算更新的旋转平移变换矩阵,即h′矩阵。设一致集consensusset当中匹配点对的对数为n+1,即点对的下标分别从0到n。
为了使经过h′矩阵旋转平移之后的n+1个映射点
error=(xt0·cosθ-yt0·sinθ+dx-xr0)2+(xt0·sinθ+yt0·cosθ+dy-yr0)2+(xt1·cosθ-yt1·sinθ+dx-xr1)2+(xt1·sinθ+yt1·cosθ+dy-yr1)2+………+(xtn·cosθ-ytn·sinθ+dx-xrn)2+(xtn·sinθ+ytn·cosθ+dy-yrn)2,
由
解得,
即,
由
解得,
即,
由
把dx′和dy′表达式代入得,
合并化简以及利用sin2θ+cos2θ=1得,
整理合并同类项得,
等式左右两边同时乘以一致集当中的点对数量n+1,整理得,
将包含sin函数的多项式放在等号左侧,包含cos函数的多项式放在等号右侧,等号左侧的sin函数的系数为,
等号右侧cos函数的系数为,
令
sin和cos函数的系数a、a1、b、b1可以使用两个for循环实现,其中a1和b1在里面的for循环(对k从0到n循环)之内累加计算,a和b在外面的for循环(对i从0到n循环)之内和里面的for循环之外累加计算。
即
结合前面计算出的平移量dx′和dy′,构造出更新的旋转平移变换h′矩阵,
运用更新的旋转平移变换h′矩阵能够实现图像拼接,即以下步骤i,
i.借助更新的旋转平移变换矩阵,将测试图像特征点集内的点映射为更新的拼接特征点,将拼接的特征点加入到模板图像特征点集内。
本发明优选实施例,如图1所示步骤109,把待测试的指纹图像当中的特征点经过如下旋转平移变换即可拼接到模板指纹图像中。
对于待测试图像中的特征点经过更新的旋转平移变换h′矩阵映射过去之后的坐标与匹配点之间的偏差小于一定阈值的这些点对不做拼接。
当今手机市场上需求的指纹识别芯片很多是小面积的,每次录入模板里的指纹信息往往只占手指的一小部分,在两幅图像进行匹配之后,如果匹配得分很高,即本算法当中的一致集consensusset里面的匹配点对的对数n+1数值很大,则可认为这两幅图像来源于同一个真实手指,使用计算出来的更新的旋转平移变换h′矩阵可以把两幅图像拼接在一起成为一幅比较大的含有真实手指的更多特征点的指纹图像做为模板。同时,本发明也有助于指纹识别芯片后续的学习功能,即不断增加真实手指的指纹信息以及根据冬季夏季手指湿润干燥的细微变化使用手指的最新状态信息更新替换旧信息,从而有效改善拒真率,使芯片更加智能。
在android系统中实验表明:五百个以内的匹配点对中去伪存真精确求取h矩阵的时间小于两毫秒,并且实验表明,本发明图像识别随机取样一致ransac算法计算出的旋转平移变换h矩阵不仅比较准确、速度较快,而且很稳定,每次计算结果不会随机波动。