• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      RPC模型影像校正并行算法設(shè)計及優(yōu)化

      2023-08-18 09:49:04張戰(zhàn)偉李增三
      山西建筑 2023年17期
      關(guān)鍵詞:并行算法線程內(nèi)存

      張戰(zhàn)偉,李增三,龐 坤

      (山東明嘉勘察測繪有限公司,山東 淄博 255086)

      0 引言

      遙感大數(shù)據(jù)時代,衛(wèi)星遙感數(shù)據(jù)量持續(xù)增長,數(shù)據(jù)來源呈多樣化發(fā)展趨勢且更新速度不斷加快。對這些大量遙感影像數(shù)據(jù)進(jìn)行快速、準(zhǔn)確的處理和分析變得越來越重要。幾何校正是對衛(wèi)星影像進(jìn)行位置精確度的修正,其目的是將影像中的每個像元與地球表面相應(yīng)的地理位置對應(yīng),以消除地球曲率和地形變化等因素對影像位置精度的影響,為后續(xù)遙感數(shù)據(jù)的分析和應(yīng)用提供準(zhǔn)確的地理信息[1]。當(dāng)前,來自不同傳感器的遙感數(shù)據(jù)不斷增加,快速幾何校正可以使不同傳感器獲取的影像具有一致的地理坐標(biāo)系,從而為遙感數(shù)據(jù)的融合分析創(chuàng)造條件。在環(huán)境變化、資源管理和城市規(guī)劃等領(lǐng)域,研究者們需要對長時間序列的遙感數(shù)據(jù)進(jìn)行分析,快速幾何校正可以消除不同時間和空間的遙感數(shù)據(jù)之間的位置誤差,使得時序數(shù)據(jù)具有可比性[2]。

      RPC(Rational Polynomial Coefficients)模型是一種廣泛應(yīng)用于衛(wèi)星影像幾何校正的方法,通過多項(xiàng)式擬合實(shí)現(xiàn)像方坐標(biāo)與物方坐標(biāo)轉(zhuǎn)換[3]。無法獲得高精度數(shù)字正射影像等參考數(shù)據(jù)時,基于RPC模型對遙感影像進(jìn)行校正能夠獲得可信的精度[4]。RPC模型具有較高的精度和通用性,在遙感領(lǐng)域的多種應(yīng)用場景中發(fā)揮著重要作用。隨著遙感數(shù)據(jù)量的快速增長,傳統(tǒng)的串行處理方法已經(jīng)難以滿足實(shí)時性和高效性的需求。因此,針對RPC校正模型開發(fā)并行算法具有重要意義。并行算法可以充分利用多核處理器和GPU等并行計算資源,顯著縮短遙感影像幾何校正的處理時間,提高數(shù)據(jù)處理效率[5-6]。采用并行算法可以克服單機(jī)內(nèi)存和計算能力的限制,支持大規(guī)模遙感數(shù)據(jù)的快速幾何校正,為遙感大數(shù)據(jù)時代的應(yīng)用需求提供技術(shù)支撐。

      隨著GPU和多核CPU技術(shù)的發(fā)展,它們在遙感影像處理中的應(yīng)用得到了廣泛的關(guān)注。研究人員在遙感影像分類[7]、正射校正[8]、特征匹配[9]、特征檢測[10]、影像融合[11]等多個方面開發(fā)了并行算法。在海量遙感影像處理及分析任務(wù)中,GPU及多核CPU的應(yīng)用提供了更高的計算效率,確保了數(shù)據(jù)的實(shí)時性。為了提高處理效率,一些研究人員對RPC校正的并行算法進(jìn)行了研究。比如,劉宇等人為縮短影像校正時間,使用GPU實(shí)現(xiàn)了寬幅遙感影像的并行RPC校正,在高分二號多光譜影像和全色影像上的計算上獲得了3.71及8.27的加速比[12]。

      雖然GPU在RPC模型進(jìn)行衛(wèi)星影像校正并行算法方面具有優(yōu)勢,但目前的并行算法仍存在一些不足之處,缺少對內(nèi)存限制、通信開銷、負(fù)載均衡、資源利用率等方面的系統(tǒng)研究。因此,本文對GPU及多核CPU基于RPC模型衛(wèi)星影像校正并行算法的設(shè)計及算法優(yōu)化進(jìn)行研究,以進(jìn)一步提高并行算法的效率以及算法的適用性。

      1 方法

      1.1 RPC模型

      基于 RPC(有理多項(xiàng)式系數(shù))模型[13]的衛(wèi)星影像校正是一種廣泛應(yīng)用的方法。RPC模型通過有理多項(xiàng)式函數(shù)描述地面坐標(biāo)和像素坐標(biāo)之間的映射關(guān)系。RPC模型通常包括兩個有理多項(xiàng)式方程,一個用于計算像素的行坐標(biāo),另一個用于計算像素的列坐標(biāo)。

      假設(shè)地面坐標(biāo)為(X,Y,Z),影像坐標(biāo)為(x,y),RPC模型的基本形式如式(1)—式(6):

      (1)

      (2)

      (3)

      (4)

      (5)

      (6)

      其中,Ox,Oy均為平移系數(shù);Sx,Sy均為縮放系數(shù);aijk,bijk,cijk,dijk均為PRC模型參數(shù),i,j和k的取值范圍為0~3。這些系數(shù)通常由衛(wèi)星影像供應(yīng)商提供,使用這些系數(shù)可以通過上述公式將地面坐標(biāo)(X,Y,Z)轉(zhuǎn)換為影像坐標(biāo)(x,y)。然后,利用這些影像坐標(biāo)進(jìn)行影像校正。

      1.2 GPU并行算法設(shè)計

      CUDA(Compute Unified Device Architecture)是NVIDIA推出的一種并行計算框架,可以充分利用GPU的計算能力,加速影像處理過程。本文基于CUDA進(jìn)行GPU并行算法及其優(yōu)化研究,算法思路如圖1所示。

      以下是算法關(guān)鍵步驟的具體細(xì)節(jié)。

      1)RPC讀取:讀取由衛(wèi)星影像數(shù)據(jù)提供商提供的RPC模型參數(shù)文件(如*.rpb),獲取平移系數(shù)、縮放系數(shù)及多項(xiàng)式參數(shù)數(shù)據(jù)。

      2)CUDA核函數(shù)設(shè)計:核函數(shù)處理單元為單個像素,根據(jù)當(dāng)前線程像素坐標(biāo)和RPC模型參數(shù)計算地面坐標(biāo),然后將地面坐標(biāo)轉(zhuǎn)換為輸出影像的像素坐標(biāo),最后將輸入影像的像素值復(fù)制到輸出影像的相應(yīng)位置。

      3)線程塊和網(wǎng)格大小確定:為了充分利用GPU的計算能力,需要合理地選擇線程塊和網(wǎng)格大小。線程塊大小通常為16×16或32×32,應(yīng)確保每個線程塊中的線程數(shù)量是warp大小的整數(shù)倍。網(wǎng)格大小根據(jù)影像尺寸和線程塊大小來確定,以確保所有像素點(diǎn)都被處理。

      4)GPU內(nèi)存分配及數(shù)據(jù)拷貝:為輸入影像和輸出影像分配GPU內(nèi)存,然后將輸入影像從主機(jī)內(nèi)存復(fù)制到GPU內(nèi)存。

      5)核函數(shù)調(diào)用:調(diào)用核函數(shù)進(jìn)行RPC變換,核函數(shù)在GPU上并行執(zhí)行,每個線程處理一個像素點(diǎn)。

      6)GPU內(nèi)存數(shù)據(jù)輸出:核函數(shù)執(zhí)行完成后,將輸出影像從GPU內(nèi)存復(fù)制回主機(jī)內(nèi)存并保存至磁盤。

      7)優(yōu)化:使用共享內(nèi)存、常量內(nèi)存來加速內(nèi)存訪問,并進(jìn)行多流優(yōu)化、多線程多流優(yōu)化、對邊界和異常值進(jìn)行處理。具體優(yōu)化策略包括:

      a.將RPC模型參數(shù)存儲在常量內(nèi)存中,以減少全局內(nèi)存訪問。

      b.使用CUDA多流技術(shù)實(shí)現(xiàn)任務(wù)并行執(zhí)行,將影像分割成多個子區(qū)域,并為每個子區(qū)域創(chuàng)建一個CUDA流。

      c.針對大影像,影像分割為大小相等的子區(qū)域,以確保每個線程處理的任務(wù)量相似。

      d.根據(jù)GPU的計算能力動態(tài)調(diào)整線程塊和網(wǎng)格大小,充分利用GPU資源。

      e.根據(jù)GPU內(nèi)存容量采用拷貝數(shù)據(jù)最大化策略,在GPU上完成所有計算任務(wù),再將輸出影像復(fù)制回主機(jī)內(nèi)存。

      f.異步數(shù)據(jù)傳輸與計算策略,使用cudaMemcpyAsync函數(shù)實(shí)現(xiàn)異步數(shù)據(jù)傳輸,在數(shù)據(jù)傳輸過程中同時執(zhí)行其他任務(wù)。

      1.3 CPUs并行算法設(shè)計

      OpenMP(Open Multi-Processing)是一種支持多平臺共享內(nèi)存并行編程API,它采用基于指令的方法簡化并行程序的開發(fā)。OpenMP使用編譯器指令(#pragma omp)來實(shí)現(xiàn)并行化,使得將串行代碼轉(zhuǎn)換為并行代碼變得相對簡單。通過在適當(dāng)?shù)奈恢锰砑又噶?開發(fā)人員可以在不修改原始代碼結(jié)構(gòu)的情況下實(shí)現(xiàn)并行處理。此外,OpenMP還具有可移植性、兼容性、可擴(kuò)展性、支持多種并行模式以及自動化并行任務(wù)管理等特點(diǎn)和優(yōu)勢,使得它成為多核CPU并行編程的理想選擇。

      RPC模型遙感影像校正的最小處理單元為像素,可以將不同的像素分配給不同的CPU線程進(jìn)行處理,這種任務(wù)分解方法便于使用OpenMP的并行計算能力。由于OpenMP并行實(shí)現(xiàn)相對簡單,以下通過偽代碼的形式來說明本文的并行算法設(shè)計及優(yōu)化方法,如圖2所示。

      在代碼中,對于并行算法的優(yōu)化主要采用以下策略:

      1)使用高效數(shù)學(xué)庫,提高數(shù)學(xué)運(yùn)算性能。2)采用一維數(shù)組存儲影像數(shù)據(jù),通過計算索引值來訪問像素,減少內(nèi)存訪問開銷。3)設(shè)計RPC模型參數(shù)結(jié)構(gòu)體來組織數(shù)據(jù)。4)使用OpenMP的“collapse”將嵌套循環(huán)合并為一個并行循環(huán),以提高線程利用率。

      2 實(shí)驗(yàn)及分析

      2.1 實(shí)驗(yàn)數(shù)據(jù)及環(huán)境

      采用高分一號衛(wèi)星(GF-1)、高分6號衛(wèi)星(GF-6)、高分7號衛(wèi)星(GF-7)影像進(jìn)行實(shí)驗(yàn),高分系列衛(wèi)星遙感影像標(biāo)準(zhǔn)產(chǎn)品中提供了全色及多光譜影像數(shù)據(jù)及*.rpb文件(RPC參數(shù))。本文總計開展了4組實(shí)驗(yàn),影像數(shù)據(jù)量介于0.69 GB~1.81 GB之間,如表1所示。

      表1 實(shí)驗(yàn)數(shù)據(jù)情況

      實(shí)驗(yàn)采用的計算機(jī)硬件如表2所示。

      表2 實(shí)驗(yàn)采用的計算機(jī)硬件配置

      2.2 實(shí)驗(yàn)結(jié)果

      本文采用加速比評價并行算法的加速效果,加速比計算如式(7)所示。

      (7)

      其中,S為加速比;T1為單線程算法的執(zhí)行時間;T為并行算法的執(zhí)行時間。

      表3為4組實(shí)驗(yàn)分別采用CPU、多核CPU,GPU進(jìn)行計算的時長統(tǒng)計,以及多核CPU,GPU與單線程CPU計算的加速比統(tǒng)計情況。

      表3 加速比統(tǒng)計情況

      由表3可以看出,本文提出的并行算法在計算效率上提升明顯,其中GPU的加速比介于22.9~71.5之間,多核CPU的加速比介于5.4~5.7之間;在綜合效率上,GPU的加速比介于2.4~32.4之間,多核CPU的加速比介于2.1~5.0之間。其中第4組加速效果最為明顯,主要原因是第4組數(shù)據(jù)為單波段數(shù)據(jù),大幅縮短了數(shù)據(jù)I/O操作的時間,從而體現(xiàn)了并行算法在整體時間上的優(yōu)勢。為了優(yōu)化數(shù)據(jù)I/O操作,本文針對波段數(shù)多于1的情況,對算法進(jìn)行了進(jìn)一步優(yōu)化,按照波段逐一進(jìn)行處理,然后再將各波段寫入同一影像。表4是按照新的優(yōu)化策略,GPU計算時間及總處理時間的統(tǒng)計情況。從表4可以看出,該策略取得了明顯的數(shù)據(jù)處理效率提升效果。

      表4 I/O優(yōu)化后加速比統(tǒng)計

      相對GPU并行,基于OpenMP進(jìn)行多核并行的開發(fā)十分簡單,僅用幾行代碼即可實(shí)現(xiàn)算法的并行,而且在讀寫密集型并行計算中,可以獲得與GPU并行相當(dāng)?shù)募铀俦?。為了進(jìn)一步了解多核CPU并行加速的效果,本文對使用不同線程數(shù)量對加速結(jié)果的影響進(jìn)行了實(shí)驗(yàn),如圖3所示。

      由圖3可以看出,線程數(shù)量較少時處理效率提升明顯,當(dāng)線程數(shù)量接近處理器核心數(shù)時,處理效率提升趨于平緩。因此,選擇合適的線程數(shù)量十分重要,通??梢詫⒕€程數(shù)量設(shè)置為處理器核心數(shù)或者稍多于核心數(shù)以獲得相對理想的性能提升。

      3 結(jié)論

      本文針對衛(wèi)星遙感影像RPC幾何校正問題,提出了基于GPU和多核CPU的并行算法并進(jìn)行了優(yōu)化。通過對比實(shí)驗(yàn),驗(yàn)證了該算法計算性能的優(yōu)勢。具體來說,本文的主要貢獻(xiàn)包括以下幾點(diǎn):

      1)提出了一種基于RPC模型衛(wèi)星影像幾何校正的GPU并行優(yōu)化算法,獲得了22.9~71.5的計算加速比及2.4~32.4的綜合加速比,加速效果明顯。

      2)提出了一種基于RPC模型衛(wèi)星影像幾何校正的多核CPU并行優(yōu)化算法,獲得了5.4~5.7的計算加速比及2.1~5.0的綜合加速比。

      3)針對多波段數(shù)據(jù)I/O操作壓力大的情況,提出分波段處理的優(yōu)化策略,進(jìn)一步獲得了1.8倍~2.0倍的加速效果。

      提出的并行算法可大幅提升遙感影像計算速度,為諸如生態(tài)環(huán)境監(jiān)測、城市應(yīng)急、智慧農(nóng)業(yè)、災(zāi)害監(jiān)測等領(lǐng)域提供更快的數(shù)據(jù)處理支持。盡管本文所提出的并行算法在遙感影像RPC幾何校正上取得了顯著效果,但是仍有以下幾個方面的改進(jìn)空間:進(jìn)一步優(yōu)化負(fù)載均衡策略,提高多核CPU和GPU之間的協(xié)同效率;進(jìn)一步研究遙感數(shù)據(jù)的I/O優(yōu)化方法,降低I/O對整體處理效率的影響;針對特定應(yīng)用場景和硬件配置進(jìn)行算法定制,以滿足不同用戶的需求。

      猜你喜歡
      并行算法線程內(nèi)存
      地圖線要素綜合化的簡遞歸并行算法
      “春夏秋冬”的內(nèi)存
      淺談linux多線程協(xié)作
      基于GPU的GaBP并行算法研究
      基于GPU的分類并行算法的研究與實(shí)現(xiàn)
      基于內(nèi)存的地理信息訪問技術(shù)
      Linux線程實(shí)現(xiàn)技術(shù)研究
      么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      上網(wǎng)本為什么只有1GB?
      JAVA多線程同步解決生產(chǎn)者—消費(fèi)者問題
      404 Not Found

      404 Not Found


      nginx
      库尔勒市| 黎城县| 鹤山市| 四会市| 礼泉县| 汤阴县| 新化县| 荔浦县| 乐陵市| 松溪县| 文化| 嵩明县| 信丰县| 阿城市| 洛川县| 中阳县| 扎兰屯市| 晋州市| 香格里拉县| 固始县| 大港区| 敦化市| 临桂县| 宝兴县| 永州市| 恩平市| 隆林| 浮山县| 花莲县| 长春市| 宣武区| 黔东| 海南省| 陕西省| 肥城市| 福海县| 祁东县| 布尔津县| 砀山县| 泸定县| 庆城县|