杜娟,薛武,趙蓓蕾
(航天工程大學(xué),北京 101416)
無人機(jī)(unmanned aerial vehicle,UAV)憑借機(jī)動靈活、性價比高的優(yōu)勢在航空遙感中發(fā)揮了重要作用,利用無人機(jī)影像進(jìn)行目標(biāo)定位成為遙感測繪與無人機(jī)應(yīng)用領(lǐng)域的熱點問題[1-4]。隨著無人機(jī)遙感數(shù)據(jù)量越來越大,提高數(shù)據(jù)處理的效率成為不可回避的問題,特別是無人機(jī)影像的快速區(qū)域網(wǎng)平差是實現(xiàn)高精度對地定位的前提條件。因此,有必要研究無人機(jī)遙感影像的快速處理技術(shù),為搶險救災(zāi)、軍事行動等應(yīng)急測繪保障提供技術(shù)支撐。
為了控制硬件成本,目前無人機(jī)遙感平臺搭載的相機(jī)通常是消費級單反相機(jī),其幅面一般從2 000萬像素到5 000萬像素,對于同樣大小的測區(qū),要想得到相同的立體覆蓋的影像,所需要拍攝的影像數(shù)量是大面陣航測相機(jī)的數(shù)十倍。同樣,受限于平臺的載重能力,也為了降低成本,大多數(shù)無人機(jī)上沒有搭載專業(yè)的POS(positioning and orientate system)設(shè)備,僅有用于平臺本身姿態(tài)控制的導(dǎo)航級GPS(global positioning system)和INS(inertial navigation system)。因此不同于常規(guī)的載人遙感平臺,無人機(jī)獲取的數(shù)據(jù)無論是影像外方位元素還是加密點的數(shù)量均會增加很多。這就導(dǎo)致了區(qū)域網(wǎng)平差時待求參數(shù)的數(shù)量顯著增多,對應(yīng)誤差方程和法方程的規(guī)模也明顯增大。計算機(jī)處理時需要更多的RAM資源和更長的時間[5]。國內(nèi)外學(xué)者針對光束法平差的收斂性、精度、魯棒性等開展了諸多研究并取得了豐富的成果。但是,針對如何提高光束法平差的解算效率方面的研究相對偏少[4,6]。本文結(jié)合無人機(jī)遙感影像的特點,就如何提高無人機(jī)影像光束法平差的效率提出了一種解決方案。
為了解決無人機(jī)影像的“先天不足”,充分挖掘硬件平臺的計算潛力,對大規(guī)模方程組的解算方法進(jìn)行了改進(jìn),主要包括采用共軛梯度法迭代解算法方程,利用預(yù)條件矩陣減小法矩陣的條件數(shù),計算矩陣的舒爾補(bǔ)減小計算量,并發(fā)揮計算機(jī)的計算優(yōu)勢對矩陣運算進(jìn)行了并行化改進(jìn)。
無人機(jī)搭載中小幅面數(shù)字傳感器,其成像模型與傳統(tǒng)航測面陣相機(jī)相同,即共線條件方程[7],如式(1)所示。
由于作業(yè)中各種誤差的存在,式(1)并不嚴(yán)格成立,為了得到影像外方位元素和加密點的地面坐標(biāo)的最大似然估計,將式(1)進(jìn)行線性化,得到誤差方程[8]:
vx=c11dXS+c12dYS+c13dZS+c14dφ+c15dω+
c16dκ+c17dX+c18dY+c19dZ-lx,
vy=c21dXS+c22dYS+c23dZS+c24dφ+c25dω+
c26dκ+c27dX+c28dY+c29dZ-ly.
(2)
光束法平差的目標(biāo)是所有像方觀測點的反投影誤差平方和達(dá)到最小,其目標(biāo)函數(shù)形式如下:
通常采用最小二乘方法對式(3)進(jìn)行求解,式(2)的法方程如式(4)所示。求解法方程得到待求參數(shù)的最大似然估計,然后利用待求參數(shù)的更新值前方交會得到加密點地面坐標(biāo)。
在實際的無人機(jī)遙感作業(yè)生產(chǎn)中,由于未知數(shù)的數(shù)量比較多,法方程系數(shù)矩陣具有奇異性,導(dǎo)致式(4)解算不穩(wěn)定,本文采用參數(shù)估計中的列文伯格-馬夸爾特(levenberg marquardt,L-M)方法克服法方程的奇異性。L-M方法能夠自適應(yīng)調(diào)整未知數(shù)的變化幅度,從而有效克服解的不穩(wěn)定性,有些文獻(xiàn)中也將其稱為阻尼高斯牛頓法[9-10]。通過啟發(fā)式方法,L-M在高斯牛頓法與梯度下降法之間自主轉(zhuǎn)換,使得迭代運算快速收斂到全局極小值[1]。具體在無人機(jī)影像處理中,采用L-M方法后,能夠在沒有控制信息時自適應(yīng)調(diào)整待求參數(shù)的變化幅度,克服法方程奇異帶來的解的不穩(wěn)定[11]。對式(4)應(yīng)用L-M方法后,得到:
(5)
式中:λ1,λ2分別為對應(yīng)于無人機(jī)影像外方位元素和加密點地面坐標(biāo)的阻尼系數(shù)。
無人機(jī)影像區(qū)域網(wǎng)平差時需要求解未知數(shù)較多,以n幅影像和m個加密點為例,待求參數(shù)的數(shù)量為6n+3m(6n個無人機(jī)影像外方位元素和3m個坐標(biāo))。尤其是為了得到更稠密的連接點,需要求解的地面點坐標(biāo)往往超過百萬級別,如此規(guī)模的方程組求解比較困難,直接解算會消耗大量的內(nèi)存和計算時間,普通計算機(jī)也難以處理。
考慮到加密點坐標(biāo)的數(shù)量遠(yuǎn)大于影像外方位元素的數(shù)量,因此借助Schur補(bǔ)方法將影像外方位元素和加密點坐標(biāo)2類變量分開求解。在答解法方程時,首先解算無人機(jī)影像外方位元素,然后求解加密點坐標(biāo)[12]。Schur補(bǔ)本質(zhì)上是一種高斯消元法,通過分塊的方式答解方程組,以下列方程組的答解為例:
未知數(shù)x,y的求解可以分為2步:利用高斯消元法,式(6)變換為如下形式:
得到未知數(shù)x的解后,帶入式(6)求解未知數(shù)y,從而實現(xiàn)了2類變量的分離和分步求解,減少了未知數(shù)的數(shù)目。需要注意的是,對無人機(jī)影像處理而言,得到待求參數(shù)更新值之后可通過前方交會直接計算連接點三維坐標(biāo),無需回代到原來的方程進(jìn)行計算,從而可以進(jìn)一步減少計算量。
處理大規(guī)模無人機(jī)數(shù)據(jù)時,式(7)是一個典型的大型稀疏矩陣,本文引入?yún)?shù)估計中的共軛梯度方法對其進(jìn)行答解。如果按照求解方式劃分,共軛梯度法是一種直接解法,但是運算中由于舍入誤差的存在需要迭代求解,所以可以看作是正定方程組的迭代解法。共軛梯度法所需迭代次數(shù)與系數(shù)矩陣條件數(shù)是有關(guān)的,條件數(shù)越大需要的迭代次數(shù)越多。由于大規(guī)模無人機(jī)影像處理時未知數(shù)的數(shù)量多,而且系數(shù)矩陣的條件數(shù)比較大,因此在解算時會出現(xiàn)迭代次數(shù)多、收斂速度慢的情況。對此,本文采用預(yù)條件矩陣來降低式(7)的條件數(shù)[13],以下面的方程為例:
Ax=b.
(8)
為降低方程的條件數(shù),等式兩邊各乘一個矩陣M-1可得:
M-1Ax=M-1b.
(9)
M-1的引入使得方程的條件數(shù)從A的條件數(shù)變?yōu)镸-1A的條件數(shù)。如果M-1設(shè)計得當(dāng),可以大大降低式(8)的條件數(shù),通常把矩陣M-1稱為預(yù)條件矩陣??紤]到式(5)的雅克比矩陣是塊狀對角矩陣,容易構(gòu)造和進(jìn)行求逆運算,所以通常將其作為預(yù)條件矩陣。
預(yù)條件矩陣的引入能夠在一定程度上減少共軛梯度法的迭代次數(shù),如果處理海量數(shù)據(jù)、方程組規(guī)模非常大時,收斂速度依然比較慢。實際上,共軛梯度法在解算時,僅前面幾次迭代對待求參數(shù)的修正量比較大,后面的迭代改正量較小。因此可以把消耗時間比較多、改正量不大的迭代運算舍去,僅保留前面幾次改正量比較大的幾次迭代。這樣做還有一個重要原因就是在整個平差解算過程中,每次解算的結(jié)果均作為下一次迭代的初值,所以提前結(jié)束共軛梯度的迭代,用近似解代替嚴(yán)密解是可行的。
常用的共軛梯度法的近似解是截斷牛頓法,顧名思義,截斷牛頓法是牛頓法的一種改進(jìn)方法,將迭代的終止條件從待求參數(shù)殘差向量的閾值變?yōu)閺?qiáng)制序列系數(shù)。強(qiáng)制序列系數(shù)的計算公式如(10),ηk表示第k次迭代的強(qiáng)制序列系數(shù),c表示法方程常數(shù)向量,sk+1表示第k+1次迭代的殘差向量。這樣在進(jìn)行法方程解算時,迭代的終止條件變?yōu)楫?dāng)前的強(qiáng)制序列系數(shù)小于閾值,從而有效減少了迭代次數(shù),同時保持了迭代的收斂性。
當(dāng)前消費級計算機(jī)都配置有多核CPU和GPU,可以充分發(fā)揮其計算潛力,在算法優(yōu)化的基礎(chǔ)上通過并行運算提高矩陣運算的效率。大規(guī)模無人機(jī)影像定位解算過程中消耗時間較多的步驟主要有:
(1) 像方殘差計算;
(2) 稀疏矩陣計算;
(3) 預(yù)條件矩陣M構(gòu)建;
(4) 矩陣相乘JcΔxc+JpΔxp;
(6) 矩陣相乘Mv。
以上運算中,(4)和(5)的時間開銷最大,因為利用截斷牛頓法迭代解算法方程時,每次迭代都進(jìn)行一次運算,再考慮到定位解算整體迭代過程,其計算次數(shù)是十分可觀的。而其他步驟雖然計算量也比較大,但僅在L-M的迭代求解時才運行一次,因此采用硬件對區(qū)域網(wǎng)平差過程進(jìn)行加速的關(guān)鍵在于步驟(4)和步驟(5)。
從前文的介紹可以看出,無人機(jī)影像的定位解算過程需要頻繁地讀取和存儲大型稀疏矩陣。如果按照傳統(tǒng)數(shù)字?jǐn)z影測量中的方式直接存儲原始矩陣會消耗大量的內(nèi)存空間,普通計算機(jī)難以滿足需求,特別是大區(qū)域(上萬幅)影像的處理將無法進(jìn)行。為了解決這個問題,本文引入了一種更緊湊的矩陣存儲形式——塊壓縮稀疏行(blocked compressed sparse row, BCSR)。BCSR本質(zhì)上是壓縮存儲技術(shù),其高度壓縮、分塊存儲的特性能夠大大減少對存儲空間的需求[14]。BCSR利用4個向量
通過算法優(yōu)化,區(qū)域網(wǎng)平差解算過程拆解為系列基礎(chǔ)的矩陣計算,編程中結(jié)合使用SIMD (single instruction multiple data)和SSE(streaming SIMD extensions)以充分發(fā)揮當(dāng)前計算機(jī)平臺CPU和GPU的并行運算潛力[15-16],實現(xiàn)無人機(jī)影像的快速定位解算。
為對本文提出的大規(guī)模無人機(jī)影像區(qū)域網(wǎng)平差方案的效率進(jìn)行驗證,選擇4組具有代表性的無人機(jī)影像進(jìn)行實驗,實驗的軟硬件環(huán)境如表1所示,實驗數(shù)據(jù)情況如表2所示。為了體現(xiàn)本文加速方法的有效性,采用3種傳統(tǒng)解決方案與本文方法進(jìn)行對比實驗,每種方案的技術(shù)流程如圖2,3所示。具體來講,方案1直接對Schur補(bǔ)矩陣進(jìn)行Cholesky矩陣分解,方案2利用稀疏矩陣表示Schur補(bǔ)矩陣,方案3和方案4都采用本文方法對解算流程進(jìn)行了算法優(yōu)化,不同的是方案3在計算過程采用CPU多核并行進(jìn)行了加速,方案4利用GPU并行對計算過程進(jìn)行了加速。實驗結(jié)束后,分別統(tǒng)計每種方法的時間消耗,結(jié)果見表3。
表1 實驗軟硬件環(huán)境Table 1 Experimental software and hardware environment
表2 實驗數(shù)據(jù)情況Table 2 Experimental data situation
表3 時間消耗統(tǒng)計Table 3 Time consumption statistics
分析表3可以得出以下結(jié)論:
(1) 從不同方案的處理結(jié)果來看,方案1僅能處理幾百幅量級的影像,方案2和方案3可以處理千余幅影像,而本文提出的方案4可以處理1萬余幅影像。
(2) 從時間消耗來看,本文提出的方案計算效率很高,具有較高的加速比,能夠快速處理大數(shù)據(jù)量無人機(jī)影像,具有重要的實用價值。
(3) 本文提出的解決方案在處理無人機(jī)影像時具有效率高、支持?jǐn)?shù)量多的優(yōu)勢,對于無人機(jī)影像在應(yīng)急測繪保障中的應(yīng)用具有重要的實用價值。
無人機(jī)影像已經(jīng)成為遙感探測的重要數(shù)據(jù)源,快速高效的無人機(jī)影像處理方案具有重要的研究價值和廣闊的應(yīng)用前景。本文為提高大規(guī)模無人機(jī)影像區(qū)域網(wǎng)平差的效率,分別從算法優(yōu)化設(shè)計與硬件并行加速2個方面開展研究。算法優(yōu)化方面采用矩陣的Schur補(bǔ)減少了未知數(shù)的數(shù)目,采用預(yù)處理矩陣減小了法矩陣的條件數(shù),并利用共軛梯度的截斷牛頓法答解法方程,同時利用塊壓縮稀疏行的緊湊方式存儲稀疏矩陣,從而降低了對計算機(jī)內(nèi)存和顯存的開支。硬件加速方面分別采用CPU和GPU并行對矩陣運算進(jìn)行了加速。通過幾組有代表性的數(shù)據(jù)進(jìn)行實驗,證明了本文提出方法的有效性。下一步將針對無人機(jī)影像序貫平差開展研究,為無人機(jī)遙感數(shù)據(jù)的在線實時處理奠定技術(shù)基礎(chǔ)。