石祥濱 賈賀林
1(遼寧大學信息學院 遼寧 沈陽 110000)2(沈陽航空航天大學信息學院 遼寧 沈陽 110000)
隨著時代的發展,圖像處理的相關成果已經逐漸應用到人類生活的方方面面,而圖像拼接作為圖像處理中的重要內容,受到了研究人員的廣泛關注。隨著無人機等航拍設備的普及,對航拍圖像的處理逐漸成為研究的熱點。在航拍圖像拼接領域,對圖像進行網格化劃分并進行網格優化已經成為圖像拼接的重要手段之一[1-2]。為了解決航拍圖像拼接中的誤匹配和重影問題,本文提出一種基于控制點進行網格優化的圖像拼接方法,對無人機拍攝的航空圖像,使用拼接算法形成更大視角,更廣范圍的圖像,因此對拼接過程中的精度有很嚴格的要求。
航拍圖像拼接過程主要面臨兩個挑戰:圖像配準和圖像融合。配準就是通過對待拼接圖像進行變換,使其和參考圖像處于統一的坐標系中;融合就是將兩幅甚至多幅圖像中的重疊區域進行合成,目的是實現圖像的無縫拼接。文獻[3-4]提出的Auto Stitch算法是應用于opencv和photoshop中的拼接算法,但是Auto Stitch需要滿足不同圖像的重疊區域位于同一平面和尺度,因此在拼接過程中會導致拼接精度跟隨圖像尺度變化產生較大波動。為了提高全局對齊能力,文獻[5]提出一種SVA算法,提供了一種通過局部網格的仿射變換來完成圖像的全局對齊的方法。根據SVA算法的基本思想,文獻[6]提出了APAP算法,將圖像區域劃分為密集獨立的網格,實現圖像在局部和整體上同步變換,提高了視差圖像的魯棒性。由于缺乏配準階段的平滑約束,文獻[7]改進Seam-driven算法對拼接縫隙優化,通過圖像自然形狀約束,最大限度保持圖像自然狀態的形狀控制算法。文獻[8]在2014年提出了SPHP(Shape-Preserving Half-Projective)的網格變換方法,將圖像區域分為重疊區域,過渡區域和非重疊區域,并在不同區域進行對應的圖像變換以提高拼接精度。文獻[9]在2015年提出了AANAP(Adaptive As-Nature-As-Possive)方法,在圖像網格的劃分過程中將圖像的局部映射和全局相似性變換相結合,重疊區域的過渡更加平滑,但在圖像邊緣容易產生畸變。圖像拼接過程中對圖像精度的要求很高,而航拍圖像的規模大,場景中目標小,提取特征點和計算圖像矩陣都比較復雜,因此不僅需要在拼接中提高圖像精度,更要考慮算法的執行效率。
針對航拍圖像拼接過程中出現的問題,本文在特征點檢測階段使用了LIFT[10]特征點學習模型,通過學習模型得到的特征點更加豐富準確,使用RANSAC[11]方法得到更好的特征點匹配結果,圖像配準階段使用全局網格和控制點結合最小二乘網格約束[12]的方法進行優化,最后使用加權泊松融合進行圖像融合得到拼接結果。通過LIFT特征點解決航拍圖像中特征點數量稀疏,匹配精度不高的問題,在圖像配準過程中使用網格變換對重疊區域進行平滑,最大限度地降低重影誤差,使過渡區域自然平滑。最后在融合階段中使用加權泊松融合,平滑細化圖像重疊區域的拼接縫隙,形成最終的拼接結果。
本文的圖像拼接算法首先使用LIFT學習模型檢測提取出圖像中的特征點信息,并對特征點進行匹配,然后使用RANSAC進行特征點的篩選,從而得到圖像間特征點的對應關系,在匹配的特征點中篩選控制點信息,首先剔除位置獨立的特征點,然后剔除周圍比較稀疏的特征點,最后根據步長對控制點數量進行調整。控制點的篩選取決于特征點的密集程度和均勻分布。根據篩選得到的控制點和特征點生成網格,同時使用最小二乘網格約束對網格進行優化調整,建立拼接誤差方程,通過求解最小化拼接誤差方程完成圖像的配準,最后使用加權泊松融合[13]消除拼接痕跡,從而得到更加準確的拼接結果。本文算法流程如圖1所示。

圖1 航拍圖像拼接算法流程圖
本文使用LIFT(Learned Invariant Feature Transform)特征點學習模型進行特征點的檢測,LIFT特征點學習模型是基于一種全新架構下的深度學習模型,主要包含3個部分:特征點檢測DET[14]、方向估計ORI[15]和特征點描述子DESC[16]。每一部分都基于卷積神經網絡,使用Spatial transformer networks[17]完成各部分的轉換連接,最后學習得到特征描述子。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θ
//通過θ旋轉后圖像塊p
7.d
//DESC層計算pθ
8. adddtoD
9. end for
10. returnD
通過算法1對圖像提取特征點信息,可以進一步得到匹配后的特征點信息,與SIFT算法的特征點匹配效果進行比較,LIFT算法得到了數量更多的特征點匹配信息。
為了提高航拍圖像拼接的精度,本文主要使用最小二乘網格進行圖像配準中的網格調整,使用最小化能量方程進行網格優化。網格優化之前首先要對特征點進行分類,篩選出可以生成網格的控制點。本文通過對特征點進行分類的方法篩選出控制點,具體過程如算法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. 根據篩選結果重新排序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
本文的控制點生成建立在特征點十分密集的基礎之上,航拍圖像在重疊區域超過30%的情況下即可滿足控制點生成條件。通過第二步對特征點設定標記值,將位置相隔較遠的特征點也就是位置較為獨立的特征點篩除。接下來對點信息相對稀疏的特征點進行篩除,尤其是臨近節點中獨立特征點較多的特征點,保留特征點密集的位置信息。最后對控制點的數量進行控制,通過設定步長,保留圖像位置信息較為均勻的特征點作為控制點。
本文通過特征點的篩選,可以得到10%~20%左右的控制點信息,控制點的數量受圖像視角以及圖像重疊區域大小的影響,對控制點數量的控制有助于簡化后續的配準計算。
特征點的篩選比較如圖2所示。

圖2 特征點和控制點比較
最小二乘網格是在拉普拉斯網格[18]的基礎上提出的,又被稱為全局的拉普拉斯光順網格。在網格調整過程中給出了最小二乘約束方程,通過約束方程將網格調整問題轉化為求解最小二乘最優解問題。

(1)
式中:系數wij的總和為1。
(2)

(3)
對上式中的系數還需進行歸一化系數處理,最小二乘網格中的拉普拉斯系數可以通過一個n×n的矩陣來表示:
(4)

(5)
(6)
將上述方程轉化為最小二乘中求解最優Vi的問題,可以表示為:
(7)
構造的最小二乘網格和添加控制點的最小二乘網格的示意如圖3所示。

圖3 均勻網格和加入控制點網格
假設生成了3×3的均勻網格,網格頂點v1至v9,網格中存在兩個控制點分別為v10和v11,網格的生成方式如上,拉普拉斯坐標矩陣也從9×9變化為11×9,同時矩陣b中增加兩行,對應控制點的坐標信息,對生成的超定方程組求最小二乘解就能得到圖像變換矩陣。
網格優化的問題可以分為四部分:局部配準階段、全局配準階段、平滑階段和最終調整階段[20]。本文使用I1、I2、I3分別表示輸入圖像、預拼接圖像、拼接完成圖像。本文算法主要改進了平滑階段的誤差方程,使用控制點結合最小二乘約束進行誤差計算,完成配準優化。
在局部配準階段中,p′表示特征點p在預拼接圖像I2中的對應特征點,p″表示特征點p在拼接完成圖像I3中的對應特征點,V′表示預拼接圖像中的網格頂點,對包含在網格內的特征點使用鄰近網格頂點的線性組合表示,線性組合的系數通過線性插值計算來得到,對局部配準的誤差方程表示如下:
(8)

圖像的全局區域需要盡可能地保留圖像的自然形態,為此,應該盡可能使結果接近預拼接的近似結果。因此在全局配準階段中設置一個二值函數Bi,其取值方法描述為:若頂點Vi附近沒有特征點就設為1,否則設為0。
(9)
本文通過控制點生成最小二乘網格對圖像重疊區域進行平滑處理,通過控制點和特征點進行網格調整優化,使用最小二乘網格約束計算平滑誤差,如下式:
(10)
與其他的約束條件相比,最小二乘網格約束在計算過程中增加了控制點的約束條件。在網格調整過程中,圖像矩陣的計算最為重要,不僅決定了圖像拼接中的精度,而且影響算法的執行效率。添加控制點集信息,在計算過程中極大程度地避免了圖像矩陣的無解情況,提高了圖像矩陣的計算精度,雖然增加了額外的參數控制和計算開銷,但是算法效率并未受到太大影響。在網格調整過程中,對拉普拉斯系數矩陣、頂點集合位置、拉普拉斯坐標矩陣和控制點集合信息的計算和使用,有效提高了圖像拼接中的配準精度。
最后將配準階段的總誤差E表示如下:
E=Ep+Eg+Es
(11)
通過求解最優化方程E,完成對圖像的最小二乘網格優化,得到精確的配準和拼接結果。
本文使用加權泊松融合方法將配準過后的圖像進行融合,傳統的漸進圖像融合計算簡單,容易實現,但很難得到精確的融合結果,缺乏對光照變換的魯棒性;泊松圖像編輯[19]通過求解泊松方程來實現圖像的無縫融合。本文將加權漸進圖像融合和泊松圖像融合結合起來完成圖像融合。
首先使用下式進行加權漸進融合:
(12)
式中:w1、w2代表權值,滿足w1+w2=1,0 如圖4所示。泊松融合的基本思想是利用圖像指導場(梯度場)對重疊區域進行插值處理,以得到重疊區域內的像素值,完成圖像重疊區域的融合。 圖4 泊松融合 圖4中:v為原始圖像中的圖像塊,也是需要融合的重疊區域;u為v的梯度場;S表示拼接融合后的圖像,Ω表示融合圖像中的重疊區域,?Ω為重疊區域的邊界。重疊區域內的像素值為f,重疊區域外的像素值為f*。圖像融合過程中需要在邊界處盡可能過渡平滑,降低圖像邊界像素值差異,因此只需要根據重疊區域Ω內的梯度值進行像素插值即可。由于融合后的圖像需要保持原圖像的紋理特征,像素值f可通過下式計算: (13) Δf=div(u)=div(▽v)f|?Ω=f*|?Ω (14) div(u)表示梯度場u的散度。通過對梯度場的散度計算以及歐拉-拉普拉斯方程,就可以得到重疊區域的像素值f,完成圖像區域融合。圖像融合算法的描述如算法3所示。 算法3 圖像融合算法 輸入:配準后的預拼接圖像 輸出:融合處理后的圖像 1. 建入漸出法確定權值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. 重疊區域Ω(I1/20,I1∩I2,I2/20) 10. 計算圖像塊v的梯度u 11. 根據式(14)-式(15)計算像素值f 圖像融合算法結合了加權漸進融合算法和泊松融合算法,并在融合過程中對圖像亮度進行了均勻處理,降低了圖像融合過程中的亮度差異,淡化了圖像拼接縫隙,提高了圖像拼接效果。 本文算法使用的圖像來自圖像拼接相關論文數據集和無人機拍攝的圖像,包括寺廟(temple)、鐵軌(railtrack)以及不同高度航拍的校園圖像。 首先對LIFT特征點模型與SIFT特征點模型進行比較,并使用RANSAC算法對特征點進行篩選,得到的特征點數目與特征點對匹配的準確率,比較結果如表1所示。 表1 特征點提取和準確率比較 為證明本文算法的有效性,與APAP拼接算法、AANAP算法和SPHP算法進行對比實驗,結果如圖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圖像拼接細節比較圖 圖5-圖7分別為15 m、50 m和150 m的無人機航拍圖像的拼接結果。圖5的主要目標是汽車和建筑物的拼接,APAP和AANAP算法中汽車都有較為嚴重的重影,建筑物的輪廓和窗戶的拼接有不同程度的扭曲,AANAP算法在圖像邊緣處產生了嚴重的畸變,SPHP算法放大了地面線條,本文算法較好地拼接了汽車以及建筑物目標,拼接邊緣的局部調整更符合現實場景。圖6的主要目標為50 m左右的房屋拼接,所有算法都很難處理房屋頂部復雜的線條,值得注意的是在路燈場景的處理中,SPHP算法取得了最好的效果,因為它最大限度地保持了非重疊區域的相似性。圖7為150 m高度下操場圖像的拼接,在整體圖像中截取重疊區域的拼接效果比較,APAP算法拼接圖像中的磚石、木棍扭曲重影都很嚴重,AANAP算法減弱了磚石的重影,SPHP算法中木棍拼接處痕跡較為明顯,本文算法對磚石和木棍的拼接效果良好,但在磚石和木棍連接區域中的拼接效果都很模糊。從實驗結果來看,本文算法的拼接效果明顯優于其他拼接算法。 上述的圖像拼接效果主要是從圖像細節出發,對局部區域的圖像拼接精度進行比較,通過圖像比較的方式具有一定的主觀性,常見的圖像拼接質量評價參數還包括灰度標準差、熵差、交叉熵、互信息度量、結構相關性和均方誤差根等。為了進一步從客觀層面對拼接算法進行比較,本文使用圖像均方誤差根 (RMSE)對圖像拼接結果進行比較。計算方法如下: (15) 式中:參數M、N代表航拍圖像間重疊區域的尺寸大小;I1o(i,j)、I2o(i,j)分別代表I1、I2中拼接圖像的重疊區域像素值。在計算過程中,均方誤差根的值越小,說明圖像的拼接融合效果越接近理想拼接結果。本文通過與其他算法比較,計算得到的RMSE值如表2所示。 表2 不同算法的RMSE值比較 由表2可知,本文算法得到的拼接圖像的RMSE值在大部分情況下都取得了最優的計算結果,但在寺廟圖像中,由于圖像分辨率較低,視差變化較小,只需要進行簡單的圖像變換就能得到精確的拼接結果,因此得到的計算結果稍差于其他算法。通過RMSE值的計算比較進一步證明了本文算法的優越性。 本文算法和比較算法中圖像網格大小都選取10×10,統計本文拼接算法和其他拼接算法的運行時間,結果如圖8所示。 圖8 算法運行時間比較圖 由圖8可知本文算法的耗時較短,LIFT特征點的檢測和匹配過程更加快速,有效彌補了算法在進行控制點生成過程中的消耗。在整個圖像網格的調整過程中,運算時間受到圖像重疊區域面積的影響,重疊區域越大,特征點檢測和網格調整消耗的時間就越長。 本文通過使用LIFT模型獲取了圖像特征點信息,對特征點進行篩選得到控制點,使用控制點和特征點生成網格,利用最小二乘網格約束對圖像網格進行優化,從而得到了更好的圖像配準效果,再利用優化的加權泊松圖像融合得到圖像拼接結果,并通過實驗驗證了算法的有效性,提高了航拍圖像的拼接精度。但是由于航拍圖像內容十分豐富,局部的細節很難得到有效的處理,尤其是圖像內容復雜和圖像場景重合連接的區域,重影的現象依然局部存在,而且航拍圖像的數據量很大,算法的執行效率很難提高,算法依然存在較大的優化空間。

6 實 驗






7 結 語