文/李霖 王燕 李光麗 田維
遙感影像瓦片化調(diào)度技術主要的技術方向是構建一個數(shù)據(jù)級并行處理集成開發(fā)框架,首先根據(jù)具體的業(yè)務運行算法采用合適的切片策略對大數(shù)據(jù)進行切片,然后采用并行計算技術分別對各片數(shù)據(jù)進行業(yè)務處理,最后根據(jù)切片策略并結合算法本身特性對各個處理結果進行規(guī)約合并以得到最終的結果。具體如圖1所示。
針對遙感影像的特點,影像瓦片化的算法可包括如下幾種類型:均勻劃分法,有效區(qū)域劃分法,不規(guī)則劃分法等。
平均劃分模式主要針對快速計算的優(yōu)化,適用于對信息量分布比較均勻的遙感圖像。這種分配方式下,所適用的圖像算法應具有在計算時對像素間的關聯(lián)距離不大這一特點,如圖2(a)所示。在該方法的指導下,提出了若干種具體的分配方式,如按塊狀進行劃分,按行條狀進行劃分以及按列狀進行劃分等等。
在遙感圖像中還有一類很常見的圖像如圖2(b)所示。經(jīng)過幾何校正后的圖像在邊緣都會有大量的無效數(shù)據(jù),因此需要把無效數(shù)據(jù)剔除,并按有效區(qū)域等面積進行均勻劃分,使P1=P2=P3=P4=P5,這樣瓦片數(shù)據(jù)在進行分布式并行計算時就能盡可能讓數(shù)據(jù)的計算量保持一致。

圖1:遙感影像瓦片化調(diào)度技術思路
冗余劃分模式主要針對圖像處理算法中,像素間關聯(lián)距離很大,例如基于窗口和模板的圖像處理算法。因此,為了在獲得快速圖像處理的同時,獲取較好的處理效果,在數(shù)據(jù)劃分的時候要充分考慮像素間關聯(lián)問題,即劃分數(shù)據(jù)需要一定的重疊,如圖2(c)所示。這種數(shù)據(jù)劃分模式其實就是在圖2(c)模式的基礎上考慮邊界的數(shù)據(jù)重疊問題,控制重疊區(qū)域的大小是其中的關鍵點,也是難點。假如重疊區(qū)域大小控制的較差,非但不會提升遙感影像計算的效率,反而將增加計算的通信量,加劇遙感影像計算的系統(tǒng)開銷。根據(jù)以往經(jīng)驗,一般建議冗余總體窗口寬度的1/10到1/20像素數(shù)據(jù)。
不平均劃分模式主要針對快速計算的優(yōu)化,適用于目標提取等應用。它的情況比較復雜,需要在分配前粗略的計算劃分的邊界,與均勻劃分不同,是信息量分布不均衡的遙感圖像,即在遙感圖像上我們感興趣的信息所占整個圖像的比例較小,集中在一個較小的區(qū)域內(nèi),如圖2(d)所示。假如系統(tǒng)想要在某一遙感影像數(shù)據(jù)中獲取相關水域中的船體信息,但影像并非整個包含水域信息,可能其中絕大部分是陸地信息,水域信息只占據(jù)了一部分,所占區(qū)域非常小。而由于我們希望獲取的船體的信息,一般位于水域信息中,因此在對船體進行信息提取時,就沒有必要對陸地區(qū)域進行計算,只需對影像的水域信息進行處理。這樣系統(tǒng)就可以進行預處理獲取兩個區(qū)域間的邊界,明確需要計算的部分。在有效區(qū)域占比不高的情況下,邊界統(tǒng)計會增加開銷,但可以大大減少后期復雜度較高的遙感計算算法的開銷,非常有益。
遙感影像瓦片化調(diào)度平臺是在傳統(tǒng)的工作流調(diào)度平臺的基礎上擴展實現(xiàn)的,通過擴展影像瓦片化插件實現(xiàn)不同類型的影像分割,通過擴展瓦片數(shù)據(jù)管理實現(xiàn)數(shù)據(jù)在分布式文件系統(tǒng)上的并行計算。下面將按照平臺的層次分工作流引擎、分布式瓦片數(shù)據(jù)管理、瓦片化插件三部分進行介紹如下:
工作流引擎采用我公司自研的DOMINI流程調(diào)度引擎,其主要是通過建模、自動化、管理和優(yōu)化流程,打破跨系統(tǒng)跨流程業(yè)務過程依賴,提高業(yè)務效率和效果。它的基本內(nèi)容是管理既定工作的流程,通過服務編排,統(tǒng)一調(diào)控各個流程,以確保工作在正確的時間被正確的執(zhí)行,達到優(yōu)化整體業(yè)務過程的目的。DOMINI流程調(diào)度引擎以BPMN2.0規(guī)范為支撐,進行深度優(yōu)化與擴展,利用標準的圖元去描述真實的業(yè)務發(fā)生過程,采用B/S模式實現(xiàn)了模塊組件化及流程可視化托拉拽的方式建模,并實現(xiàn)了并行控制及監(jiān)控過程。其特點如下:
2.1.1 流程建模
符合BPMN2.0的流程組件建模界面包括BPMN2.0組件庫、算法組件庫、流程可視化配置區(qū)與流程參數(shù)配置。在BPMN2.0組件庫、算法組件庫的支撐下設計人員在流程可視化配置區(qū)采用托、拉、拽的方式實現(xiàn)流程建模及流程相關參數(shù)配置。
2.1.2 影像瓦片化處理流程擴展
引擎擴展出了遙感影像瓦片化處理流程,方便使用者編排分布式并行數(shù)據(jù)處理流程。
2.1.3 流程的腳本編輯技術
支持流程的腳本編輯,能夠通過腳本的方式將復雜流程串聯(lián)起來,整個引擎通過可視化的流程編排加腳本交互就能完成業(yè)務流程開發(fā)。
2.1.4 可擴展的負載均衡策略
可擴展的負載均衡策略,除了常規(guī)的均衡流轉算法等,還可以支持基于機器學習的負載均衡策略等。
遙感影像瓦片化實現(xiàn)是一個物理過程,瓦片化后的多塊切片數(shù)據(jù)需要存儲,在云端生產(chǎn)中采用分布式文件系統(tǒng)HDFS作為存儲框架。在數(shù)據(jù)處理過程中,根據(jù)參數(shù)判斷是否進行進行瓦片化處理,需要則由調(diào)度系統(tǒng)調(diào)用瓦片化算法對數(shù)據(jù)進行切塊,將切塊后的n塊數(shù)據(jù)調(diào)用HDFS存儲接口存儲數(shù)據(jù),并且將數(shù)據(jù)的存儲信息存儲在數(shù)據(jù)庫中。根據(jù)數(shù)據(jù)庫中記錄的n塊切片數(shù)據(jù)所在的節(jié)點位置調(diào)用算法組件集用于實現(xiàn)數(shù)據(jù)并行。在算法組件集處理完成后由調(diào)度系統(tǒng)調(diào)用數(shù)據(jù)合并算法將n塊處理后的切片合并成一塊完整數(shù)據(jù)。如果不要切片則按照常規(guī)處理過程處理數(shù)據(jù)。
下面以客戶端運行一個作業(yè)為例,介紹作業(yè)運行的流程:
(1)由用戶發(fā)起運行作業(yè)的指令;
(2)客戶端從作業(yè)管理節(jié)點獲得作業(yè)ID。作業(yè)管理節(jié)點的作業(yè)控制模塊會記錄這個ID,用于以后作業(yè)的維護;
(3)作業(yè)客戶端把作業(yè)文件和作業(yè)運行的必要文件上傳到分布式系統(tǒng)中,這樣做的好處是其它任務節(jié)點可以方便地獲取到這些文件;
(4)作業(yè)客戶端上傳分片信息到作業(yè)管理節(jié)點,并提交作業(yè);
(5)作業(yè)管理節(jié)點對作業(yè)進行初始化;
(6)作業(yè)管理節(jié)點根據(jù)分片信息,可以獲得輸入分片所在的數(shù)據(jù)節(jié)點的信息,根據(jù)這些信息將作業(yè)分解成多個任務,準備下發(fā)給任務節(jié)點;
(7)作業(yè)管理節(jié)點通過任務節(jié)點上傳負載信息的應答消息返回任務;
(8)接收到任務的任務節(jié)點從分布式系統(tǒng)中得到作業(yè)資源,準備執(zhí)行任務;
(9)執(zhí)行任務;
(10)將執(zhí)行完任務產(chǎn)生的輸出文件上傳到分布式系統(tǒng)中。

圖2:影像瓦片化算法
瓦片化插件提供各種類型的影像分割和合并的算法,并且能夠根據(jù)處理算法的需求進行擴展。具體算法包括:
(1)均勻劃分算法:按行均勻劃分算法,按列均勻劃分算法,按塊均勻劃分算法,按面積均勻劃分算法;
(2)冗余劃分算法:按行冗余劃分算法,按列冗余劃分算法,按塊冗余劃分算法,按面積冗余劃分算法;
(3)不均勻劃分算法:按水體劃分算法,按植被劃分算法,按大氣劃分算法,按居民地劃分算法等。
在實驗中以高分2號遙感數(shù)據(jù)為例進行研究。
衛(wèi)星:GF-2;
載荷:全色PAN;
數(shù)據(jù)格式:原始數(shù)據(jù)格式;
分辨率:8192*32768;
文件大?。?12MB。
算法模塊:MTFC,遙感圖像相位補償。
測試環(huán)境:服務器3臺,處理器1*4核,內(nèi)存4.0GB,硬盤100GB,安裝分布式環(huán)境hadoop。
測試結果:未進行瓦片化的處理耗時238s,按行分2片的處理耗時154s,按行分4片的處理耗時86s,按行分8片的處理耗時58s。
結論:根據(jù)測試結果可以看到,對比傳統(tǒng)的單線程算法,經(jīng)過影像瓦片化調(diào)度的算法處理速度得到了成倍的提升,最大加速比達到了4以上,其提升效率與服務器數(shù)量、瓦片化數(shù)量、網(wǎng)絡速度等均有密切關系。通過采用影像瓦片化調(diào)度技術,能夠充分提高軟硬件資源使用效率,提高遙感影像處理算法的處理速度,更好的為當前遙感數(shù)據(jù)處理業(yè)務服務。