覃江穎,明飛雄,李 明
(1.武漢大學(xué)測(cè)繪遙感信息工程國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079;2.自然資源部重慶測(cè)繪院,重慶 400015)
當(dāng)前,無人機(jī)圖像配準(zhǔn)有很多成熟可靠的方法。在理想情況下,這些方法可以實(shí)現(xiàn)亞像素圖像配準(zhǔn)。在這種好的情況下,大多數(shù)拼接方法都可以達(dá)到出色的圖像拼接效果。但是,由于外部不利因素的影響,特別是低空無人機(jī)兩張或多張圖像難以完全自動(dòng)配準(zhǔn)。因此,需要在圖像鑲嵌階段進(jìn)行補(bǔ)救,也就是說,要確定如何無縫生成最終的拼接圖像,需要使用一些技術(shù)來使最終的拼接圖像沒有拼接縫、重影等拼接痕跡。本文主要針對(duì)這一環(huán)節(jié),進(jìn)行了圖像拼接的相關(guān)算法和技術(shù)的分析與研究。目前,該研究領(lǐng)域主要有2 種解決方案,它們是基于像素的圖像拼接方法和基于拼接線的圖像拼接方法[1-3]。前者是圖像配準(zhǔn)后兩幅圖像重疊區(qū)域像素的混疊和相加(最簡(jiǎn)單的方法是獲取重疊區(qū)域中對(duì)應(yīng)圖像像素的平均值。然而,簡(jiǎn)單的像素值平均方法容易受到多種因素的影響,例如曝光差異、匹配誤差和場(chǎng)景運(yùn)動(dòng)。大量參考文獻(xiàn)涉及了這些問題,例如,中值濾波用于去除運(yùn)動(dòng)物體,像素加權(quán)平均用于處理圖像中心和邊緣附近的像素,以避免圖像色差的影響[1-4]。然而,這些改進(jìn)的方法往往會(huì)導(dǎo)致拼接圖像出現(xiàn)模糊和重影問題,使加權(quán)平均法的權(quán)重系數(shù)難以掌握)。后者是基于拼接線的圖像拼接方法(首先構(gòu)建能量代價(jià)函數(shù)模型,然后計(jì)算能量代價(jià)函數(shù)的最小值。在相鄰圖像的重疊區(qū)域中尋找最優(yōu)的拼接線,并且該拼接線處于兩幅圖像完全配準(zhǔn)的位置。最優(yōu)拼接線將重疊區(qū)域分成兩部分,確定不同區(qū)域填充像素的來源。這條線兩側(cè)的圖像差異極少,從而可以有效避免鋸齒、重影和錯(cuò)位等問題,實(shí)現(xiàn)拼接圖像的無縫過渡)。目前商業(yè)軟件中主要使用的是第二種策略?;趧?dòng)態(tài)規(guī)劃的優(yōu)化理論提出了一種非常有代表性和簡(jiǎn)單的動(dòng)態(tài)規(guī)劃方法,用于搜索最佳拼接線。在該策略中,無論過程的初始狀態(tài)和最后一個(gè)決策如何,下一個(gè)狀態(tài)或決策必須是最優(yōu)的。因此,將動(dòng)態(tài)規(guī)劃的思想應(yīng)用到拼接線的搜索中,就是將拼接線在重疊區(qū)域的分布作為一個(gè)優(yōu)化問題。而將一維動(dòng)態(tài)規(guī)劃搜索問題擴(kuò)展到雙通道搜索,并引入光流場(chǎng)來增強(qiáng)圖像幾何信息能優(yōu)化拼接線搜索約束。但是基于動(dòng)態(tài)規(guī)劃的搜索過程很容易陷入局部最優(yōu)解,在調(diào)整系數(shù)和鄰域范圍的選擇上存在不確定因素。由于使用動(dòng)態(tài)規(guī)劃來獲得局部最優(yōu)拼接線并不能達(dá)到最優(yōu)的效果,因此許多研究人員研究了如何使用新的搜索策略來獲得全局最優(yōu)拼接線。近年來,已經(jīng)出現(xiàn)了一些算法來很好地實(shí)現(xiàn)這一目的。其中,基于圖割(Graph Cuts)的最優(yōu)拼接線搜索算法是最具代表性的一種[5]。它通過在拼接線兩側(cè)尋找最優(yōu)拼接紋理來合成最佳拼接線,可以解決動(dòng)態(tài)規(guī)劃在圖像拼接中的弊端。
基于上述內(nèi)容,本文針對(duì)低空無人機(jī)圖像無縫拼接中存在的問題,首先介紹和分析了當(dāng)前多種圖像拼接策略中的圖像拼接方法。接著在圖像配準(zhǔn)的基礎(chǔ)上,通過引入圖像的全局光流場(chǎng),增強(qiáng)圖像中幾何結(jié)構(gòu)信息的約束,并提出了一種新的基于圖像顏色域的圖割能量代價(jià)函數(shù)模型,實(shí)現(xiàn)了在相鄰圖像重疊區(qū)域中尋找最佳拼接線的算法。
實(shí)驗(yàn)無人機(jī)圖像已經(jīng)進(jìn)行了預(yù)處理,且使用了更加高效的SURF算子進(jìn)行圖像配準(zhǔn),在SURF算法的計(jì)算中,為了進(jìn)一步提高其計(jì)算速度,并保持其精度,本文采用了Hessian 矩陣的匹配加速方法。另外,通過基于投影變換模型的RANSAC算法對(duì)最近鄰匹配算法得到的誤配點(diǎn)進(jìn)行剔除,提高了特征匹配的魯棒性[6-7]。通過以上處理,完成無人機(jī)圖像配準(zhǔn)后,可以將所有待拼接的圖像轉(zhuǎn)換為統(tǒng)一的坐標(biāo)系,然后選擇合適的投影模型進(jìn)行圖像拼接。
在著名的開源計(jì)算機(jī)視覺算法庫(kù)(OpenCV)中,基于圖割的代表性經(jīng)典拼接線搜索方法主要分為兩種:一種是利用顏色域像素的差異信息構(gòu)建圖割能量代價(jià)函數(shù);另一種是在前一種方法的基礎(chǔ)上,加入梯度信息的約束,同時(shí)考慮色彩強(qiáng)度和梯度強(qiáng)度等信息。從以往文獻(xiàn)的回顧和討論來看,現(xiàn)有的無人機(jī)圖像拼接方法在算法有效性和效率上都有提升的空間。同時(shí),由于OpenCV 是一個(gè)非常通用且具有代表性的最新計(jì)算機(jī)視覺圖像處理集成函數(shù)庫(kù),因此,本文將使用OpenCV 中這2 種具有代表性的基于圖割的最優(yōu)拼接線搜索方法作為對(duì)比實(shí)驗(yàn)方法來評(píng)估本文提出的策略的有效性和效率。
通常情況下,相鄰的無人機(jī)圖像會(huì)具有相同的局部信息,例如相同風(fēng)格的建筑物,但相鄰圖像的尺度信息可能并不完全相同。同時(shí),不同無人機(jī)圖像的視角也會(huì)存在差異。如果不考慮圖像信息中的上述情況,很可能會(huì)出現(xiàn)幾何錯(cuò)位或由于拼接圖像中的遮擋而丟失建筑物信息。由于很多拼接方法仍然依靠局部信息來求解目標(biāo)能量代價(jià)函數(shù)的偽全局解,因此它們實(shí)質(zhì)上忽略了圖像拼接問題本身在數(shù)學(xué)建模過程中的不準(zhǔn)確性,導(dǎo)致創(chuàng)建的目標(biāo)能量代價(jià)函數(shù)不能完全表達(dá)需要解決的問題。對(duì)此,本文在現(xiàn)有方法的基礎(chǔ)上,設(shè)計(jì)了一種具有更全面的全局約束的無人機(jī)圖像拼接方法。新方法在現(xiàn)有Graph Cuts方法的基礎(chǔ)上引入了全局光流場(chǎng)的概念,以約束由于透視成像、幾何畸變,特別是建筑物引起的投影誤差等引起的像素幾何錯(cuò)位,實(shí)現(xiàn)無人機(jī)圖像無縫拼接。
本文為了更好地考慮相鄰低空無人機(jī)圖像重疊區(qū)域的圖像結(jié)構(gòu)信息,將重疊區(qū)域像素的光流值作為構(gòu)建拼接線能量代價(jià)的約束條件。光流是由觀察者和場(chǎng)景之間的相對(duì)運(yùn)動(dòng)引起的視覺場(chǎng)景中物體、表面和邊緣的表觀運(yùn)動(dòng)模式。Lucas-Kanade 算法和Horn-Schunk 算法是2 種具有代表性的計(jì)算方法,它們分別用于計(jì)算圖像部分像素的運(yùn)動(dòng)(稱為稀疏光流)和圖像所有像素的運(yùn)動(dòng)(稱為密集光流)[8-9]。本文構(gòu)建的能量代價(jià)函數(shù)需要相鄰無人機(jī)圖像重疊區(qū)域內(nèi)每個(gè)像素點(diǎn)的光流值。因此,使用密集光流方法來計(jì)算它們。Horn 和Schunck 提出的Horn-Schunk 算法是一種非常流行的密集光流方法,易于計(jì)算。它可以獲得重疊區(qū)域中每個(gè)像素的光流值。公式(1)是其函數(shù)表達(dá)。
式中,F(xiàn)為光流值;u、v為像素在圖像坐標(biāo)系x、y軸方向的位移;T為參考圖像;I為當(dāng)前圖像;a為權(quán)重因子;ux、vx、uy、vy分別為u和v在x和y方向上的一階導(dǎo)數(shù)。
圖是具有權(quán)重的有向結(jié)構(gòu),通常由一些節(jié)點(diǎn)和有向邊表示。在本文中,這些節(jié)點(diǎn)是圖像像素。圖是現(xiàn)實(shí)世界的直觀表示,它由一個(gè)節(jié)點(diǎn)集和在一定規(guī)則下連接兩個(gè)節(jié)點(diǎn)的邊集組成,即源和匯2個(gè)位于端點(diǎn)的特殊節(jié)點(diǎn)。在圖像處理應(yīng)用中,許多能量最小化問題可以通過求解圖中的最大流最小切割問題來近似。將在2 幅無人機(jī)圖像的重疊區(qū)域中尋找最優(yōu)接縫線的問題轉(zhuǎn)化為圖割能量代價(jià)函數(shù)的最小能量求解問題。由于圖割的最優(yōu)拼接線搜索算法是基于圖結(jié)構(gòu)的。因此,在尋找拼接線之前,需要將圖像像素轉(zhuǎn)換為圖結(jié)構(gòu)。在本文的無人機(jī)圖像拼接算法中,相鄰的無人機(jī)圖像和圖結(jié)構(gòu)示意圖如圖1所示。圖1a是無人機(jī)圖像拼接的示意圖,其中待拼接的右圖像與坐標(biāo)變換后的左圖像的拼接線位于重疊區(qū)域。圖1a中的紅色實(shí)線是示例拼接線。根據(jù)圖1a的這種布局,本文構(gòu)造了一個(gè)圖結(jié)構(gòu),圖的一部分如圖1b所示。假設(shè)左圖像和右圖像的重疊區(qū)域只有9個(gè)像素,重疊區(qū)域的每個(gè)像素都被視為圖結(jié)構(gòu)中的一個(gè)節(jié)點(diǎn)。然后,可以用圖1b 中從1~9的9個(gè)圓來表示圖中的9個(gè)節(jié)點(diǎn),相鄰的2個(gè)節(jié)點(diǎn)形成一條邊,都有加權(quán)值。如圖1b 中的綠線所示。非重疊區(qū)域的節(jié)點(diǎn)(即左圖像和右圖像的灰色部分)與重疊區(qū)域的節(jié)點(diǎn)之間也存在加權(quán)邊緣,如圖1b中的黑線所示。
圖1 拼接示意圖與圖的結(jié)構(gòu)
綜上所述,相鄰兩幅圖像的重疊區(qū)域可以構(gòu)造出一個(gè)圖結(jié)構(gòu)。在圖結(jié)構(gòu)中,最關(guān)鍵的部分是加權(quán)邊的定義,它定義了能量代價(jià)函數(shù)的具體形式。圖割的一般能量代價(jià)函數(shù)由數(shù)據(jù)項(xiàng)(data)和平滑項(xiàng)(smooth)組成,分別對(duì)應(yīng)于圖割切割中邊的權(quán)重。其一般表達(dá)式如圖(2)所示。
式(3)是本文提出的基于圖割的能量代價(jià)函數(shù)定義。與上述其他能量函數(shù)相比,最大的差異是本文的能量代價(jià)函數(shù)添加了全局光流場(chǎng)。這樣在現(xiàn)有的Graph Cuts 算法的基礎(chǔ)上,可以更好地考慮幾何信息約束,解決透視成像引起的圖像拼接中的幾何畸變問題等。
式中,V(*)為像素差異產(chǎn)生的灰度差異函數(shù);flow(*)為相鄰無人機(jī)圖像重疊區(qū)域的光流場(chǎng)函數(shù);D(*)為數(shù)據(jù)項(xiàng);fp、fq為分配給像素p、q的標(biāo)簽;O為重疊區(qū)域中的相鄰像素;P 為圖像中的所有像素。像素灰度差異函數(shù)不僅需要反映相鄰圖像同一位置像素的差異信息,還需要引入局部信息增強(qiáng)算法的魯棒性。結(jié)合本文圖像拼接問題的特殊性,不宜在圖的每個(gè)節(jié)點(diǎn)上加上個(gè)體差異數(shù)據(jù)項(xiàng)。同時(shí),由于尋找拼接線的本質(zhì)是圖像固有屬性的差異信息,而不是某個(gè)標(biāo)簽的直接概率問題。因此,本文算法的所有能量項(xiàng)都反映在圖中相鄰邊的權(quán)重上。通過上面基于圖割的能量代價(jià)函數(shù)的定義,一個(gè)真實(shí)的圖像拼接線搜索問題已經(jīng)用一個(gè)數(shù)學(xué)模型進(jìn)行了表達(dá)。而能量函數(shù)值的最小化過程就是尋找最佳拼接線的過程。在具體求解過程中,本文使用最大流/最小割算法來求解能量代價(jià)函數(shù)的最小化問題。
為了驗(yàn)證提出的本文方法(方法c)的有效性,選取兩組來自不同地點(diǎn)、不同飛行高度和相機(jī)的無人機(jī)航拍圖像對(duì)進(jìn)行測(cè)試。并將測(cè)試結(jié)果與前文提及的OpenCV 中的開源拼接線搜索方法進(jìn)行比較。在比較方法中,一種是基于圖割的顏色域圖像拼接方法(方法a),另一種是基于圖割的顏色域+梯度域圖像拼接方法(方法b)。本文使用基于OpenCV 開源庫(kù)的Visual C++對(duì)所提出的算法進(jìn)行編程。實(shí)驗(yàn)計(jì)算機(jī)環(huán)境為Windows 7操作系統(tǒng),32 GRAM,Intel Core 7(3.6 GHZ,四核)CPU。本文的實(shí)驗(yàn)數(shù)據(jù)分為2 組。分別是由DJ-Phantom4 標(biāo)配相機(jī)在武漢大學(xué)停車場(chǎng)采集的飛行高度約為115 m 的影像對(duì),和在中國(guó)嘉善縣別墅區(qū)利用ILCE-QX1 相機(jī)飛行高度約150 m 獲取的影像對(duì)。
圖2 和圖3 的a、b、c 分別是方法a、b、c 的實(shí)驗(yàn)結(jié)果。首先,從圖2 的局部放大視圖中可以很容易地發(fā)現(xiàn),圖2的橢圓框中,在圖2a和2b中紅色拼接線兩側(cè)有明顯的道路標(biāo)線和車位拼接錯(cuò)位,而圖2c僅僅有輕微的車位錯(cuò)位。圖3 中也可以輕易發(fā)現(xiàn)方法c 幾乎不存在可見的道路錯(cuò)位,沒有出現(xiàn)方法b 中的房屋結(jié)構(gòu)信息丟失,同樣也沒有圖3a 和3b 中綠地中的人行道消失。這表明本文提出的方法在實(shí)驗(yàn)中實(shí)現(xiàn)了無縫拼接,無論是在空曠的停車場(chǎng),還是密集別墅區(qū)域的低空無人機(jī)圖像中幾乎都實(shí)現(xiàn)了無痕融合的拼接效果。
圖2 停車場(chǎng)影像對(duì)拼接實(shí)驗(yàn)結(jié)果對(duì)比
圖3 別墅區(qū)影像對(duì)拼接實(shí)驗(yàn)結(jié)果對(duì)比
評(píng)價(jià)圖像拼接算法優(yōu)劣,除了拼接效果外,拼接效率也很重要,特別是對(duì)于低空無人機(jī)圖像拼接來說,我們不僅想要得到好的拼接質(zhì)量,還希望能快速甚至實(shí)時(shí)處理。從表1統(tǒng)計(jì)的每種方法的計(jì)算時(shí)間可以看到本文算法的時(shí)間效率高出其他開源算法一個(gè)數(shù)量級(jí)以上,取得了令人滿意的效率。
表1 三種方法的實(shí)驗(yàn)執(zhí)行效率
本文提出了一種新的無人機(jī)圖像顏色域無縫拼接方法,并將其與OpenCV 中的其他種代表性的方法進(jìn)行了實(shí)驗(yàn)比較。實(shí)驗(yàn)對(duì)比結(jié)果證明了所提方法在無縫拼接效果和時(shí)間效率方面的有效性和優(yōu)越性。在本研究中,基于圖割的最優(yōu)拼接線搜索的研究是主要?jiǎng)?chuàng)新。圖割是Boykov 提出的一系列能量?jī)?yōu)化理論。本文通過研究如何利用無人機(jī)圖像構(gòu)建圖結(jié)構(gòu)并定義圖結(jié)構(gòu)中邊的權(quán)重,將最優(yōu)拼接線的搜索問題轉(zhuǎn)化為圖割的能量最小化問題。同時(shí),在基于圖割的能量函數(shù)構(gòu)建中,考慮到像素級(jí)差異信息在顏色域的限制,通過引入圖像全局光流場(chǎng)信息,更加關(guān)注圖像的幾何結(jié)構(gòu)信息在最優(yōu)接縫線搜索中的影響。最終,提出并實(shí)現(xiàn)了一個(gè)更完整的具有全局約束的低空無人機(jī)圖像拼接理論。