国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

0 引言

遙感大數(shù)據(jù)時(shí)代,衛(wèi)星遙感數(shù)據(jù)量持續(xù)增長(zhǎng),數(shù)據(jù)來源呈多樣化發(fā)展趨勢(shì)且更新速度不斷加快。對(duì)這些大量遙感影像數(shù)據(jù)進(jìn)行快速、準(zhǔn)確的處理和分析變得越來越重要。幾何校正是對(duì)衛(wèi)星影像進(jìn)行位置精確度的修正,其目的是將影像中的每個(gè)像元與地球表面相應(yīng)的地理位置對(duì)應(yīng),以消除地球曲率和地形變化等因素對(duì)影像位置精度的影響,為后續(xù)遙感數(shù)據(jù)的分析和應(yīng)用提供準(zhǔn)確的地理信息[1]。當(dāng)前,來自不同傳感器的遙感數(shù)據(jù)不斷增加,快速幾何校正可以使不同傳感器獲取的影像具有一致的地理坐標(biāo)系,從而為遙感數(shù)據(jù)的融合分析創(chuàng)造條件。在環(huán)境變化、資源管理和城市規(guī)劃等領(lǐng)域,研究者們需要對(duì)長(zhǎng)時(shí)間序列的遙感數(shù)據(jù)進(jìn)行分析,快速幾何校正可以消除不同時(shí)間和空間的遙感數(shù)據(jù)之間的位置誤差,使得時(shí)序數(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ù)時(shí),基于RPC模型對(duì)遙感影像進(jìn)行校正能夠獲得可信的精度[4]。RPC模型具有較高的精度和通用性,在遙感領(lǐng)域的多種應(yīng)用場(chǎng)景中發(fā)揮著重要作用。隨著遙感數(shù)據(jù)量的快速增長(zhǎng),傳統(tǒng)的串行處理方法已經(jīng)難以滿足實(shí)時(shí)性和高效性的需求。因此,針對(duì)RPC校正模型開發(fā)并行算法具有重要意義。并行算法可以充分利用多核處理器和GPU等并行計(jì)算資源,顯著縮短遙感影像幾何校正的處理時(shí)間,提高數(shù)據(jù)處理效率[5-6]。采用并行算法可以克服單機(jī)內(nèi)存和計(jì)算能力的限制,支持大規(guī)模遙感數(shù)據(jù)的快速幾何校正,為遙感大數(shù)據(jù)時(shí)代的應(yīng)用需求提供技術(shù)支撐。

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

雖然GPU在RPC模型進(jìn)行衛(wèi)星影像校正并行算法方面具有優(yōu)勢(shì),但目前的并行算法仍存在一些不足之處,缺少對(duì)內(nèi)存限制、通信開銷、負(fù)載均衡、資源利用率等方面的系統(tǒng)研究。因此,本文對(duì)GPU及多核CPU基于RPC模型衛(wèi)星影像校正并行算法的設(shè)計(jì)及算法優(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模型通常包括兩個(gè)有理多項(xiàng)式方程,一個(gè)用于計(jì)算像素的行坐標(biāo),另一個(gè)用于計(jì)算像素的列坐標(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è)計(jì)

CUDA(Compute Unified Device Architecture)是NVIDIA推出的一種并行計(jì)算框架,可以充分利用GPU的計(jì)算能力,加速影像處理過程。本文基于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è)計(jì):核函數(shù)處理單元為單個(gè)像素,根據(jù)當(dāng)前線程像素坐標(biāo)和RPC模型參數(shù)計(jì)算地面坐標(biāo),然后將地面坐標(biāo)轉(zhuǎn)換為輸出影像的像素坐標(biāo),最后將輸入影像的像素值復(fù)制到輸出影像的相應(yīng)位置。

3)線程塊和網(wǎng)格大小確定:為了充分利用GPU的計(jì)算能力,需要合理地選擇線程塊和網(wǎng)格大小。線程塊大小通常為16×16或32×32,應(yīng)確保每個(gè)線程塊中的線程數(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í)行,每個(gè)線程處理一個(gè)像素點(diǎn)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文采用加速比評(píng)價(jià)并行算法的加速效果,加速比計(jì)算如式(7)所示。

(7)

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

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

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

由表3可以看出,本文提出的并行算法在計(jì)算效率上提升明顯,其中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操作的時(shí)間,從而體現(xiàn)了并行算法在整體時(shí)間上的優(yōu)勢(shì)。為了優(yōu)化數(shù)據(jù)I/O操作,本文針對(duì)波段數(shù)多于1的情況,對(duì)算法進(jìn)行了進(jìn)一步優(yōu)化,按照波段逐一進(jìn)行處理,然后再將各波段寫入同一影像。表4是按照新的優(yōu)化策略,GPU計(jì)算時(shí)間及總處理時(shí)間的統(tǒng)計(jì)情況。從表4可以看出,該策略取得了明顯的數(shù)據(jù)處理效率提升效果。

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

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

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

3 結(jié)論

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

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

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

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

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

猜你喜歡
并行算法線程內(nèi)存
地圖線要素綜合化的簡(jiǎn)遞歸并行算法
“春夏秋冬”的內(nèi)存
淺談linux多線程協(xié)作
基于GPU的GaBP并行算法研究
基于GPU的分類并行算法的研究與實(shí)現(xiàn)
基于內(nèi)存的地理信息訪問技術(shù)
Linux線程實(shí)現(xiàn)技術(shù)研究
么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
上網(wǎng)本為什么只有1GB?
激發(fā)大內(nèi)存威力
健康| 苏州市| 政和县| 通州市| 巴楚县| 文登市| 共和县| 桃江县| 鄯善县| 阿鲁科尔沁旗| 阿拉善右旗| 汉川市| 兴业县| 淳化县| 曲麻莱县| 吕梁市| 岫岩| 盐源县| 海南省| 漳平市| 曲阜市| 浦城县| 武川县| 五峰| 莱西市| 连江县| 历史| 桂东县| 三河市| 兴海县| 灵璧县| 楚雄市| 永修县| 华蓥市| 彭水| 兰西县| 隆回县| 民权县| 随州市| 赣州市| 太仆寺旗|