石祥濱 賈賀林
1(遼寧大學(xué)信息學(xué)院 遼寧 沈陽 110000)2(沈陽航空航天大學(xué)信息學(xué)院 遼寧 沈陽 110000)
隨著時代的發(fā)展,圖像處理的相關(guān)成果已經(jīng)逐漸應(yīng)用到人類生活的方方面面,而圖像拼接作為圖像處理中的重要內(nèi)容,受到了研究人員的廣泛關(guān)注。隨著無人機等航拍設(shè)備的普及,對航拍圖像的處理逐漸成為研究的熱點。在航拍圖像拼接領(lǐng)域,對圖像進行網(wǎng)格化劃分并進行網(wǎng)格優(yōu)化已經(jīng)成為圖像拼接的重要手段之一[1-2]。為了解決航拍圖像拼接中的誤匹配和重影問題,本文提出一種基于控制點進行網(wǎng)格優(yōu)化的圖像拼接方法,對無人機拍攝的航空圖像,使用拼接算法形成更大視角,更廣范圍的圖像,因此對拼接過程中的精度有很嚴(yán)格的要求。
航拍圖像拼接過程主要面臨兩個挑戰(zhàn):圖像配準(zhǔn)和圖像融合。配準(zhǔn)就是通過對待拼接圖像進行變換,使其和參考圖像處于統(tǒng)一的坐標(biāo)系中;融合就是將兩幅甚至多幅圖像中的重疊區(qū)域進行合成,目的是實現(xiàn)圖像的無縫拼接。文獻[3-4]提出的Auto Stitch算法是應(yīng)用于opencv和photoshop中的拼接算法,但是Auto Stitch需要滿足不同圖像的重疊區(qū)域位于同一平面和尺度,因此在拼接過程中會導(dǎo)致拼接精度跟隨圖像尺度變化產(chǎn)生較大波動。為了提高全局對齊能力,文獻[5]提出一種SVA算法,提供了一種通過局部網(wǎng)格的仿射變換來完成圖像的全局對齊的方法。根據(jù)SVA算法的基本思想,文獻[6]提出了APAP算法,將圖像區(qū)域劃分為密集獨立的網(wǎng)格,實現(xiàn)圖像在局部和整體上同步變換,提高了視差圖像的魯棒性。由于缺乏配準(zhǔn)階段的平滑約束,文獻[7]改進Seam-driven算法對拼接縫隙優(yōu)化,通過圖像自然形狀約束,最大限度保持圖像自然狀態(tài)的形狀控制算法。文獻[8]在2014年提出了SPHP(Shape-Preserving Half-Projective)的網(wǎng)格變換方法,將圖像區(qū)域分為重疊區(qū)域,過渡區(qū)域和非重疊區(qū)域,并在不同區(qū)域進行對應(yīng)的圖像變換以提高拼接精度。文獻[9]在2015年提出了AANAP(Adaptive As-Nature-As-Possive)方法,在圖像網(wǎng)格的劃分過程中將圖像的局部映射和全局相似性變換相結(jié)合,重疊區(qū)域的過渡更加平滑,但在圖像邊緣容易產(chǎn)生畸變。圖像拼接過程中對圖像精度的要求很高,而航拍圖像的規(guī)模大,場景中目標(biāo)小,提取特征點和計算圖像矩陣都比較復(fù)雜,因此不僅需要在拼接中提高圖像精度,更要考慮算法的執(zhí)行效率。
針對航拍圖像拼接過程中出現(xiàn)的問題,本文在特征點檢測階段使用了LIFT[10]特征點學(xué)習(xí)模型,通過學(xué)習(xí)模型得到的特征點更加豐富準(zhǔn)確,使用RANSAC[11]方法得到更好的特征點匹配結(jié)果,圖像配準(zhǔn)階段使用全局網(wǎng)格和控制點結(jié)合最小二乘網(wǎng)格約束[12]的方法進行優(yōu)化,最后使用加權(quán)泊松融合進行圖像融合得到拼接結(jié)果。通過LIFT特征點解決航拍圖像中特征點數(shù)量稀疏,匹配精度不高的問題,在圖像配準(zhǔn)過程中使用網(wǎng)格變換對重疊區(qū)域進行平滑,最大限度地降低重影誤差,使過渡區(qū)域自然平滑。最后在融合階段中使用加權(quán)泊松融合,平滑細(xì)化圖像重疊區(qū)域的拼接縫隙,形成最終的拼接結(jié)果。
本文的圖像拼接算法首先使用LIFT學(xué)習(xí)模型檢測提取出圖像中的特征點信息,并對特征點進行匹配,然后使用RANSAC進行特征點的篩選,從而得到圖像間特征點的對應(yīng)關(guān)系,在匹配的特征點中篩選控制點信息,首先剔除位置獨立的特征點,然后剔除周圍比較稀疏的特征點,最后根據(jù)步長對控制點數(shù)量進行調(diào)整??刂泣c的篩選取決于特征點的密集程度和均勻分布。根據(jù)篩選得到的控制點和特征點生成網(wǎng)格,同時使用最小二乘網(wǎng)格約束對網(wǎng)格進行優(yōu)化調(diào)整,建立拼接誤差方程,通過求解最小化拼接誤差方程完成圖像的配準(zhǔn),最后使用加權(quán)泊松融合[13]消除拼接痕跡,從而得到更加準(zhǔn)確的拼接結(jié)果。本文算法流程如圖1所示。
圖1 航拍圖像拼接算法流程圖
本文使用LIFT(Learned Invariant Feature Transform)特征點學(xué)習(xí)模型進行特征點的檢測,LIFT特征點學(xué)習(xí)模型是基于一種全新架構(gòu)下的深度學(xué)習(xí)模型,主要包含3個部分:特征點檢測DET[14]、方向估計ORI[15]和特征點描述子DESC[16]。每一部分都基于卷積神經(jīng)網(wǎng)絡(luò),使用Spatial transformer networks[17]完成各部分的轉(zhuǎn)換連接,最后學(xué)習(xí)得到特征描述子。LIFT特征點檢測的算法描述如算法1所示。
算法1 LIFT特征點檢測算法
輸入:圖像中的圖像塊P
輸出:潛在特征點描述子向量集D={d0,d1,…,dn}
1.S
//P的得分圖
2. 潛在特征點集kp[(x1,y1),…,(xm,ym)]
//對S使用NMS
3. for eachkpdo
4. 以kp為中心的圖像塊p
5. ROI層計算p的方向θ
6.pθ
//通過θ旋轉(zhuǎn)后圖像塊p
7.d
//DESC層計算pθ
8. adddtoD
9. end for
10. returnD
通過算法1對圖像提取特征點信息,可以進一步得到匹配后的特征點信息,與SIFT算法的特征點匹配效果進行比較,LIFT算法得到了數(shù)量更多的特征點匹配信息。
為了提高航拍圖像拼接的精度,本文主要使用最小二乘網(wǎng)格進行圖像配準(zhǔn)中的網(wǎng)格調(diào)整,使用最小化能量方程進行網(wǎng)格優(yōu)化。網(wǎng)格優(yōu)化之前首先要對特征點進行分類,篩選出可以生成網(wǎng)格的控制點。本文通過對特征點進行分類的方法篩選出控制點,具體過程如算法2所示。
算法2 生成控制點
輸入:特征點位置信息集合fp{(x1,y1),…,(xn,yn)}
輸出:控制點位置信息集合cp{(x1,y1),…,(xm,ym)}
1.sumlfp←0,h
//給定步長
2. forfpfromi+50 ton-49
3. forjfromi-50 toi+49
4.d(fp[i],fp[j])
//計算兩點之間的距離
5.aved←sum(d)/100
6. ifd(fp[i],fp[j])>aved
7.lfp[j]←1,sumlfp++
8. end if
9. ifsumlfp>80
10.Lfp[i]
//1
11. elseLfp[i]
//-1
12. end if
13. end for
14. end for
15. 利用Lfp[i]的值進行第二步篩選
16. 根據(jù)篩選結(jié)果重新排序fp{(x1,y1),…,(xp,yp)}
17. forkfor 1 top
18. ifk%h
//0
19. addfp[k] tocp
20. end if
21. end for
22. renturn cp
本文的控制點生成建立在特征點十分密集的基礎(chǔ)之上,航拍圖像在重疊區(qū)域超過30%的情況下即可滿足控制點生成條件。通過第二步對特征點設(shè)定標(biāo)記值,將位置相隔較遠(yuǎn)的特征點也就是位置較為獨立的特征點篩除。接下來對點信息相對稀疏的特征點進行篩除,尤其是臨近節(jié)點中獨立特征點較多的特征點,保留特征點密集的位置信息。最后對控制點的數(shù)量進行控制,通過設(shè)定步長,保留圖像位置信息較為均勻的特征點作為控制點。
本文通過特征點的篩選,可以得到10%~20%左右的控制點信息,控制點的數(shù)量受圖像視角以及圖像重疊區(qū)域大小的影響,對控制點數(shù)量的控制有助于簡化后續(xù)的配準(zhǔn)計算。
特征點的篩選比較如圖2所示。
圖2 特征點和控制點比較
最小二乘網(wǎng)格是在拉普拉斯網(wǎng)格[18]的基礎(chǔ)上提出的,又被稱為全局的拉普拉斯光順網(wǎng)格。在網(wǎng)格調(diào)整過程中給出了最小二乘約束方程,通過約束方程將網(wǎng)格調(diào)整問題轉(zhuǎn)化為求解最小二乘最優(yōu)解問題。
(1)
式中:系數(shù)wij的總和為1。
(2)
(3)
對上式中的系數(shù)還需進行歸一化系數(shù)處理,最小二乘網(wǎng)格中的拉普拉斯系數(shù)可以通過一個n×n的矩陣來表示:
(4)
(5)
(6)
將上述方程轉(zhuǎn)化為最小二乘中求解最優(yōu)Vi的問題,可以表示為:
(7)
構(gòu)造的最小二乘網(wǎng)格和添加控制點的最小二乘網(wǎng)格的示意如圖3所示。
圖3 均勻網(wǎng)格和加入控制點網(wǎng)格
假設(shè)生成了3×3的均勻網(wǎng)格,網(wǎng)格頂點v1至v9,網(wǎng)格中存在兩個控制點分別為v10和v11,網(wǎng)格的生成方式如上,拉普拉斯坐標(biāo)矩陣也從9×9變化為11×9,同時矩陣b中增加兩行,對應(yīng)控制點的坐標(biāo)信息,對生成的超定方程組求最小二乘解就能得到圖像變換矩陣。
網(wǎng)格優(yōu)化的問題可以分為四部分:局部配準(zhǔn)階段、全局配準(zhǔn)階段、平滑階段和最終調(diào)整階段[20]。本文使用I1、I2、I3分別表示輸入圖像、預(yù)拼接圖像、拼接完成圖像。本文算法主要改進了平滑階段的誤差方程,使用控制點結(jié)合最小二乘約束進行誤差計算,完成配準(zhǔn)優(yōu)化。
在局部配準(zhǔn)階段中,p′表示特征點p在預(yù)拼接圖像I2中的對應(yīng)特征點,p″表示特征點p在拼接完成圖像I3中的對應(yīng)特征點,V′表示預(yù)拼接圖像中的網(wǎng)格頂點,對包含在網(wǎng)格內(nèi)的特征點使用鄰近網(wǎng)格頂點的線性組合表示,線性組合的系數(shù)通過線性插值計算來得到,對局部配準(zhǔn)的誤差方程表示如下:
(8)
圖像的全局區(qū)域需要盡可能地保留圖像的自然形態(tài),為此,應(yīng)該盡可能使結(jié)果接近預(yù)拼接的近似結(jié)果。因此在全局配準(zhǔn)階段中設(shè)置一個二值函數(shù)Bi,其取值方法描述為:若頂點Vi附近沒有特征點就設(shè)為1,否則設(shè)為0。
(9)
本文通過控制點生成最小二乘網(wǎng)格對圖像重疊區(qū)域進行平滑處理,通過控制點和特征點進行網(wǎng)格調(diào)整優(yōu)化,使用最小二乘網(wǎng)格約束計算平滑誤差,如下式:
(10)
與其他的約束條件相比,最小二乘網(wǎng)格約束在計算過程中增加了控制點的約束條件。在網(wǎng)格調(diào)整過程中,圖像矩陣的計算最為重要,不僅決定了圖像拼接中的精度,而且影響算法的執(zhí)行效率。添加控制點集信息,在計算過程中極大程度地避免了圖像矩陣的無解情況,提高了圖像矩陣的計算精度,雖然增加了額外的參數(shù)控制和計算開銷,但是算法效率并未受到太大影響。在網(wǎng)格調(diào)整過程中,對拉普拉斯系數(shù)矩陣、頂點集合位置、拉普拉斯坐標(biāo)矩陣和控制點集合信息的計算和使用,有效提高了圖像拼接中的配準(zhǔn)精度。
最后將配準(zhǔn)階段的總誤差E表示如下:
E=Ep+Eg+Es
(11)
通過求解最優(yōu)化方程E,完成對圖像的最小二乘網(wǎng)格優(yōu)化,得到精確的配準(zhǔn)和拼接結(jié)果。
本文使用加權(quán)泊松融合方法將配準(zhǔn)過后的圖像進行融合,傳統(tǒng)的漸進圖像融合計算簡單,容易實現(xiàn),但很難得到精確的融合結(jié)果,缺乏對光照變換的魯棒性;泊松圖像編輯[19]通過求解泊松方程來實現(xiàn)圖像的無縫融合。本文將加權(quán)漸進圖像融合和泊松圖像融合結(jié)合起來完成圖像融合。
首先使用下式進行加權(quán)漸進融合:
(12)
式中:w1、w2代表權(quán)值,滿足w1+w2=1,0 如圖4所示。泊松融合的基本思想是利用圖像指導(dǎo)場(梯度場)對重疊區(qū)域進行插值處理,以得到重疊區(qū)域內(nèi)的像素值,完成圖像重疊區(qū)域的融合。 圖4 泊松融合 圖4中:v為原始圖像中的圖像塊,也是需要融合的重疊區(qū)域;u為v的梯度場;S表示拼接融合后的圖像,Ω表示融合圖像中的重疊區(qū)域,?Ω為重疊區(qū)域的邊界。重疊區(qū)域內(nèi)的像素值為f,重疊區(qū)域外的像素值為f*。圖像融合過程中需要在邊界處盡可能過渡平滑,降低圖像邊界像素值差異,因此只需要根據(jù)重疊區(qū)域Ω內(nèi)的梯度值進行像素插值即可。由于融合后的圖像需要保持原圖像的紋理特征,像素值f可通過下式計算: (13) Δf=div(u)=div(▽v)f|?Ω=f*|?Ω (14) div(u)表示梯度場u的散度。通過對梯度場的散度計算以及歐拉-拉普拉斯方程,就可以得到重疊區(qū)域的像素值f,完成圖像區(qū)域融合。圖像融合算法的描述如算法3所示。 算法3 圖像融合算法 輸入:配準(zhǔn)后的預(yù)拼接圖像 輸出:融合處理后的圖像 1. 建入漸出法確定權(quán)值w1、w2 2. 使用式(13)進行融合處理 3. 計算全局亮度矩陣gb 4. 圖像分塊(10×10)以及分塊亮度矩陣lb{lb1,lb2,…,lb100} 5. forifrom 1 to 100 6.db=lb[i]-gb 7. end for 8. 通過db對圖像分塊均勻亮度 9. 重疊區(qū)域Ω(I1/20,I1∩I2,I2/20) 10. 計算圖像塊v的梯度u 11. 根據(jù)式(14)-式(15)計算像素值f 圖像融合算法結(jié)合了加權(quán)漸進融合算法和泊松融合算法,并在融合過程中對圖像亮度進行了均勻處理,降低了圖像融合過程中的亮度差異,淡化了圖像拼接縫隙,提高了圖像拼接效果。 本文算法使用的圖像來自圖像拼接相關(guān)論文數(shù)據(jù)集和無人機拍攝的圖像,包括寺廟(temple)、鐵軌(railtrack)以及不同高度航拍的校園圖像。 首先對LIFT特征點模型與SIFT特征點模型進行比較,并使用RANSAC算法對特征點進行篩選,得到的特征點數(shù)目與特征點對匹配的準(zhǔn)確率,比較結(jié)果如表1所示。 表1 特征點提取和準(zhǔn)確率比較 為證明本文算法的有效性,與APAP拼接算法、AANAP算法和SPHP算法進行對比實驗,結(jié)果如圖5-圖7所示。 (a) APAP (b) AANAP(c) SPHP (d) 本文算法圖5 15 m圖像拼接效果圖 (a) APAP (b) AANAP(c) SPHP (d) 本文算法圖6 50 m圖像拼接效果圖 (a) APAP (b) AANAP(c) SPHP (d) 本文算法圖7 150 m圖像拼接細(xì)節(jié)比較圖 圖5-圖7分別為15 m、50 m和150 m的無人機航拍圖像的拼接結(jié)果。圖5的主要目標(biāo)是汽車和建筑物的拼接,APAP和AANAP算法中汽車都有較為嚴(yán)重的重影,建筑物的輪廓和窗戶的拼接有不同程度的扭曲,AANAP算法在圖像邊緣處產(chǎn)生了嚴(yán)重的畸變,SPHP算法放大了地面線條,本文算法較好地拼接了汽車以及建筑物目標(biāo),拼接邊緣的局部調(diào)整更符合現(xiàn)實場景。圖6的主要目標(biāo)為50 m左右的房屋拼接,所有算法都很難處理房屋頂部復(fù)雜的線條,值得注意的是在路燈場景的處理中,SPHP算法取得了最好的效果,因為它最大限度地保持了非重疊區(qū)域的相似性。圖7為150 m高度下操場圖像的拼接,在整體圖像中截取重疊區(qū)域的拼接效果比較,APAP算法拼接圖像中的磚石、木棍扭曲重影都很嚴(yán)重,AANAP算法減弱了磚石的重影,SPHP算法中木棍拼接處痕跡較為明顯,本文算法對磚石和木棍的拼接效果良好,但在磚石和木棍連接區(qū)域中的拼接效果都很模糊。從實驗結(jié)果來看,本文算法的拼接效果明顯優(yōu)于其他拼接算法。 上述的圖像拼接效果主要是從圖像細(xì)節(jié)出發(fā),對局部區(qū)域的圖像拼接精度進行比較,通過圖像比較的方式具有一定的主觀性,常見的圖像拼接質(zhì)量評價參數(shù)還包括灰度標(biāo)準(zhǔn)差、熵差、交叉熵、互信息度量、結(jié)構(gòu)相關(guān)性和均方誤差根等。為了進一步從客觀層面對拼接算法進行比較,本文使用圖像均方誤差根 (RMSE)對圖像拼接結(jié)果進行比較。計算方法如下: (15) 式中:參數(shù)M、N代表航拍圖像間重疊區(qū)域的尺寸大??;I1o(i,j)、I2o(i,j)分別代表I1、I2中拼接圖像的重疊區(qū)域像素值。在計算過程中,均方誤差根的值越小,說明圖像的拼接融合效果越接近理想拼接結(jié)果。本文通過與其他算法比較,計算得到的RMSE值如表2所示。 表2 不同算法的RMSE值比較 由表2可知,本文算法得到的拼接圖像的RMSE值在大部分情況下都取得了最優(yōu)的計算結(jié)果,但在寺廟圖像中,由于圖像分辨率較低,視差變化較小,只需要進行簡單的圖像變換就能得到精確的拼接結(jié)果,因此得到的計算結(jié)果稍差于其他算法。通過RMSE值的計算比較進一步證明了本文算法的優(yōu)越性。 本文算法和比較算法中圖像網(wǎng)格大小都選取10×10,統(tǒng)計本文拼接算法和其他拼接算法的運行時間,結(jié)果如圖8所示。 圖8 算法運行時間比較圖 由圖8可知本文算法的耗時較短,LIFT特征點的檢測和匹配過程更加快速,有效彌補了算法在進行控制點生成過程中的消耗。在整個圖像網(wǎng)格的調(diào)整過程中,運算時間受到圖像重疊區(qū)域面積的影響,重疊區(qū)域越大,特征點檢測和網(wǎng)格調(diào)整消耗的時間就越長。 本文通過使用LIFT模型獲取了圖像特征點信息,對特征點進行篩選得到控制點,使用控制點和特征點生成網(wǎng)格,利用最小二乘網(wǎng)格約束對圖像網(wǎng)格進行優(yōu)化,從而得到了更好的圖像配準(zhǔn)效果,再利用優(yōu)化的加權(quán)泊松圖像融合得到圖像拼接結(jié)果,并通過實驗驗證了算法的有效性,提高了航拍圖像的拼接精度。但是由于航拍圖像內(nèi)容十分豐富,局部的細(xì)節(jié)很難得到有效的處理,尤其是圖像內(nèi)容復(fù)雜和圖像場景重合連接的區(qū)域,重影的現(xiàn)象依然局部存在,而且航拍圖像的數(shù)據(jù)量很大,算法的執(zhí)行效率很難提高,算法依然存在較大的優(yōu)化空間。6 實 驗
7 結(jié) 語