本發(fā)明是基于分布式計算的編程框架構(gòu)建并行集群計算平臺,研究多角度和多尺度的多源遙感圖像獲取模式,突破多源可見光多角度、多分辨率圖像自動提取分辨率、高精度的DSM技術(shù)的基礎(chǔ)上研究圖像塊的快速重投影和無縫拼接方法,通過海量影像的勻光勻色技術(shù)實現(xiàn)影像無差別顯示。屬于電子信息技術(shù)領(lǐng)域,可對高分辨率的衛(wèi)星遙感產(chǎn)品進行規(guī)?;纳a(chǎn),大大加快了產(chǎn)品生產(chǎn)的速度。
背景技術(shù):
1)精細DSM提取技術(shù):利用所有能獲得的目標區(qū)影像,采用多基元、多分辨率的多片影像的匹配技術(shù),加強匹配的約束條件,達到提高影像匹配的可靠性,提取高精度DEM的目的。
2)基于高精度DSM的建筑物遮擋計算和陰影自動去除:在明確獲知成像時間和位置的前提下,可以知道當時當?shù)氐奶柛叨冉牵瑫r可以計算出圖像中的陰影范圍。對于多云和陰天的情況,陰影可能并不存在,于是將對計算出的陰影范圍與鄰近的區(qū)域進行灰度和對比度等指標的計算。比較,判斷是否是陰影。遮擋區(qū)域和陰影將同時考慮,作為需要填補的區(qū)域。這樣的方法適合同時處理大范圍影像,也適合做并行處理。其以區(qū)域的高分辨率DSM為核心,不局限于每景影像的單獨處理。
3)研究多角度和多尺度的多源遙感圖像獲取模式:將新獲取的多源可見光圖像與基準圖像數(shù)據(jù)進行自動匹配,獲取高精度的均勻分布的地面控制點,免除了人工定位和輸入地面控制點的工作,成為整個流程的自動化的第一步。
技術(shù)實現(xiàn)要素:
本發(fā)明采取的技術(shù)路線如下:
技術(shù)路線共包括5個部分,分別是:任務(wù)劃分與數(shù)據(jù)智能調(diào)度技術(shù)、GPU與CPU協(xié)同處理技術(shù)、數(shù)據(jù)處理算法的并行化與模塊化技術(shù)、多任務(wù)協(xié)同生產(chǎn)作業(yè)模式和自動流程化生產(chǎn)技術(shù)。
1)任務(wù)劃分與數(shù)據(jù)智能調(diào)度技術(shù)
項目擬通過處理任務(wù)劃分模塊、節(jié)點負載監(jiān)測模塊、任務(wù)組織調(diào)度模塊、任務(wù)監(jiān)控存儲模塊,實現(xiàn)處理任務(wù)的精細劃分和智能調(diào)度,其中,處理任務(wù)劃分模塊根據(jù)并行處理節(jié)點的數(shù)量以及生產(chǎn)任務(wù)的大小與并行能力,對生成任務(wù)進行劃分;節(jié)點負載監(jiān)測模塊將定時獲取計算節(jié)點的負載信息,生成負載報告,并將報告發(fā)送至任務(wù)組織調(diào)度模塊;任務(wù)組織調(diào)度模塊接收到節(jié)點負載報告后,按照負載均衡的方式,將待處理的任務(wù)發(fā)送到相應(yīng)的處理節(jié)點上,隨后通知任務(wù)監(jiān)控存儲模塊,對任務(wù)處理的進展進行實時監(jiān)控;任務(wù)監(jiān)控存儲模塊不斷接收處理節(jié)點上運行任務(wù)的信息,并通過人機界面讓操作員實時了解任務(wù)進展,通 過在線存儲方式,實時備份當前的處理結(jié)果,同時接收各節(jié)點的成果數(shù)據(jù),在本機上儲存?zhèn)浞荨<夹g(shù)路線如圖一。
2)GPU與CPU協(xié)同處理技術(shù)
項目擬采用CUDA開發(fā)包,將GPU和CPU兩種不同架構(gòu)的處理器集成在一起,采用OpenMP多線程并行機制管理多個GPU設(shè)備,組成GPU-CPU硬件上的協(xié)同模式。在應(yīng)用程序編寫過程中,項目擬將并行層次明顯、計算量大的函數(shù)改寫為能夠在GPU上執(zhí)行的核函數(shù),開發(fā)基于GPU的細粒度密集并行計算能力,并利用CPU執(zhí)行順序型代碼,真正實現(xiàn)GPU和CPU的協(xié)同配合。在GPU-CPU協(xié)同配合的基礎(chǔ)上,項目進一步將CPU-GPU異構(gòu)計算機作為計算節(jié)點,通過互聯(lián)網(wǎng)絡(luò)連接,構(gòu)建多節(jié)點混合集群系統(tǒng),提供成本更低、體積和功耗更小、性能更強的高性能并行處理體系架構(gòu)。
3)數(shù)據(jù)處理算法的并行化與模塊化技術(shù)
通過分析整個空間信息處理作業(yè)流程,提取其中計算密集計算量大的處理算法與步驟,從算法層上對其進行多CPU并行分解,通過模塊化方式,構(gòu)建一套由數(shù)據(jù)驅(qū)動的高度自動化的空間信息處理并行算法庫,更好地實現(xiàn)空間數(shù)據(jù)的并行化處理。項目擬構(gòu)建的空間數(shù)據(jù)處理并行算法庫主要包括影像預(yù)處理、多基線影像匹配、DSM/DEM自動提取、正射影像制作等主模塊,且各主模塊包含了多個核心并行算模塊。
4)多任務(wù)協(xié)同生產(chǎn)作業(yè)模式
空間信息產(chǎn)品的生產(chǎn),常常需要有多個部門、多個人來共同完成,由于空間信息生產(chǎn)的復(fù)雜性,需要建立多任務(wù)協(xié)同生產(chǎn)的作業(yè)模式。在多任務(wù)的協(xié)同設(shè)計中,基于工作流的多任務(wù)協(xié)同技術(shù)實現(xiàn)。以工作流為導(dǎo)向的分布式協(xié)同生產(chǎn)控制技術(shù)能夠智能地通知生產(chǎn)人員在正確的時間處于正確的崗位,同時為他們提供完成工作所需的合適的信息??梢越⒁环N協(xié)同管理模式,將組織機制和協(xié)調(diào)方法融合在一起,實現(xiàn)分布式協(xié)同生產(chǎn)控制的整體框架可以實現(xiàn)跨企業(yè)、跨地域,以有效的協(xié)調(diào)方式響應(yīng)用戶需求、提高生產(chǎn)應(yīng)變能力和生產(chǎn)的敏捷。生產(chǎn)作業(yè)模式圖如圖二所示。
5)自動流程化生產(chǎn)技術(shù)
項目將整個區(qū)域的數(shù)據(jù)一次性導(dǎo)入,且在產(chǎn)品生產(chǎn)流程中,盡可能多地實現(xiàn)自動處理。
附圖說明
圖1是處理任務(wù)的精細劃分和智能調(diào)度組成模塊示意圖;
圖2是多任務(wù)協(xié)同生產(chǎn)作業(yè)模式圖
具體實施方式
1、任務(wù)劃分與數(shù)據(jù)智能調(diào)度技術(shù)
通過處理任務(wù)劃分、節(jié)點負載監(jiān)測、任務(wù)組織調(diào)度、任務(wù)監(jiān)控存儲等功能模塊,實現(xiàn)處理任務(wù)和數(shù)據(jù) 的智能調(diào)度。
(1)處理任務(wù)的精細劃分模式
根據(jù)遙感影像處理的特點,本發(fā)明將采用按照數(shù)據(jù)劃分和按任務(wù)劃分兩種模式,對處理任務(wù)進行精細劃分。在數(shù)據(jù)劃分模式下,各個處理節(jié)點(或是小型集群系統(tǒng))完全獨立地處理一塊數(shù)據(jù),并行地完成一系列的計算步驟,得出這一塊數(shù)據(jù)的最終計算結(jié)果,交由主節(jié)點統(tǒng)一整合結(jié)果數(shù)據(jù)。
任務(wù)劃分模式下,不同的處理任務(wù)根據(jù)其作業(yè)流程根據(jù)劃分為不同的階段,不同的處理階段根據(jù)需要并行處理,階段處理同步后再進行下一步的處理。相對于依數(shù)據(jù)劃分模式,這種作業(yè)流程明確了當前階段的處理任務(wù),任務(wù)的調(diào)度更容易,但同時這種模式下處理節(jié)點之間的交互更多,對網(wǎng)絡(luò)通信的要求更高。
(2)處理任務(wù)的組織調(diào)度方案
本發(fā)明將利用靜態(tài)調(diào)度和動態(tài)調(diào)度手段,實施任務(wù)智能調(diào)度。靜態(tài)調(diào)度研究在任務(wù)執(zhí)行前如何對集群內(nèi)的計算資源進行評估,并由此確定任務(wù)的分配;而動態(tài)調(diào)度研究在任務(wù)執(zhí)行期間如何根據(jù)計算節(jié)點執(zhí)行任務(wù)的當前狀態(tài)和計算資源的占用情況,對任務(wù)進行實時調(diào)整,以達到集群計算的最佳性能。項目對兩種作業(yè)流程模式下的任務(wù)調(diào)度策略進行分析,包括作業(yè)網(wǎng)絡(luò)的形成、無資源需求的任務(wù)調(diào)度算法。其中,動態(tài)任務(wù)調(diào)度采取半分布式策略,將整個集群系統(tǒng)分成若干小區(qū)域,區(qū)域內(nèi)部采用集中式任務(wù)調(diào)度,而區(qū)域間采用分布式調(diào)度。
在負載收集策略上,本發(fā)明采用變化收集的方法對各個處理節(jié)點的負載情況進行收集。在負載遷移的執(zhí)行上,考慮復(fù)雜度較低的數(shù)據(jù)遷移方式,但是由于遙感數(shù)據(jù)處理的數(shù)據(jù)密集型,大數(shù)據(jù)的傳輸勢必造成整體作業(yè)時間的增加,所以考慮提前遷移的策略,即根據(jù)節(jié)點負載情況,提前將負載較重的節(jié)點的數(shù)據(jù)向負載較輕的節(jié)點遷移,通過計算和通信重疊來提高計算性能。
2、GPU與CPU協(xié)同處理技術(shù)
項目采用CUDA開發(fā)包,將GPU和CPU兩種不同架構(gòu)的處理器集成在一起,組成硬件上的協(xié)同模式;同時在應(yīng)用程序編寫過程中,由CPU負責(zé)執(zhí)行順序型代碼,將并行層次明顯、計算量大的函數(shù)改寫為能夠在GPU上執(zhí)行的核函數(shù),而GPU負責(zé)密集型的并行計算,實現(xiàn)GPU和CPU的真正協(xié)同配合,提高處理效率。
為了充分發(fā)揮這種多層次、多節(jié)點的混合集群并行系統(tǒng)的優(yōu)勢,關(guān)鍵要掌握CUDA編程模型、基于OpenMP的集群節(jié)點內(nèi)多GPU并行管理機制、基于MPI的集群節(jié)點間多GPU并行管理機制以及GPU性能提升策略。
(1)CUDA編程模型
當GPU計算程序運行時,CUDA驅(qū)動程序會將并行數(shù)據(jù)映射、加載到GPU中,并將其細分成更小的區(qū)塊,然后進行并行處理,主機端程序可以通過高速的PCI Express總線與GPU進行數(shù)據(jù)交換。數(shù)據(jù)傳輸、GPU運算功能的啟動以及CPU和GPU的交互都可通過調(diào)用驅(qū)動程序中的專門操作來完成。
(2)基于OpenMP的集群節(jié)點內(nèi)多GPU并行管理機制
本發(fā)明借鑒集群系統(tǒng)的思想將多個GPU集成在一起,構(gòu)建計算性能更高的GPU集群,實現(xiàn)多GPU并行。
為有效管理多個GPU的調(diào)度線程,項目擬采用OpenMP的多線程機制管理多個GPU設(shè)備。根據(jù)所加載的GPU并行加速卡數(shù)目,由OpenMP主線程派生出相同數(shù)目的子線程,每個派生線程通過CUDA提供的上下文管理和設(shè)備管理接口選擇其中一個GPU設(shè)備進行管理、執(zhí)行GPU內(nèi)核程序,實現(xiàn)多GPU的粗粒度并行。
(3)基于MPI的集群節(jié)點間多GPU并行管理機制
CUDA與MPI聯(lián)用,通過消息傳遞機制,將任務(wù)分配到各個節(jié)點,實現(xiàn)節(jié)點間的粗粒度并行;而在每個節(jié)點上,啟動多線程機制,利用共享內(nèi)存實現(xiàn)快速高效的細粒度并行。這種混合粒度的并行程序的開發(fā)既可以發(fā)揮每個節(jié)點的巨大的計算能力,又可以充分利用集群的可擴展性,為大型計算提供一個切實可行的方案。
而在GPU集群搭建過程中,需要保留傳統(tǒng)純CPU集群系統(tǒng)的任務(wù)管理與調(diào)度、數(shù)據(jù)通信、功能實現(xiàn)等接口不變,僅將其計算節(jié)點升級為GPU并行計算機,或每個節(jié)點加載多塊GPU加速卡,形成混合型GPU集群并行計算平臺。
(4)GPU性能提升優(yōu)化策略
GPU具有獨特的硬件結(jié)構(gòu),采用常規(guī)的并行算法,很難發(fā)揮GPU的運算優(yōu)勢,通常需要結(jié)合GPU的硬件特點和算法的可并行性,才能有效提高GPU的計算效率。為獲得更大的性能提升,需要對初始程序進行優(yōu)化。優(yōu)化的核心思想是改進計算訪存比和各存儲層次上的延遲隱藏,主要包括執(zhí)行配置優(yōu)化、共享存儲器優(yōu)化和紋理存儲器優(yōu)化。
3、數(shù)據(jù)處理算法的并行化與模塊化技術(shù)
本發(fā)明分析整個遙感影像處理作業(yè)流程,提取其中計算密集、且計算量大的處理算法與步驟,從算法層上對其進行CPU與GPU的并行分解,通過模塊化方式,構(gòu)建一套由數(shù)據(jù)驅(qū)動的高度自動化的遙感影像處理并行算法庫,更好地實現(xiàn)遙感數(shù)據(jù)的并行化處理。
發(fā)明擬構(gòu)建的遙感數(shù)據(jù)處理并行算法庫主要包括影像預(yù)處理、多基線影像匹配、真正射影像制作等主模塊,且各主模塊包含了多個核心并行算法子模塊。
(1)影像預(yù)處理算法的并行化與模塊化
本發(fā)明對影像預(yù)處理過程進行分析,提取其中計算密集的預(yù)處理算法,實現(xiàn)其并行化處理,構(gòu)建相應(yīng)的并行算法子模塊。項目擬構(gòu)建的影像預(yù)處理并行算法子模塊包括:影像金字塔制作子模塊、特征點提取子模塊、Wallis濾波子模塊和暗原色去霧子模塊等。
以特征點提取子模塊為例,本發(fā)明主要針對SURF(Speeded Up Robust Features)算子進行并行化與 模塊化處理。SURF算子使用Hessian矩陣來檢測特征點,利用盒式濾波器(Box Filters)來代替二階高斯濾波,并基于積分圖像(Integral Image)加速卷積運算,提高處理效率。
(2)多基線影像匹配生成DSM算法的并行化與模塊化
在多基線立體影像匹配中,核線影像制作、相關(guān)測度計算等是典型的計算密集型步驟,對計算資源有著巨大的需求,同時又具有非常規(guī)則的結(jié)構(gòu),體現(xiàn)著明顯的并行性,需要通過并行處理技術(shù)來提高效率。
針對多基線立體匹配過程中的算法步驟,項目擬構(gòu)建的多基線影像匹配并行算法子模塊包括:核線影像制作子模塊、松弛法匹配子模塊、相關(guān)測度計算子模塊和多視最小二乘匹配子模塊等。
以相關(guān)測度計算子模塊為例,本發(fā)明針對算法的SIMD并行處理特性,利用GPU來實現(xiàn)算法的并行處理,通過數(shù)據(jù)流轉(zhuǎn)過程的優(yōu)化,避免CPU系統(tǒng)主存與GPU設(shè)備顯存之間頻繁的數(shù)據(jù)通信。
(3)真正射影像糾正算法的并行化與模塊化
項目構(gòu)建的真正射影像糾正子模塊包括:遮擋區(qū)檢測子模塊、正射糾正子模塊、影像鑲嵌子模塊和興趣區(qū)勻光子模塊等。
以正射糾正子模塊為例,本發(fā)明在實際的正射糾正處理流程中采用間接法重采樣,對糾正目標影像上的每一個像點,根據(jù)原始影像與糾正結(jié)果影像間的坐標變換關(guān)系求解其對應(yīng)像點在原始影像上的坐標,然后進行灰度值內(nèi)插。在重采樣處理過程中,糾正目標影像上每個像素的計算過程基本一致,且又相互獨立,非常適合GPU的細粒度數(shù)據(jù)并行計算。而為實現(xiàn)重采樣操作的GPU并行化,需要編寫一個與之對應(yīng)的“核函數(shù)(Kernel)”。在核函數(shù)內(nèi),GPU線程通過CUDA的內(nèi)置變量來定位所要處理的像素。
作為針對圖形渲染任務(wù)而設(shè)計的專用硬件,GPU在處理通用計算問題時具有同CPU完全不同的執(zhí)行機制和性能特征。采用執(zhí)行配置優(yōu)化技術(shù)提高Warp占有率,利用共享存儲器優(yōu)化減少對效率低下的全局存儲器中坐標變換系數(shù)的重復(fù)訪問,通過紋理存儲器代替全局存儲器優(yōu)化對原始影像數(shù)據(jù)的訪問,提高正射糾正的處理效率,正射糾正過程的GPU-CPU協(xié)同處理流程。
單GPU并行主要研究針對幾何糾正過程的內(nèi)部像素級細粒度并行處理技術(shù)及優(yōu)化策略進行研究,而要利用多GPU并行來進一步提高處理效率,則需要分析處理任務(wù)中更高層次的并行性。在面陣影像幾何糾正的批量處理任務(wù)中,稍粗粒度的并行性表現(xiàn)為局部圖像塊間并行或者彩色圖像的顏色通道間并行,而更粗粒度的并行則表現(xiàn)為批量處理任務(wù)中的各原始影像間的并行。
4、多任務(wù)協(xié)同生產(chǎn)作業(yè)模式
1)建立工作流模型
工作流模型一般可以分為面向控制、面向數(shù)據(jù)和混合模型這三類。因此,協(xié)同遙感處理系統(tǒng)中的工作流系統(tǒng)采用混合模型,采用基于業(yè)務(wù)規(guī)則的事件驅(qū)動,以數(shù)據(jù)為中心,以數(shù)據(jù)流向為驅(qū)動,以服務(wù)端運行的密集計算為主,同時具備同遠程計算集群交互的能力,建立具備遠程服務(wù)架構(gòu)的生產(chǎn)模型。
2)工作流分類
工作流的類型分類主要是對整個遙感數(shù)據(jù)處理工作流執(zhí)行過程中的相關(guān)對象的類型進行設(shè)置,驗證工作流的可執(zhí)行性以及對執(zhí)行過程中的相關(guān)數(shù)據(jù)的兼容性進行轉(zhuǎn)換。
支持相關(guān)對象的類型設(shè)定,主要是指Token、Port和Relation等的設(shè)定。
驗證工作流活動的可連接性。
3)實現(xiàn)多任務(wù)協(xié)同生產(chǎn)
在多任務(wù)的協(xié)同設(shè)計中,基于工作流的多任務(wù)協(xié)同技術(shù)實現(xiàn)。以工作流為導(dǎo)向的分布式協(xié)同生產(chǎn)控制技術(shù)能夠智能地通知生產(chǎn)人員在正確的時間處于正確的崗位,同時為他們提供完成工作所需的合適的信息。
5、自動流程化生產(chǎn)技術(shù)
系統(tǒng)能夠根據(jù)計劃自動將整個任務(wù)自動劃分成多個子任務(wù)交給計算結(jié)點進行處理,最后自動整合得到整個測區(qū)的影像產(chǎn)品,通過自動化處理,大大減少人工勞動,提高工作效率。因此,發(fā)明需要對遙感數(shù)據(jù)自動化處理工作流進行設(shè)計,以實現(xiàn)任務(wù)計劃的自動劃分與節(jié)點計算資源的優(yōu)化分配。