本發(fā)明涉及計(jì)算機(jī)視覺(jué)領(lǐng)域,特別是涉及一種對(duì)三角形特征的二進(jìn)制描述方法。
背景技術(shù):
圖像匹配是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要技術(shù)之一,已經(jīng)被廣泛應(yīng)用在目標(biāo)定位、視覺(jué)導(dǎo)航、三維重建、立體視覺(jué)測(cè)距等眾多領(lǐng)域中。在現(xiàn)有圖像匹配算法中,基于局部特征點(diǎn)(如斑點(diǎn)、角點(diǎn))的方法具有魯棒性好的明顯優(yōu)勢(shì),所以得到了重點(diǎn)研究和應(yīng)用。隨著研究的深入,人們逐漸注意到圖像的結(jié)構(gòu)信息和幾何信息在提高圖像匹配精度方面起著重要作用,于是將幾何約束引入圖像匹配算法中,并主要利用了三角形約束。例如,有的算法在特征描述階段應(yīng)用了三角形約束,有的算法在特征匹配階段利用了三角形約束。
考慮到大部分三角形約束算法只是利用了三角形的邊角關(guān)系,而沒(méi)有利用圖像的灰度信息,一種快速三角形匹配(rapidtrianglematching,rtm)算法被提出(曹建超,“基于新型特征描述的快速圖像匹配算法”,大連理工大學(xué)碩士學(xué)位論文,2015;林秋華,曹建超,田敏,“一種浮點(diǎn)型三角形特征描述方法”,中國(guó)發(fā)明專利cn201510542180.0,已公開)。rtm算法綜合利用了三角形的邊角信息和圖像的灰度信息。其主要過(guò)程為:首先,構(gòu)建三角形特征單元,其中包含特征點(diǎn)檢測(cè)、三角剖分、三角形選擇;然后,基于浮點(diǎn)型(float)數(shù)據(jù)對(duì)每個(gè)三角形進(jìn)行描述,描述子tridesc_f=[shapedesc_f,blockdesc_f]由6維浮點(diǎn)型形狀描述子shapedesc_f和32維浮點(diǎn)型區(qū)域描述子blockdesc_f構(gòu)成,其中6維形狀描述子由三角形的三邊三角構(gòu)成,32維區(qū)域描述子則基于sift描述方法對(duì)三角形質(zhì)心鄰域構(gòu)建而成;接著,進(jìn)行特征匹配,將最近鄰歐氏距離與次近鄰歐氏距離的比值作為衡量匹配關(guān)系的標(biāo)準(zhǔn),得到匹配三角形;最后,提取匹配三角形的三個(gè)頂點(diǎn)所對(duì)應(yīng)的特征點(diǎn)對(duì)作為匹配點(diǎn)對(duì),利用ransac(randomsampleconsensus)算法進(jìn)行錯(cuò)誤匹配的消除,得到正確匹配的特征點(diǎn)。
rtm算法的形狀描述子具有一定的平移、尺度和旋轉(zhuǎn)不變性,區(qū)域描述子的位置具有完全的仿射不變性,因此,rtm算法既能顯著降低特征描述的復(fù)雜度、提升匹配速度,也能提高特征描述的魯棒性,其中匹配速度大約是sift算法的14倍。然而,在有些情況下,現(xiàn)有rtm算法仍然存在三個(gè)問(wèn)題。第一,在視覺(jué)導(dǎo)航等對(duì)速度要求非常高的應(yīng)用中,難于實(shí)現(xiàn)實(shí)時(shí)性。主要原因在于采用了浮點(diǎn)型描述子(sift描述子屬于浮點(diǎn)描述子)。第二,在圖像條件較差的情況下,算法的精度受限。主要原因是32維區(qū)域描述子的維數(shù)較低。第三,在內(nèi)存有限(如手機(jī))的條件下,占用了較大內(nèi)存。rtm算法的描述子為浮點(diǎn)型數(shù)據(jù),每個(gè)三角形描述子需占用152個(gè)字節(jié)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于二進(jìn)制(binary)描述的rtm改進(jìn)算法,提高原rtm算法的速度和精度,同時(shí)降低算法對(duì)內(nèi)存的要求,從而解決上述三個(gè)問(wèn)題。
本發(fā)明的技術(shù)方案是,改進(jìn)原rtm算法中對(duì)三角形特征的浮點(diǎn)描述方法,采用二進(jìn)制數(shù)表示原rtm的三角形形狀描述子;采用orb算法(e.rublee,v.rabaud,k.konolige,g.bradski.orb:anefficientalternativetosiftorsurf.ieeeinternationalconferenceoncomputervision,pp.2564-2571,2011)中的rbrief二進(jìn)制描述方法重建原rtm的三角形區(qū)域描述子。改進(jìn)算法的具體步驟如下:
第一步:采用cn201510542180.0方法對(duì)每個(gè)三角形構(gòu)建6維浮點(diǎn)型形狀描述子:
式中,α=1448,β=461;l1為三角形最長(zhǎng)邊,l2和l3為按逆時(shí)針順序排列的其他兩個(gè)邊,l=l1+l2+l3;θ1、θ2、θ3分別為與三條邊l1,l2和l3相對(duì)的角,如圖1(a)所示。l′1_f,l′2_f,l′3_f和θ′1_f,θ′2_f,θ′3_f分別表示6維浮點(diǎn)型形狀描述子所包含的三個(gè)邊和三個(gè)角信息。
第二步:構(gòu)建192bits二進(jìn)制形狀描述子。應(yīng)用4字節(jié)二進(jìn)制數(shù)表示第一步獲取的浮點(diǎn)型形狀描述子的每一維,重新得到總計(jì)24字節(jié)共192bits的二進(jìn)制形狀描述子:shapedesc_b=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b]
式中,l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b分別表示6維浮點(diǎn)型形狀描述子l′1_f,l′2_f,l′3_f,θ′1_f,θ′2_f,θ′3_f的二進(jìn)制形式。
第三步:構(gòu)建256bits二進(jìn)制區(qū)域描述子。如圖1(b)所示,取三角形的質(zhì)心為描述中心,描述主方向取為逆時(shí)針順序的三角形最長(zhǎng)邊方向。描述區(qū)域?yàn)橐匀切钨|(zhì)心為中心劃定的大小為wp×wp的正方形鄰域,wp=31,使正方形的兩條對(duì)邊與描述子主方向平行。在該正方形鄰域內(nèi),按照orb算法提供的模板,選取256對(duì)大小為ws×ws,ws=5,相關(guān)性較小的子窗口。對(duì)于每對(duì)子窗口,采用公式(1)生成1bit描述子:
式中,x和y表示子窗口對(duì),p(x)和p(y)表示子窗口x和子窗口y的平均灰度值。那么對(duì)于256對(duì)子窗口,共生成256bits二進(jìn)制數(shù),作為最終的二進(jìn)制區(qū)域描述子blockdesc_b=[b1,b2,...,b256]。
第四步:將第二步獲取的192bits二進(jìn)制形狀描述子shapedesc_b和第三步獲取的256bits二進(jìn)制區(qū)域描述子blockdesc_b進(jìn)行拼接,構(gòu)成三角形特征的448bits二進(jìn)制描述子:
tridesc_b=[shapedesc_b,blockdesc_b]
=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b,b1,b2,…,b256]
本發(fā)明所達(dá)到的效果和益處是,將原rtm算法的浮點(diǎn)型描述子改進(jìn)為二進(jìn)制描述子,顯著提高原rtm算法的速度,同時(shí)降低對(duì)內(nèi)存的要求。另外,由于增加二進(jìn)制描述子的維數(shù)到448bits,改進(jìn)rtm算法的精度也得到顯著提高。具體而言,在速度方面,改進(jìn)算法的速度大約是原rtm算法速度的3倍;在內(nèi)存方面,原rtm算法中每個(gè)三角形描述子占用152字節(jié)(1216bits)的內(nèi)存,而本發(fā)明改進(jìn)后的rtm算法每個(gè)三角形的描述子占用內(nèi)存量降為56字節(jié)(448bits),內(nèi)存占用量降為原rtm算法的36.8%。
在精度方面,改進(jìn)算法的正確率和匹配分?jǐn)?shù)均高于原rtm算法,在結(jié)構(gòu)場(chǎng)景中能匹配上原rtm算法不能匹配的特征點(diǎn)。例如,圖2是mikolajczyk圖像庫(kù)(mikolajczykk,schmidc.aperformanceevaluationoflocaldescriptors,ieeetransactionsonpatternanalysisandmachineintelligence,vol.27,no10,pp.1615-1630,2005)中bike圖像組的一種匹配結(jié)果,圖中比較了sift算法、原rtm算法,以及應(yīng)用本發(fā)明二進(jìn)制描述子的改進(jìn)rtm算法。由圖可見,三種算法的匹配特征點(diǎn)差異較大。對(duì)于圖2(a)方框內(nèi)區(qū)域,共有12對(duì)對(duì)應(yīng)特征點(diǎn)真值(見圖2(c)),sift算法正確匹配了3對(duì)(見圖2(d)),原rtm算法正確匹配了7對(duì)(見圖2(e)),而改進(jìn)rtm算法正確匹配了9對(duì)(見圖2(f)),多于原rtm算法以及sift算法。此外,由于orb算法256對(duì)子窗口模板的優(yōu)選性,改進(jìn)rtm算法也具有較好的魯棒性,不但優(yōu)于原rtm算法,并且與sift算法的魯棒性保持一致。
附圖說(shuō)明
圖1(a)是三角形特征的二進(jìn)制形狀描述子構(gòu)建示意圖。
圖1(b)是三角形特征的二進(jìn)制區(qū)域描述子構(gòu)建示意圖。
圖2是mikolajczyk圖像庫(kù)bike圖像組的一種匹配結(jié)果。
圖中:(a)bike1和bike2中檢測(cè)到的特征點(diǎn);(b)圖(a)方框區(qū)域的放大圖像;(c)bike1和bike2的對(duì)應(yīng)特征點(diǎn)(圖像庫(kù)提供的真值);(d)sift算法正確匹配的特征點(diǎn);(e)原rtm算法正確匹配的特征點(diǎn);(f)應(yīng)用本發(fā)明改進(jìn)的rtm算法正確匹配的特征點(diǎn)。
圖3是改進(jìn)rtm算法的圖像匹配流程圖。
具體實(shí)施方式
下面結(jié)合技術(shù)方案和附圖,詳細(xì)敘述本發(fā)明的一個(gè)具體實(shí)施例。
現(xiàn)有兩幅待匹配圖像,取自mikolajczyk圖像庫(kù)bike圖像組的第一幅bike1和第二幅bike2,分辨率均為1000×700。采用本發(fā)明進(jìn)行圖像匹配的流程如圖3所示。
步驟1:輸入待匹配圖像bike1和bike2,分別作為參考圖像和目標(biāo)圖像。
步驟2:特征點(diǎn)提取。對(duì)參考圖像和目標(biāo)圖像進(jìn)行harris角點(diǎn)檢測(cè),根據(jù)特征點(diǎn)的響應(yīng)強(qiáng)度限定角點(diǎn)的數(shù)目為200個(gè)。
步驟3:三角剖分。利用delaunay算法分別對(duì)兩幅圖像所提取的角點(diǎn)進(jìn)行三角剖分,得到兩幅圖像的三角形網(wǎng)絡(luò)。
步驟4:三角形選擇。剔除三角形網(wǎng)絡(luò)中三角形最長(zhǎng)邊小于4個(gè)像素或大于25個(gè)像素的三角形,分別得到兩幅圖像的三角形集合。
步驟5:對(duì)于每幅圖像,為其三角形集合中的所有三角形構(gòu)建二進(jìn)制描述子。下面以圖1中三角形abc為例,說(shuō)明每個(gè)三角形的二進(jìn)制描述子構(gòu)建過(guò)程:
step1:采用cn201510542180.0方法對(duì)三角形abc構(gòu)建6維浮點(diǎn)型形狀描述子
其中α=1448,β=461;l1為三角形abc的最長(zhǎng)邊,l2和l3為按逆時(shí)針順序排列的其他兩個(gè)邊,l=l1+l2+l3;θ1、θ2、θ3分別為與三條邊l1,l2和l3相對(duì)的角,如圖1(a)所示。
step2:構(gòu)建192bits二進(jìn)制形狀描述子。對(duì)于step1獲取的浮點(diǎn)型形狀描述子中的6個(gè)浮點(diǎn)數(shù)l′1_f,l′2_f,l′3_f,θ′1_f,θ′2_f,θ′3_f,分別應(yīng)用4字節(jié)二進(jìn)制數(shù)進(jìn)行表示,得到總計(jì)24字節(jié)共192bits的二進(jìn)制形狀描述子shapedesc_b=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b]。
step3:構(gòu)建256bits二進(jìn)制區(qū)域描述子。如圖1(b)所示,取三角形的質(zhì)心d為描述中心,描述主方向取為逆時(shí)針順序的三角形最長(zhǎng)邊方向
step4:將step2獲取的192bits二進(jìn)制形狀描述子shapedesc_b和step3獲取的256bits二進(jìn)制區(qū)域描述子blockdesc_b進(jìn)行拼接,構(gòu)成三角形特征的448bits二進(jìn)制描述子tridesc_b=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b,b1,b2,…,b256]。
對(duì)目標(biāo)圖像和參考圖像的所有三角形構(gòu)建二進(jìn)制描述子之后,得到兩幅圖像的三角形特征描述子向量集合。
步驟6:三角形匹配。通過(guò)掃描遍歷的方法進(jìn)行匹配判斷。對(duì)于目標(biāo)圖像中的每個(gè)三角形特征描述子向量,計(jì)算其到參考圖像三角形特征描述子向量集合的最近鄰漢明距離與次近漢明距離的比值,如果該比值小于閾值0.8,則認(rèn)為具有最近鄰距離的兩個(gè)三角形之間存在匹配關(guān)系。
步驟7:剔除錯(cuò)誤匹配。提取所有匹配三角形中三個(gè)頂點(diǎn)所對(duì)應(yīng)的harris角點(diǎn)對(duì),使用ransac算法對(duì)這些角點(diǎn)對(duì)進(jìn)行正確性驗(yàn)證,剔除錯(cuò)誤匹配角點(diǎn),最終得到正確匹配的角點(diǎn)集合。
步驟8:輸出正確匹配的角點(diǎn)集合。