国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ORB和改進(jìn)RANSAC算法的圖像拼接技術(shù)

2015-03-07 08:27:36佘建國徐仁桐
關(guān)鍵詞:內(nèi)點(diǎn)角點(diǎn)鄰域

佘建國,徐仁桐,陳 寧

(1.江蘇科技大學(xué)機(jī)械工程學(xué)院,江蘇鎮(zhèn)江212003)

(2.江蘇科技大學(xué)能源與動力工程學(xué)院,江蘇鎮(zhèn)江212003)

照片拼接是將同一個場景的若干照片進(jìn)行配準(zhǔn),找到重疊區(qū)域,進(jìn)行重疊區(qū)域?qū)R、變換、融合,組成一幅視野寬廣的場景圖片[1].照片拼接技術(shù)已廣泛應(yīng)用于海事、軍事、遙感、視頻監(jiān)控等領(lǐng)域.

ORB算法是Roblee E等人在2011年的ICCV(IEEE international conference on computer vision)提出的一種匹配算法,其運(yùn)算速度與SIFT相比,SURF算法有了很大的提升.ORB 是一種局部不變特征描述子,對照片圖像的平移、旋轉(zhuǎn)、縮放等矩陣變換具有不變性.該算法思想是在圖像金字塔上利用改進(jìn)的FAST進(jìn)行角點(diǎn)特征檢測,并確定主方向,使特征點(diǎn)有一定的尺度不變性[2];然后用改進(jìn)的BRIEF描述特征,使描述符有一定的旋轉(zhuǎn)不變性.

使用ORB進(jìn)行粗匹配后,針對某些不正確的匹配,文中設(shè)計(jì)了一種改進(jìn)的RANSAC算法,對誤匹配進(jìn)行剔除.

1 ORB算法實(shí)現(xiàn)粗匹配

1.1 ORB 特征檢測

該文采用 oFAST(oriented FAST)算子進(jìn)行ORB特征檢測.oFAST特點(diǎn)是給FAST算子檢測到的角點(diǎn)添加方向信息.它首先采用Harris算法檢測角點(diǎn).FAST檢測的角點(diǎn)定義[3]是:若某像素點(diǎn)與其周圍鄰域內(nèi)足夠多的像素點(diǎn)處于不同的區(qū)域,則該像素點(diǎn)可能為角點(diǎn).如圖1所示,從圖片中選取一個像素點(diǎn)P,并設(shè)其像素值為XP;將該像素點(diǎn)與周圍的16個像素點(diǎn)進(jìn)行比較,若這個以P點(diǎn)為圓心,16個像素點(diǎn)組成的圓上有N個連續(xù)像素點(diǎn),其像素值要么都比XP+T(T為選取的閾值)大,要么比XP-T小,那么它就是一個角點(diǎn),N一般取9或者12.

圖1 FAST角點(diǎn)檢測Fig.1 FAST corner detection

然后,F(xiàn)AST角點(diǎn)主方向運(yùn)用 Intensity Centroid[4]來運(yùn)算.FAST角點(diǎn)主方向通過圖像團(tuán)塊的灰度矩來確定,定義如式(1)所示,其中,q決定了灰度矩的階數(shù),I(x,y)為點(diǎn)(x,y)處的灰度值.

灰度矩心設(shè)為C=(Cx,Cy),其中因此,角點(diǎn)區(qū)域的主方向?yàn)?

利用角點(diǎn)主方向,就可提取BRIEF描述子.為了提高算法的旋轉(zhuǎn)不變性,需要確保x,y在鄰域半徑為 r的圓形區(qū)域內(nèi),即 x,y ∈[-r,r].

1.2 ORB 特征描述

文中采用rBRIEF(rotated BRIEF)算法來進(jìn)行ORB特征描述.原理是從oFAST算法檢測出的所有角點(diǎn)中找到效果良好的點(diǎn)對,用來描述圖像特征.一般角點(diǎn)大小為31×31[5],在 ORB 算法中用ORB::CommonParams(1.2,1,31)體現(xiàn),二進(jìn)制測試對的每個區(qū)域窗口大小為5×5.將角點(diǎn)測試對進(jìn)行灰度差異二值化的公式如式(3),其中x,y表示角點(diǎn)的位置.

選擇n個角點(diǎn)位置(x,y),對其進(jìn)行特征運(yùn)算,如式(4).

n可以取128,256等數(shù)值,數(shù)值不同會影響運(yùn)行速度、識別率、存儲率.ORB本身不具備旋轉(zhuǎn)不變性[6],解決辦法是將角點(diǎn)主方向作為BRIEF的主方向.設(shè)有n對位置坐標(biāo)(xi,yi),構(gòu)造2×n矩陣:

對2×n矩陣進(jìn)行旋轉(zhuǎn)變換,變換矩陣采用角點(diǎn)主方向θ的旋轉(zhuǎn)矩陣,使得M矩陣變成有向形式,如式(5)所示.

所以得出rBRIEF描述子結(jié)果為:

1.3 ORB粗匹配編程

VS2010是微軟推出的集成開發(fā)環(huán)境,數(shù)字圖像處理是其主要功能之一,但單純使用VS2010處理圖像難度很大.OpenCV擁有許多圖像處理函數(shù)[7],若將其和VS2010結(jié)合,便會降低工作難度,減少工作量.因此,文中的ORB編程采用OpenCV嵌入到VS2010實(shí)現(xiàn).

文中首先安裝OpenCV2.3.1版本,選擇屬性>高級系統(tǒng)設(shè)置>環(huán)境變量>新建,新建一個用戶變量,將安裝的OpenCV的lib路徑作為其變量值.然后在VS2010下新建一個項(xiàng)目,右擊選擇屬性>配置屬性>VC++目錄,引入OpenCV的包含目錄和庫目錄.接著在Debug和Release的附加依賴項(xiàng)中引入opencv_calib3d231d.lib,opencv_highgui231d.lib 等庫文件.配置成功后,編程時要在程序的開頭包含OpenCV 的頭文件,如 cv.h,highgui.h 等.文中實(shí)現(xiàn)ORB算法檢測的C++關(guān)鍵代碼如下:

ORB orb;

/*引入OpenCV庫中的ORB特征類*/

vector<KeyPoint> Pts1,Pts2;/* 創(chuàng)建對象類型為Keypoint類的兩個容器以存儲特征點(diǎn)*/

Mat describer1,describer2;

/*定義存放特征向量的兩個矩陣*/

orb(image1,Mat(),Pts1,describer1);orb(image2,Mat(),Pts2,describer2);

BruteForceMatcher<HammingLUT> matcher;/*定義一個BurteForceMatcher對象*/

vector<DMatch> matches;

matcher.match(describer1, describer2, matches);/*對特征向量進(jìn)行匹配*/

采用一對540×380像素的圖像進(jìn)行粗匹配,運(yùn)行結(jié)果如圖2,其中a),b)為特征點(diǎn)檢測,c)為特征點(diǎn)粗配準(zhǔn).發(fā)現(xiàn)有一些誤匹配存在,需用RANSAC去除誤匹配.

圖2 ORB算法粗匹配Fig.2 Coarse matching with ORB algorithm

2RANSAC算法改進(jìn)

RANSAC算法是一種經(jīng)典的消除誤匹配的方法,具有匹配精度高、可靠度高,魯棒性強(qiáng)[8]等優(yōu)點(diǎn).RANSAC算法需要用到單應(yīng)矩陣H(Homography Matrix)[9],它描述了兩幅圖像點(diǎn)坐標(biāo)之間的變換關(guān)系,即Ai′=HAi,可以進(jìn)行圖像之間的平移、旋轉(zhuǎn)和縮放[10].H 變換如式(7)所示,其中(x,y),(x′,y′)表示待匹配特征點(diǎn)坐標(biāo).

用RANSAC算法剔除誤匹配的關(guān)鍵是求出單應(yīng)矩陣H,在VS2010中對H的編程代碼如下:

CvMat*H;/*定義單應(yīng)矩陣H*/

H=ransac_xform(feature1,n1,F(xiàn)EATURE_FWD_MATCH, lsq_homog,4,0.01,homog_xfer_err,3.0,&inliers,&n_inliers);/* 定義H的各項(xiàng)參數(shù),其中inliers表示提純后的內(nèi)點(diǎn)對數(shù),n-inliers表示最終匹配點(diǎn)對個數(shù)*/

經(jīng)典RANSAC算法[11]采用迭代法來估計(jì)H矩陣的 8 個參數(shù)(a0,a1,a2,…,a7),基本過程如下:

步驟1:將兩幅圖像進(jìn)行粗匹配,獲得N個待匹配點(diǎn)對的集合,并進(jìn)行坐標(biāo)歸一化.即Ai′?Ai,其中 i=1,2,…,N.

步驟2:從N個待匹配點(diǎn)對中隨機(jī)選取4個點(diǎn)對,解出矩陣H的8個參數(shù).

步驟3:計(jì)算其余(N-4)個特征點(diǎn)經(jīng)過矩陣H變換得到的特征點(diǎn)與其他待匹配特征點(diǎn)之間的歐氏距離 d,d= ‖HA-A′‖.若 d < t(t為閾值[12]),則該待匹配特征點(diǎn)為內(nèi)點(diǎn),反之為外點(diǎn).

步驟4:重復(fù)步驟2~3 k次,計(jì)下每一次的內(nèi)點(diǎn)數(shù)量,其中k為迭代次數(shù).

步驟5:選擇內(nèi)點(diǎn)數(shù)最多的集合作為最終內(nèi)點(diǎn)集合[13],與此相對應(yīng)的H變換中的8個參數(shù)作為參數(shù)估計(jì)最優(yōu)值.

實(shí)際發(fā)現(xiàn),粗匹配檢測出的特征點(diǎn)對有一些偏差很大,如圖2 a)左部特征點(diǎn)對應(yīng)于圖2 b)右部特征點(diǎn),顯然不匹配,但經(jīng)典RANSAC算法步驟還是把這些點(diǎn)帶入計(jì)算,使得算法速度慢、工作效率低,尤其在兩幅圖片特征點(diǎn)數(shù)量多的時候愈發(fā)明顯.于是文中對RANSAC算法進(jìn)行一些改進(jìn),先采用空間一致性法[14],在算法過程中剔除明顯的錯誤匹配點(diǎn),以縮小抽樣點(diǎn)總量,減少迭代次數(shù).

空間一致性理論可以用圖3具體說明.相似的結(jié)構(gòu)容易導(dǎo)致錯誤的匹配,圖3中檢測兩扇不同但相似的窗子,得出了12對彩色特征點(diǎn),并用不同色彩表示不同值的特征點(diǎn).如果考慮一下鄰域的彩點(diǎn)情況,如圖中考慮8點(diǎn)的鄰域(紅圓圈出),可以發(fā)現(xiàn)雖然8和8*特征相同,但鄰域內(nèi)6和6*、9和9*、12和12*等特征不同,結(jié)果可以判定8和8*不匹配,這就是空間一致性理論的基本思想.

圖3 不同窗戶的相似特征點(diǎn)Fig.3 Similar feature points between different windows

對兩幅圖進(jìn)行空間一致性檢查,需要設(shè)圖像為Gi,定義尺寸不變特征函數(shù):式中:(xj,yj)為特征點(diǎn)中心坐標(biāo);σj為尺度;dj為描述子.對于每一個特征 fj,定義其鄰域集合NGi(fi),其包含以(xj,yj)為圓心,rσj為半徑的圓的特征點(diǎn),并且尺度大小在(sminσj,smaxσj)范圍.NGi(fi)集合表示如式(9)所示,式(9)中的∧表示取小運(yùn)算.

設(shè)有一圖像對(G1,G2),通過各自的特征點(diǎn)描述子可以進(jìn)行點(diǎn)匹配,形成匹配點(diǎn)集C:

然后定義一個匹配點(diǎn)集c=(f1j,f2k)∈C的鄰域集N(c):

那么就說明匹配點(diǎn)集是符合空間一致性的,其中臨界值θ∈[0,1].這樣,就可以從匹配點(diǎn)集C剔除錯誤點(diǎn),形成新點(diǎn)集Cnew,顯然Cnew?C.

改進(jìn)RANSAC算法采用上述空間一致性檢測原理,其步驟如下:

步驟1:通過ORB算法檢測出粗匹配點(diǎn),點(diǎn)集為C.

步驟2:采用空間一致性檢查點(diǎn)集C,得出新點(diǎn)集Cnew.新點(diǎn)集的數(shù)目

步驟3:采用經(jīng)典RANSAC對N個匹配點(diǎn)進(jìn)行迭代計(jì)算.設(shè) k=0,εnew=m/N,I*=0,其中 k為迭代次數(shù),m為Cnew中的隨機(jī)匹配點(diǎn),εnew為Cnew局內(nèi)點(diǎn)所占的比例.當(dāng)η=(1-εmnew)k≥ η0時,計(jì)算圖像變換模型φ,算出局內(nèi)點(diǎn)的數(shù)目I,若I>I*,則I*=I,εnew=I*/N,存儲 φ,直到 η < η0為止.

3 改進(jìn)RANSAC實(shí)驗(yàn)

為了驗(yàn)證改進(jìn)算法的實(shí)際效果,采用2組圖片進(jìn)行匹配性試驗(yàn),并且統(tǒng)計(jì)運(yùn)算結(jié)果.首先,運(yùn)用改進(jìn)RANSAC對圖2a),b)進(jìn)行提純,精匹配效果如圖4 a),拼接結(jié)果如圖4 b)所示.

圖4 540×380像素圖片匹配Fig.4 Matching of 540 ×380 pixels′images

同樣,再用改進(jìn)RANSAC算法對一組300×400像素圖片進(jìn)行檢測.粗匹配和精匹配效果如圖5a),b)所示,拼接的效果如圖5 c)所示.

圖5 300×400像素圖片匹配Fig.5 Matching of 300 ×400 pixels′images

運(yùn)用ORB和經(jīng)典RANSAC對同樣的圖片進(jìn)行匹配試驗(yàn),效果如圖6a),b)所示.為了統(tǒng)計(jì)提純時間,采用cvGetTickCount()、cvGetTickFrequency()函數(shù)的組合實(shí)現(xiàn),其獲取時間的代碼片段如下:

int64 bt,et;∥定義整型變量計(jì)算時間

bt=cvGetTickCount();∥開始時間

……;∥寫入需要監(jiān)測時間的RANSAC代碼

∥片段

et=cvGetTickCount();∥結(jié)束時間printf(“提純時間=%f Seconds ”,(et-bt)/

(double)cvGetTickFrequency()/1000000.0);

∥輸出時間

圖6 ORB+RANSAC對兩組圖片提純的效果Fig.6 ORB+RANSAC purifying effect on the two groups of images

采用matches.size()函數(shù)得出ORB粗匹配點(diǎn)對數(shù),通過inliers++自增運(yùn)算獲得提純后inliers內(nèi)點(diǎn)對數(shù).考慮到系統(tǒng)環(huán)境的變化性,對兩組圖片分別調(diào)試10次,算出平均內(nèi)點(diǎn)對數(shù)、提純時間等參數(shù).對實(shí)驗(yàn)結(jié)果進(jìn)行統(tǒng)計(jì),結(jié)果如表1所示.由表可見,改進(jìn)RANSAC算法的剔誤率和經(jīng)典RANSAC相當(dāng),提純速度有所提高;該改進(jìn)算法在兩幅圖片角度、亮度等差異較大的情況下提純速度提升較明顯.

表1 算法比較Table 1 Comparison of algorithms

4 結(jié)論

文中對ORB算法進(jìn)行了研究,采用oFAST算子和rBRIEF描述子實(shí)現(xiàn)了圖像粗匹配.在結(jié)合前人研究的基礎(chǔ)上,將空間一致性理論運(yùn)用在RANSAC算法中,對其進(jìn)行了改進(jìn).采用兩組圖像進(jìn)行了實(shí)驗(yàn),對該改進(jìn)算法和經(jīng)典RANSAC算法進(jìn)行比較,算出了精匹配的內(nèi)點(diǎn)對數(shù)、提純時間、剔誤率等評估參數(shù).

實(shí)驗(yàn)表明,改進(jìn)RANSAC算法在保證匹配精度的條件下,提高了提純速度.而且ORB原本的運(yùn)算速度就很快,據(jù)文獻(xiàn)[15-16]描述,其速度是SIFT的100倍,是 SURF的10倍.那么,ORB和改進(jìn)RANSAC的結(jié)合,在進(jìn)行圖像快速拼接,尤其在視頻幀圖像的快速拼接時,運(yùn)用此算法可以達(dá)到良好的實(shí)時性,保證了實(shí)時拼接的流暢性.這對于圖像或者視頻實(shí)時拼接技術(shù)研究者有一定的借鑒作用.

References)

[1] 傅軍棟,姚孝明.實(shí)景圖像拼接及其漫游控制技術(shù)[M].成都:西南交通大學(xué)出版社,2011:1-20.

[2] 張?jiān)粕u崢嶸.基于改進(jìn)ORB算法的遙感圖像自動配準(zhǔn)方法[J].國土資源遙感,2013,25(3):20-24.Zhang Yunsheng,Zou Zhengrong.Automatic registration method for remote sensing images based on improved ORB algorithm [J].Remote Sensing for Land & Resources,2013,25(3):20-24.(in Chinese)

[3] 李小紅,謝成明,賈易臻,等.基于ORB特征的快速目標(biāo)檢測算法[J].電子測量與儀器學(xué)報(bào),2013,27(5):455-460.Li Xiaohong,Xie Chengming,Jia Yizhen,et al.Rapid moving object detection algorithm based on ORB features[J].Journal of Electronic Measurement and Instrument,2013,27(5):455-460.(in Chinese)

[4] Rosin P L.Measuring corner properties[J].Computer Vision and Image Understanding,1999,73(2):291-307.

[5] 黃征宇.用于ATM機(jī)遮擋人臉檢測的模糊級聯(lián)分類器和ORB算法的研究[D].長沙:中南大學(xué),2013.

[6] 侯毅,周石琳,雷琳,等.基于ORB的快速完全仿射不變圖像匹配[J].計(jì)算機(jī)工程與科學(xué),2014,36(2):303-310.Hou Yi,Zhou Shilin,Lei Lin,et al.Fast fully affine invariant image matching based on ORB[J].Computer Engineering & Science,2014,36(2):303-310.(in Chinese)

[7] 王小力.基于OpenCV和VC++的目標(biāo)提取技術(shù)[J].硅谷,2010(15):164-165.Wang Xiaoli.Target extraction technology based on OpenCV and VC++[J].Silicon Valley,2010(15):164-165.(in Chinese)

[8] 田文,王宏遠(yuǎn),徐帆,等.RANSAC算法的自適應(yīng)Tc,d預(yù)檢驗(yàn)[J].中國圖象圖形學(xué)報(bào),2009,14(5):973-977.Tian Wen,Wang Hongyuan,Xu Fan,et al.Enhanced RANSAC with adaptive Tc,dpre-verification [J].Journal of Image and Graphics,2009,14(5):973-977.(in Chinese)

[9] 宋衛(wèi)艷.RANSAC算法及其在遙感圖像處理中的應(yīng)用[D].河北保定:華北電力大學(xué),2011.

[10] 孫強(qiáng),葉玉堂,宋昀岑,等.基于優(yōu)化RANSAC算法的二次元快速穩(wěn)定配準(zhǔn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(6):2373-2377.Sun Qiang,Ye Yutang,Song Yuncen,et al.Fast and stable method based on optimized RANSAC algorithm for two-dimensional image[J].China Computer Federation Magazine,2012,33(6):2373-2377.(in Chinese)

[11] 介軍,李智杰,姚鵬.改進(jìn)的RANSAC匹配點(diǎn)提純算法[J].西安建筑科技大學(xué)學(xué)報(bào):自然科學(xué)版,2013,45(6):896-901.Jie Jun,Li Zhijie,Yao Peng.Improved RANSAC algorithm of matched points purifying [J].Journal of Xi′an University of Architecture&Technology:Natural Science Edition,2013,45(6):896-901.(in Chinese)

[12] 馬麗濤,楊丹,張小洪,等.一種新的基于條件數(shù)的圖像配準(zhǔn)算法[J].中國圖象圖形學(xué)報(bào),2008,13(2):278-283.Ma Litao,Yang Dan,Zhang Xiaohong,et al.A new method for image registration based on condition number[J].Journal of Image and Graphics,2008,13(2):278-283.(in Chinese)

[13] 黃有群,付裕,馬廣.基于RANSAC算法的柱面全景圖拼接方法[J].沈陽工業(yè)大學(xué)學(xué)報(bào),2008,30(4):461-465.Huang Youqun,F(xiàn)u Yu,Ma Guang.Cylindrical panoramic image stitching method based on RANSAC algorithm[J].Journal of Shenyang University of Technology,2008,30(4):461-465.(in Chinese)

[14] Sattler T,Leibe B,Kobbelt L.SCRAMSAC:improving RANSAC′s efficiency with a spatial consistency filter[C]∥Proceedings of the IEEE International Conference on Computer Vision.Piscataway:IEEE,2009:2090-2097.

[15] 謝成明.基于ORB特征的目標(biāo)檢測與跟蹤的研究[D].合肥:合肥工業(yè)大學(xué),2013.

[16] Rublee E,Rabaud V,Konolige K,et al.ORB:an efficient alternative to SIFT or SURF[C]∥Proceedings of the IEEE International Conference on Computer Vision.Piscataway:IEEE,2011:2564-2571.

猜你喜歡
內(nèi)點(diǎn)角點(diǎn)鄰域
稀疏圖平方圖的染色數(shù)上界
基于鄰域競賽的多目標(biāo)優(yōu)化算法
基于FAST角點(diǎn)檢測算法上對Y型與X型角點(diǎn)的檢測
基于罰函數(shù)內(nèi)點(diǎn)法的泄露積分型回聲狀態(tài)網(wǎng)的參數(shù)優(yōu)化
基于邊緣的角點(diǎn)分類和描述算法
電子科技(2016年12期)2016-12-26 02:25:49
關(guān)于-型鄰域空間
基于圓環(huán)模板的改進(jìn)Harris角點(diǎn)檢測算法
基于內(nèi)點(diǎn)方法的DSD算法與列生成算法
一個新的求解半正定規(guī)劃問題的原始對偶內(nèi)點(diǎn)算法
基于內(nèi)點(diǎn)法和離散粒子群算法的輸電網(wǎng)參數(shù)辨識
青冈县| 开江县| 前郭尔| 六枝特区| 独山县| 濉溪县| 佛坪县| 怀宁县| 保靖县| 彰化市| 新巴尔虎右旗| 新源县| 安国市| 德惠市| 商水县| 青州市| 平阳县| 永清县| 广南县| 龙川县| 获嘉县| 凤城市| 阿拉尔市| 石棉县| 扶沟县| 宣武区| 韶关市| 七台河市| 沙坪坝区| 涞水县| 和龙市| 通江县| 横山县| 贺州市| 迁安市| 长沙县| 息烽县| 乡城县| 宾阳县| 咸阳市| 溆浦县|