摘 要: 提出了一種基于注冊(cè)服務(wù)的分布式并行遙感影像處理系統(tǒng)模型,利用注冊(cè)機(jī)制實(shí)現(xiàn)各類資源的集成,實(shí)現(xiàn)系統(tǒng)的可擴(kuò)展性,同時(shí)給出了該模型詳細(xì)的邏輯框架和工作流程設(shè)計(jì)以及具體的關(guān)鍵技術(shù)實(shí)現(xiàn)。給出了OTSU分割算法在實(shí)驗(yàn)系統(tǒng)運(yùn)行的實(shí)例。
關(guān)鍵詞: 分布式遙感圖像處理" title="圖像處理">圖像處理 分布式計(jì)算 并行計(jì)算" title="并行計(jì)算">并行計(jì)算 注冊(cè)機(jī)制
隨著空間遙感技術(shù)、對(duì)地觀測(cè)技術(shù)的不斷進(jìn)步,一個(gè)以多時(shí)相、多分辨率、多傳感器、多波段為特征的多層、立體、多角度、全方位和全天候遙感對(duì)地觀測(cè)數(shù)據(jù)獲取體系正在形成,能夠獲取巨量的對(duì)地觀測(cè)空間數(shù)據(jù),同時(shí)這些數(shù)據(jù)每天還在以TB級(jí)的速度增長??焖賹?shí)時(shí)性、空間無限性以及成本低廉性,使遙感柵格數(shù)據(jù)日益成為數(shù)字地球重要的數(shù)據(jù)源。例如,僅美國航空航天管理局(NASA)的對(duì)地觀測(cè)系統(tǒng)每天可發(fā)回的衛(wèi)星圖像數(shù)據(jù)" title="圖像數(shù)據(jù)">圖像數(shù)據(jù)就達(dá)1012字節(jié)之多。長期以來,雖然人們積累了各種大量的圖像數(shù)據(jù),但由于缺少有效快速的處理方法,使得決策者們?cè)谶M(jìn)行目標(biāo)識(shí)別、信息提取等決策分析工作時(shí)發(fā)現(xiàn)可供參考的有用信息寥寥無幾。傳統(tǒng)的集中式遙感圖像處理模式在處理能力、異地資源共享等方面存在著不足,已成為遙感圖像處理系統(tǒng)" title="圖像處理系統(tǒng)">圖像處理系統(tǒng)的一個(gè)瓶頸,無法適應(yīng)遙感圖像處理技術(shù)發(fā)展的需要。因此,遙感圖像數(shù)據(jù)的快速網(wǎng)絡(luò)化、并行化" title="并行化">并行化處理技術(shù)就顯得異常重要。
本文從遙感圖像處理系統(tǒng)存在的問題入手,提出了利用分布式技術(shù)、并行計(jì)算來構(gòu)建分布式環(huán)境下高性能遙感圖像處理系統(tǒng)的方案,并將注冊(cè)機(jī)制引入到原型系統(tǒng),實(shí)現(xiàn)各類資源的集成。同時(shí),詳細(xì)分析了該原型系統(tǒng)的邏輯框架、工作流程設(shè)計(jì)以及關(guān)鍵技術(shù)的實(shí)現(xiàn),并給出OTSU分割算法在實(shí)驗(yàn)系統(tǒng)里運(yùn)行的實(shí)例。
1 實(shí)驗(yàn)系統(tǒng)邏輯框架設(shè)計(jì)
根據(jù)實(shí)際的研究工作以及對(duì)相關(guān)技術(shù)的分析,借鑒了XML-RPC、CORBA、RMI等分布式體系結(jié)構(gòu),并基于中間件、JSP/Servlet、XML以及數(shù)據(jù)庫等技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)基于MPI并行計(jì)算以及簡單過程調(diào)用RPC機(jī)制的高性能遙感圖像處理實(shí)驗(yàn)系統(tǒng),并集成若干遙感圖像處理算法。為了使系統(tǒng)具有較高的動(dòng)態(tài)擴(kuò)展性,設(shè)計(jì)了一個(gè)基于注冊(cè)服務(wù)的機(jī)制,將圖像處理算法、數(shù)據(jù)等資源以某種統(tǒng)一的服務(wù)描述形式發(fā)布到注冊(cè)中心,自由組合滿足所需要的功能,從而使系統(tǒng)具有很高的松耦合性。
圖1描述了分布式環(huán)境下高性能遙感圖像處理系統(tǒng)的邏輯框架。
從圖1可以看出,從下至上五層模型主要包括基礎(chǔ)層、構(gòu)建層、資源服務(wù)層、系統(tǒng)應(yīng)用層以及用戶接口層。
基礎(chǔ)層即為網(wǎng)絡(luò)基礎(chǔ)設(shè)施,包括高速傳輸網(wǎng)絡(luò)基礎(chǔ)框架、主機(jī)及硬件環(huán)境、系統(tǒng)軟件支撐系統(tǒng)等,為分布式環(huán)境下的整個(gè)應(yīng)用系統(tǒng)提供物理運(yùn)行平臺(tái)。
構(gòu)建層主要在基礎(chǔ)層上構(gòu)建一個(gè)分布式并行計(jì)算的支撐環(huán)境,并通過向上層提供底層的編程接口API、SDK服務(wù)包以及一些技術(shù)規(guī)范,支持應(yīng)用系統(tǒng)開發(fā)和運(yùn)作。如向上層資源層的算法資源提供并行編程平臺(tái)MPI標(biāo)準(zhǔn)的MPI庫函數(shù)“mpi.h”和“l(fā)ibmpi.a”等。這一層是構(gòu)建優(yōu)秀應(yīng)用系統(tǒng)的關(guān)鍵。
資源服務(wù)層根據(jù)構(gòu)建層提供的支持,通過將所有網(wǎng)上的資源,如數(shù)據(jù)資源、算法資源、計(jì)算資源、知識(shí)資源等抽象為服務(wù),建立自己的服務(wù)資源層,為上層系統(tǒng)應(yīng)用層提供基礎(chǔ)服務(wù)。
系統(tǒng)應(yīng)用層主要功能是針對(duì)具體應(yīng)用,在資源服務(wù)層和構(gòu)建層的基礎(chǔ)上構(gòu)建適合自己需求的應(yīng)用系統(tǒng),并提供給用戶。
用戶接口層提供用戶與應(yīng)用系統(tǒng)交互的接口。
在此模型的基礎(chǔ)上,構(gòu)建了遙感圖像處理系統(tǒng)的各個(gè)邏輯功能模塊,主要包括遙感圖像的預(yù)處理、圖像分析、結(jié)果顯示等幾部分。
遙感圖像的預(yù)處理主要是一些基本的圖像處理操作,并對(duì)需要分析的圖像進(jìn)行適當(dāng)?shù)膬?yōu)化和預(yù)處理。
圖像分析部分主要由圖像分割、圖像分類以及目標(biāo)的表達(dá)與分析組成。由于系統(tǒng)中要集成大量的圖像分割算法,通過圖像分割,系統(tǒng)將原始的遙感圖像數(shù)據(jù)轉(zhuǎn)變?yōu)橛糜谙乱徊侥繕?biāo)識(shí)別的特征,并通過特征和知識(shí)庫中的先驗(yàn)知識(shí),對(duì)目標(biāo)進(jìn)行識(shí)別、分類。然后,對(duì)目標(biāo)識(shí)別所得的各種地物目標(biāo)進(jìn)行分析,并基于目標(biāo)對(duì)象的視覺知識(shí)、目標(biāo)地物周圍的環(huán)境知識(shí),以及目標(biāo)地物間的協(xié)同知識(shí)對(duì)已識(shí)別的目標(biāo)地物進(jìn)行正確性判定,提供上層決策使用。最后,將目標(biāo)識(shí)別的結(jié)果及其各種特征存放到特征數(shù)據(jù)庫中。該模塊匯聚了大量的圖像處理算法,而這些圖像處理算法所消耗的時(shí)間較多,是系統(tǒng)的一個(gè)瓶頸。本文對(duì)部分計(jì)算復(fù)雜度高的算法采用了并行計(jì)算。
顯示模塊顯示處理得到的圖像結(jié)果,而對(duì)于地物特征主要通過虛擬地理環(huán)境、虛擬現(xiàn)實(shí)、三維顯示等手段進(jìn)行顯示。
各個(gè)邏輯功能模塊的算法以服務(wù)的形式在不同的服務(wù)器節(jié)點(diǎn)上實(shí)現(xiàn),并通過服務(wù)注冊(cè)機(jī)制提供給客戶。這樣,不同的客戶在實(shí)際應(yīng)用時(shí)就可以通過服務(wù)發(fā)現(xiàn)并應(yīng)用不同服務(wù)器節(jié)點(diǎn)上的服務(wù),就像使用本地的資源一樣,實(shí)現(xiàn)真正意義上的分布式。
2 實(shí)驗(yàn)系統(tǒng)運(yùn)行時(shí)的流程設(shè)計(jì)
圖2描述了處理系統(tǒng)運(yùn)行時(shí)的工作流程。
從圖2中可以看出,本系統(tǒng)中有三種不同的角色:(1)Client(用戶),使用已經(jīng)發(fā)布的方法服務(wù);(2)Node(節(jié)點(diǎn))由算法提供者建立,主要用來發(fā)布和執(zhí)行方法服務(wù)。復(fù)雜的算法和大數(shù)據(jù)量處理時(shí),采用基于MPI的本地節(jié)點(diǎn)并行計(jì)算處理。(3)注冊(cè)中心,主要用來提供方法服務(wù)的注冊(cè)、查詢以及對(duì)用戶、方法服務(wù)等動(dòng)態(tài)管理。算法提供者在提供算法的同時(shí)將該算法的一些信息,包括算法的位置、算法所需的參數(shù)以及其他一些信息發(fā)布到該注冊(cè)中心,并可隨時(shí)更改自己的算法及相關(guān)信息。通過設(shè)立注冊(cè)機(jī)制,可使系統(tǒng)變得開放、容易擴(kuò)展。
該系統(tǒng)設(shè)計(jì)的主要工作流程包括算法的注冊(cè)和算法的使用兩部分。
算法的注冊(cè):(1)算法提供者訪問算法注冊(cè)區(qū),填寫描述該算法基本信息的表單并注冊(cè);(2)注冊(cè)中心生成一個(gè)“ServiceID.xml”的文件進(jìn)行算法信息的登記,并返回注冊(cè)結(jié)果。如圖2虛線。
算法的使用:(1)用戶訪問注冊(cè)中心,查詢需要的算法服務(wù);(2)注冊(cè)中心返回查詢結(jié)果,如果算法服務(wù)狀態(tài)欄顯示正常,說明當(dāng)前可以使用該算法服務(wù);(3)注冊(cè)中心得到使用命令后,找到相應(yīng)方法服務(wù)的所在位置,并與節(jié)點(diǎn)A交互。節(jié)點(diǎn)A遠(yuǎn)程解析在注冊(cè)中心該方法服務(wù)的參數(shù)描述文件(ServiceID.xml),并生成界面提供給用戶。用戶填寫完參數(shù),提交給A,然后A執(zhí)行該方法服務(wù);(4)最后將結(jié)果發(fā)送給用戶。如圖2實(shí)線。
3 原型系統(tǒng)實(shí)現(xiàn)
3.1 分布式系統(tǒng)環(huán)境設(shè)計(jì)
客戶端,原型系統(tǒng)前端利用JSP和JAVA Applet,通過IE瀏覽器與用戶交互。
服務(wù)器建設(shè),Tomcat作為免費(fèi)的、開放源碼的JSP/Servlet容器和Web服務(wù)器,被部署在各個(gè)服務(wù)器節(jié)點(diǎn)上。一些功能和業(yè)務(wù)邏輯采用中間件技術(shù)(主要是COM)以及Java Servlet實(shí)現(xiàn)。
注冊(cè)中心除安裝了Tomcat服務(wù)器軟件外,還安裝了SQL Server 2000,以支持大數(shù)據(jù)量的并發(fā)操作。
3.2 算法并行化處理策略
由于遙感圖像處理系統(tǒng)所要處理的圖像數(shù)據(jù)量大,一般都在幾兆、幾百兆甚至上千兆字節(jié),而且某些處理算法計(jì)算相當(dāng)復(fù)雜、耗時(shí)多,因此對(duì)某些復(fù)雜的處理算法,在算法提供的服務(wù)器端采用了本地并行化計(jì)算的策略。同時(shí),考慮到實(shí)際情況,并行計(jì)算硬件環(huán)境采用了局域的CLUSTER集群結(jié)構(gòu)設(shè)計(jì),并輔以基于MPI的MPICH軟件環(huán)境。
基本思想就是采用了數(shù)據(jù)劃分的策略,如圖3。首先由主進(jìn)程主機(jī)將待處理的圖像數(shù)據(jù)劃分成若干個(gè)子區(qū)(可以是均等,也可以不均等,根據(jù)具體情況而定),每個(gè)子區(qū)作為一個(gè)單獨(dú)的處理對(duì)象分配到不同主機(jī)上,每個(gè)主機(jī)運(yùn)行相同代碼,最后將每個(gè)主機(jī)處理的結(jié)果匯總,得到最終的處理結(jié)果。最后,歸結(jié)和設(shè)計(jì)了三類圖像并行處理算法:基于影像像素單元、基于影像窗口空間以及基于影像全局區(qū)域。
3.3 服務(wù)描述
本次實(shí)驗(yàn)主要針對(duì)算法服務(wù)做了一定描述,具體所描述的內(nèi)容如表1。當(dāng)服務(wù)發(fā)布時(shí),注冊(cè)中心將獲取該算法服務(wù)的基本信息存入注冊(cè)中心的數(shù)據(jù)庫表里,并將自動(dòng)產(chǎn)生一個(gè)名為“服務(wù)代號(hào).XML”的XML文件,用來保存該算法服務(wù)所需的參數(shù)信息。同時(shí),根據(jù)圖像處理算法的特點(diǎn),制定了六類參數(shù):整型、浮點(diǎn)型,一維數(shù)組(整型和浮點(diǎn)型)、二維數(shù)組(整型和浮點(diǎn)型)、字符串以及文件類型。對(duì)OTSU圖像分割算法服務(wù)化描述的XML片斷如下:
?。約ervice ID=“服務(wù)號(hào)”TYPE=(exe com servlet rpc)> //確定服務(wù)及其類型
?。糽ocalExe>d:myserviceotsu.exe</localExe>//確定服務(wù)在節(jié)點(diǎn)上的具體位置
?。紆rl>http:192.168.34.25:8080virRoot</url> //確定節(jié)點(diǎn)位置
?。糾ethod NAME=“otsu”> //具體方法
?。糳es></des>//服務(wù)描述
?。約up>BSQ</sup> //支持處理的圖像格式
?。糹nput NUM=“0”/>//輸入?yún)?shù)描述
?。紀(jì)utput NUM=“1”> //輸出參數(shù)描述
?。糵ile type=“BSQ”> //文件參數(shù)
?。?output>
?。?method>
?。?service>
3.4 系統(tǒng)通信
為了使實(shí)驗(yàn)系統(tǒng)具有較高的擴(kuò)展性和兼容性,在設(shè)計(jì)客戶端與服務(wù)器、節(jié)點(diǎn)與服務(wù)器間通信時(shí),采用了具有良好跨平臺(tái)性的XML文件格式以及SOAP協(xié)議。系統(tǒng)向后可以兼容服務(wù)形式的方法,如web services、grid services等,同時(shí),通過在節(jié)點(diǎn)處設(shè)立代理服務(wù)層使得系統(tǒng)能向前兼容如微軟操作系統(tǒng)下的COM、EXE、DLL等方法。考慮到圖像處理中通常涉及圖像二進(jìn)制文件的傳輸,采用了SUN公司的帶附件的SOAP傳輸協(xié)議包SAAJ(SOAP with Attachments API for Java),并通過對(duì)數(shù)據(jù)的分塊傳輸來提高大數(shù)據(jù)量圖像數(shù)據(jù)傳輸?shù)乃俣取?BR>4 算法運(yùn)行實(shí)例
考慮到當(dāng)前的研究工作,圖像處理算法一般都是在VC環(huán)境下開發(fā),通過對(duì)圖像處理算法進(jìn)行DLL以及EXE(支持MPI并行計(jì)算)形式封裝,可以輕松地發(fā)布和集成到本系統(tǒng)中。
圖4顯示了集成到實(shí)驗(yàn)系統(tǒng)中的OTSU算法服務(wù)對(duì)一幅交通圖像進(jìn)行分割后的結(jié)果。
利用快速網(wǎng)絡(luò)化、并行化的遙感圖像處理技術(shù)能廉價(jià)地獲取超出單機(jī)處理能力的高性能服務(wù),大幅提高遙感圖像處理的速度和共享資源的能力。而本次實(shí)驗(yàn)就是以此為指導(dǎo),結(jié)合遙感圖像處理的具體研究工作,研究和設(shè)計(jì)了基于注冊(cè)服務(wù)機(jī)制的分布式并行遙感圖像處理系統(tǒng)模型,并進(jìn)行了實(shí)驗(yàn)。結(jié)果表明,分布式技術(shù)、并行計(jì)算技術(shù)以及遙感圖像處理的結(jié)合是可行的,而且基于注冊(cè)服務(wù)機(jī)制的系統(tǒng)模型有效地整合了分散的遙感圖像數(shù)據(jù)、處理算法和計(jì)算機(jī)的處理能力,改變了集中式的處理模式,收到較好的實(shí)驗(yàn)效果。
參考文獻(xiàn)
1 李德仁,李 軍. 分布式遙感圖像處理中的若干關(guān)鍵技術(shù).遙感學(xué)報(bào),1999;24(1):15~19
2 伍祥生. Java技術(shù)在圖像處理中的演變.中國圖像圖形學(xué)報(bào),1999;(10)
3 童小陽,高培文.基于分布式應(yīng)用的系統(tǒng)注冊(cè)服務(wù)Register的實(shí)現(xiàn). 小型微型計(jì)算機(jī)系統(tǒng),2004;09(21):925~927
4 莫崇惠,陳玉健. 基于注冊(cè)服務(wù)的教育資源集成框架.計(jì)算機(jī)工程與應(yīng)用,2003;(15):188~190
5 馬偉鋒,王衛(wèi)紅,蔡家楣,駱劍承,沈占鋒. 基于網(wǎng)格的遙感圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn). 計(jì)算機(jī)工程與應(yīng)用,2004;(24):134~136
6 鄭 江,駱劍承. 基于網(wǎng)格計(jì)算環(huán)境的高分辨率遙感影像并行分割. 蘭州:高分辨率衛(wèi)星遙感數(shù)據(jù)處理與應(yīng)用研討會(huì), 2003;9