周 兵, 劉曉楠,, 臧文乾, 陳 恒,(河南大學(xué) 計算機與信息工程學(xué)院, 開封 47500)(中國科學(xué)院遙感與數(shù)字地球研究所, 北京 000)
數(shù)據(jù)密集型計算的遙感圖像預(yù)處理方法①
周 兵1, 劉曉楠1,2, 臧文乾2, 陳 恒1,21(河南大學(xué) 計算機與信息工程學(xué)院, 開封 475001)2(中國科學(xué)院遙感與數(shù)字地球研究所, 北京 100101)
針對大數(shù)據(jù)時代, 數(shù)據(jù)密集型計算已經(jīng)成為國內(nèi)外的一個研究熱點. 遙感數(shù)據(jù)具有多源化、海量化特點,是名副其實的大數(shù)據(jù). 研究適用于遙感影像自動化、業(yè)務(wù)化處理的數(shù)據(jù)密集型計算方法, 是目前遙感應(yīng)用技術(shù)面臨的挑戰(zhàn)所面臨的挑戰(zhàn), 本文提出了一種基于數(shù)據(jù)密集型計算的遙感圖像處理方法. 在文中, 首先圍繞遙感數(shù)據(jù)自動化、業(yè)務(wù)化預(yù)處理等問題, 深入調(diào)查和分析了國內(nèi)外研究現(xiàn)狀, 進(jìn)而介紹了系統(tǒng)體系結(jié)構(gòu), 通過工作流靈活組織多種算法模型協(xié)同工作, 設(shè)計以“5并行1加速”的計算體系解決數(shù)據(jù)密集型的遙感圖像預(yù)處理, 并通過產(chǎn)品生產(chǎn)實例對其性能進(jìn)行測試. 結(jié)果表明, 該系統(tǒng)在保證處理精度的前提下, 大大提高了遙感大數(shù)據(jù)預(yù)處理的效率.
遙感數(shù)據(jù); 遙感預(yù)處理; 數(shù)據(jù)密集型計算; 并行計算; 5并行1加速; 工作流
隨著航空與遙感技術(shù)的不斷發(fā)展, 遙感數(shù)據(jù)正在以太比特級(TB)速度增長, 數(shù)據(jù)的處理環(huán)節(jié)速度卻普遍緩慢, 現(xiàn)有的人工作業(yè)方式的時效性已經(jīng)不能滿足日??蒲泻蜕a(chǎn)活動的要求[1]. 由于遙感衛(wèi)星上的傳感器種類眾多, 各類型數(shù)據(jù)處理的算法不同, 進(jìn)行大尺度范圍、長時間序列的數(shù)據(jù)密集型計算[2]特性日漸凸顯, 因此通過獨立于數(shù)據(jù)處理的流程來組合算法減少系統(tǒng)復(fù)雜度成為了當(dāng)下研究的熱點問題.
商用軟件存在操作方法各異、參數(shù)設(shè)置復(fù)雜等問題,而且涉及幾何處理上欠缺自動化批量處理的模式[3]. 針對這些問題遙感數(shù)據(jù)處理需要設(shè)計出一個可靠的半自動生產(chǎn)模型并在保證精確度的同時提高處理的效率.國內(nèi)外一些學(xué)者對于這些問題也做了一定研究, 如文獻(xiàn)[4]提出一種帶幾何約束的大幅面自動快速配準(zhǔn)方法來提升影像處理速度. 針對海量數(shù)據(jù)的遙感圖像處理,除了提高處理效率還需要可靠、魯棒的自動化生產(chǎn).文獻(xiàn)[5]和文獻(xiàn)[6]運用主副版本機制有效的提高了調(diào)度算法的可靠性. 文獻(xiàn)[7]通過工作流實現(xiàn)遙感數(shù)據(jù)和處理算法的統(tǒng)一控制和管理, 以達(dá)到簡化系統(tǒng)復(fù)雜度的目的. 通過工作流和有效的調(diào)度算法可以極大的提高構(gòu)件的可復(fù)用性, 更好的實現(xiàn)數(shù)據(jù)流的自動控制.文獻(xiàn)[8]和文獻(xiàn)[9]通過GPU-CPU協(xié)同模式為算法的性能提高和遙感影像處理系統(tǒng)構(gòu)建提供了高效的解決方案, 充分發(fā)揮單機環(huán)境下不同硬件資源的計算優(yōu)勢.文獻(xiàn)[10]通過最大值似然分類算法驗證基于云計算可以實現(xiàn)遙感圖像的快速處理. 文獻(xiàn)[11]將數(shù)據(jù)、功能、任務(wù)并行融合到遙感生產(chǎn)中, 形成三級并行的設(shè)計方案有效的提高業(yè)務(wù)化處理的效率.
結(jié)合目前的研究現(xiàn)狀, 本文設(shè)計的遙感預(yù)處理系統(tǒng)根據(jù)定量化應(yīng)用需求, 利用0-2級產(chǎn)品進(jìn)行幾何和光譜精化校正獲得基礎(chǔ)標(biāo)準(zhǔn)信息產(chǎn)品. 針對遙感影像數(shù)據(jù)量大、涵蓋信息多、處理模型復(fù)雜、處理時間長等問題, 采用靈活的工作流模式組織幾何糾正、云檢測、大氣糾正、融合、數(shù)據(jù)標(biāo)準(zhǔn)化等多種算法模型形成全鏈路處理系統(tǒng), 并實現(xiàn)結(jié)構(gòu)簡單具備通用性、可擴展性的處理架構(gòu), 結(jié)合多種并行方式來縮短遙感影像處理的生產(chǎn)時間, 實現(xiàn)遙感數(shù)據(jù)的業(yè)務(wù)化生產(chǎn).
本系統(tǒng)針對遙感產(chǎn)品的生產(chǎn)需求和遙感數(shù)據(jù)量大、數(shù)據(jù)類型復(fù)雜的特點, 結(jié)合多種并行方式縮短遙感數(shù)據(jù)的生產(chǎn)時間, 利用生產(chǎn)節(jié)點、分布式數(shù)據(jù)庫構(gòu)成高速計算環(huán)境, 通過資源的合理配置有效的組織多種模型協(xié)同工作, 系統(tǒng)體系結(jié)構(gòu)如圖1所示.
(1) 人機交互層的主要作用是由任務(wù)訂單推送得到要處理的原始數(shù)據(jù); 然后針對不同類型的數(shù)據(jù)調(diào)用不同的算法進(jìn)行處理, 按照訂單需求定制合理的工作流進(jìn)行數(shù)據(jù)生產(chǎn); 最后將結(jié)果和分析以可視化的方式呈現(xiàn)并提供質(zhì)量檢測查看數(shù)據(jù)精度.
(2) 通訊層主要包括各生產(chǎn)節(jié)點之間的數(shù)據(jù)和消息傳輸, 服務(wù)于自動配準(zhǔn)的瓦片獲取和將處理好的產(chǎn)品數(shù)據(jù)入庫.
(3) 基礎(chǔ)算法層集成了大量的算法模型, 解決不同遙感數(shù)據(jù)在具體問題上的分析計算, 通過工作流實現(xiàn)算法模型的統(tǒng)一管理和調(diào)用觸發(fā).
圖1 系統(tǒng)總體框圖
系統(tǒng)的工作核心是生產(chǎn)多源定量遙感產(chǎn)品, 通過任務(wù)推送和本地文件獲得要處理的數(shù)據(jù)集, 以工作流形式組織管理多種算法模型, 支持協(xié)同處理過程中的順序、異步和并行等多種業(yè)務(wù)流程與批處理等工作模式, 通過XML記錄算法模型、業(yè)務(wù)流程和數(shù)據(jù)等信息并對生產(chǎn)過程進(jìn)行監(jiān)控.
2.1 算法模型的組織管理
遙感觀測數(shù)據(jù)通過遙感算法模型與地表目標(biāo)參數(shù)聯(lián)系起來, 遙感數(shù)據(jù)的生產(chǎn)過程是一系列包含大量計算的復(fù)雜過程, 將這個復(fù)雜過程分解為多個環(huán)節(jié)處理, 每個處理環(huán)節(jié)對應(yīng)于具體的遙感算法模型, 將這些算法模型集成起來協(xié)同完成整個處理來解決定量遙感生產(chǎn)問題.
由于模塊眾多、參數(shù)復(fù)雜等問題, 為了處理不同的任務(wù)往往需要對算法進(jìn)行靈活組合, 進(jìn)而形成自適應(yīng)的工作流程. 將業(yè)務(wù)過程按照預(yù)先設(shè)定的規(guī)則借助應(yīng)用程序和操作人員對相關(guān)數(shù)據(jù)的處理形成的工作流模式, 正適應(yīng)于這種多模塊多種參數(shù)調(diào)節(jié)的批量數(shù)據(jù)業(yè)務(wù)化生產(chǎn). 將算法統(tǒng)一編譯為基于命令行的無GUI信息的控制臺程序, 系統(tǒng)通過插件模式, 動態(tài)組織、加載現(xiàn)有的算法模型, 并將輸入輸出參數(shù)以及運行所依賴的庫文件等信息以XML文件的形式保存起來, 以便進(jìn)行參數(shù)校驗和異常處理. 將算法模型按照一定的邏輯功能順序有機的組合成階段性任務(wù), 根據(jù)需求設(shè)置配置文件定制相應(yīng)的業(yè)務(wù)生產(chǎn)流程, 執(zhí)行時解析模型屬性類實現(xiàn)模型和數(shù)據(jù)交換. 如圖2所示, 以工作流[12]模式來組合算法模型能更好的解決業(yè)務(wù)化中模塊多、算法重復(fù)使用、開發(fā)和維護(hù)成本高等問題, 實現(xiàn)將業(yè)務(wù)邏輯和實際應(yīng)用分離, 更好的適應(yīng)遙感數(shù)據(jù)處理的快速變化.
圖2 工作流組織管理算法模型
2.2 工作流程
由于遙感圖像成圖時受傳感器、地球旋轉(zhuǎn)、大氣等因素影響, 圖像與其對應(yīng)地物的實際信息會產(chǎn)生一定的偏差. 為了糾正這些偏差本系統(tǒng)以模型庫和任務(wù)流方式, 集成了圖像配準(zhǔn)、幾何糾正、大氣糾正、融合、云檢測、信息統(tǒng)計、數(shù)據(jù)標(biāo)準(zhǔn)化和快視圖等多種處理模型應(yīng)用于遙感大數(shù)據(jù)密集型預(yù)處理計算工作流程如圖3所示. 圖像配準(zhǔn)主要根據(jù)底圖與配準(zhǔn)影像的特征地物來保證圖像位置的正確性, 通過原始影像經(jīng)緯度范圍按照圖像分辨率經(jīng)過公式轉(zhuǎn)換成對應(yīng)的層級和行列號范圍, 通過Web Service服務(wù)從數(shù)據(jù)庫中檢索瓦片并下載到本地, 將獲取的瓦片數(shù)據(jù)拼接為區(qū)域一致的基準(zhǔn)影像經(jīng)過HARRIS或SIFT算法自動提取控制點. 訪問數(shù)據(jù)庫獲取基準(zhǔn)圖像動態(tài)提取控制點的方法省去了人工采集的繁瑣; 基準(zhǔn)圖像存儲在分布式的數(shù)據(jù)庫中節(jié)省本地存儲空間提高系統(tǒng)可移植性; 基準(zhǔn)影像的數(shù)據(jù)類型可按照生產(chǎn)需要進(jìn)行調(diào)整進(jìn)一步提高配準(zhǔn)精度.
經(jīng)緯度轉(zhuǎn)換行列號公式為:
其中某個點的經(jīng)緯度坐標(biāo)為(Long, Lat), Z為影像層級x瓦片分割間隔度數(shù)的倒數(shù), floor為下取整函數(shù).
幾何糾正模塊主要通過有理函數(shù)模型或多項式模型來消除影像中的幾何誤差. 有理函數(shù)模型根據(jù)原始影像的RPC參數(shù), 通過最小二階乘法求解RPC參數(shù)結(jié)合嶺估計[13]實現(xiàn)函數(shù)模型糾正. 多項式模型不考慮成像空間幾何過程, 直接對影像變形本身進(jìn)行數(shù)學(xué)模擬,計算中的待定系數(shù)由控制點坐標(biāo)確定. 根據(jù)幾何糾正模型中不同模塊的數(shù)據(jù)依賴關(guān)系, 在模型調(diào)用前根據(jù)生產(chǎn)要求結(jié)合文件檢測自動匹配合適的糾正模型進(jìn)行處理. 融合模塊利用全色的高分辨率和多光譜的波普信息進(jìn)行融合獲得比單一數(shù)據(jù)更豐富的信息. 目前僅對高分一號2m全色和8m多光譜以及高分二號1m全色和4m多光譜進(jìn)行融合, 其它數(shù)據(jù)類型則不做融合處理. 針對這種情況采用條件觸發(fā)方式調(diào)用, 根據(jù)衛(wèi)星和傳感器判斷數(shù)據(jù)類型, 對滿足條件的數(shù)據(jù)檢索模型參數(shù)是否存在即幾何糾正后的多光譜及全色數(shù)據(jù),參數(shù)檢測正常則進(jìn)行融合處理.
標(biāo)準(zhǔn)化模塊將糾正后的數(shù)據(jù)按照五層十五級標(biāo)準(zhǔn)[14]進(jìn)行切分, 切分后的數(shù)據(jù)可以快速聚合實現(xiàn)了靈活的管理調(diào)度服務(wù)于并行計算. 工作流在執(zhí)行過程中進(jìn)行過程控制, 通過Log類監(jiān)控每個任務(wù)標(biāo)記其屬性并輸出日志文件記錄主任務(wù)時間和算法模型執(zhí)行時間以及錯誤信息, 通過時間和異常信息判斷模型的調(diào)用情況.根據(jù)模型間的邏輯關(guān)系建立的工作流既能滿足算法模型的靈活組織管理, 又能服務(wù)于業(yè)務(wù)化生產(chǎn)減少人工操作更好的應(yīng)用于數(shù)據(jù)密集型計算.
遙感數(shù)據(jù)呈現(xiàn)出的多時相、多光譜、多分辨率和多傳感器等現(xiàn)狀形成了數(shù)據(jù)量大且類型各異的特點.遙感數(shù)據(jù)的處理是一個復(fù)雜的過程涉及處理器硬件、磁盤存儲、算法模塊、網(wǎng)絡(luò)通信等一系列因素. 處理環(huán)節(jié)中除了將算法模型進(jìn)行合理的組織管理, 還需要提高數(shù)據(jù)的處理效率. 在業(yè)務(wù)化的處理時根據(jù)數(shù)據(jù)量將數(shù)據(jù)按生產(chǎn)訂單進(jìn)行劃分, 分布到多機環(huán)境下進(jìn)行同步處理縮短生產(chǎn)時間. 在生產(chǎn)節(jié)點按時間和優(yōu)先級結(jié)合的方式處理任務(wù)上結(jié)合算法模型間的邏輯關(guān)系并行處理數(shù)據(jù)提高CPU利用率. 針對一景遙感影像數(shù)據(jù)量很大無法全部讀入計算機內(nèi)存的現(xiàn)象, 通過對數(shù)據(jù)分區(qū)分塊, 利用GPU在圖形圖像上的處理優(yōu)勢在算法中進(jìn)行加速. 待一景遙感數(shù)據(jù)分為較小圖像后可以通過多線程將不同數(shù)據(jù)塊同時處理. 形成結(jié)合多機并行、任務(wù)并行、數(shù)據(jù)并行、算法并行、多線程并行和GPU加速的“5并行1加速”的計算體系, 結(jié)構(gòu)體系如圖3所示.
圖3 系統(tǒng)工作流程圖
圖4 “5并行1加速”結(jié)構(gòu)體系圖
3.1 多機并行
多機并行是一組計算機通過網(wǎng)絡(luò)連接部署相同的處理環(huán)境使其能協(xié)作完成計算工作. 每臺參與計算的計算機都是一個生產(chǎn)節(jié)點, 負(fù)責(zé)一部分任務(wù)的執(zhí)行處理. 在接收到產(chǎn)品生產(chǎn)訂單后分給調(diào)度服務(wù)器進(jìn)行任務(wù)分配, 多機環(huán)境下要充分考慮節(jié)點的負(fù)載通過任務(wù)分配進(jìn)行調(diào)度, 節(jié)點的生產(chǎn)能力主要取決于當(dāng)前的可用內(nèi)存、CPU利用率、磁盤讀寫速度、網(wǎng)絡(luò)帶寬, 綜合這四方面性能指標(biāo)通過公式分析節(jié)點生產(chǎn)能力值Pi,對Pi值高的節(jié)點優(yōu)先分配任務(wù), 實現(xiàn)滿足節(jié)點負(fù)載均衡的多機計算環(huán)境.
其中Mi、Ci、Di、Ni表示第i個節(jié)點的可用內(nèi)存、CPU利用率、磁盤讀寫速度及網(wǎng)絡(luò)帶寬, Mmax、Cmax、Dmax、Nmax分別對應(yīng)四個方面上的最大值, W1、W2、W3、W4為四個指標(biāo)的權(quán)重系數(shù), 且W1+W2+ W3+W4=1, 根據(jù)節(jié)點即要滿足數(shù)據(jù)傳輸又要處理密集型計算, 這里設(shè)置w值均為0.25.
在任務(wù)分配服務(wù)器上存有生產(chǎn)訂單Dready、等待訂單Dwait用于分配任務(wù), 空閑隊列Nspare和忙碌Nbusy隊列用于調(diào)度節(jié)點. 任務(wù)訂單信息D(D1,D2,…,Di)其中Di為訂單編號, 節(jié)點隊列信息N (Node1, Node2,…,Nodei),其中 Nodei(Mi,Ci,Di,Ni,Pi,Numi) 存儲節(jié)點的基本信息信息, 其中Numi為節(jié)點i的當(dāng)前任務(wù)數(shù).
對節(jié)點進(jìn)行任務(wù)分配方法如下:
(1) 任務(wù)調(diào)度解析訂單信息, 對任務(wù)編號形成子任務(wù)并放入Dwait.
(2) 判斷Nspare是否為空, 不為空則根據(jù)節(jié)點Pi值對節(jié)點空閑隊列排序, 對Pi值相等的節(jié)點按Numi值排序, 從Dwait中移出子任務(wù)加入Dready并分配生產(chǎn)節(jié)點,同時把生產(chǎn)節(jié)點從Nspare中移出存入Nbusy; Nspare為空則繼續(xù)等待.
(3) 收到子任務(wù)生產(chǎn)完成消息時, 將子任務(wù)從Dready中移除, 并將生產(chǎn)節(jié)點從Nbusy中刪除, 加入Nspare.
(4) 判斷Dwait是否為空, 不為空執(zhí)行(2), 為空則執(zhí)行(5).
(5) 判斷Dready是否為空, 不為空則任務(wù)沒有執(zhí)行完等待, 等待直到有子任務(wù)生產(chǎn)完成即第3步; 為空則任務(wù)生產(chǎn)結(jié)束執(zhí)行結(jié)束.
3.2 任務(wù)并行
在完成任務(wù)分配后任務(wù)訂單被分配到生產(chǎn)節(jié)點上,分解產(chǎn)品訂單生成任務(wù), 由于遙感數(shù)據(jù)處理時間長、耦合高將任務(wù)根據(jù)類別分為普通任務(wù)隊列Tcom(T1,T2,…Ti)和應(yīng)急任務(wù)隊列Temer(T1,T2,…Ti)Ti為任務(wù)編號, 任務(wù)隊列基于FIFO先來先服務(wù)策略按任務(wù)到達(dá)時間順序執(zhí)行, 在每個任務(wù)執(zhí)行前會先判斷Temer是否為空, 是則繼續(xù)Tcom隊列按順序生產(chǎn), 否則結(jié)合基于優(yōu)先級的調(diào)度算法, 暫停Tcom隊列出隊生產(chǎn)Temer中數(shù)據(jù)直到結(jié)束后繼續(xù)Tcom. 將任務(wù)按照優(yōu)先級和時間戳屬性進(jìn)行劃分通過任務(wù)隊列的協(xié)同處理模式提高生產(chǎn)效率.
3.3 數(shù)據(jù)并行
數(shù)據(jù)并行分為數(shù)據(jù)傳輸上的并行和數(shù)據(jù)計算上的并行. 數(shù)據(jù)傳輸上的并行主要通過將數(shù)據(jù)分發(fā)到多個生產(chǎn)節(jié)點進(jìn)行同時生產(chǎn), 數(shù)據(jù)計算上的并行主要在單機環(huán)境下對工作流引擎執(zhí)行過程中產(chǎn)生的中間數(shù)據(jù)集進(jìn)行并行計算, 這些數(shù)據(jù)一般會繼續(xù)被后續(xù)子任務(wù)使用, 數(shù)據(jù)放置在相關(guān)度[15]最大的數(shù)據(jù)中心減少不必要的傳輸開銷. 相對像素級的并行處理來說, 其數(shù)據(jù)之間相關(guān)性較小, 不同的數(shù)據(jù)塊可能需要執(zhí)行相同的操作. 通過線程各自讀取分配的影像, 每個數(shù)據(jù)獨立完成其計算任務(wù). 例如在一景影像分波段后得到紅綠藍(lán)波段和紅外波段, 通過數(shù)據(jù)標(biāo)準(zhǔn)化算法分別開設(shè)線程對四個波段的圖像同時執(zhí)行切片操作得到瓦片數(shù)據(jù).融合后的切片數(shù)據(jù)量多達(dá)上百個, 在大量瓦片數(shù)據(jù)生成快視圖時按順序操作處理時間長, 需要對不同行列號下的數(shù)據(jù)同時生產(chǎn)提高效率.
3.4 算法并行
算法并行在工作流中結(jié)合算法參數(shù)信息, 調(diào)用多個算法模型同時處理. 下一級算法之間共享數(shù)據(jù)的讀取, 不同算法輸出不同的結(jié)果防止寫入沖突, 處理完成后的結(jié)果由上級算法使用. 遙感產(chǎn)品生產(chǎn)的依賴關(guān)系不容易形成回路依賴, 通過有向無環(huán)圖的算法描述結(jié)構(gòu)分析算法之間的依賴關(guān)系進(jìn)一步并行提高效率.如圖5所示云檢測、天頂角方位角(AZ)、和融合主要依賴于幾何糾正后的數(shù)據(jù), 在幾何糾正完成后通過共享數(shù)據(jù)讀取的方式并行啟動上一級算法. 由于遙感數(shù)據(jù)存在部分需要做融合處理, 所以將分波段算法放入更高級等待當(dāng)前算法均完成處理后啟動. 生成快視圖需要Alpha通道和分波段后的影像數(shù)據(jù)做波段組合,位于同一并行級別的生成Alpha通道算法和分波段算法則可并行生產(chǎn)獲得快視圖產(chǎn)品.
圖5 算法依賴關(guān)系描述圖
3.5 多線程并行
大數(shù)據(jù)量的遙感數(shù)據(jù)由于一次只能讀取一部分?jǐn)?shù)據(jù)造成磁盤訪問頻繁, 等待過程未充分利用CPU資源.系統(tǒng)對整景影像在單個計算節(jié)點上通過OpenMP進(jìn)行多線程加速, 在切片處理后形成數(shù)據(jù)個數(shù)多而數(shù)據(jù)量小的瓦片數(shù)據(jù), 通過Parallel類中的方法生成并行工作計劃處理數(shù)據(jù)集中數(shù)據(jù). 根據(jù)IOCP原理線程開設(shè)應(yīng)為CPU數(shù)量的2倍, 然而處理中有大量讀寫硬盤文件的操作造成線程等待, 這里使用動態(tài)創(chuàng)建線程法, 保留一個等待線程數(shù)量的屬性作為線程喚醒時的判斷,并設(shè)置其值為最大線程數(shù)量, 以此提高CPU的利用率進(jìn)而提高生產(chǎn)效率. 主要流程為: 讀取圖像寬高或個數(shù)等圖像信息; 動態(tài)創(chuàng)建線程完成數(shù)據(jù)處理修改等待線程數(shù)量的值防止創(chuàng)建過多; 查詢線程狀態(tài)標(biāo)識已處理完則釋放結(jié)束操作, 否則繼續(xù)等待.
3.6 GPU加速
GPU的全稱是圖形處理器, 適用于具有相似處理過程的大數(shù)據(jù)的并行計算. 在遙感影像數(shù)據(jù)的計算上, GPU的性能是基于CPU的并行計算方式的數(shù)十倍甚至上百倍. 這主要是由于CPU所要處理的任務(wù)種類類型繁多, 其不僅要負(fù)責(zé)內(nèi)存管理還要負(fù)責(zé)任務(wù)調(diào)度等一系列非計算類任務(wù), 通過OpenMP等多線程機制實現(xiàn)的是一種軟件粗粒度的多線程, 有線程上下文的切換的時間開銷. 而GPU則是專門為數(shù)據(jù)的并行計算而設(shè)計的, 其內(nèi)部沒有CPU那樣復(fù)雜的控制單元和寄存器, 取而代之的是大量的計算核心, 并且基于硬件管理的輕量級線程在計算密度較高可以隱藏其延遲從而實現(xiàn)零開銷的線程切換. 這些差異使GPU在執(zhí)行數(shù)據(jù)密集型計算時性能遠(yuǎn)超過同期CPU. 系統(tǒng)中用于控制點提取的SIFT算法, 用于圖像融合的atrous小波、HIS等多種算法都是通過CUDA的GPU計算框架實現(xiàn)的.
由于遙感影像的數(shù)據(jù)量較大, GPU的可用顯存有可能不足以加載整景的遙感數(shù)據(jù), 所以需要對遙感數(shù)據(jù)進(jìn)行分片. 但是顯存的讀取操作是經(jīng)過PCI Express接口傳輸?shù)? 顯存與內(nèi)存之間的傳輸效率很低, 因此分片不能過小, 過小的話會導(dǎo)致頻繁的數(shù)據(jù)交互從而嚴(yán)重的降低運算效率. 分片的過程主要是根據(jù)GPU當(dāng)前的可用顯存結(jié)合遙感影像的寬度將原始影像劃分為n個條帶狀的影像塊, 該步驟的計算量小并且需要持久化分塊信息因此需要在CPU上運行.當(dāng)計算出影像塊的行列號范圍后, 在CPU的調(diào)度下影像塊被依次傳輸至GPU中進(jìn)行計算. 傳輸完成后CPU會通知GPU調(diào)用相應(yīng)的內(nèi)核函數(shù)對顯存中的數(shù)據(jù)進(jìn)行并行計算. 內(nèi)核函數(shù)會調(diào)用GPU中的多個處理單元, 每個處理單元可以看作一個計算線程. 每個線程負(fù)責(zé)一部分?jǐn)?shù)據(jù)的計算, 由于各個數(shù)據(jù)之間沒有依賴關(guān)系因此各個線程可以在不受其他線程影響的情況下對數(shù)據(jù)進(jìn)行計算. 在線程的運算完成時, 運算結(jié)果會被暫存在顯存中, 當(dāng)所有的線程都完成計算的時候喚醒CPU, 然后在CPU的調(diào)度下將計算結(jié)果從顯存重新傳輸?shù)絻?nèi)存中.
為了驗證預(yù)處理系統(tǒng)在保證處理精度的同時能有效的縮短生產(chǎn)時間, 本文通過對不同類型的高分?jǐn)?shù)據(jù)進(jìn)行實驗, 從并行后的算法執(zhí)行時間、多景影像處理時間和模型精度三個方面說明. 實驗中用到的CPU型號為Intel Core i7 4核處理器, 顯卡型號為NVIDIA Tesla C2050.
表1為算法模型的執(zhí)行時間表, 表中的數(shù)據(jù)是通過對GF數(shù)據(jù)不同類型的5景數(shù)據(jù)多次測試取平均值得到的. 實驗中用到的全色數(shù)據(jù)均指融合后的圖像,通過表中數(shù)據(jù)可以看出數(shù)據(jù)標(biāo)準(zhǔn)化和快視圖生成這兩個算法模塊通過多線程加速能夠有效的縮短生產(chǎn)時間,大幅提升處理效率.
表1 各算法執(zhí)行時間比較
PCI GXL是用于衛(wèi)星影像數(shù)據(jù)自動化生產(chǎn)的地理影像集成軟件系統(tǒng), 具有強大的海量數(shù)據(jù)批量生產(chǎn)能力, 采用靈活的模塊組合實現(xiàn)自動化生產(chǎn), 相較于其他遙感影像處理系統(tǒng)有其獨特的優(yōu)勢. 本文選取北京地區(qū)的50景高分?jǐn)?shù)據(jù)進(jìn)行數(shù)據(jù)處理實驗, 通過對比在本系統(tǒng)上和PCI GXL系統(tǒng)上的數(shù)據(jù)處理耗時來驗證系統(tǒng)能在一定程度上縮短影像生產(chǎn)時間. 表2是每景影像在各個模塊上的平均處理時間. 從表中可以看出,本系統(tǒng)在幾何糾正和圖像融合上花費的時間遠(yuǎn)小于PCI GXL系統(tǒng), 配準(zhǔn)時間稍長的原因在于需要從數(shù)據(jù)庫中檢索瓦片下載到本地然后再拼接為基準(zhǔn)影像, 這一步驟要花費一定時間. 經(jīng)過與商業(yè)軟件的對比得出:利用“5并行1加速”的計算體系對高分?jǐn)?shù)據(jù)的生產(chǎn)效率有了很大的提高.
表2 影像處理時間表
圖6 GF1數(shù)據(jù)瓦片卷簾對比圖
圖7 GF2數(shù)據(jù)瓦片卷簾對比圖
通過不同時間拍攝的影像數(shù)據(jù)在同一層級行列號下瓦片數(shù)據(jù)地理位置基本一致驗證模型精度. 如圖6為高分一號8米瓦片數(shù)據(jù), 標(biāo)注為1的是20151012日數(shù)據(jù), 標(biāo)注為2的是20160324日數(shù)據(jù); 圖7為高分二號4米瓦片數(shù)據(jù), 標(biāo)注為1的是20150217日數(shù)據(jù), 標(biāo)注為2的是20150912日數(shù)據(jù). 由圖中可以看出系統(tǒng)能在一定范圍內(nèi)保證模型精度.
在遙感數(shù)據(jù)處理中, 如何快速準(zhǔn)確的解決影像處理任務(wù)、找到適應(yīng)于影像業(yè)務(wù)化處理的數(shù)據(jù)密集型計算方法是現(xiàn)階段的研究方向. 本文設(shè)計的預(yù)處理系統(tǒng)通過組織多種遙感算法模型形成工作流來完成遙感數(shù)據(jù)的業(yè)務(wù)化處理, 借助不同的并行方式提升計算能力、縮短生產(chǎn)時間形成“5并行1加速”的計算體系. 通過實際驗證在高分?jǐn)?shù)據(jù)的生產(chǎn)上能夠保證處理精度的同時大幅度提升生產(chǎn)效率.
1 何國金,王力哲,馬艷,等.對地觀測大數(shù)據(jù)處理:挑戰(zhàn)與思考.科學(xué)通報,2015,60(5-6):470–478.
2 Ma Y, Wang L, Liu P, et al. Towards building a data-intensive index for big data computing–A case study of remote sensing data processing. Information Science, 2014, 319: 171–188.
3 Tang P, Zhang HW, Zhao YC, et al. Practice and thoughts of the automatic processing of multispectral images with 30 m spatial resolution on the global scale. Journal of Remote Sensing, 2014, 18(2): 1007–4619.
4 張謙,賈永紅,吳曉良,等.一種帶幾何約束的大幅面遙感影像自動快速配準(zhǔn)方法.武漢大學(xué)學(xué)報:信息科學(xué)版,2014. 39(1):17–21.
5 Zhang J, Sha HM, Zhuge Q, et al. Efficient fault-tolerant scheduling on multiprocessor systems via replication and deallocation. International Journal of Embedded Systems, 2014, 6(2/3): 216–224.
6 景維程.海量遙感數(shù)據(jù)的高可靠并行處理方法.測繪工程, 2015,(6):14–17.
7 Peter F, Matthew B, Mark B, et al. Web-based processing of remote sensing data in a workflows environment. ISRSE2011: The GEOSS Era: Towards Operational Environmental Monitoring, Sydney Convention&Exhibition Centre. 2011.
8 Tang M, Zhao JY, Tong RF, et al. GPU accelerated convex hull computation. Computers & Graphics, 2012, 36(5): 498–506.
9 盧敏,王金茵,盧剛,等.CPU/GPU異構(gòu)混合并行的柵格數(shù)據(jù)空間分析研究--以地形因子計算為例.計算機工程與應(yīng)用, 2015.
10 Wang P, Wang J, Chen Y, et al. Rapid processing of remote sensing images based on cloud computing. Future Generation Computer Systems, 2013, 29(8): 1963–1968.
11 張樹凡,余濤,李家國,等.基于三級并行的遙感業(yè)務(wù)化處理系統(tǒng)研究.計算機工程與設(shè)計,2012,10(33):3828–3832.
12 孫小涓,雷斌,程兆運,等.遙感數(shù)據(jù)處理運行控制中的工作流應(yīng)用.計算機工程,2012,38(4):28–30.
13 張過.缺少控制點的高分辨率衛(wèi)星遙感影像的幾何糾正[博士學(xué)位論文].武漢:武漢大學(xué),2005.
14 王棟,鄭逢斌,賴積保,等.基于五層十五級遙感數(shù)據(jù)結(jié)構(gòu)的并行算法研究.微計算機信息,2012,28(1):116–167.
15 劉少偉,孔令梅,任開軍,等.云環(huán)境下優(yōu)化科學(xué)工作流執(zhí)行性能的兩階段數(shù)據(jù)放置與任務(wù)調(diào)度策略.計算機學(xué)報, 2011,34(11):2121–2130.
Remote Sensing Image Preprocessing Method Based on the Data Intensive Computing
ZHOU Bing1, LIU Xiao-Nan1,2, ZANG Wen-Qian2, CHEN Heng1,21(School of Computer and Information Engineering, Henan University, Kaifeng 475001, China)2(Institute of Remote Sensing and Digital Earth, Chinese Academy of Sciences, Beijing 100101, China)
In the era of big data, the research on data-intensive computing is becoming more and more popular both at home and abroad. As a typical branch of big data, remote sensing data is characterized both by the variety of the data sources and the huge data quantity. One of the biggest challenges facing the remote sensing application is how to find out a data-intensive computing method which aims at the automation of the business processions of remote sensing images. In this paper, a new data-intensive computing method for the procession of remote sensing images is proposed. After a deeply study focusing on the automation of the business processions of remote sensing data, a new systematic architecture using workflow is introduced which can coordinate the work among different algorithm models. In addition, in the pre-processing of the remote sensing images, a new computing architecture with five different types of parallelism and a stage of acceleration is also adopted. The computing method proposed in this paper has been tested in many products in real production environment in order to testify its effectiveness. The results show a significant improvement on the efficiency of the pre-processing of remote sensing data in the condition of ensuring the processing precision.
remote sensing data; remote sensing data preprocessing; data intensive computing; parallel computing; five parallelism and one acceleration; workflow
高分重大專項(Y4D00100GF);高分重大專項(Y4D0100038);中科院戰(zhàn)略先導(dǎo)專項課題(Y1Y02230XD)
2016-07-21;收到修改稿時間:2016-09-02
10.15888/j.cnki.csa.005699