999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于GPU的GeoEye-1影像正射糾正

2016-12-26 11:58:21李紫凝王潔茹
地理空間信息 2016年4期
關(guān)鍵詞:程序效率

顏 源,張 靖,李紫凝,王潔茹

(1.長江航道測(cè)量中心,湖北 武漢 430010;2.武漢大學(xué),湖北 武漢 430079)

基于GPU的GeoEye-1影像正射糾正

顏 源1,張 靖2,李紫凝1,王潔茹1

(1.長江航道測(cè)量中心,湖北 武漢 430010;2.武漢大學(xué),湖北 武漢 430079)

在介紹和分析GPU并行編程方法的基礎(chǔ)上,給出了在GPU上進(jìn)行GeoEye-1影像正射糾正的算法過程。利用NVIDIA Quadro 600顯卡對(duì)31 985像素×15 251像素的3波段GeoEye-1影像進(jìn)行正射糾正,其總體速度比沒有加速的算法提升40%以上。試驗(yàn)結(jié)果表明,采用GPU并行處理技術(shù)可以提升遙感影像處理效率。

正射糾正;并行計(jì)算;GPU;CUDA;GeoEye-1

由于衛(wèi)星影像在成像過程中受到地形起伏的影響,導(dǎo)致像點(diǎn)發(fā)生位移,定位精度較低,可以滿足影像瀏覽、景觀地圖制作等不需要高幾何精度的項(xiàng)目需要,但對(duì)于一些要求高精度影像、需要生產(chǎn)DOM的項(xiàng)目,如城市規(guī)劃、地理國情普查等,未進(jìn)行正射糾正的影像不能滿足精度要求,需要對(duì)其進(jìn)行正射糾正。

GPU計(jì)算就是運(yùn)用GPU來加速通用科學(xué)和工程應(yīng)用程序。GPU具有數(shù)以千計(jì)的計(jì)算核心,能夠快速處理繁重的計(jì)算任務(wù),可實(shí)現(xiàn)前所未有的應(yīng)用程序性能[1]。GPU加速程序編寫關(guān)鍵在于分解任務(wù),合理分配GPU各線程的計(jì)算。

1 基于GPU的正射糾正

1.1 GPU并行編程方法

GPU具有比CPU多得多的處理核心,能夠使數(shù)以千計(jì)的線程同時(shí)計(jì)算,適合進(jìn)行高密度的計(jì)算[1]。CUDA是NVIDIA推出的通用計(jì)算架構(gòu),該架構(gòu)能夠使GPU解決非常復(fù)雜的計(jì)算問題,并支持C語言擴(kuò)展。

CUDA程序分為host端和device端。host端利用CPU進(jìn)行串行處理運(yùn)算量較小的任務(wù),如數(shù)據(jù)準(zhǔn)備、內(nèi)存管理、數(shù)據(jù)傳輸?shù)龋琩evice端利用GPU進(jìn)行高計(jì)算密度的并行處理。CPU和GPU相互配合,充分利用各自優(yōu)勢(shì),可大幅提升計(jì)算效率。CUDA程序可通過在Visual Studio中的集成調(diào)試工具Nsight(http:// www.nvidia.com/object/nsight.html)進(jìn)行開發(fā)調(diào)試,其操作方法與在Visual Studio開發(fā)環(huán)境中調(diào)試C/C++代碼類似,為編寫CUDA程序提供了方便。

CUDA程序以線程為執(zhí)行單元,若干個(gè)線程構(gòu)成線程塊,線程塊的執(zhí)行相互獨(dú)立,線程塊內(nèi)的線程共享Shared Memory,線程塊之間共享Global Memory[1]。設(shè)定線程塊數(shù)為N,線程塊內(nèi)的線程數(shù)為M,則總線程數(shù)為N×M。線程塊和線程數(shù)的多少與GPU的參數(shù)有關(guān)。CUDA程序通過調(diào)用核函數(shù)來啟動(dòng)多線程執(zhí)行并行計(jì)算。核函數(shù)的調(diào)用模式為kernel〈〈〈blockNum, threadNum〉〉〉(function argument),〈〈〈…〉〉〉為核函數(shù)的執(zhí)行配置語法。核函數(shù)內(nèi)通過線程塊索引blockIdx和線程索引threadIdx來定位像素,像素在for循環(huán)中的索引為index,for循環(huán)語句的結(jié)構(gòu)為for( index = threadIdx.x+blockId.x*threadNum; index〈nPixels;index += threadNum *blockNum)。nPixels為影像塊的像素?cái)?shù),blockNum、threadNum分別為線程塊數(shù)、線程數(shù)。

1.2 RPC正射糾正

為了避免糾正后影像出現(xiàn)像素空白區(qū),糾正時(shí)一般采用反解法,即從空白影像出發(fā),逐像素反解其在原始影像的像素坐標(biāo),然后通過內(nèi)插獲取該像素的灰度值[2]。GeoEye-1提供了RPC模型代替嚴(yán)格成像模型,RPC模型形式簡單,可獲得與嚴(yán)格成像模型一致的精度,是目前高分辨率衛(wèi)星廣泛采用的幾何模型[3-5],采用RPC模型生成正射遙感影像是其重要應(yīng)用[6-8]。

1.3 算法過程

1.3.1 總體思想

將計(jì)算量大的部分分配給GPU,CPU則負(fù)責(zé)數(shù)據(jù)準(zhǔn)備、內(nèi)存分配、邏輯處理、數(shù)據(jù)傳輸?shù)龋粚?duì)于用反解法進(jìn)行正射糾正來說,計(jì)算量大的部分主要是像點(diǎn)坐標(biāo)計(jì)算和灰度重采樣,這一部分可分配給GPU計(jì)算;影像讀寫、DEM讀取、RPC參數(shù)讀取等計(jì)算量較小的任務(wù)分配給CPU。高分遙感影像數(shù)據(jù)量普遍較大,如果一次全部讀入內(nèi)存,可能會(huì)導(dǎo)致內(nèi)存不足。為了在內(nèi)存有限的條件下進(jìn)行大數(shù)據(jù)量的計(jì)算,必須對(duì)影像進(jìn)行分塊糾正。一次讀入一定大小的塊,糾正完成后,寫出到磁盤,再讀入下一塊,繼續(xù)同樣的糾正過程,直到最后的塊糾正完成。為了簡化程序編寫,實(shí)驗(yàn)程序是基于開放遙感平臺(tái)OpenRS來完成的。

1.3.2 程序?qū)崿F(xiàn)流程

如圖1所示,host端讀入DEM、RPC文件,計(jì)算糾正后影像大小,創(chuàng)建輸出影像,分塊讀入原始影像并拷貝到device端。device端設(shè)計(jì)兩個(gè)核函數(shù),分別負(fù)責(zé)像點(diǎn)坐標(biāo)計(jì)算和灰度重采樣,灰度重采樣選擇雙線性內(nèi)插方法。

圖1 基于GPU的正射糾正過程

2 精度和速度分析

為檢驗(yàn)基于GPU的遙感影像正射校正的精度和速度,下面以云南省楚雄彝族自治州的Geoeye-1數(shù)據(jù)作為實(shí)驗(yàn)對(duì)象。影像分辨率1.65 m,影像大小31 985列、15 251行、3波段、2.72 GB。DEM采用美國提供的90 m分辨率的免費(fèi)SRTM數(shù)據(jù)。數(shù)據(jù)測(cè)試電腦配置:4核CPU、3.3 GHz,顯卡NVIdIA Quadro 600,計(jì)算能力2.1。為分析GPU加速的性能,編寫了基于GPU加速和單核CPU處理兩種正射糾正程序。

1)精度是速度的基礎(chǔ),首先進(jìn)行精度分析。參照對(duì)象選擇ENVI正射糾正結(jié)果。將單核CPU的糾正結(jié)果、GPU加速的正射糾正結(jié)果與ENVI正射糾正結(jié)果進(jìn)行比較,通過ENVI鏈接地理坐標(biāo),查看相同坐標(biāo)是否定位在同一地物。

圖2 采用GPU編程的正射糾正結(jié)果和局部放大圖

圖3 ENVI軟件正射糾正結(jié)果和局部放大圖

圖4 只采用CPU進(jìn)行正射糾正的結(jié)果和局部放大圖

圖2~圖4均在ENVI的地理坐標(biāo)鏈接狀態(tài)下,即局部放大圖中紅色十字絲的交叉點(diǎn)坐標(biāo)相等。從3幅局部放大圖可以看出,紅色十字絲均定位在同一處,表明本實(shí)驗(yàn)編寫的GPU加速及單核CPU正射糾正程序正確,其糾正精度與ENVI一致。

2)速度分析。多次運(yùn)行程序,統(tǒng)計(jì)各次影像讀取部分時(shí)間和總運(yùn)行時(shí)間。

從表1可以看出,GPU加速的正射糾正程序相對(duì)于未加速的程序,速度可提升約40%。隨著影像數(shù)據(jù)量的增加,計(jì)算量增大,這種優(yōu)勢(shì)會(huì)更加明顯。對(duì)于遙感影像處理來說,除了計(jì)算量大之外,影響程序速度的另一個(gè)主要原因就是影像讀取。從表中可看出,對(duì)于單核CPU、GPU加速2種正射糾正程序,影像讀取的時(shí)間分別占整個(gè)程序運(yùn)行時(shí)間的44%和76%。要減少影像讀取的時(shí)間,就要盡量減少讀取影像次數(shù),若內(nèi)存和顯存都足夠大,可以盡量讀取較大的影像塊,并拷貝到顯存,以減少影像讀取的頻率,從而減少CPU的運(yùn)行時(shí)間。

表1 正射糾正時(shí)間統(tǒng)計(jì)

GPU加速程序中,數(shù)據(jù)主要存儲(chǔ)在GPU的Global Memory。由于Global Memory訪問延遲在400~600個(gè)時(shí)鐘周期,其訪存效率較低,但其分配的空間位于顯存,可分配的容量最大。 Local Memory和Shared Memory設(shè)有緩存機(jī)制,比Global Memory訪存效率高,但容量都很小,不能作為影像數(shù)據(jù)的主要存儲(chǔ)類型。

在已有硬件條件下要提升遙感影像的并行化計(jì)算效率,可以從以下幾個(gè)方面來考慮:

1)優(yōu)化算法結(jié)構(gòu)。確定算法中的串行和并行部分,盡量分解為能并行化執(zhí)行的結(jié)構(gòu),充分利用GPU的性能,同時(shí)也要綜合考慮并行化效率和host端與device端之間數(shù)據(jù)傳輸?shù)臅r(shí)間消耗。

2)優(yōu)化存儲(chǔ)器的使用。盡可能多地使用Local Memory和Shared Memory,減少對(duì)Global Memory的訪存。

3)優(yōu)化指令流。采用合適指令,避免線程沖突,盡量減少條件選擇等邏輯運(yùn)算。

4)優(yōu)化影像讀寫性能。遙感影像的分塊讀寫幾乎要占用約一半的處理時(shí)間,影像讀寫的效率直接影響整個(gè)程序的性能。程序采用GDAL庫進(jìn)行影像分塊讀寫,其總體效率并不高[9];可以考慮采用內(nèi)存文件映射技術(shù)進(jìn)行影像讀寫,以減少I/O操作,在分塊讀寫大數(shù)據(jù)量的遙感影像時(shí),I/O效率會(huì)得到大幅提升。

3 結(jié) 語

遙感影像處理大多是基于像素進(jìn)行,像素之間的計(jì)算模式相同,各波段的計(jì)算模式也相同。其處理模式可分為2步:①基于像素坐標(biāo)對(duì)各像素進(jìn)行一系列數(shù)學(xué)運(yùn)算,若不存在幾何處理,則得到的是各像素坐標(biāo)新灰度值;若存在幾何處理,則變換得到新的像素坐標(biāo);②對(duì)新像素坐標(biāo)賦灰度值,也就是灰度重采樣。這2步都是基于像素進(jìn)行同質(zhì)的計(jì)算,因此遙感影像處理算法大多都可用GPU作并行化處理。在解決了各種算法并行化的瓶頸問題之后,另一個(gè)重要問題就是影像I/O,較好的解決辦法是通過內(nèi)存文件映射方式來讀寫影像,可大幅提升文件I/O效率。

[1] Jason S,Edward K.高性能編程之CUDA實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2011

[2] 王佩軍,徐亞明.?dāng)z影測(cè)量學(xué)[M].武漢:武漢大學(xué)出版社,2010 [3] 宋偉東,陳靜波,王偉璽.高分辨率遙感影像單片定位及正射糾正方法[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào):自然科學(xué)版,2009,28(1):37-39

[4] 蘇逸平,陳春華.高分遙感影像Geoeye-1正射糾正研究[J].地理空間信息,2011,9(3):48-50

[5] 張柯南,闞明哲.GeoEye-1衛(wèi)星簡介及其遙感影像處理技術(shù)實(shí)踐[J].城市勘測(cè),2010(3):80-81

[6] 王海俠,高飛,胡小華.基于RPC模型的QuickBird影像正射糾正研究[J].現(xiàn)代測(cè)繪,2010,33(6):13-15

[7] 王紅平,劉修國,羅紅霞,等.基于RPC模型的IRS_P5影像正射校正[J].中國地質(zhì)大學(xué)學(xué)報(bào),2010,35(3):486-488

[8] 宋偉東,陳靜波,王偉璽.高分辨率遙感影像單片定位及正射糾正方法[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào),2009,28(1):37-39

[9] 李民錄.GDAL源碼剖析與開發(fā)指南[M].北京:人民郵電出版社,2014

P231

B

1672-4623(2016)04-0070-03

10.3969/j.issn.1672-4623.2016.04.023

顏源,碩士,工程師,主要從事衛(wèi)星遙感數(shù)據(jù)處理和在長江航道測(cè)繪中的應(yīng)用工作。

2015-03-26。

項(xiàng)目來源:國家自然科學(xué)基金資助項(xiàng)目(41301367)。

猜你喜歡
程序效率
提升朗讀教學(xué)效率的幾點(diǎn)思考
甘肅教育(2020年14期)2020-09-11 07:57:42
注意實(shí)驗(yàn)拓展,提高復(fù)習(xí)效率
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
效率的價(jià)值
商周刊(2017年9期)2017-08-22 02:57:49
英國與歐盟正式啟動(dòng)“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
跟蹤導(dǎo)練(一)2
“錢”、“事”脫節(jié)效率低
主站蜘蛛池模板: 不卡色老大久久综合网| 国产国拍精品视频免费看| 国产精品一区二区不卡的视频| 国产乱论视频| 亚洲国产系列| 国产乱人乱偷精品视频a人人澡| 欧美一区二区啪啪| 一级爆乳无码av| 久久精品亚洲热综合一区二区| 久青草免费视频| 精品国产成人三级在线观看| 久久9966精品国产免费| 免费国产一级 片内射老| 乱人伦99久久| 国产菊爆视频在线观看| 丰满少妇αⅴ无码区| 欧美日本一区二区三区免费| 亚洲色大成网站www国产| 亚洲无码视频喷水| 青青草原偷拍视频| 亚洲国产91人成在线| 国产丰满成熟女性性满足视频| 亚洲国产综合精品中文第一| 青青热久麻豆精品视频在线观看| 一本色道久久88| 最新国产精品第1页| a天堂视频在线| 日韩欧美中文字幕在线韩免费| 中文字幕亚洲电影| 欧美亚洲日韩中文| 99视频在线精品免费观看6| a网站在线观看| 精品国产自在在线在线观看| 国产在线精品美女观看| 亚洲香蕉伊综合在人在线| 欧美成在线视频| 久久久久免费看成人影片 | 一级一级特黄女人精品毛片| 亚洲综合18p| a级高清毛片| 美女一区二区在线观看| 国产成年女人特黄特色毛片免| 青青青国产视频手机| 国产成人凹凸视频在线| 精品三级网站| 欧美日韩一区二区在线播放| 欧美专区日韩专区| 狠狠做深爱婷婷久久一区| 四虎国产精品永久一区| 亚洲精品无码在线播放网站| 精品天海翼一区二区| 青青青国产精品国产精品美女| 亚洲无码熟妇人妻AV在线| 亚洲精品无码AV电影在线播放| 国产综合色在线视频播放线视| 亚洲精品动漫| 色成人亚洲| 青青操视频在线| 国产精品自拍合集| 人妻中文字幕无码久久一区| 波多野结衣国产精品| 国产美女在线观看| 欧美中文一区| 欧美a在线看| 国产超碰一区二区三区| 伊人大杳蕉中文无码| 精品無碼一區在線觀看 | 九九这里只有精品视频| 国产精品黑色丝袜的老师| 国产免费一级精品视频| 国产一区自拍视频| 久久国产乱子伦视频无卡顿| 国产精品v欧美| 免费毛片在线| 欧美一级爱操视频| 亚洲欧洲日产国码无码av喷潮| 亚洲精品视频免费| 国产靠逼视频| 国产成人8x视频一区二区| 国产小视频a在线观看| 91成人免费观看| 一级爆乳无码av|