王 博,管永紅,劉 洋
(1.中國工程物理研究院流體物理研究所,四川綿陽 621900;2.中國工程物理研究院研究生院,四川綿陽 621900)
圖像配準(zhǔn)作為圖像處理中的一項基本問題,用于求解在不同時間、不同探測器、不同角度等所獲取的多幅圖像的最佳的幾何變換,主要應(yīng)用于圖像拼接、圖像檢索、圖像融合等領(lǐng)域[1-3]。在圖像配準(zhǔn)中,圖像特征點提取與匹配又是關(guān)鍵的步驟。2004 年Lowe 提出了的SIFT 算法,因其尺度、旋轉(zhuǎn)等的不變性而被廣泛應(yīng)用于圖像配準(zhǔn)領(lǐng)域[4-5]。但SIFT 算法仍存在一些缺點,研究人員也提出了諸多改進(jìn)。Bay提出的SUFT 算法通過引入Hessian 矩陣和對積分圖像進(jìn)行操作來提高速度,但對于邊緣光滑的特征點提取能力較弱[6-7]。韓宇等人提出簡化的SIFT 特征描述子,將矩形區(qū)域改為圓形區(qū)域來降低描述子的維度[8]。陳抒瑢等人提出Contourlet-SIFT 算法,該算法對尺度不變的特征進(jìn)行Contourlet 變換,并建立全局紋理描述子,適用于尺度和方向等變換比較明顯的場景[9]。李欽等提出PCA-SIFT 特征匹配算法,對SIFT 特征描述子進(jìn)行主成分分析,降低了SIFT 特征描述子的維度,從而提高配準(zhǔn)速度,但是PCA 算法的引入也增加了計算量[10]。許佳佳等提出基于Harris的SIFT 算法,該算法通過構(gòu)建尺度空間使得Harris角點具有尺度不變性,并借鑒Forsnters 算子的思想進(jìn)行角點的精確定位[11]。目前室內(nèi)全景圖像在室內(nèi)設(shè)計、全景建模等領(lǐng)域有重要應(yīng)用,而構(gòu)建室內(nèi)全景圖像需要對采集到的圖像進(jìn)行配準(zhǔn)。在采集過程中相鄰兩幀圖像較為連續(xù),旋轉(zhuǎn)角較小,但SIFT 算法的特征點檢測和描述過程較為復(fù)雜,計算量較大[12]。為了提高配準(zhǔn)效率,文中提出了一種改進(jìn)的SIFT 算法,通過優(yōu)化尺度空間的構(gòu)建過程,引入BRIEF 特征描述子[13],替換SIFT 特征描述子完成特征點的檢測和描述。實驗證明,改進(jìn)的SIFT 算法在運算速度和準(zhǔn)確率上較原始SIFT 算法都有提高。
圖像的特征點檢測主要包括:尺度空間生成、DOG 圖像生成、尺度空間極值點檢測和定位等步驟[14]。
特征點的檢測需要構(gòu)建高斯金字塔,SIFT 算法中的高斯金字塔區(qū)別于多分辨金字塔。為了體現(xiàn)尺度的連續(xù)性,在SIFT 算法中,高斯金字塔不僅需要簡單的下采樣,高斯濾波也用于生成多尺度圖像。最后,一幅圖像可以產(chǎn)生若干組圖像,而一組圖像包括多層圖像。
高斯拉普拉斯(LOG) 算子是一種二階導(dǎo)數(shù)算子,在特征檢測中有廣泛的應(yīng)用[15]。LOG 算子首先計算圖像的二階微分,后通過檢測二階微分的零點來識別目標(biāo)邊緣。LOG 算子的表達(dá)式如式(1)所示:
通過在相鄰的高斯空間中對一定尺度的圖像進(jìn)行特征相減,可以獲得DOG 響應(yīng)值圖像D(x,y,σ),DOG 的表達(dá)式計算公式如式(2)所示:為了在尺度空間中完成極值點的搜索,需要將每個采樣點與周圍的8 個點、上下尺度的9 個點,一共是26 個點進(jìn)行比較[16]。
上述極值點的檢測過程是在離散空間中完成的,因此檢測到的有可能并不是真正的極值點,為了使得到的極值點更加精確,通常會使用子像元插值法得到連續(xù)空間的極值點[17]。
因DOG 對圖像的邊緣有很強的響應(yīng),如果特征點落在了邊緣點上就會變成一個不穩(wěn)定的點,為了獲得穩(wěn)定的點,需要對落在邊緣上的特征點進(jìn)行剔除。邊緣點的剔除需要計算局部極值點所在位置和尺度的Hessian 矩陣。Hessian 矩陣可表示為:
計算得到Hessian 矩陣的兩個特征值λ1和λ2(假設(shè)λ1>λ2),如果λ1?λ2,則說明該特征點為邊緣點。Hessian 矩陣的跡和行列式表達(dá)式如式(4)~(5)所示:
因為計算特征值的過程比較耗時,為了規(guī)避該過程,根據(jù)Hessian 矩陣的跡等于Hessian 矩陣的兩個特征值的和,Hessian 矩陣的行列式等于兩個特征值的乘積這兩個結(jié)論,令r=λ1/λ2,則有:
由式(6)可知,結(jié)果只與兩個特征值的比值r有關(guān)系,當(dāng)式(6)的比值比較大的時候,說明該點為邊緣點。因此,只需要設(shè)置閾值與式(6)的結(jié)果進(jìn)行比較即可篩選出邊緣點。
在SIFT 算法中,構(gòu)造了4 層Octave 來進(jìn)行特征點的檢測以適應(yīng)更大的尺度變化。雖然4 層Octave可以適應(yīng)更大的尺度變換,但在提高算法魯棒性的同時也增加了構(gòu)建尺度空間和檢測特征點的時間。在室內(nèi)全景圖像配準(zhǔn)的場景中,相鄰幀圖像的尺度變化、旋轉(zhuǎn)、縮放等較小,為了提高配準(zhǔn)效率,文中統(tǒng)計了室內(nèi)圖像不同尺度的特征點數(shù)目和提取這些特征點需要的時間,統(tǒng)計結(jié)果如表1、表2 所示。
其中,測試的數(shù)據(jù)來自用于評估圖像對齊方法的PASSTA 數(shù)據(jù)集。通過表1 和表2 可知,在室內(nèi)圖像構(gòu)建的第3、4 個Octave 中僅僅提取出少量特征點,但是卻造成了極大的時間損耗。為了提高室內(nèi)全景圖像配準(zhǔn)效率,文中拋棄提取特征點較少的最后兩個Octave,僅利用提取特征點較多的前兩個Octave 完成特征點的檢測,改進(jìn)的圖像Octave 如圖1所示。
表1 不同Octave提取特征點個數(shù)統(tǒng)計
表2 不同Octave提取特征點和計算描述子時間統(tǒng)計
圖1 改進(jìn)的圖像Octave
在原始SIFT 算法中得到特征點之后,應(yīng)當(dāng)對特征點進(jìn)行描述。首先,需要對特征點的鄰域做直方圖統(tǒng)計[18],直方圖的橫坐標(biāo)將0°到360°以10°為間隔平均分成36 份,直方圖的列代表梯度方向的累加值。為了使特征點具有旋轉(zhuǎn)不變性,計算SIFT 特征描述子時需要將區(qū)域旋轉(zhuǎn)至主方向,而主方向即直方圖峰值對應(yīng)的角度。將區(qū)域劃分成4 × 4 個子區(qū)域,在每個子區(qū)域內(nèi)使用8 方向的梯度直方圖進(jìn)行統(tǒng)計[16,19],圖2 所示為特征點描述的示意圖。因此,形成了128 個的描述子,這128 個特征描述子就是SIFT 描述子。最后,再進(jìn)行歸一化以消除光照的影響,得到了最終的SIFT 特征描述子。
SIFT 特征描述子具有較高的抽象特征能力,因此,對圖像旋轉(zhuǎn)有很強的適應(yīng)性,但這也提高了特征點描述子的計算復(fù)雜度和匹配的復(fù)雜度。在室內(nèi)全景圖像的配準(zhǔn)中,由于圖像拍攝較連續(xù),旋轉(zhuǎn)角度較小,不需要用較為復(fù)雜的特征描述子描述,因此,采用較為簡潔的BRIEF 特征描述子來代替SIFT 的特征描述子。
圖2 SIFT特征描述子
BRIEF 特征描述子提供了一種計算二值化特征描述子的方法,如圖3 所示。BRIEF 特征描述子在特征點周圍選擇一個區(qū)域,在區(qū)域中挑選出來n個點對,對于每一個點對(p,q),比較這兩個點的亮度值,如果I(p)>I(q),則這個點對生成的描述符中的值為1,否則為0。完成n個點對的計算之后,就會生成一個二進(jìn)制串的特征描述子。BRIEF 特征描述子相對于SIFT 特征描述子而言,只有0 和1 兩個值,不僅簡化了特征描述子的計算過程,同時也簡化了后續(xù)特征點的匹配計算流程。
圖3 BRIEF特征描述子
為了證明改進(jìn)特征描述子的有效性,文中針對3 幅室內(nèi)圖像的前兩個Octave,統(tǒng)計SIFT 特征描述子和BRIEF 特征描述子所耗費的時間,統(tǒng)計結(jié)果如表3 所示。
表3 SIFT和BRIEF計算耗時統(tǒng)計
完成了對室內(nèi)圖像的特征點檢測和描述之后,首先,需要對兩幅室內(nèi)圖像生成的特征點進(jìn)行匹配,從左室內(nèi)圖像中循環(huán)獲取特征點,針對左圖中的每一個特征點,在右圖中匹配與之對應(yīng)的特征點。匹配過程使用KNN 算法,為每個特征點返回匹配的兩個點,在這兩個特征點中,當(dāng)最近的距離與次近的距離的比率小于0.75 時,認(rèn)為這兩個點是一對匹配點。
為了證明改進(jìn)SIFT 算法的有效性,文中進(jìn)行了必要的對比實驗。實驗均在MacBook Pro (13-inch,2018,Four Thunderbolt 3 Ports)上進(jìn)行。處理器為2.3 GHz Intel Core i5,內(nèi) 存8 GB。編 程 環(huán) 境 為Python3.6。采用PASSTA 數(shù)據(jù)集作為原始數(shù)據(jù)來檢驗圖像配準(zhǔn)效果。通過實驗,對比改進(jìn)SIFT 算法與原始SIFT 算法在配準(zhǔn)準(zhǔn)確率、配準(zhǔn)點對個數(shù)和配準(zhǔn)時間上區(qū)別。其中,配準(zhǔn)精度計算公式如式(7)所示:
其中,TP表示正確配準(zhǔn)的點對數(shù),F(xiàn)P表示錯誤被匹配到的點對數(shù),P表示配準(zhǔn)精度。配準(zhǔn)時間是兩幅圖像從特征點檢測到完成最終的圖像配準(zhǔn)所消耗的總時間。
圖4 為從數(shù)據(jù)集中挑選的待配準(zhǔn)的兩幅室內(nèi)圖像,圖像大小為456*684。圖5 為使用原始SIFT 算法后得到的配準(zhǔn)圖像,圖6 為使用改進(jìn)的SIFT 算法得到的配準(zhǔn)圖像。
圖4 待配準(zhǔn)圖像
圖5 SIFT算法配準(zhǔn)結(jié)果
圖6 改進(jìn)SIFT算法配準(zhǔn)結(jié)果
統(tǒng)計配準(zhǔn)精度、配準(zhǔn)點個數(shù)以及配準(zhǔn)時間如表4所示。
表4 實驗結(jié)果對比
文中提出了一種改進(jìn)SIFT 的室內(nèi)全景圖像配準(zhǔn)算法,提取特征點的過程中通過改變高斯金字塔的結(jié)構(gòu)進(jìn)行快速特征點提取。此外,在特征點描述時使用了BRIEF 特征描述子來代替SIFT 特征描述子,并使用KNN 算法完成特征點的匹配,最終高效的完成了室內(nèi)全景圖像配準(zhǔn)工作。實驗結(jié)果表明,在室內(nèi)全景圖像的配準(zhǔn)任務(wù)中,該算法較原始SIFT算法,大大縮短了配準(zhǔn)時間,并提高了配準(zhǔn)準(zhǔn)確率,可以高效的完成室內(nèi)全景圖像的配準(zhǔn)任務(wù)。