屈玳輝, 謝益武
(大連海事大學(xué) 信息科學(xué)技術(shù)學(xué)院,遼寧 大連 116033)
限于相機(jī)的畫幅,很難一次拍攝得到全景圖像,此時(shí)需要多次拍攝然后拼接得到全景圖像。在拍攝時(shí),由于拍攝平面不同,將會(huì)導(dǎo)致相鄰待拼接圖像具有視差,在配準(zhǔn)拼接時(shí)會(huì)出現(xiàn)重影,嚴(yán)重影響感官[1-4]。
國(guó)內(nèi)外許多學(xué)者對(duì)具有視差的圖像拼接算法進(jìn)行了研究。例如,張朝偉等[5]提出使用優(yōu)化SIFT算法[6](Scale Invariant Feature Transform)實(shí)現(xiàn)特征匹配,然后使用隨機(jī)采樣一致性算法得到內(nèi)點(diǎn),以此計(jì)算出相鄰圖像的變換參數(shù),然后完成融合。該算法對(duì)視差較小的圖像拼接效果較好,但是對(duì)具有大視差的圖像拼接效果較差,會(huì)出現(xiàn)嚴(yán)重重影;而且SIFT算法匹配速度較慢,嚴(yán)重影響拼接效率。謝雨來(lái)等[7]提出使用SURF(Speeded Up Robust Feature)算法[8]完成特征匹配,得到形變參數(shù)后,使用雙線性差值算法配準(zhǔn)圖像,最后使用加權(quán)平均法融合。SURF算法特征匹配速度遠(yuǎn)超過(guò)SIFT算法,可加速拼接算法;得到形變參數(shù)后對(duì)待拼接圖像重采樣,從而使配準(zhǔn)精度增加。為了得到更好的拼接圖像,有學(xué)者提出首先使用SIFT算法完成特征匹配,然后把拼接圖像劃分為前后景,分別計(jì)算前后景圖像的變換參數(shù),分別配準(zhǔn)融合[9]。該算法相較前兩種算法配準(zhǔn)精度較高,對(duì)視差較小的圖像配準(zhǔn)效果較好,但是對(duì)大視差圖像拼接效果不佳。文獻(xiàn)[10]提出APAP(As-Projective-As-Possible Image Stitching)模型,先使用SIFT算法完成特征匹配,再用隨機(jī)采樣一致性算法(Random Sample Consensus,RANSAC)篩選內(nèi)點(diǎn),然后對(duì)目標(biāo)圖像網(wǎng)格劃分建立Moving_DLT(Moving Direct Linear Transform)方程,根據(jù)特征點(diǎn)分布解Moving_DLT方程,并對(duì)每個(gè)網(wǎng)格形變矩陣高斯加權(quán),最后配準(zhǔn)圖像,對(duì)重疊區(qū)域加權(quán)融合。在APAP模型的基礎(chǔ)上,有學(xué)者提出盡可能投影算法(Adaptive As-Natural-As-possible,AANAP)[11],該算法對(duì)目標(biāo)圖像和待匹配圖像同時(shí)形變配準(zhǔn),并且借助隨機(jī)采樣一致性算法得到全局最優(yōu)相似變換矩陣,最大限度地減小拼接圖像的旋轉(zhuǎn)角度,使拼接效果更佳自然。Chen等[12]提出使用APAP模型初始化拼接圖像,然后對(duì)多張拼接圖像構(gòu)建局部相似項(xiàng)和全局相似項(xiàng)約束形變網(wǎng)格,盡可能減小全局投影失真。Lin等[13]提出內(nèi)容保護(hù)的視差拼接算法,先對(duì)待拼接圖像的輪廓線和直線檢測(cè),然后加入曲線和直線結(jié)構(gòu)保持約束項(xiàng),盡可能地保護(hù)圖像結(jié)構(gòu)信息。樊逸清等[14]提出基于線約束運(yùn)動(dòng)最小二乘法的拼接方法,首先借助SIFT算法完成特征匹配,然后使用RANSAC算法篩選內(nèi)點(diǎn)并計(jì)算得到參考圖像的最佳單應(yīng)變換矩陣,最后在重疊區(qū)域利用最大流最小割算法尋找最優(yōu)拼接縫完成拼接。薛佳樂等[15]提出對(duì)目標(biāo)圖像聚類劃分出多個(gè)子平面,然后利用APAP模型實(shí)現(xiàn)高精度配準(zhǔn)拼接。張冬梅等[16]提出一種改進(jìn)的APAP模型,先使用SIFT算法匹配特征點(diǎn),然后借助APAP模型計(jì)算網(wǎng)格單應(yīng)性矩陣,最后線性化處理單應(yīng)性矩陣完成拼接。
綜上所述,現(xiàn)有基于APAP模型拼接算法均未改變特征匹配和內(nèi)點(diǎn)篩選方法,而APAP模型對(duì)特征匹配的數(shù)量和質(zhì)量要求很高,隨機(jī)采樣一致性算法迭代的參數(shù)模型易把正確匹配點(diǎn)誤判為外點(diǎn),嚴(yán)重影響拼接質(zhì)量;SIFT算法特征匹配速度較慢,嚴(yán)重影響拼接效率。
針對(duì)APAP模型中SIFT算法效率較低、RANSAC算法魯棒性較差等問(wèn)題,本文提出一種改進(jìn)的APAP模型拼接方法。首先對(duì)匹配效率較高但穩(wěn)定性較差的ORB(Oriented FAST and Rotated BRIEF)算法[17]進(jìn)行改進(jìn),使用MLDB(Modified-Local Difference Binary)描述符[18]代替BRIEF(Binary Robust Independent Elementary Features)描述符[19];然后通過(guò)向量場(chǎng)一致性算法[20](Vector Field Consensus,VFC)篩選內(nèi)點(diǎn);最后借助APAP模型配準(zhǔn)拼接圖像。
APAP模型對(duì)特征匹配算法要求較高,故在本文中提出了改進(jìn)ORB算法,在盡可能不降低匹配效率的情況下提高魯棒性,并用向量場(chǎng)一致性算法篩選內(nèi)點(diǎn),最后完成配準(zhǔn)拼接,具體流程如圖1所示。
圖1 拼接算法流程圖
ORB算法首先需要構(gòu)建高斯金字塔,然后在金字塔中進(jìn)行特征點(diǎn)檢測(cè)和描述符建立。ORB算法借助FAST算法[21]在金字塔上提取特征點(diǎn),具體過(guò)程如下。
① 灰度圖像I(x,y)上像素點(diǎn)為p,以像素點(diǎn)p為中心選擇半徑為3個(gè)像素的圓,則圓上的像素點(diǎn)集合表示為{p1,p2,…,p16}。
② 設(shè)FAST算法的閾值t。
③ 計(jì)算集合{p1,p2,…,p16}中點(diǎn)p1、p9與圓心p的像素差,若絕對(duì)值皆大于閾值t,則保留像素p。
④ 集合{p1,p2,…,p16}中1、5、9、13等像素點(diǎn)與p計(jì)算像素值差,若任意3個(gè)值大于閾值t,則繼續(xù)判斷。
⑤ 將圓上的16個(gè)像素點(diǎn)分別與圓心p計(jì)算像素值差,若是有n個(gè)像素點(diǎn)差值的絕對(duì)值均大于閾值t,則圓心p為特征點(diǎn),n一般取12。
得到特征點(diǎn)后,以特征點(diǎn)為中心選擇合適的區(qū)域作為特征采樣區(qū)域。由于MLDB算法不具有方向不變性,故計(jì)算特征采樣區(qū)域矩的質(zhì)心方向作為MLDB描述符的主方向。
矩定義為
(1)
矩的質(zhì)心為
(2)
特征點(diǎn)的主方向可定義為
(3)
得到主方向后,提取特征采樣區(qū)域的MLDB描述符,具體構(gòu)建方式如下。
① 以特征點(diǎn)為中心選取合適的采樣區(qū)域P構(gòu)建MLDB描述符,采樣區(qū)域P劃分n×n個(gè)網(wǎng)格。計(jì)算n×n單個(gè)網(wǎng)格內(nèi)像所有像素值的平均值,表示為
(4)
式中,I(k)為灰度圖像的像素值;m為每個(gè)劃分網(wǎng)格內(nèi)的像素點(diǎn)的個(gè)數(shù);i為采樣區(qū)域一共被劃分網(wǎng)格的數(shù)量。
② 需要計(jì)算每個(gè)網(wǎng)格內(nèi)像素點(diǎn)在x和y方向上的梯度,根據(jù)每個(gè)網(wǎng)格平均像素值和網(wǎng)格像素的梯度值進(jìn)行編碼,可表示為
Func(·)={Funcintensity(i),Funcdx(i),Funcdy(i)}
(5)
式中,F(xiàn)uncintensity(i)=Iavg(i);Funcdx(i)=Gradientx(i)=dx;Funcdy(i)=Gradienty(i)=dy。
③ 由式(5)可得,構(gòu)建出MLDB描述符每一對(duì)網(wǎng)格比較得到的二進(jìn)制為3位,可用公式表示為
(6)
則MLDB描述符可表示為
(7)
得到MLDD描述符后,把描述符旋轉(zhuǎn)至主方向位置。式(3)中描述符主方向?yàn)棣?,則對(duì)應(yīng)的旋轉(zhuǎn)矩陣Rθ為
(8)
則旋轉(zhuǎn)后的MLDB描述符可表示為
gN(p,θ):=fN×Rθ
(9)
MLDB描述符類型為二進(jìn)制,故可用漢明距離衡量不同描述符的相似性。
(10)
式中,γ為混合系數(shù),表示隱變量zn的邊緣分布,即?zn,p(zn=1)=γ;θ={f,σ2,γ}包含所有的未知變量。對(duì)θ借助貝葉斯準(zhǔn)則估計(jì)最大后驗(yàn)解,可把p(Y|X,θ)等價(jià)轉(zhuǎn)化為最小化能量函數(shù):
(11)
式(11)可采用期望最大化算法(EM算法)求解。對(duì)式(11)使用EM算法求解,需先對(duì)θ參數(shù)項(xiàng)省略,然后可得到完全數(shù)據(jù)對(duì)數(shù)后驗(yàn):
(12)
E步:式(12)中使用θold表示當(dāng)前參數(shù)值,然后用來(lái)求解隱變量的后驗(yàn)分布。若是P=diag(p1,p2,…,pn)為對(duì)角陣,則pn=P(zn=1|xn,yn,θold)可用貝葉斯算法求得:
(13)
后驗(yàn)概率pn為一個(gè)軟指派,它表示第n個(gè)樣本與當(dāng)前估計(jì)出向量場(chǎng)f的相似程度。
M步:通過(guò)式θnew=argmaxxθQ(θ,θold)來(lái)確定修正參數(shù)θnew。因?yàn)镻表示為對(duì)角陣,則可對(duì)Q(θ)分別計(jì)算σ2和γ的導(dǎo)數(shù)并令為0,可得到式(14)和式(15):
(14)
γ=tr(P)/N
(15)
當(dāng)期望最大化算法收斂時(shí),可得到向量場(chǎng)f,然后通過(guò)預(yù)設(shè)定一個(gè)閾值τ,即可以得到成對(duì)特征點(diǎn)的內(nèi)點(diǎn)集合I:
I={n:pn>τ,n∈NN}
(16)
完成圖像特征匹配和內(nèi)點(diǎn)篩選后,需要通過(guò)APAP模型完成配準(zhǔn)拼接。圖像I和I′是一組待拼接圖像,它們對(duì)應(yīng)的匹配點(diǎn)為p=[x,y,1]T、p′=[x′,y′,1]。則對(duì)應(yīng)的變換關(guān)系為p′=h(p),可以表示為
(17)
(18)
齊次坐標(biāo)p=[x,y,1]T和p′=[x′,y′,1],對(duì)應(yīng)的變換關(guān)系表示為
p′~Hp
(19)
(20)
把式(20)化為Ah=O,即
(21)
對(duì)于圖像I和I′共有N組對(duì)應(yīng)匹配點(diǎn),則DLT算法單應(yīng)性矩陣h可表示為
(22)
APAP算法中提出Moving DLT算法模型,對(duì)式(22)添加權(quán)值進(jìn)行估計(jì)網(wǎng)格單應(yīng)性矩陣。則網(wǎng)格pj的自適應(yīng)矩陣表示為
(23)
式中,j=C1×C2,j為網(wǎng)格的數(shù)量,C1和C2為橫縱網(wǎng)格數(shù);Wj=diag(?ω1,j,ω1,j,…,ωN,j,ωN,j」),ω1,j=exp(-‖p-pj‖2/σ2),σ為高斯函數(shù)尺度因子,pj為網(wǎng)格內(nèi)特征點(diǎn)。得到j(luò)單應(yīng)性矩陣完成配準(zhǔn)后,對(duì)待拼接圖像的重疊區(qū)域加權(quán)融合得到拼接圖像。
本文實(shí)驗(yàn)主要分為兩個(gè)部分,第一部分驗(yàn)證所提改進(jìn)ORB算法和內(nèi)點(diǎn)篩選算法穩(wěn)定性;第二部分驗(yàn)證改進(jìn)APAP模型是否可以得到質(zhì)量更高的拼接圖像。
本文實(shí)驗(yàn)平臺(tái)為:Inel?CoreTMi7-8700 CPU @ 3.20 GHz,軟件平臺(tái)為Visual Studio 2015,并使用OpenCV 2.3視覺庫(kù)。圖2為文獻(xiàn)[10]提供的公用圖像拼接實(shí)驗(yàn)數(shù)據(jù)集,圖像尺寸均為800像素×1000像素×3像素。
使用SIFT算法、AKAZE算法、ORB算法與本文所提匹配算法對(duì)比實(shí)驗(yàn),如圖2所示,SIFT算法、AKAZE
圖2 實(shí)驗(yàn)圖像
算法、ORB算法內(nèi)點(diǎn)篩選均使用RANSAC算法,改進(jìn)ORB算法使用VFC算法篩選內(nèi)點(diǎn)。對(duì)SIFT和AKAZE算法均使用OpenCV 2.3默認(rèn)參數(shù);ORB算法中nfeatures設(shè)為10000,其他參數(shù)為默認(rèn)值;RANSAC算法使用OpenCV 2.3中findHomography()函數(shù),參數(shù)為默認(rèn)值。改進(jìn)ORB算法的nfeatures設(shè)為10000,VFC算法中閾值τ為0.2。OpenCV視覺庫(kù)利用FAST算法提取特征點(diǎn)后,會(huì)對(duì)每個(gè)特征根據(jù)HarrisResponses值排序,nfeatures值過(guò)小會(huì)致使部分特征點(diǎn)丟失,影響匹配效果。
SIFT算法首先構(gòu)建高斯金字塔,然后相鄰高斯金字塔層相減做高斯差分金字塔并提取特征點(diǎn),然后根據(jù)采樣區(qū)域梯度建立主方向,最后提取128維浮點(diǎn)型描述符。該算法魯棒性較強(qiáng),但是特征點(diǎn)提取和描述符構(gòu)建過(guò)程較為復(fù)雜,SIFT描述符為128維浮點(diǎn)型,計(jì)算歐式距離時(shí)速度較慢。AKAZE算法構(gòu)建非線性尺度空間,其與高斯尺度空間相比,可更好地保護(hù)圖像邊緣信息;使用MLDB算法構(gòu)建描述符,魯棒性要比傳統(tǒng)二進(jìn)制描述符強(qiáng);但解非線性函數(shù),耗時(shí)較長(zhǎng),算法效率較低。ORB算法的特征點(diǎn)檢測(cè)和描述符構(gòu)建過(guò)程較為簡(jiǎn)單,BRIEF描述符為二進(jìn)制,通過(guò)漢明距離衡量不同描述符相似性,計(jì)算速度較快;BRIEF描述符僅對(duì)兩兩像素值大小編碼,所能表達(dá)的信息有限,故魯棒性欠佳。隨機(jī)采樣一致性算法迭代計(jì)算參數(shù)模型,不僅耗時(shí)較長(zhǎng)且易把正確匹配點(diǎn)誤判為外點(diǎn)。
所提出的改進(jìn)ORB算法,使用MLDB算法提取匹配算法描述符,MLDB描述符不僅可對(duì)特征采樣區(qū)域內(nèi)的像素值大小進(jìn)行編碼,還可對(duì)采樣區(qū)域內(nèi)梯度信息編碼,故魯棒性相較BRIEF描述符更強(qiáng);VFC算法借助EM算法求解,內(nèi)點(diǎn)篩選效率遠(yuǎn)高于RSNASC算法迭代求解,且魯棒性更好。
圖像匹配數(shù)據(jù)統(tǒng)計(jì)如表1所示。由表1可知,所提算法匹配點(diǎn)數(shù)不是最多的,但內(nèi)點(diǎn)數(shù)和匹配正確率是最高的,可表明所提方法魯棒性最佳。除Park組外,SIFT算法雖匹配點(diǎn)數(shù)最多,但是匹配正確率卻遠(yuǎn)小于所提出的方法。AKAZE算法非線性尺度空間可更好地保護(hù)圖像邊緣信息,MLDB描述符魯棒性較好,故AKAZE算法魯棒性要優(yōu)于ORB算法。ORB算法特征點(diǎn)和描述符魯棒性都較差,故匹配正確率最低。
表1 圖像匹配數(shù)據(jù)統(tǒng)計(jì)
SIFT算法構(gòu)建的描述符為128維浮點(diǎn)型,利用歐氏距離衡量不同描述符相似性時(shí),耗時(shí)較長(zhǎng),故SIFT算法匹配時(shí)間最長(zhǎng)。ORB算法構(gòu)建256-bit二進(jìn)制描述符,通過(guò)漢明距離衡量不同描述符的相似性,故匹配速度最快。改進(jìn)ORB算法的MLDB描述符需計(jì)算像素梯度,故提取速度低于BRIEF描述符,因此所提出的算法速度不及ORB算法。AKAZE算法構(gòu)建尺度空間時(shí),需解非線性方程,迭代計(jì)算耗時(shí)較長(zhǎng),故匹配速度不及所提出的算法。RANSAC算法需迭代計(jì)算參數(shù)模型,耗時(shí)較長(zhǎng);本文所用的VFC算法,效率遠(yuǎn)超過(guò)RANSAC算法。
使用GlobalHomography算法、APAP模型、AANAP模型與本文算法進(jìn)行對(duì)比實(shí)驗(yàn),GlobalHomography算法、APAP模型和AANAP模型均使用SIFT算法特征匹配,APAP模型、AANAP模型和本文改進(jìn)APAP模型網(wǎng)格數(shù)量均為100×100。網(wǎng)格數(shù)量越多,重疊區(qū)域配準(zhǔn)精度越高,但會(huì)導(dǎo)致效率降低。
通過(guò)計(jì)算重疊區(qū)域?qū)?yīng)拼接像素點(diǎn)的誤差均方根(Root Mean Squared Error,RMSE)判定拼接質(zhì)量[22],計(jì)算公式為
(24)
表2 不同算法的RMSE值
GlobalHomography算法僅計(jì)算單個(gè)形變參數(shù)進(jìn)行配準(zhǔn),對(duì)于具有視差的拼接圖像配準(zhǔn)效果較差,故誤差均方根最大。APAP模型通過(guò)匹配特征分布得到網(wǎng)格單應(yīng)性矩陣,由表1可知,原APAP模型中SIFT+RANSAC算法得到的內(nèi)點(diǎn)數(shù)不及所提出的算法,故與所提出的算法相比,網(wǎng)格單應(yīng)性矩陣對(duì)齊精度較低、重疊區(qū)域誤差均方根較高。AANAP模型雖借助APAP模型初始化網(wǎng)格單應(yīng)性矩陣,但需要與全局最優(yōu)相似變換矩陣加權(quán)疊加,從而導(dǎo)致重疊區(qū)域配準(zhǔn)精度下降,故AANAP模型的RMSE值高于APAP模型。
GlobalHomography算法、APAP模型和AANAP模型使用SIFT算法完成特征匹配,SIFT算法魯棒性較好,但匹配速度較慢。APAP模型解Moving DLT方程得到多個(gè)網(wǎng)格單應(yīng)性矩陣,故配準(zhǔn)速度不及GlobalHomography算法。AANAP模型不僅需要解Moving DLT方程,還需要迭代計(jì)算全局最優(yōu)相似變換矩陣,故匹配效率低于APAP模型。所提出的拼接算法使用改進(jìn)ORB算法匹配速度遠(yuǎn)超過(guò)SIFT算法,故拼接速度較快,具體拼接時(shí)間如表3所示。
表3 不同算法的拼接時(shí)間 單位:s
應(yīng)用所提出的拼接模型對(duì)圖2所示的圖像進(jìn)行拼接,拼接效果如圖3所示,從視覺角度判斷,無(wú)明顯差異,重疊區(qū)域融合效果較好,符合審美要求。
圖3 實(shí)驗(yàn)圖像拼接效果
針對(duì)相機(jī)畫幅限制,一次拍攝得不到場(chǎng)景全局圖像,提出一種基于改進(jìn)ORB算法的大視差圖像拼接模型。首先使用FAST算法提取局部特征并特征采樣區(qū)域建立主方向,然后建立MLDB描述符并通過(guò)漢明距離衡量不同描述符的相似性完成匹配,再使用VFC算法篩選內(nèi)點(diǎn),最后借助APAP模型完成配準(zhǔn)融合。與現(xiàn)有算法相比,所提出的算法對(duì)重疊區(qū)域配準(zhǔn)精度較高,拼接效果較好,拼接效率較高。