陳 偉,劉 宇,王亞偉,孫 靜,嵇 婷,趙青林
(1.西安應(yīng)用光學(xué)研究所,陜西 西安 710065;2.西安文理學(xué)院 機(jī)械與材料工程學(xué)院,陜西 西安 710065)
圖像拼接是將同一場(chǎng)景中具有重疊視場(chǎng)的兩幅或者多幅圖像組合,以產(chǎn)生一幅無(wú)縫全景圖或高分辨率圖像的過(guò)程,經(jīng)過(guò)拼接所獲得的圖像有較大的視場(chǎng)[1]。它廣泛應(yīng)用于地質(zhì)勘測(cè)、軍事偵察、醫(yī)學(xué)微創(chuàng)手術(shù)、航空航天以及視頻會(huì)議等領(lǐng)域。圖像拼接基本流程包括圖像預(yù)處理、圖像配準(zhǔn)、圖像融合等[2],其中圖像配準(zhǔn)是一個(gè)重要環(huán)節(jié),常用的圖像配準(zhǔn)算法是基于特征的配準(zhǔn)方法,該方法具有計(jì)算速度快、魯棒性好和對(duì)圖像變形不敏感等優(yōu)點(diǎn)。常見(jiàn)的特征配準(zhǔn)算法中,較為成熟的有SIFT(scale invariant feature transform)[3]算法和SURF(speeded-up robust features)[4]算法。SIFT算法具有尺度不變性和旋轉(zhuǎn)不變性,圖像在尺度變化和旋轉(zhuǎn)變化的情況下匹配效果受影響很小,由于采用差分高斯金字塔進(jìn)行特征點(diǎn)提取,并且每個(gè)特征點(diǎn)都需要構(gòu)建128 維描述子,所以在計(jì)算和匹配過(guò)程中運(yùn)行時(shí)間相應(yīng)增加,降低了運(yùn)行速度[5-6]。Herbert Bay 等人在分析總結(jié)多種特征檢測(cè)方法的基礎(chǔ)上提出了SURF 算法,加入了積分圖像簡(jiǎn)化計(jì)算,減少了檢測(cè)特征點(diǎn)的計(jì)算量,而且對(duì)圖像的平移、旋轉(zhuǎn)、縮放等變化具有很好的不變性[7]。盡管SURF 算法具有杰出的性能,但仍然存在計(jì)算量大、匹配時(shí)間長(zhǎng)的問(wèn)題。FAST(features from accelerated segment test)[8]算法是由Edward等人提出的一種快速角點(diǎn)檢測(cè)算法,最大的特點(diǎn)就在于其計(jì)算效率高,正是由于其具有高速性能,所以更適合應(yīng)用于快速拼接。本文主要思想是通過(guò)FAST 算法在圖像重疊區(qū)域提取特征點(diǎn),使用降維SURF 描述子進(jìn)行特征點(diǎn)描述并改進(jìn)特征點(diǎn)匹配算法,然后通過(guò)隨機(jī)抽樣一致性(random sample consensus,RANSAC)改進(jìn)算法獲取單應(yīng)性矩陣,再通過(guò)圖像變換融合實(shí)現(xiàn)快速拼接。
FAST 特征點(diǎn)提取是速度較快的角點(diǎn)檢測(cè)算法之一,其過(guò)程主要包含非特征點(diǎn)檢測(cè)、特征點(diǎn)檢測(cè)、非極大值抑制[9]。FAST 特征點(diǎn)的獲取算法實(shí)現(xiàn)過(guò)程如下:
1)在待檢測(cè)灰度圖像中任選一點(diǎn)P,如圖1所示。以P點(diǎn)為圓心,以3 個(gè)像素為半徑畫(huà)圓,取如圖所示的16 個(gè)像素點(diǎn);
圖1 FAST 特征點(diǎn)示意圖Fig.1 Schematic diagram of FAST feature points
2)計(jì)算P1、P9與P點(diǎn)的灰度差,若其絕對(duì)值大于閾值 τ1,則計(jì)算P1、P5、P9、P13與中心P的灰度差,若其絕對(duì)值中有3 個(gè)及以上大于閾值 τ1,則計(jì)算P1~P16這16 個(gè)點(diǎn)與中心P的灰度差,若其絕對(duì)值中有9 個(gè)及以上大于閾值 τ1,則為候選特征點(diǎn),不滿足條件則丟棄;
3)非極大值抑制,找出以特征點(diǎn)P為中心的一個(gè)鄰域內(nèi)的所有特征點(diǎn),分別計(jì)算各個(gè)特征點(diǎn)與圓周上16 個(gè)像素點(diǎn)灰度差的絕對(duì)值的總和,若P點(diǎn)的這個(gè)值最大,則保留這個(gè)特征點(diǎn)。
算法流程圖如圖2所示。從原理上分析,F(xiàn)AST算法原理簡(jiǎn)單,計(jì)算量小,所以速度快。
圖2 FAST 特征點(diǎn)提取流程圖Fig.2 Flow chart of FAST feature points extraction
本文使用FAST 算法提取特征點(diǎn),通過(guò)灰度統(tǒng)計(jì)信息計(jì)算主方向和特征向量,進(jìn)而獲得SURF 描述子。實(shí)現(xiàn)過(guò)程如下:
1)確定特征點(diǎn)主方向。
以特征點(diǎn)為圓心,6S(S為特征點(diǎn)所在的尺度,本文的方法中,S取值為2)為半徑畫(huà)圓,計(jì)算區(qū)域內(nèi)所有像元x和y方向上的Haar 小波響應(yīng)dx和dy。Haar 小波計(jì)算時(shí),每個(gè)像元計(jì)算尺寸為4S,并對(duì)其進(jìn)行高斯函數(shù)加權(quán),然后通過(guò)一個(gè) 60°的扇形滑動(dòng)窗口對(duì)區(qū)域內(nèi)所有小波響應(yīng)進(jìn)行求和,值最大的方向即為特征點(diǎn)的主方向。
2)構(gòu)建SURF 描述子。
沿特征點(diǎn)主方向構(gòu)造一個(gè)20S×20S的矩形區(qū)域[10],并劃分為像元個(gè)數(shù)一致的16 個(gè)子區(qū)域。對(duì)每個(gè)子區(qū)域內(nèi)的所有像元計(jì)算尺寸為 2S的Haar 小波響應(yīng),分別定義為dx和dy,并對(duì)其進(jìn)行高斯函數(shù)加權(quán),累加dx和dy,累加dx和dy的絕對(duì)值,形成一個(gè)4 維特征向量v,把所有16 個(gè)子區(qū)域的4 維特征向量v組合起來(lái),就形成了一個(gè)64 維特征向量,即SURF 描述子。本文中為了提高匹配速率,對(duì)SURF 描述子進(jìn)行了降維,去掉矩形區(qū)域4 個(gè)角上的子區(qū)域,形成48 維特征向量。
傳統(tǒng)的SURF 算法和改進(jìn)FAST-SURF 算法流程圖如圖3所示。其中相同部分包括輸入兩幅待拼接圖像,分別提取兩幅圖中的特征點(diǎn),為每個(gè)特征點(diǎn)構(gòu)建SURF 描述子,確定特征點(diǎn)主方向,在兩幅圖中尋找滿足要求的匹配點(diǎn)對(duì),采用RANSAC方法求取兩幅圖之間的單應(yīng)性矩陣,對(duì)待拼接圖像進(jìn)行變換和融合,實(shí)現(xiàn)圖像拼接。改進(jìn)算法包括:在重疊區(qū)域用FAST 算法提取特征點(diǎn)并對(duì)描述子降維,采用自適應(yīng)最近鄰與次近鄰比值法和幾何約束法進(jìn)行特征點(diǎn)匹配,改進(jìn)RANSAC 算法等。
圖3 算法流程圖Fig.3 Flow chart of algorithm
圖像拼接中,特征點(diǎn)主要分布在圖像的重疊區(qū)域,在實(shí)際應(yīng)用中,相機(jī)安裝位置是固定的,可以提前計(jì)算出圖像序列之間的重疊區(qū)域,特征點(diǎn)檢測(cè)與匹配時(shí),僅在圖像重疊區(qū)域之間進(jìn)行,可以大幅度縮短計(jì)算時(shí)間。以2 個(gè)相機(jī)為例,圖4 是其幾何關(guān)系示意圖。具體計(jì)算步驟如下:?jiǎn)蝹€(gè)相機(jī)的水平拍攝角度為 α(即相機(jī)的水平視場(chǎng)角),相機(jī)安裝在一個(gè)半徑為r的圓面上,r通常很小,可以減小2 個(gè)相機(jī)之間的盲區(qū)和視差,相鄰相機(jī)之間的距離為L(zhǎng),圖像拼接重疊區(qū)域一般要求10%~50%,可通過(guò)(2)式計(jì)算圖像水平重疊區(qū)占比 τ2。
圖4 相鄰相機(jī)幾何關(guān)系示意圖Fig.4 Schematic diagram of geometrical relationship between adjacent cameras
本文采用KNN(K-nearest neighbour)算法[11],又叫K 最近鄰算法對(duì)特征點(diǎn)進(jìn)行匹配,衡量特征點(diǎn)匹配程度采用歐式距離,KD 樹(shù)進(jìn)行搜索。KNN 算法可以有效衡量鄰居的權(quán)重,距離較近的鄰居比距離遠(yuǎn)的鄰居所占權(quán)重高[12]。
參考圖像I1和待配準(zhǔn)圖像I2的特征點(diǎn)描述子分別是q=(q1,q2,···,qn),p=(p1,p2,···,pn),按(3)式計(jì)算q中每個(gè)描述子和p中所有描述子的歐式距離,并進(jìn)行從小到大排序,按照(4)式計(jì)算比值,dj1和dj2分別為最近和次近點(diǎn)間的歐式距離[13],該值反應(yīng)最近點(diǎn)與次近點(diǎn)的關(guān)系,當(dāng)這個(gè)值具有更大差異優(yōu)勢(shì)時(shí)才能構(gòu)成匹配點(diǎn),通過(guò)設(shè)置閾值 τ3可以剔除一部分錯(cuò)誤匹配點(diǎn)。
閾值 τ3的取值為[0.5,0.9],按照經(jīng)驗(yàn)值 τ3通常取0.6。在實(shí)際應(yīng)用中不同的測(cè)試圖像的最佳閾值是不同的,主要與獲取的粗匹配點(diǎn)數(shù)有關(guān),τ3越大獲得的匹配點(diǎn)越多,誤匹配點(diǎn)也越多,后續(xù)計(jì)算單應(yīng)性矩陣所需時(shí)間越長(zhǎng),效率越低;反之 τ3太小獲得的匹配點(diǎn)不足,后續(xù)無(wú)法計(jì)算出單應(yīng)性矩陣,且精度不高。因此必須合理選擇閾值 τ3,通過(guò)大量測(cè)試數(shù)據(jù),按下列方式自適應(yīng)選取閾值效果最佳。具體步驟如下:
1)KNN 算法獲取所有參考圖像I1和待配準(zhǔn)圖像I2匹配點(diǎn)的最近和次近點(diǎn)間的距離dj1和dj2,計(jì)算其比值并從小到大排序;
2)首先設(shè)置閾值 τ3=0.85,計(jì)算滿足τ3<0.85的匹配點(diǎn)個(gè)數(shù)M;
3)若M<100,則執(zhí)行步驟4);若100 ≤M≤1 000,τ3循環(huán)減0.005,直到計(jì)算的匹配點(diǎn)個(gè)數(shù)小于等于(4×M)/9+56,則執(zhí)行步驟4);若M>1 000,τ3循環(huán)減0.005,直到計(jì)算的匹配點(diǎn)個(gè)數(shù)小于等于0.5×M并且最大不超過(guò)750,則執(zhí)行步驟4);
4)完成特征點(diǎn)粗匹配。
經(jīng)過(guò)自適應(yīng)最近鄰與次近鄰比值法獲取粗匹配點(diǎn),其中依然存在錯(cuò)誤匹配點(diǎn),為了提高匹配精度,采用幾何約束法進(jìn)一步提純。兩張待匹配圖像,正確的匹配點(diǎn)之間的連線基本平行,其夾角在一定范圍內(nèi),如果存在錯(cuò)誤匹配點(diǎn),其夾角則不在此范圍內(nèi)。利用這個(gè)特點(diǎn)可剔除一些不滿足要求的匹配點(diǎn)。2 個(gè)粗匹配點(diǎn)的連線夾角α按(5)式計(jì)算,其中為匹配點(diǎn),W為圖像寬度。所有粗匹配的特征點(diǎn)之間的連線角度平均值記為αmean。
正確的角度應(yīng)該在平均值αmean附近,一般角度范圍為[αmean-5°,αmean+5°],在該角度范圍外的匹配點(diǎn)是錯(cuò)誤匹配點(diǎn),應(yīng)該刪除。
將上述方法獲取的匹配點(diǎn)對(duì),通過(guò)RANSAC 算法[14]按照(6)式計(jì)算單應(yīng)性矩陣H:
式中(x,y,1)與(x′,y′,1)為待匹配的特征點(diǎn)。單應(yīng)性矩陣H中a11、a12、a21、a22功能是旋轉(zhuǎn)、平移、縮放變換[15],a13、a23功能是水平和豎直方向的平移,a31、a32為梯形失真。在經(jīng)典的RANSAC 算法中,計(jì)算最佳模型參數(shù)是遍歷所有可能的組合,并以誤差最小的一組作為最佳參數(shù),往往導(dǎo)致計(jì)算量大、運(yùn)行時(shí)間長(zhǎng)。本文對(duì)該方法進(jìn)行了改進(jìn),包括減少計(jì)算單應(yīng)性矩陣樣本集個(gè)數(shù)和舍棄不合理參數(shù)模型。首先在數(shù)據(jù)集中選取6 對(duì)匹配點(diǎn),估計(jì)出初始模型,若6 對(duì)匹配點(diǎn)的檢驗(yàn)誤差都小于閾值,則用剩余的匹配點(diǎn)計(jì)算檢驗(yàn)誤差;否則重新選取6 對(duì)匹配點(diǎn),直到檢驗(yàn)誤差都小于閾值。其中第一次出現(xiàn)6 對(duì)匹配點(diǎn)滿足要求時(shí),計(jì)算檢驗(yàn)誤差,從小到大排序,按順序取80%的樣本作為新的數(shù)據(jù)集進(jìn)行下一個(gè)循環(huán)的迭代。該改進(jìn)方法縮短了最優(yōu)結(jié)果的計(jì)算時(shí)間,提高了算法的執(zhí)行效率。
改進(jìn)RANSAC 算法流程圖如圖5所示。
圖5 改進(jìn)RANSAC 算法流程圖Fig.5 Flow chart of improved RANSAC algorithm
改進(jìn)RANSAC 算法對(duì)異常匹配點(diǎn)具有良好的抗干擾能力,且具有很好的容錯(cuò)能力。
為了使圖像拼接更加平滑,融合前對(duì)待拼接圖像進(jìn)行了直方圖均衡化,減弱了曝光差異。將待拼接的兩幅圖像中的一幅圖像進(jìn)行投影變換,重疊部分像素值為0 的部分用另一幅圖像對(duì)應(yīng)位置的像素值進(jìn)行填充,可有效減弱拼接痕跡。本文圖像融合算法采用了漸入漸出加權(quán)融合算法。根據(jù)待融合像素點(diǎn)距重疊區(qū)域左邊界的距離,不斷改變左右兩幅圖之間像素點(diǎn)融合時(shí)的加權(quán)因子,以實(shí)現(xiàn)拼接后的圖像重疊區(qū)域內(nèi)像素值光滑變化。設(shè)I1(x,y),I2(x,y)分別是待融合的兩幅圖像,則融合圖像F(x,y)的像素值通過(guò)(7)式求解:
式中:γ是可調(diào)因子,0 <γ <1。令γ=d1/d,d=d1+d2,d1,d2表示重疊區(qū)域左、右邊界的距離。
為了驗(yàn)證本文優(yōu)化算法在特征點(diǎn)的提取、匹配效率以及拼接時(shí)間上的效果,進(jìn)行了以下對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為CPU Intel Corei5 8 400,主頻2.81 GHz,內(nèi)存8 GB,操作系統(tǒng)Windows 10,開(kāi)發(fā)環(huán)境為MATLAB R2013a。本文選取分辨率為992×744 pixels,存在旋轉(zhuǎn)、光照差異的圖像進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)中重疊區(qū)域?yàn)?0%,特征點(diǎn)提取和匹配都在重疊區(qū)域進(jìn)行。為了對(duì)比和驗(yàn)證本文優(yōu)化算法和傳統(tǒng)SURF 算法的性能,選取了均方根誤差(RMSE)[16]、圖像拼接總時(shí)間等5 個(gè)指標(biāo)進(jìn)行比較。均方根誤差的計(jì)算公式如下:
式中:pi和qi分別表示匹配點(diǎn)對(duì);H為兩幅圖像之間的單應(yīng)性矩陣;f(qi,H)表示qi經(jīng)矩陣H變換后的實(shí)際坐標(biāo);k為最終匹配點(diǎn)對(duì)的個(gè)數(shù),該項(xiàng)指標(biāo)反應(yīng)了兩幅圖之間的匹配精度。測(cè)試程序運(yùn)行100 次,求取各項(xiàng)指標(biāo)平均值,指標(biāo)對(duì)比結(jié)果如表1所示。
表1 本文優(yōu)化算法和傳統(tǒng)SURF 算法之間指標(biāo)對(duì)照表Table 1 Index comparison between optimized algorithm and traditional SURF algorithm
從表1 中可以看出,本文優(yōu)化算法和傳統(tǒng)SURF 算法相比,本文優(yōu)化算法提取的特征點(diǎn)個(gè)數(shù)要多,拼接效果如圖6所示。圖6(a)和6(b)為待拼接圖像。從圖6(c)和6(d)可以看出:傳統(tǒng)SURF 算法存在明顯的錯(cuò)誤匹配,并且特征點(diǎn)的分布范圍有限。本文優(yōu)化算法特征點(diǎn)分布范圍廣,經(jīng)過(guò)粗精匹配可有效剔除錯(cuò)誤匹配點(diǎn),有利于求取單應(yīng)性矩陣,從投影變換后的RMSE 相比可知,本文優(yōu)化算法明顯優(yōu)于傳統(tǒng)SURF 算法。從圖6(e)和6(f)可以看出,本文的圖像融合算法可以明顯消除拼接痕跡。從指標(biāo)量化角度出發(fā),本文優(yōu)化算法和傳統(tǒng)SURF算法相比較:特征點(diǎn)提取時(shí)間減少了30%,特征點(diǎn)匹配時(shí)間減少了45%,均方根誤差減小了35%,圖像拼接總時(shí)間減少了12%。從各項(xiàng)指標(biāo)對(duì)比來(lái)看,本文的方法是可行的,在匹配準(zhǔn)確率和效率上均有明顯提升。
圖6 傳統(tǒng)SURF 算法和改進(jìn)FAST-SURF 算法對(duì)比圖Fig.6 Comparison images of traditional SURF algorithm and improved FAST-SURF algorithm
本文提出了一種改進(jìn)的FAST-SURF 算法,和傳統(tǒng)的SURF 算法相比,在特征點(diǎn)提取區(qū)域、特征點(diǎn)提取方法、特征點(diǎn)描述子構(gòu)建、特征點(diǎn)匹配和單應(yīng)性矩陣獲取上進(jìn)行了改進(jìn),通過(guò)實(shí)驗(yàn)驗(yàn)證該算法在多數(shù)場(chǎng)景下具有拼接效果好、速度快的特點(diǎn)。該算法解決了傳統(tǒng)算法計(jì)算時(shí)間長(zhǎng),匹配精度低的問(wèn)題,具有一定的工程應(yīng)用價(jià)值。該方法對(duì)于圖像中存在尺度變化,以及圖像視差導(dǎo)致拼接縫合處存在“鬼影”和重影問(wèn)題,不能較好地適應(yīng),需要在以后的工作中進(jìn)一步優(yōu)化。