本發(fā)明涉及數(shù)據(jù)處理方法,特別是涉及用于圖像比對(duì)和圖像拼接的數(shù)據(jù)處理方法。
背景技術(shù):
為實(shí)現(xiàn)圖像比對(duì),以及根據(jù)圖像比對(duì)結(jié)果進(jìn)行圖像拼接,現(xiàn)有技術(shù)將圖像比對(duì)的基礎(chǔ)圖像作為模板圖像,將用于比對(duì)的圖像作為待測試圖像,模板圖像和待測試圖像特征點(diǎn)的描述符經(jīng)過漢明hamming匹配以及空間去偽之后得到若干粗匹配點(diǎn)對(duì),運(yùn)用英文簡寫為ransac的隨機(jī)取樣一致randomsamplingconsensus算法去除誤匹配和計(jì)算旋轉(zhuǎn)平移變換矩陣。傳統(tǒng)隨機(jī)取樣一致ransac思路是通過在粗匹配點(diǎn)對(duì)集合中任意選擇三對(duì)點(diǎn)估算h矩陣,然后使用估算出來的h矩陣對(duì)兩個(gè)點(diǎn)集當(dāng)中的所有點(diǎn)對(duì)進(jìn)行一致集consensusset判斷,把一個(gè)點(diǎn)集當(dāng)中的點(diǎn)經(jīng)過h矩陣映射之后判斷跟另外一個(gè)點(diǎn)集當(dāng)中對(duì)應(yīng)點(diǎn)之間的歐氏距離小于一定的閾值,則認(rèn)為這些點(diǎn)對(duì)屬于這個(gè)h矩陣的一致集,最后選取包含點(diǎn)對(duì)的數(shù)量最多的一致集為最終的精確匹配點(diǎn)對(duì),對(duì)應(yīng)的h矩陣為最終的旋轉(zhuǎn)平移變換矩陣。
傳統(tǒng)隨機(jī)取樣一致ransac算法因?yàn)槊看味际请S機(jī)選取點(diǎn)對(duì)來估算h矩陣,隨機(jī)性比較強(qiáng)、運(yùn)算量較大、效率較低、需要重復(fù)迭代很多次才能找到合適的h矩陣,尤其是當(dāng)輸入隨機(jī)取樣一致ransac算法的兩個(gè)匹配點(diǎn)集合當(dāng)中錯(cuò)誤點(diǎn)對(duì)的數(shù)量越多而且占比越大,則需要的重復(fù)迭代次數(shù)越大,否則有可能找不到h矩陣,但是重復(fù)迭代次數(shù)越大則運(yùn)算時(shí)間和存儲(chǔ)量將會(huì)正比地增加,而且每次隨機(jī)取樣一致ransac算法之后計(jì)算出來的h矩陣和一致集都不完全一樣。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于避免現(xiàn)有技術(shù)的不足之處而提出一種基于投票決策和最小二乘法的圖像識(shí)別隨機(jī)取樣一致算法,引入了投票決策方式找出最有可能正確的點(diǎn)對(duì),采用最小二乘法原理計(jì)算旋轉(zhuǎn)平移變換矩陣,設(shè)計(jì)了新的隨機(jī)取樣一致ransac算法以解決上述問題。本發(fā)明在模板圖像和待測試圖像特征點(diǎn)的描述符經(jīng)過漢明hamming匹配以及空間去偽之后得到兩個(gè)粗匹配的點(diǎn)集,分別是模板圖像粗匹配點(diǎn)集referenceset,英文簡寫refset,以及測試圖像粗匹配點(diǎn)集testset,每個(gè)點(diǎn)在點(diǎn)集當(dāng)中都有順序標(biāo)號(hào)index,這兩個(gè)點(diǎn)集當(dāng)中的粗匹配點(diǎn)對(duì)是一一對(duì)應(yīng)的,但是粗匹配的正確性需要進(jìn)一步驗(yàn)證,即通過本發(fā)明的隨機(jī)取樣一致ransac算法去偽。
本發(fā)明解決所述技術(shù)問題可以通過采用以下技術(shù)方案來實(shí)現(xiàn):
實(shí)施一種基于投票決策和最小二乘法的圖像識(shí)別隨機(jī)取樣一致算法,以存儲(chǔ)的圖像模板中的一個(gè)為模板圖像,以輸入的圖像為測試圖像,通過測試圖像的特征點(diǎn)信息與各模板圖像的特征點(diǎn)信息的比對(duì)甄別測試圖像是否與模板圖像匹配。尤其是,測試圖像的特征點(diǎn)信息分別與各模板圖像的特征點(diǎn)信息都進(jìn)行如下步驟處理:
a.在測試圖像內(nèi)選取特征點(diǎn)組成測試圖像特征點(diǎn)集,在模板圖像內(nèi)選取特征點(diǎn)組成模板圖像特征點(diǎn)集;
對(duì)測試圖像的每個(gè)特征點(diǎn)在模板圖像特征點(diǎn)集內(nèi)找出粗匹配點(diǎn),從而分屬測試圖像特征點(diǎn)集和模板圖像特征點(diǎn)集的、互相對(duì)應(yīng)的兩個(gè)粗匹配點(diǎn)成為粗匹配點(diǎn)對(duì);
如果粗匹配點(diǎn)對(duì)的數(shù)量大于設(shè)定的粗匹配閾值,進(jìn)行步驟b;否則進(jìn)行步驟i;
b.粗匹配點(diǎn)對(duì)中屬于測試圖像特征點(diǎn)集的粗匹配點(diǎn)組成測試圖像粗匹配點(diǎn)集,屬于模板圖像特征點(diǎn)集的粗匹配點(diǎn)組成模板圖像粗匹配點(diǎn)集;
c.用投票決策方法在測試圖像粗匹配點(diǎn)集和模板圖像粗匹配點(diǎn)集內(nèi)分別找到得票最高的、互相對(duì)應(yīng)的兩對(duì)點(diǎn)并構(gòu)成兩個(gè)最佳點(diǎn)對(duì);
d.基于最小二乘法原理用所述測試圖像粗匹配點(diǎn)集和模板圖像粗匹配點(diǎn)集構(gòu)成的兩個(gè)最佳點(diǎn)對(duì)計(jì)算旋轉(zhuǎn)平移變換矩陣;
e.借助旋轉(zhuǎn)平移變換矩陣從測試圖像粗匹配點(diǎn)集和模板圖像粗匹配點(diǎn)集篩選點(diǎn)對(duì)構(gòu)成一致集;
如果一致集內(nèi)點(diǎn)對(duì)數(shù)量大于設(shè)定的一致點(diǎn)對(duì)數(shù)量閾值,進(jìn)行步驟f;否則進(jìn)行步驟i;
f.判斷測試圖像與模板圖像匹配;
j.算法結(jié)束。
本發(fā)明還在上述隨機(jī)取樣一致ransac算法基礎(chǔ)上提出圖像拼接方法,以進(jìn)一步提高圖像比對(duì)精度,擴(kuò)大模板圖像范圍,在上述步驟f與步驟j之間加入如下步驟,
g.基于最小二乘法原理使用一致集內(nèi)的點(diǎn)對(duì)計(jì)算更新的旋轉(zhuǎn)平移變換矩陣;
i.借助更新的旋轉(zhuǎn)平移變換矩陣,將測試圖像特征點(diǎn)集內(nèi)的點(diǎn)映射為更新的拼接特征點(diǎn),將所述更新的拼接特征點(diǎn)加入到模板圖像特征點(diǎn)集內(nèi)。
上述投票決策方法可采用的一種方案是,所述步驟c包括如下分步驟:
c11.為模板圖像粗匹配點(diǎn)集的m個(gè)點(diǎn)設(shè)置序號(hào),按順序設(shè)置m行m列的點(diǎn)對(duì)距離投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c12.獲取模板圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的模板粗配點(diǎn)距離,以及測試圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的測試粗配點(diǎn)距離,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集各粗匹配點(diǎn)的序號(hào)對(duì)應(yīng)關(guān)系,使各個(gè)模板粗配點(diǎn)距離與測試粗配點(diǎn)距離一一對(duì)應(yīng);
c13.逐個(gè)判斷對(duì)應(yīng)的模板粗配點(diǎn)距離與測試粗配點(diǎn)距離的差值是否小于設(shè)定的粗配距離差閾值,如果是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該模板粗配點(diǎn)距離對(duì)應(yīng)的兩個(gè)點(diǎn)的序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該兩點(diǎn)序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c14.選取投票標(biāo)志數(shù)量排在前兩位的兩行的序號(hào)的模板圖像的點(diǎn),并與對(duì)應(yīng)測試圖像的點(diǎn)構(gòu)成兩對(duì)最佳點(diǎn)對(duì);
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
上述投票決策方法在基于上述分步驟c11至c14的基礎(chǔ)上進(jìn)一步衍生的方案是,所述步驟c包括如下分步驟:
c21.為模板圖像粗匹配點(diǎn)集的m個(gè)點(diǎn)設(shè)置序號(hào),按順序設(shè)置m行m列的點(diǎn)對(duì)距離投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c22.獲取模板圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的模板粗配點(diǎn)距離,以及測試圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的測試粗配點(diǎn)距離,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集各粗匹配點(diǎn)的序號(hào)對(duì)應(yīng)關(guān)系,使各個(gè)模板粗配點(diǎn)距離與測試粗配點(diǎn)距離一一對(duì)應(yīng);
c23.逐個(gè)判斷對(duì)應(yīng)的模板粗配點(diǎn)距離與測試粗配點(diǎn)距離的差值是否小于設(shè)定的粗配距離差閾值,如果是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該模板粗配點(diǎn)距離對(duì)應(yīng)的兩個(gè)點(diǎn)的序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該兩點(diǎn)序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c24.在點(diǎn)對(duì)距離投票矩陣選取投票標(biāo)志數(shù)量的排在前z位的z行的行序號(hào)所代表的z個(gè)點(diǎn)組成模板圖像初判點(diǎn)集,該模板圖像初判點(diǎn)集在測試圖像粗匹配點(diǎn)集對(duì)應(yīng)的z個(gè)點(diǎn)組成測試圖像初判點(diǎn)集,z是不小于2的自然數(shù);
c25.獲取模板圖像初判點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有y個(gè)向量的模板向量集,y是從z個(gè)點(diǎn)中取出兩個(gè)點(diǎn)的組合數(shù),相應(yīng)地,獲取測試圖像初判點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有y個(gè)向量的測試向量集,按照模板圖像初判點(diǎn)集與測試圖像初判點(diǎn)集之間各點(diǎn)的對(duì)應(yīng)關(guān)系,使模板向量與測試向量一一對(duì)應(yīng);
c26.為模板向量集的y個(gè)向量設(shè)置序號(hào),按順序設(shè)置構(gòu)建y行y列的向量夾角投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c27.計(jì)算模板向量集內(nèi)任意兩個(gè)向量之間的夾角,相應(yīng)地,計(jì)算測試向量集內(nèi)任意兩個(gè)向量之間的夾角,判斷模板向量集內(nèi)的夾角和相同序號(hào)的測試向量集內(nèi)的夾角的差值是否小于設(shè)定的向量夾角差閾值,如果是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述向量投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c28.選取向量夾角投票矩陣中投票標(biāo)志最多的一行的行序號(hào)所代表的模板向量,從而找出形成該模板向量的兩點(diǎn),該兩點(diǎn)與測試圖像的對(duì)應(yīng)兩點(diǎn)構(gòu)成兩最佳點(diǎn)對(duì);
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
具體而言,所述z是不小于2的自然數(shù),且不超過模板圖像粗匹配點(diǎn)集內(nèi)點(diǎn)數(shù)的十分之一。
上述投票決策方法可采用的另一種方案是,所述步驟c包括如下分步驟:
c31.獲取模板圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的模板向量集,x是從模板圖像粗匹配點(diǎn)集的點(diǎn)數(shù)中取出兩個(gè)點(diǎn)的組合數(shù),相應(yīng)地,獲取測試圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的測試向量集,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集之間各點(diǎn)的對(duì)應(yīng)關(guān)系,使模板向量與測試向量對(duì)應(yīng);
c32.為模板向量集的x個(gè)向量設(shè)置序號(hào),按順序設(shè)置構(gòu)建x行x列的向量夾角投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c33.計(jì)算模板向量集內(nèi)任意兩個(gè)向量之間的夾角,相應(yīng)地,計(jì)算測試向量集內(nèi)任意兩個(gè)向量之間的夾角,判斷模板向量集內(nèi)的夾角和相同序號(hào)的測試向量集內(nèi)的夾角的差值是否小于設(shè)定的向量夾角差閾值,如果是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述向量投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c34.選取向量夾角投票矩陣中投票標(biāo)志最多的一行的行序號(hào)所代表的模板向量,從而找出形成該模板向量的兩點(diǎn),該兩點(diǎn)與測試圖像的對(duì)應(yīng)兩點(diǎn)構(gòu)成兩最佳點(diǎn)對(duì);
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
上述投票決策方法在基于上述分步驟c31至c34的基礎(chǔ)上進(jìn)一步衍生的方案是,所述步驟c包括如下分步驟:
c41.獲取模板圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的模板向量集,x是從模板圖像粗匹配點(diǎn)集的點(diǎn)數(shù)中取出兩個(gè)點(diǎn)的組合數(shù),相應(yīng)地,獲取測試圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的測試向量集,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集之間各點(diǎn)的對(duì)應(yīng)關(guān)系,使模板向量與測試向量對(duì)應(yīng);
c42.為模板向量集的x個(gè)向量設(shè)置序號(hào),按順序設(shè)置構(gòu)建x行x列的向量夾角投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c43.計(jì)算模板向量集內(nèi)任意兩個(gè)向量之間的夾角,相應(yīng)地,計(jì)算測試向量集內(nèi)任意兩個(gè)向量之間的夾角,判斷模板向量集內(nèi)的夾角和相同序號(hào)的測試向量集內(nèi)的夾角的差值是否小于設(shè)定的向量夾角差閾值,如果是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c44.在向量夾角投票矩陣當(dāng)中選取投票標(biāo)志數(shù)量的排在前w位的w行的行序號(hào)所代表的w個(gè)向量的端點(diǎn)為模板圖像初判點(diǎn)集,該模板圖像初判點(diǎn)集在測試圖像粗匹配點(diǎn)集對(duì)應(yīng)的w個(gè)向量的端點(diǎn)組成測試圖像初判點(diǎn)集,w是不小于2的自然數(shù);
c45.為模板圖像初判點(diǎn)集的n個(gè)點(diǎn)設(shè)置序號(hào),n小于或者等于2×w,按順序設(shè)置n行n列的點(diǎn)對(duì)距離投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c46.獲取包括n個(gè)點(diǎn)的模板圖像初判點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的模板初判點(diǎn)距離,以及包括n個(gè)點(diǎn)的測試圖像初判點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的測試初判點(diǎn)距離,按照模板圖像初判點(diǎn)集與測試圖像初判點(diǎn)集各點(diǎn)的序號(hào)對(duì)應(yīng)關(guān)系,使各個(gè)模板初判點(diǎn)距離與測試初判點(diǎn)距離一一對(duì)應(yīng);
c47.逐個(gè)判斷對(duì)應(yīng)的模板初判點(diǎn)距離與測試初判點(diǎn)距離的差值是否小于設(shè)定的初判距離差閾值,如果是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該模板初判點(diǎn)距離對(duì)應(yīng)的兩個(gè)點(diǎn)的序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該兩點(diǎn)序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c48.選取投票標(biāo)志數(shù)量排在前兩位的兩行的序號(hào)的模板圖像的點(diǎn),并與對(duì)應(yīng)測試圖像的點(diǎn)構(gòu)成兩對(duì)最佳點(diǎn)對(duì)。
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
具體地,以上分步驟中所述模板向量集和測試向量集內(nèi)各個(gè)向量的方向?yàn)閺男蛱?hào)較小的點(diǎn)指向序號(hào)較大的點(diǎn)。
具體而言,在所述步驟d中,設(shè)通過步驟c找到的模板圖像點(diǎn)集內(nèi)兩個(gè)最佳點(diǎn)坐標(biāo)是(xr0,yr0)和(xr1,yr1),測試圖像點(diǎn)集內(nèi)對(duì)應(yīng)的兩個(gè)最佳點(diǎn)坐標(biāo)是(xt0,yt0)和(xt1,yt1);
那么,旋轉(zhuǎn)平移變換矩陣是
當(dāng)
上述步驟e構(gòu)成一致集及判斷圖像匹配的具體方案是,所述步驟e包括如下分步驟,
e1.對(duì)測試圖像粗匹配點(diǎn)集內(nèi)所有點(diǎn)逐個(gè)執(zhí)行以下步驟,
e11.將當(dāng)前點(diǎn)的坐標(biāo)通過旋轉(zhuǎn)平移變換矩陣映射為映射點(diǎn)坐標(biāo),
計(jì)算當(dāng)前點(diǎn)在模板圖像粗匹配點(diǎn)集內(nèi)的對(duì)應(yīng)點(diǎn)坐標(biāo)與映射點(diǎn)坐標(biāo)的偏差絕對(duì)值之和作為點(diǎn)對(duì)偏差值,
e12.如果所述點(diǎn)對(duì)偏差值小于設(shè)定的一致集閾值,將該點(diǎn)以及與該點(diǎn)對(duì)應(yīng)的模板圖像粗匹配點(diǎn)集內(nèi)的點(diǎn)作為一對(duì)點(diǎn)對(duì)加入一致集;否則,不加入一致集;
e2.對(duì)于經(jīng)過上述分步驟e1得到的一致集,如果一致集內(nèi)點(diǎn)對(duì)數(shù)量大于設(shè)定的一致點(diǎn)對(duì)數(shù)量閾值,進(jìn)行步驟f;否則進(jìn)行步驟i。
為了獲取更新的旋轉(zhuǎn)平移變換矩陣以實(shí)現(xiàn)圖像拼接,設(shè)一致集內(nèi)的屬于測試圖像粗匹配點(diǎn)集的各點(diǎn)的坐標(biāo)是(xt0,yt0)、(xt1,yt1)、……、(xtn,ytn),那么它們?cè)谀0鍒D像粗匹配點(diǎn)集內(nèi)對(duì)應(yīng)的各點(diǎn)的坐標(biāo)是(xr0,yr0)、(xr1,yr1)、……、(xrn,yrn),也就是一致集內(nèi)的匹配點(diǎn)對(duì)數(shù)量是n+1;
那么步驟g中更新的旋轉(zhuǎn)平移變換矩陣是
同現(xiàn)有技術(shù)相比較,本發(fā)明“基于投票決策和最小二乘法的圖像識(shí)別隨機(jī)取樣一致算法”的技術(shù)效果在于:
本發(fā)明計(jì)算出的旋轉(zhuǎn)平移變換矩陣不僅比較準(zhǔn)確,速度較快,而且很穩(wěn)定,每次計(jì)算結(jié)果不會(huì)隨機(jī)波動(dòng);本發(fā)明不僅優(yōu)化了圖像比對(duì)方法,而且有助于數(shù)據(jù)處理芯片后續(xù)的學(xué)習(xí)功能,即不斷增加模板圖像的特征信息,從而有效改善拒真率,使數(shù)據(jù)處理芯片更加智能;本發(fā)明還通過不斷更新的旋轉(zhuǎn)平移變換矩陣,更為高效、準(zhǔn)確地實(shí)現(xiàn)圖像拼接。
附圖說明
圖1是本發(fā)明“基于投票決策和最小二乘法的圖像識(shí)別隨機(jī)取樣一致算法”優(yōu)選實(shí)施例的流程示意圖。
具體實(shí)施方式
以下結(jié)合附圖所示優(yōu)選實(shí)施例作進(jìn)一步詳述。
本發(fā)明提出一種基于投票決策和最小二乘法的圖像識(shí)別隨機(jī)取樣一致算法,本發(fā)明優(yōu)選實(shí)施例以應(yīng)用于設(shè)備解鎖的指紋識(shí)別過程為例具體說明本發(fā)明方案。本發(fā)明圖像識(shí)別隨機(jī)取樣一致ransac算法基于包括存儲(chǔ)器、數(shù)據(jù)處理器和輸入裝置的硬件設(shè)備。如圖1所示步驟101,在存儲(chǔ)器內(nèi)預(yù)先錄入可解鎖硬件設(shè)備的指紋模板,從輸入裝置輸入指紋,將指紋分別用以下詳細(xì)說明的圖像識(shí)別隨機(jī)取樣一致ransac算法與指紋模板逐一比對(duì),當(dāng)判斷指紋與指紋模板匹配時(shí),硬件設(shè)備解鎖,否則待測試的指紋圖像無法解鎖硬件設(shè)備。所述指紋模板就是本發(fā)明所述存儲(chǔ)的圖像模板,錄入指紋模板的過程就是存儲(chǔ)模板圖像reference的圖像特征點(diǎn)的過程。用于進(jìn)行比對(duì)的指紋圖像就是以存儲(chǔ)的圖像模板中的一個(gè)為模板圖像reference。如圖1步驟102所示,從輸入裝置輸入的指紋以圖像形式作為測試test圖像,測試test圖像以特征點(diǎn)作為數(shù)據(jù)表達(dá)方式。通過測試test圖像數(shù)據(jù)與各模板圖像reference數(shù)據(jù)的比對(duì)甄別測試test圖像是否與模板reference圖像匹配,即通過輸入指紋與指紋模板內(nèi)的指紋圖像比對(duì),甄別輸入指紋是否與指紋模板內(nèi)的指紋圖像匹配。測試test圖像數(shù)據(jù)分別與各模板reference圖像數(shù)據(jù)都進(jìn)行如下處理過程:
a.如圖1步驟101和102所示,在作為測試test圖像的輸入的指紋圖像內(nèi)選取特征點(diǎn)組成測試test圖像特征點(diǎn)集,在模板reference圖像內(nèi)選取特征點(diǎn)組成模板reference圖像特征點(diǎn)集。
如圖1所示步驟103,對(duì)測試test圖像的每個(gè)特征點(diǎn)在模板reference圖像特征點(diǎn)集內(nèi)找出粗匹配點(diǎn),從而分屬測試test圖像特征點(diǎn)集和模板reference圖像特征點(diǎn)集的、互相對(duì)應(yīng)的兩粗匹配點(diǎn)成為粗匹配點(diǎn)對(duì);
本發(fā)明優(yōu)選實(shí)施例使用featuresfromacceleratedsegmenttest高速特征檢測算法,簡稱fast算法提取特征點(diǎn),找出每個(gè)特征點(diǎn)的x、y坐標(biāo)和主方向以及128位、16個(gè)字節(jié)的超短二進(jìn)制ultrashortbinary描述符,簡稱usb描述符。特征點(diǎn)及其坐標(biāo)主方向和usb描述符的求法是程序擬定好的。對(duì)于測試test圖像中的每個(gè)特征點(diǎn),在模板reference圖像特征點(diǎn)集內(nèi)尋找與之相對(duì)應(yīng)的匹配點(diǎn),即測試test圖像中的每個(gè)特征點(diǎn)分別與模板reference圖像中的所有特征點(diǎn)進(jìn)行128位usb描述符判別漢明hamming距離尋找與之匹配的點(diǎn)。根據(jù)設(shè)定好的程序篩選出最終的匹配點(diǎn)對(duì)。但是如上所述這個(gè)過程得到的匹配點(diǎn)對(duì)為粗匹配點(diǎn)對(duì),存在一些誤匹配點(diǎn),而且往往無法預(yù)知匹配點(diǎn)對(duì)的正確性,所以有必要通過本發(fā)明提出的圖像識(shí)別隨機(jī)取樣一致ransac算法進(jìn)行精匹配去偽存真。
如圖1所示,如果粗匹配點(diǎn)對(duì)的數(shù)量大于設(shè)定的粗匹配閾值,進(jìn)行步驟b;否則進(jìn)行步驟i。
本發(fā)明優(yōu)選實(shí)施例設(shè)定粗匹配閾值為20對(duì),如果粗匹配點(diǎn)對(duì)數(shù)量不小于20對(duì),則認(rèn)為兩幅圖像不匹配,則不能指紋解鎖。如果匹配點(diǎn)對(duì)數(shù)量超過20對(duì),繼續(xù)進(jìn)行后續(xù)步驟,對(duì)粗匹配點(diǎn)對(duì)進(jìn)行去偽存真。通常88×88像素的來源于同一個(gè)手指的兩幅圖像粗匹配點(diǎn)對(duì)數(shù)量可達(dá)150到500甚至更多。
b.如圖1步驟104所示,粗匹配點(diǎn)對(duì)中屬于測試test圖像特征點(diǎn)集的粗匹配點(diǎn)組成測試圖像粗匹配點(diǎn)集testset,屬于模板reference圖像特征點(diǎn)集的粗匹配點(diǎn)組成模板圖像粗匹配點(diǎn)集referenceset。
基于88×88像素的兩幅圖像,且referenceset和testset來自同一手指時(shí),進(jìn)入后續(xù)步驟的粗匹配點(diǎn)對(duì)數(shù)量通??蛇_(dá)150到500甚至更多。各粗匹配點(diǎn)的坐標(biāo)(x,y,θ)已在提取階段得知。
c.如圖1步驟105所示,用投票決策方法在測試圖像粗匹配點(diǎn)集和模板圖像粗匹配點(diǎn)集內(nèi)分別找到得票最高的、互相對(duì)應(yīng)的最佳點(diǎn)并構(gòu)成最佳點(diǎn)對(duì)。所述點(diǎn)對(duì)是由測試圖像粗匹配點(diǎn)集內(nèi)的點(diǎn)和模板圖像粗匹配點(diǎn)集內(nèi)的點(diǎn)組成。
投票決策方法可以采用距離投票方法,向量夾角投票方法或者采用距離投票和向量夾角投票相結(jié)合的方式。對(duì)于距離投票和向量夾角投票相結(jié)合的方式,原則上對(duì)它們的先后順序不限制。本發(fā)明優(yōu)選實(shí)施例以距離投票和向量夾角投票相結(jié)合的方式,先進(jìn)行距離投票再進(jìn)行向量夾角投票為例詳細(xì)說明距離投票和向量夾角投票,而單獨(dú)采用它們中的任何一種,采用先向量夾角投票后距離投票,以及兩者之間的銜接的變通方案,通過本發(fā)明優(yōu)選實(shí)施例的詳細(xì)說明,對(duì)于本領(lǐng)域普通技術(shù)人員都應(yīng)當(dāng)是顯而易見的。
采用距離投票方法,所述步驟c包括如下分步驟:
c11.為模板圖像粗匹配點(diǎn)集的m個(gè)點(diǎn)設(shè)置序號(hào),按順序設(shè)置m行m列的點(diǎn)對(duì)距離投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c12.獲取模板圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的模板粗配點(diǎn)距離,以及測試圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的測試粗配點(diǎn)距離,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集各粗匹配點(diǎn)的序號(hào)對(duì)應(yīng)關(guān)系,使各個(gè)模板粗配點(diǎn)距離與測試粗配點(diǎn)距離一一對(duì)應(yīng);
c13.逐個(gè)判斷對(duì)應(yīng)的模板粗配點(diǎn)距離與測試粗配點(diǎn)距離的差值是否小于設(shè)定的粗配距離差閾值,如果是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該模板粗配點(diǎn)距離對(duì)應(yīng)的兩個(gè)點(diǎn)的序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該兩點(diǎn)序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c14.選取投票標(biāo)志數(shù)量排在前兩位的兩行的序號(hào)對(duì)應(yīng)的模板圖像特征點(diǎn)集內(nèi)的點(diǎn),并與對(duì)應(yīng)測試圖像特征點(diǎn)集內(nèi)的點(diǎn)構(gòu)成兩對(duì)最佳點(diǎn)對(duì);
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
本發(fā)明優(yōu)選實(shí)施例,找出輸入圖像識(shí)別隨機(jī)取樣一致ransac算法的模板圖像粗匹配點(diǎn)集referenceset(簡稱refset)和測試圖像粗匹配點(diǎn)集testset當(dāng)中的每個(gè)點(diǎn)對(duì)的重要性ptimportance,這個(gè)重要性通過投票決策方法求取。referenceset后文簡寫為refset。對(duì)于每一個(gè)點(diǎn)對(duì)都與其他所有點(diǎn)對(duì)分別依次進(jìn)行歐氏距離判斷,每次判斷這四個(gè)點(diǎn)的空間位置的歐氏距離是否吻合,如果refset當(dāng)中的兩個(gè)點(diǎn)歐式距離與testset當(dāng)中兩個(gè)點(diǎn)的歐氏距離的差值小于某個(gè)設(shè)定的粗配距離差閾值ransac_dist就“投票”,本發(fā)明優(yōu)選實(shí)施例中設(shè)置粗配距離差閾值ransac_dist為2。該“投票”在一個(gè)構(gòu)造出來的根據(jù)distance衡量重要性的矩陣,即后文稱為d矩陣的點(diǎn)對(duì)距離投票矩陣的對(duì)應(yīng)位置標(biāo)1,矩陣行號(hào)和列號(hào)分別是這兩個(gè)點(diǎn)對(duì)的標(biāo)號(hào)index。
例如:refset當(dāng)中的第i點(diǎn)和第j點(diǎn)的距離為distance1,testset當(dāng)中的第i點(diǎn)和第j點(diǎn)的距離為distance2,如果distance1減去distance2小于閾值2,則把d矩陣的第i行第j列以及第j行第i列元素設(shè)為1,否則設(shè)為0。遍歷各個(gè)點(diǎn)對(duì)之后得到一個(gè)d(distance)矩陣,把d矩陣第i行當(dāng)中包含1的個(gè)數(shù)用ptimportance[i]表示,即代表第i個(gè)點(diǎn)對(duì)的重要性。
在本發(fā)明優(yōu)選實(shí)施例由此得到的d矩陣的分布如下,n為輸入圖像識(shí)別隨機(jī)取樣一致ransac算法的點(diǎn)集refset和testset當(dāng)中的匹配點(diǎn)對(duì)的對(duì)數(shù),該矩陣是關(guān)于主對(duì)角線對(duì)稱的矩陣,主對(duì)角線位置的元素不取值。本發(fā)明優(yōu)選實(shí)施例,矩陣元素取值為0或者1的含義為,投票標(biāo)志是1,不投票標(biāo)志是0。
點(diǎn)對(duì)序號(hào)
d矩陣
這個(gè)矩陣的第i行當(dāng)中的1的個(gè)數(shù)越大,即ptimportance[i]數(shù)值越大,說明第i個(gè)點(diǎn)對(duì)與更多的點(diǎn)對(duì)滿足基本歐氏距離條件,即認(rèn)為第i個(gè)點(diǎn)對(duì)越重要,更有可能是正確的點(diǎn)對(duì),即給它投贊成票的人數(shù)越多則它越重要,越有可能是正確點(diǎn)。這就是距離投票方法,即以上分步驟c11至c14的方案。ptimportance[i]數(shù)值排在前兩位的兩行的序號(hào)對(duì)應(yīng)的模板圖像的兩點(diǎn),以及與對(duì)應(yīng)測試圖像的兩點(diǎn)構(gòu)成兩對(duì)最佳點(diǎn)對(duì)。
但是實(shí)際指紋識(shí)別過程中點(diǎn)對(duì)的重要性,ptimportance數(shù)值,并沒有呈現(xiàn)出兩極分化,而且考慮到指紋圖像特征點(diǎn)的旋轉(zhuǎn)等因素,只用歐氏距離去判斷點(diǎn)對(duì)的重要性還不夠,即只用距離投票方法還不夠,需要在此基礎(chǔ)上增加一個(gè)a(angle)矩陣,根據(jù)兩個(gè)向量之間的夾角angle衡量重要性的矩陣,即增加向量夾角投票方法。
采用距離投票和角度投票相結(jié)合的方式,所述步驟c包括如下分步驟:
c21.為模板圖像粗匹配點(diǎn)集的m個(gè)點(diǎn)設(shè)置序號(hào),按順序設(shè)置m行m列的點(diǎn)對(duì)距離投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c22.獲取模板圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的模板粗配點(diǎn)距離,以及測試圖像粗匹配點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的測試粗配點(diǎn)距離,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集各粗匹配點(diǎn)的序號(hào)對(duì)應(yīng)關(guān)系,使各個(gè)模板粗配點(diǎn)距離與測試粗配點(diǎn)距離一一對(duì)應(yīng);
c23.逐個(gè)判斷對(duì)應(yīng)的模板粗配點(diǎn)距離與測試粗配點(diǎn)距離的差值是否小于設(shè)定的粗配距離差閾值,如果是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該模板粗配點(diǎn)距離對(duì)應(yīng)的兩個(gè)點(diǎn)的序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該兩點(diǎn)序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c24.在點(diǎn)對(duì)距離投票矩陣選取投票標(biāo)志數(shù)量的排在前z位的z行的行序號(hào)所代表的模板圖像粗匹配點(diǎn)集內(nèi)的z個(gè)點(diǎn)組成模板圖像初判點(diǎn)集,該模板圖像初判點(diǎn)集在測試圖像粗匹配點(diǎn)集對(duì)應(yīng)的z個(gè)點(diǎn)組成測試圖像初判點(diǎn)集,z是不小于2的自然數(shù);
c25.獲取模板圖像初判點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有y個(gè)向量的模板向量集,y是從z個(gè)點(diǎn)中取出兩個(gè)點(diǎn)的組合數(shù),相應(yīng)地,獲取測試圖像初判點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有y個(gè)向量的測試向量集,按照模板圖像初判點(diǎn)集與測試圖像初判點(diǎn)集之間各點(diǎn)的對(duì)應(yīng)關(guān)系,使模板向量與測試向量一一對(duì)應(yīng);
c26.為模板向量集的y個(gè)向量設(shè)置序號(hào),按順序設(shè)置構(gòu)建y行y列的向量夾角投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c27.計(jì)算模板向量集內(nèi)任意兩個(gè)向量之間的夾角,相應(yīng)地,計(jì)算測試向量集內(nèi)任意兩個(gè)向量之間的夾角,判斷模板向量集內(nèi)的夾角和相同序號(hào)的測試向量集內(nèi)的夾角的差值是否小于設(shè)定的向量夾角差閾值,如果是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述向量投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c28.選取向量夾角投票矩陣中投票標(biāo)志最多的一行的行序號(hào)所代表的模板向量,從而找出形成該模板向量的兩點(diǎn),該兩點(diǎn)與測試圖像的對(duì)應(yīng)兩點(diǎn)構(gòu)成兩最佳點(diǎn)對(duì);
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
所述分步驟c21至c24的過程是距離投票方法,分步驟c25至c28的過程是向量夾角投票方法。
以上已經(jīng)詳細(xì)說明用d矩陣找出ptimportance[i]較大點(diǎn)對(duì)的方法,即距離投票方法,在此方法基礎(chǔ)上,找出由d矩陣算出來的各行當(dāng)中包含投票標(biāo)志1的個(gè)數(shù)ptimportance[i]數(shù)值較大的前10個(gè)點(diǎn)對(duì)再進(jìn)一步用a矩陣判斷重要性,即分步驟c21至c28中的z=10。所述z是不小于2的自然數(shù),且不超過模板圖像粗匹配點(diǎn)集內(nèi)點(diǎn)數(shù)的十分之一。取出ptimportance[i]數(shù)值較大的前10個(gè)點(diǎn)對(duì)重新構(gòu)成兩個(gè)點(diǎn)集,模板圖像初判點(diǎn)集refset2含10個(gè)點(diǎn),測試圖像初判點(diǎn)集testset2含10個(gè)點(diǎn),把refset2當(dāng)中的10個(gè)點(diǎn)兩兩構(gòu)成一個(gè)向量,向量的方向規(guī)定為由index較小的點(diǎn)指向index較大的點(diǎn),得到45個(gè)向量,即從10當(dāng)中取出2的組合數(shù)是向量個(gè)數(shù),即分步驟c21至c28中的y=45。同理testset2也得到對(duì)應(yīng)的45個(gè)向量,與refset2當(dāng)中的一一對(duì)應(yīng)。對(duì)于每一對(duì)向量都與其他所有向量對(duì)分別依次進(jìn)行夾角判斷,每次判斷這四個(gè)向量的空間位置的角度關(guān)系是否吻合,如果refset2當(dāng)中的兩個(gè)向量的夾角與testset2當(dāng)中兩個(gè)向量的夾角的差值小于某個(gè)設(shè)定的向量夾角差閾值ransac_angle就“投票”,本發(fā)明優(yōu)選實(shí)施例,向量夾角差閾值ransac_angle設(shè)為2度。在一個(gè)構(gòu)造出來根據(jù)angle衡量重要性的向量夾角投票矩陣,即a矩陣,a矩陣的行號(hào)和列號(hào)分別是這兩對(duì)向量的順序標(biāo)號(hào)index_vector。例如:refset2當(dāng)中的第i個(gè)向量和第j個(gè)向量的夾角為angle1,testset2當(dāng)中的第i個(gè)向量和第j個(gè)向量的夾角為angle2,如果angle1減去angle2所得的差小于向量夾角差閾值2(角度值),則把a(bǔ)矩陣的第i行第j列以及第j行第i列元素設(shè)為1,否則設(shè)為0。遍歷各對(duì)向量之后得到一個(gè)a矩陣,把a(bǔ)矩陣第i行當(dāng)中包含1的個(gè)數(shù)用vectorimportance[i]表示,即代表第i對(duì)向量的重要性。
由此得到的a矩陣可能的分布如下,n=45為上述構(gòu)造出來的向量對(duì)的對(duì)數(shù),該矩陣是關(guān)于主對(duì)角線對(duì)稱的矩陣,主對(duì)角線位置的元素不取值。本發(fā)明優(yōu)選實(shí)施例,矩陣元素取值為0或者1的含義為,投票標(biāo)志是1,不投票標(biāo)志是0。
點(diǎn)對(duì)序號(hào)
a矩陣
找出vectorimportance數(shù)組當(dāng)中最大的元素vectorimportance[i]對(duì)應(yīng)的一對(duì)向量(對(duì)應(yīng)refset2當(dāng)中的兩個(gè)點(diǎn)和testset2當(dāng)中的兩個(gè)點(diǎn)),用來計(jì)算出的h矩陣就是理論上的最佳旋轉(zhuǎn)平移變換矩陣,即
顯然,投票決策方法也可以單獨(dú)采用向量夾角投票方法,以及先向量夾角投票后距離投票的方法。
投票決策方法單獨(dú)采用向量夾角投票方法,所述步驟c包括如下分步驟:
c31.獲取模板圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的模板向量集,x是從模板圖像粗匹配點(diǎn)集的點(diǎn)數(shù)中取出兩個(gè)點(diǎn)的組合數(shù),相應(yīng)地,獲取測試圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的測試向量集,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集之間各點(diǎn)的對(duì)應(yīng)關(guān)系,使模板向量與測試向量對(duì)應(yīng);
c32.為模板向量集的x個(gè)向量設(shè)置序號(hào),按順序設(shè)置構(gòu)建x行x列的向量夾角投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c33.計(jì)算模板向量集內(nèi)任意兩個(gè)向量之間的夾角,相應(yīng)地,計(jì)算測試向量集內(nèi)任意兩個(gè)向量之間的夾角,判斷模板向量集內(nèi)的夾角和相同序號(hào)的測試向量集內(nèi)的夾角的差值是否小于設(shè)定的向量夾角差閾值,如果是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c34.選取向量夾角投票矩陣中投票標(biāo)志最多的一行的行序號(hào)所代表的模板向量,從而找出形成該模板向量的兩點(diǎn),該兩點(diǎn)與測試圖像的對(duì)應(yīng)兩點(diǎn)構(gòu)成兩最佳點(diǎn)對(duì);
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
投票決策方法采用先向量夾角投票后距離投票方法,所述步驟c包括如下分步驟:
c41.獲取模板圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的模板向量集,x是從模板圖像粗匹配點(diǎn)集的點(diǎn)數(shù)中取出兩個(gè)點(diǎn)的組合數(shù),相應(yīng)地,獲取測試圖像粗匹配點(diǎn)集內(nèi)任意兩點(diǎn)之間的向量,組成具有x個(gè)向量的測試向量集,按照模板圖像粗匹配點(diǎn)集與測試圖像粗匹配點(diǎn)集之間各點(diǎn)的對(duì)應(yīng)關(guān)系,使模板向量與測試向量對(duì)應(yīng);
c42.為模板向量集的x個(gè)向量設(shè)置序號(hào),按順序設(shè)置構(gòu)建x行x列的向量夾角投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c43.計(jì)算模板向量集內(nèi)任意兩個(gè)向量之間的夾角,相應(yīng)地,計(jì)算測試向量集內(nèi)任意兩個(gè)向量之間的夾角,判斷模板向量集內(nèi)的夾角和相同序號(hào)的測試向量集內(nèi)的夾角的差值是否小于設(shè)定的向量夾角差閾值,如果是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述向量夾角投票矩陣中的以該兩向量序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c44.在向量夾角投票矩陣當(dāng)中選取投票標(biāo)志數(shù)量的排在前w位的w行的行序號(hào)所代表的w個(gè)向量的端點(diǎn)為模板圖像初判點(diǎn)集,該模板圖像初判點(diǎn)集在測試圖像粗匹配點(diǎn)集對(duì)應(yīng)的w個(gè)向量的端點(diǎn)組成測試圖像初判點(diǎn)集,w是不小于2的自然數(shù);
c45.為模板圖像初判點(diǎn)集的n個(gè)點(diǎn)設(shè)置序號(hào),因?yàn)楦鱾€(gè)向量的端點(diǎn)有可能重合,所以n小于或者等于2×w,按順序設(shè)置n行n列的點(diǎn)對(duì)距離投票矩陣,矩陣內(nèi)非主對(duì)角線的元素是投票元素;
c46.獲取包括n個(gè)點(diǎn)的模板圖像初判點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的模板初判點(diǎn)距離,以及包括n個(gè)點(diǎn)的測試圖像初判點(diǎn)集內(nèi)任一點(diǎn)與其它點(diǎn)的測試初判點(diǎn)距離,按照模板圖像初判點(diǎn)集與測試圖像初判點(diǎn)集各點(diǎn)的序號(hào)對(duì)應(yīng)關(guān)系,使各個(gè)模板初判點(diǎn)距離與測試初判點(diǎn)距離一一對(duì)應(yīng);
c47.逐個(gè)判斷對(duì)應(yīng)的模板初判點(diǎn)距離與測試初判點(diǎn)距離的差值是否小于設(shè)定的初判距離差閾值,如果是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該模板初判點(diǎn)距離對(duì)應(yīng)的兩個(gè)點(diǎn)的序號(hào)互為行號(hào)和列號(hào)的兩元素置位為投票標(biāo)志;如果不是,即在所述點(diǎn)對(duì)距離投票矩陣中的以該兩點(diǎn)序號(hào)互為行號(hào)和列號(hào)的兩元素置位為不投票標(biāo)志;
c48.選取投票標(biāo)志數(shù)量排在前兩位的兩行的序號(hào)的模板圖像的點(diǎn),并與對(duì)應(yīng)測試圖像的點(diǎn)構(gòu)成兩對(duì)最佳點(diǎn)對(duì)。
所述投票標(biāo)志是1,不投票標(biāo)志是0;或者,所述投票標(biāo)志是0,不投票標(biāo)志是1。
以上所述模板向量集和測試向量集內(nèi)各個(gè)向量的方向?yàn)閺男蛱?hào)較小的點(diǎn)指向序號(hào)較大的點(diǎn)。
通過投票決策找到最佳點(diǎn)對(duì)后,就需要通過最佳點(diǎn)對(duì)獲得旋轉(zhuǎn)平移變換矩陣h,即步驟d:
d.基于最小二乘法原理用所述測試圖像點(diǎn)集和模板圖像點(diǎn)集相對(duì)應(yīng)的最佳點(diǎn)對(duì)計(jì)算旋轉(zhuǎn)平移變換矩陣。
本發(fā)明優(yōu)選實(shí)施例,用找到的最佳的兩個(gè)點(diǎn)對(duì)計(jì)算h矩陣,該兩個(gè)點(diǎn)對(duì),即四個(gè)點(diǎn)的坐標(biāo)分別為:(xr0,yr0)、(xr1,yr1)、(xt0,yt0)和(xt1,yt1)。利用最小二乘法原理計(jì)算旋轉(zhuǎn)平移變換矩陣h,需要求h矩陣的3個(gè)未知數(shù):旋轉(zhuǎn)角度θ和平移量dx、dy,把testset當(dāng)中的兩個(gè)點(diǎn)(xt0,yt0)和(xt1,yt1)經(jīng)過h矩陣做旋轉(zhuǎn)和平移變換之后得到對(duì)應(yīng)的映射點(diǎn)
為了使經(jīng)過h矩陣旋轉(zhuǎn)平移之后的兩個(gè)映射點(diǎn)
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表達(dá)式代入得,
(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
整理得
即
特例是①當(dāng)
獲取旋轉(zhuǎn)平移變換矩陣就能夠通過以下步驟e構(gòu)成一致集。
e.如圖1所示步驟106,借助旋轉(zhuǎn)平移變換矩陣從測試圖像粗匹配點(diǎn)集和模板圖像粗匹配點(diǎn)集篩選點(diǎn)對(duì)構(gòu)成一致集;
如果一致集內(nèi)點(diǎn)對(duì)數(shù)量不小于設(shè)定的一致點(diǎn)對(duì)數(shù)量閾值,進(jìn)行步驟f;否則進(jìn)行步驟i;
本發(fā)明優(yōu)選實(shí)施例,步驟e構(gòu)成一致集及判斷圖像匹配的具體方案是,所述步驟e包括如下分步驟,
e1.對(duì)測試圖像粗匹配點(diǎn)集內(nèi)所有點(diǎn)逐個(gè)執(zhí)行以下步驟,
e11.將當(dāng)前點(diǎn)的坐標(biāo)通過旋轉(zhuǎn)平移變換矩陣映射為映射點(diǎn)坐標(biāo),
計(jì)算當(dāng)前點(diǎn)在模板圖像粗匹配點(diǎn)集內(nèi)的對(duì)應(yīng)點(diǎn)坐標(biāo)與映射點(diǎn)坐標(biāo)的偏差絕對(duì)值之和作為點(diǎn)對(duì)偏差值,
e12.如果所述點(diǎn)對(duì)偏差值小于設(shè)定的一致集閾值,將該點(diǎn)以及與該點(diǎn)對(duì)應(yīng)的模板圖像粗匹配點(diǎn)集內(nèi)的點(diǎn)作為一對(duì)點(diǎn)對(duì)加入一致集;否則,不加入一致集;
當(dāng)測試圖像粗匹配點(diǎn)集內(nèi)所有點(diǎn)都經(jīng)過分步驟e11至e12之后,就獲得一致集以進(jìn)行分步驟e2,
e2.對(duì)于經(jīng)過上述分步驟e1得到的一致集,如果一致集內(nèi)點(diǎn)對(duì)數(shù)量大于設(shè)定的一致點(diǎn)對(duì)數(shù)量閾值,進(jìn)行步驟f;否則進(jìn)行步驟i。
本發(fā)明優(yōu)選實(shí)施例,根據(jù)已經(jīng)計(jì)算出來的旋轉(zhuǎn)平移變換矩陣h矩陣尋找一致集consensusset。對(duì)于已經(jīng)匹配上的refset和testset當(dāng)中的點(diǎn)對(duì),即粗匹配得到的點(diǎn)對(duì),把每個(gè)點(diǎn)對(duì)的testset上的點(diǎn)使用h矩陣映射之后的坐標(biāo)與refset上對(duì)應(yīng)的點(diǎn)的坐標(biāo)的偏差的絕對(duì)值之和,得到err=|xri-xti·cosθ+yti·sinθ-dx|+|yri-xti·sinθ-yti·cosθ-dy|。
設(shè)置一致集閾值為4,即當(dāng)?shù)趇個(gè)點(diǎn)對(duì)的err<4的時(shí)候則第i個(gè)點(diǎn)對(duì)就加入一致集當(dāng)中。
通過獲取的一致集即可判斷圖像是否匹配,對(duì)于本發(fā)明優(yōu)選實(shí)施例,就是判斷指紋是否吻合,即以下步驟f,
f.如圖1所示步驟107,判斷測試圖像與模板圖像匹配。
本發(fā)明圖像識(shí)別隨機(jī)取樣一致ransac算法的終結(jié)點(diǎn)是如下步驟j,
j.如圖1所示步驟110,算法結(jié)束。
上述圖像識(shí)別隨機(jī)取樣一致ransac算法已經(jīng)完成粗匹配點(diǎn)去偽存真,即圖像比對(duì)甄別過程。作為拓展,為了實(shí)現(xiàn)圖像拼接,增加旋轉(zhuǎn)平移變換矩陣的準(zhǔn)確度,再使用一致集當(dāng)中的所有點(diǎn)對(duì)重新更新所求出來的旋轉(zhuǎn)平移變換矩陣,即h′矩陣,使用該更新的旋轉(zhuǎn)平移變換矩陣,h′矩陣進(jìn)一步提高圖像比對(duì)精度,實(shí)現(xiàn)圖像拼接,擴(kuò)大模板圖像范圍。因而如圖1所示,在上述步驟f與步驟j之間還可以加入如下步驟,
g.如圖1所示步驟108,使用一致集內(nèi)的點(diǎn)對(duì)計(jì)算更新的旋轉(zhuǎn)平移變換矩陣。
本發(fā)明優(yōu)選實(shí)施例,使用一致集當(dāng)中的所有點(diǎn)對(duì)重新計(jì)算更新的旋轉(zhuǎn)平移變換矩陣,即h′矩陣。設(shè)一致集consensusset當(dāng)中匹配點(diǎn)對(duì)的對(duì)數(shù)為n+1,即點(diǎn)對(duì)的下標(biāo)分別從0到n。
為了使經(jīng)過h′矩陣旋轉(zhuǎn)平移之后的n+1個(gè)映射點(diǎn)
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′表達(dá)式代入得,
合并化簡以及利用sin2θ+cos2θ=1得,
整理合并同類項(xiàng)得,
等式左右兩邊同時(shí)乘以一致集當(dāng)中的點(diǎn)對(duì)數(shù)量n+1,整理得,
將包含sin函數(shù)的多項(xiàng)式放在等號(hào)左側(cè),包含cos函數(shù)的多項(xiàng)式放在等號(hào)右側(cè),等號(hào)左側(cè)的sin函數(shù)的系數(shù)為,
等號(hào)右側(cè)cos函數(shù)的系數(shù)為,
令
sin和cos函數(shù)的系數(shù)a、a1、b、b1可以使用兩個(gè)for循環(huán)實(shí)現(xiàn),其中a1和b1在里面的for循環(huán)(對(duì)k從0到n循環(huán))之內(nèi)累加計(jì)算,a和b在外面的for循環(huán)(對(duì)i從0到n循環(huán))之內(nèi)和里面的for循環(huán)之外累加計(jì)算。
即
結(jié)合前面計(jì)算出的平移量dx′和dy′,構(gòu)造出更新的旋轉(zhuǎn)平移變換h′矩陣,
運(yùn)用更新的旋轉(zhuǎn)平移變換h′矩陣能夠?qū)崿F(xiàn)圖像拼接,即以下步驟i,
i.借助更新的旋轉(zhuǎn)平移變換矩陣,將測試圖像特征點(diǎn)集內(nèi)的點(diǎn)映射為更新的拼接特征點(diǎn),將拼接的特征點(diǎn)加入到模板圖像特征點(diǎn)集內(nèi)。
本發(fā)明優(yōu)選實(shí)施例,如圖1所示步驟109,把待測試的指紋圖像當(dāng)中的特征點(diǎn)經(jīng)過如下旋轉(zhuǎn)平移變換即可拼接到模板指紋圖像中。
對(duì)于待測試圖像中的特征點(diǎn)經(jīng)過更新的旋轉(zhuǎn)平移變換h′矩陣映射過去之后的坐標(biāo)與匹配點(diǎn)之間的偏差小于一定閾值的這些點(diǎn)對(duì)不做拼接。
當(dāng)今手機(jī)市場上需求的指紋識(shí)別芯片很多是小面積的,每次錄入模板里的指紋信息往往只占手指的一小部分,在兩幅圖像進(jìn)行匹配之后,如果匹配得分很高,即本算法當(dāng)中的一致集consensusset里面的匹配點(diǎn)對(duì)的對(duì)數(shù)n+1數(shù)值很大,則可認(rèn)為這兩幅圖像來源于同一個(gè)真實(shí)手指,使用計(jì)算出來的更新的旋轉(zhuǎn)平移變換h′矩陣可以把兩幅圖像拼接在一起成為一幅比較大的含有真實(shí)手指的更多特征點(diǎn)的指紋圖像做為模板。同時(shí),本發(fā)明也有助于指紋識(shí)別芯片后續(xù)的學(xué)習(xí)功能,即不斷增加真實(shí)手指的指紋信息以及根據(jù)冬季夏季手指濕潤干燥的細(xì)微變化使用手指的最新狀態(tài)信息更新替換舊信息,從而有效改善拒真率,使芯片更加智能。
在android系統(tǒng)中實(shí)驗(yàn)表明:五百個(gè)以內(nèi)的匹配點(diǎn)對(duì)中去偽存真精確求取h矩陣的時(shí)間小于兩毫秒,并且實(shí)驗(yàn)表明,本發(fā)明圖像識(shí)別隨機(jī)取樣一致ransac算法計(jì)算出的旋轉(zhuǎn)平移變換h矩陣不僅比較準(zhǔn)確、速度較快,而且很穩(wěn)定,每次計(jì)算結(jié)果不會(huì)隨機(jī)波動(dòng)。