牛坤龍,木嘯林,王晉年,2,蔡世榮,楊現(xiàn)坤*
(1.廣州大學 地理科學與遙感學院,廣東 廣州 510006;2.廣州大學 遙感大數(shù)據(jù)智能應用創(chuàng)新中心,廣東 廣州 510006)
Orfeo ToolBox(OTB)是一個用于處理遙感衛(wèi)星數(shù)據(jù)的工具包,具有基于開源社區(qū)、支持多語言開發(fā)、可擴展和算法集成、文檔完善等特點,最早由法國航天局(CNES)于2006年發(fā)起,用于處理Orfeo計劃中法國晶宿星(Pléiades)衛(wèi)星和意大利“宇宙—地中?!备叻掷走_衛(wèi)星的高分辨率圖像,隨后逐漸應用于其他衛(wèi)星數(shù)據(jù)處理。OTB建立在開源地理空間社區(qū)的基礎(chǔ)上,除CNES 外還有眾多軟件開發(fā)者參與開發(fā)并將其整合到應用項目中。OTB 可處理高達TB 級的高分辨率光學、多光譜、高光譜和雷達圖像,并提供正射校正、全色銳化、監(jiān)督或非監(jiān)督分類、特征提取、SAR 數(shù)據(jù)處理等[1]多種處理工具;還具有很強的兼容性,在Windows、Linux 和Mac OS X 等各種平臺以及從筆記本電腦到高性能計算機集群[2]等不同性能的計算機都支持其運行。目前,OTB是多個大型遙感圖像處理項目的核心組成部分,也是研究遙感圖像處理算法實驗和編寫遙感圖像處理新算法、模型的首選工具??蓴U展性、多功能性和開放性一直是OTB的關(guān)鍵特征,也是推動其不斷擴展應用的主要動力。然而,限于其發(fā)展起步較晚,在國內(nèi)應用極少,因此本文介紹了OTB的技術(shù)體系和主要特點,并通過典型案例說明OTB技術(shù)和工具的可行性與實用性,以期為國產(chǎn)衛(wèi)星圖像處理技術(shù)發(fā)展提供新的思路。
OTB經(jīng)過30多個版本的更新迭代,已從一個服務于Orfeo 計劃、處理超高分辨率遙感數(shù)據(jù)的工具箱發(fā)展成為一個處理多傳感器遙感數(shù)據(jù)的完整工具集。
1)算法高效。OTB 核心庫是基于Insight Toolkit(ITK)包,采用C++語言編寫的。ITK是用于醫(yī)學成像的開源軟件工具包,包括影像配準、分割等功能。OTB 深度集成了泛型編程思想,實現(xiàn)代碼更加高效,可在代碼編寫時及時發(fā)現(xiàn)軟件問題,還能處理從不同波段到不同尺寸再到不同像素類型的圖像。OTB算法涵蓋了從衛(wèi)星圖像預處理到高性能遙感圖像深度學習[3]的大量功能,所有算法均可通過Monteverdi、QGIS、Python、控制臺或C++集成開發(fā)和處理。OTB集成了Monteverdi 圖像可視化工具,可采用硬件加速方式渲染顯示高分辨率圖像;用戶可操作顯示TB 級的衛(wèi)星圖像,并可通過工具箱中的工具集對圖像進行處理分析。OTB的目標是為衛(wèi)星影像信息提取(基于通用、高性能C++類庫)提供一個免費的“端到端”軟件解決方案(基于大數(shù)據(jù)管道計算模式)。在此基礎(chǔ)上,OTB可以構(gòu)建應用程序和鏈式處理流程來滿足從遙感影像處理到用戶桌面應用程序開發(fā)的不同需求。
2)接口復用。OTB 為遙感圖像處理軟件庫提供了一個通用接口,使各種軟件都可通過該接口調(diào)用其提供的軟件處理和分析模塊,從而提高其代碼和模型的復用能力[4]。因此,OTB 采用地理空間數(shù)據(jù)抽象庫(GDAL)讀寫柵格和矢量格式,采用開源安全信息管理系統(tǒng)對幾何傳感器建模,采用libSVM、OpenCV 和Shark 進行機器學習,采用MuParser 解算高性能數(shù)學表達式。此外,OTB開發(fā)一直堅持跟蹤遙感圖像處理技術(shù)的前沿進展,在新算法出現(xiàn)時及時跟進集成該算法。目前較流行的形態(tài)譜[5]、降維算法(PCA、NA-PCA、ICA 等)[6]、直 線 提 取 算法(LSD)[7-8]、Haralick 紋理和SURF 關(guān)鍵點匹配等算法都已集成在OTB軟件包中。
3)開發(fā)社區(qū)。與許多開源項目一樣,很多沒有編程能力的用戶也參與了OTB軟件的開發(fā),極大地促進了其發(fā)展。例如,他們可以協(xié)助文檔更新、BUG上報、功能反饋等,不斷完善OTB不同類別的文檔是OTB開發(fā)中的一環(huán)。目前國內(nèi)很少有開發(fā)者參加該開發(fā)社區(qū),造成當前OTB對應的中文開發(fā)材料太少,使用和應用案例也極少見,進而導致國內(nèi)對OTB 的應用較少。2015年初,OTB成立了官方項目指導委員會(PSC),該思想來源于其他GIS軟件項目(GRASS GIS[9]和QGIS)。PSC是OTB項目發(fā)展的協(xié)調(diào)中心,決定重大事件;也是OTB項目的長期運行機構(gòu)和資源中心,以吸引更多的開發(fā)人員參與,并保證OTB開源和獨立發(fā)展。
OTB是適應用戶桌面上交互式計算和多核架構(gòu)TB級遙感影像處理的軟件包,通過模塊化的3 層軟件架構(gòu)來實現(xiàn)(圖1)。其核心是C++API,用于實現(xiàn)大數(shù)據(jù)管道計算模式,支持多線程、流和消息傳遞。因此,所有模塊均可根據(jù)內(nèi)存和CPU資源自動調(diào)整達到最優(yōu)處理。此外,借助內(nèi)存應用程序鏈(最小化磁盤I/O訪問)的輔助功能,可非常容易地從開發(fā)機器移植代碼并擴展到高性能計算集群。由于采用模塊化架構(gòu),OTB允許用戶快速設(shè)計從預處理到高級特征提取方法和機器學習算法的遙感圖像處理模塊,完成用戶從原始數(shù)據(jù)到標準專題產(chǎn)品的一系列處理。
圖1 OTB軟件架構(gòu)
OTB集成了Monteverdi影像顯示工具。Monteverdi是基于Qt 和OpenGL 開發(fā)的輕量級圖像渲染和操作工具,利用飛冰圖形渲染引擎使圖像顯示和瀏覽更快速、高效,并能以傳感器幾何結(jié)構(gòu)顯示圖像。Monteverdi的主要功能包括:①利用GDAL流暢顯示和瀏覽地理大數(shù)據(jù);②高級OpenGL 功能,如采用浮雕紋理和OpenGL 著色語言實現(xiàn)局部和全局渲染;③多源影像顯示,可實時簡單配準各影像坐標參考系統(tǒng),集成顯示多源影像。
OTB工具集具有跨平臺、即用型的特點,提供了90多個遙感圖像處理工具。每個處理工具均可獲取底層C++類庫中影像處理函數(shù)或?qū)⑺鼈兘M合成高級的管道計算模式[10],為許多復雜的遙感算法提供簡單的接口,使基于OTB 的各類工具集研發(fā)更加便捷。例如,正射校正工具采用管道計算模式,集成一系列復雜的圖像處理算法,用戶只需設(shè)置一些簡單的參數(shù)(如輸出數(shù)據(jù)的投影坐標系、數(shù)字高程模型數(shù)據(jù)、插值模式等)即可開始數(shù)據(jù)處理工作。OTB工具集大多采用了類似的設(shè)計思想,使各工具可與用戶更好地交互并協(xié)同工作。OTB 工具集的代碼與用戶界面是相互獨立的,這是通過應用程序框架實現(xiàn)的?;谠摽蚣?,OTB無需重寫代碼即可為每個應用工具提供不同的交互接口,以滿足在不同場景的調(diào)用需要。
OTB 工具可通過以下接口獲得:①控制臺/命令行;②基于Qt的GUI界面;③Python用于高級編程和與NumPy數(shù)組模塊結(jié)合分析;④Monteverdi用于交互式查看衛(wèi)星影像;⑤QGIS 通過其處理工具箱訪問;⑥Zoo-Project[11]通過Web 處理服務訪問。此外,OTB工具還可通過Python 插件在QGIS 軟件中使用,OTB所有工具集集成在QGIS 處理工具箱內(nèi),借助QGIS 軟件使空間分析更加容易實現(xiàn)[12]。OTB 還支持協(xié)同工作,使基于OTB的不同界面交互更加便捷,如OTB可把每個工具的配置參數(shù)保存到XML文件,也可將GUI參數(shù)自動轉(zhuǎn)換為Bash腳本以便于在Linux平臺運行。
OTB 處理遙感影像對計算機內(nèi)存幾乎沒有要求,因此OTB工具可無縫擴展到服務器平臺甚至服務器集群去處理更大的遙感影像數(shù)據(jù)集。OTB中實現(xiàn)的算法都是分塊執(zhí)行處理,所需內(nèi)存不變,這意味著數(shù)據(jù)量越大、所需處理時間越長。采用分塊處理方式是因為OTB依賴于ITK管道計算模式(分塊處理在ITK中也稱為流處理)。即使在管道計算模式中集成多種算法,分塊運算也會一直有效[13]。當某些算法沒有明顯的分塊計算方法時,OTB 還提供了這些工具的自開發(fā)編譯版本,以保障分段或分塊計算處理的結(jié)果穩(wěn)定,如Mean-Shift分割算法[14]和大規(guī)模區(qū)域增長分割算法[15]等。
內(nèi)存不同的機器都可以處理不同量級的遙感衛(wèi)星影像是OTB的一大優(yōu)勢。實際上,OTB還可充分利用現(xiàn)代CPU架構(gòu)和高性能計算基礎(chǔ)設(shè)施(HPC)提高運算效率[16],即OTB算法處理盡可能做到線程化,充分利用CPU 的多核性能提高運算效率,主要通過Open-Threads[17]和OpenMP[18](用于小部分代碼)命令來實現(xiàn)。隨著數(shù)據(jù)量級的不斷增大,應優(yōu)先在HPC架構(gòu)上處理遙感大數(shù)據(jù)的衛(wèi)星影像,以充分利用共享的高帶寬存儲的相似節(jié)點。OTB也可實現(xiàn)該功能,采用信息傳遞接口并行處理,整個管道計算模式跨節(jié)點復制運行,每個節(jié)點產(chǎn)生一部分結(jié)果圖像[19],最后匯總合并,如OTB對整個Pleiades 衛(wèi)星圖像(16 億像素)進行全色銳化,分布在560 個單線程節(jié)點上執(zhí)行,處理時間僅需4.3 min。從多個OTB工具集構(gòu)建一個處理鏈非常簡單且容易擴展,但每個工具產(chǎn)生的中間數(shù)據(jù)必須寫入磁盤,再由下一個工具讀取,若不想保留中間結(jié)果,反復存儲將浪費不必要的磁盤讀寫時間,OTB可在不同應用工具之間建立內(nèi)部管道,并在整個處理鏈中啟用分塊處理,以減少磁盤讀寫時間,提高數(shù)據(jù)分析效率。
OTB 工具包提供的主要功能包括遙感圖像讀取、寫入、轉(zhuǎn)換和提取,遙感圖像正射校正、輻射校準和全色銳化等預處理,常見圖像處理任務(閾值分割、傅里葉或小波變換等),特征提?。ㄝ椛渲笖?shù)、紋理、形狀等),形態(tài)算子分析,圖像分割并矢量化分割結(jié)果,監(jiān)督或非監(jiān)督分類,基于面向?qū)ο蟮膱D像分析和機器學習以及專題遙感圖制作和發(fā)布。
OTB 提供支持各類文件的I/O 結(jié)構(gòu),不強制特定的文件格式,當有新格式文件時,用戶可以很容易地擴展新格式的訪問。OTB圖像讀寫結(jié)構(gòu)類圖見圖2。
圖2 OTB圖像讀寫結(jié)構(gòu)類圖
在OTB中,圖像配準是在可插入組件的框架中執(zhí)行的,可以很容易地更換組件,這就意味著用戶可創(chuàng)建多種組合的配準方法,進而選擇合適的工具在程序中應用。在OTB/ITK中采用圖像配準框架建立圖像配置的管道結(jié)構(gòu)見圖3。
圖3 圖像配準樣例管道結(jié)構(gòu)圖
正射校正是將傳感器幾何圖像轉(zhuǎn)換為地理或地圖投影的過程,具體流程為:①傳感器建模,通過幾何傳感器模型將圖像坐標(行、列)轉(zhuǎn)換為地理坐標(緯度、經(jīng)度),嚴格的建模需數(shù)字高程模型來參考地形情況[20];②光束法平差,在圖像具有序列結(jié)構(gòu)的情況下,可利用圖像間的同名點來細化幾何模型和參數(shù)(這是一個可選步驟,目前未在OTB中實現(xiàn));③地圖投影,允許地理坐標投影到一些特定的地圖投影,如蘭伯特投影、墨卡托投影或UTM投影。
遙感圖像融合大多采用全色銳化方法[21],將衛(wèi)星的全色波段(高空間分辨率數(shù)據(jù))與多光譜(XS)波段(幾個光譜波段的較低分辨率)結(jié)合起來,生成具有多個光譜波段的高分辨率圖像;再利用低通濾波器使全色波段的頻譜內(nèi)容(在傅里葉域中)等同于XS數(shù)據(jù);最后利用低通濾波處理的全色波段對XS 數(shù)據(jù)進行歸一化,并將結(jié)果與原始全色波段相乘。
圖像分割是面向?qū)ο筮b感數(shù)字圖像處理中的一個重要步驟。OTB 工具包中集成了ITK 中相應的算法,最典型的是區(qū)域增長算法。區(qū)域增長算法是將成組的像素或區(qū)域發(fā)展成更大區(qū)域的過程,從種子點的集合開始,逐個把與每個種子點具有相似屬性強度、灰度級、紋理顏色等的相鄰像素合并到該區(qū)域。ITK 中包括連通閾值算法[22]、大津法分割算法[23]和鄰域連接算法[24]等區(qū)域增長算法。
圖像分類是對遙感圖像上的信息進行屬性識別并分類,從而達到識別圖像信息對應的實際地物類別、提取所有地物信息的目的。除人工目視解譯外,監(jiān)督分類和非監(jiān)督分類[25]是遙感圖像分類的常用方法。OTB提供了監(jiān)督和非監(jiān)督分類算法,包括K均值、自組織映射(SOM)、貝葉斯分類和支持向量機等。SOM 算法是由Kohonen 提出的一種非監(jiān)督神經(jīng)學習算法[26],在學習過程中相鄰像素通過相互作用、相互競爭、相互適應來匹配樣例的特征模式,實現(xiàn)了從高維特征空間到低維空間(通常是二維空間)的非線性投影,能在保持特征空間拓撲關(guān)系的同時,找到結(jié)構(gòu)化數(shù)據(jù)集與低維網(wǎng)絡(luò)之間的對應關(guān)系。由于這種拓撲結(jié)構(gòu),最終得到的分類結(jié)果呈現(xiàn)了集群關(guān)系。SOM分類結(jié)果見圖4。
圖4 SOM分類結(jié)果
在OTB的貝葉斯分類中,OTB首先將一個矢量訓練樣本分為兩個子樣本,每個子樣本只存儲一類矢量;然后分別利用參數(shù)估計算法和高斯密度函數(shù)處理得到各自的概率密度;最后由概率密度與由子樣本得到的先驗概率組成樣本分類器。
除在OSGeo4W、QGIS和Zoo等第三方工具中集成了OTB工具集之外,OTB類庫和工具集也逐步延伸到不同的遙感圖像處理生產(chǎn)環(huán)境中,承擔大量對地觀測專題產(chǎn)品生產(chǎn)任務。
Sentinel-2 的主要任務是提供連續(xù)覆蓋全球的衛(wèi)星影像,具有高空間分辨率、高時間分辨率和從可見光到短波紅外的多個波段數(shù)據(jù);每天產(chǎn)生約1.2 TB原始數(shù)據(jù),因此需要設(shè)計具有高效圖像處理能力的有效載荷數(shù)據(jù)地面站(PDGS)來生產(chǎn)近乎實時的1C 級數(shù)據(jù)產(chǎn)品(大氣層頂部正射校正數(shù)據(jù)產(chǎn)品)。為開發(fā)PDGS的圖像處理模塊,歐洲航天局(ESA)選取OTB類庫作為儀器處理設(shè)備模塊的主要部分。準確來說,自2016年7月以來,OTB濾波器已用于所有Sentinel-2影像的輻射校正(去噪、缺陷像素檢測和校正、掩膜和衛(wèi)星大氣頂層轉(zhuǎn)換)和重采樣操作等。OTB在Sentinel數(shù)據(jù)處理框架中的集成,數(shù)據(jù)質(zhì)量和處理性能都取得了非常好的效果。此外,OTB類庫也在ESA的任務效率評價中心用于一些校準和驗證處理工作。
遙感是研究地表狀態(tài)和變化的有力工具,但太陽光進入大氣層會受到嚴重干擾(云、氣體分子與氣溶膠會散射和吸收太陽光或地球表面反射的光,導致傳感器接收的光譜信息不準確),因此遙感圖像需通過預處理獲得準確的光譜反射數(shù)據(jù),如云檢測和大氣校正等。這些過程對處理陸表衛(wèi)星影像來說比較困難,主要問題為無云像元的識別和大氣影像的消除。云檢測問題現(xiàn)在可采用多個云檢測模型[27]解決;而大氣校正必須考慮兩個影響:①大氣氣體(特別是水蒸氣、臭氧、氧氣和二氧化碳)的吸收,吸收在特定吸收波段起主要作用,但地表觀測的光譜通常會回避這些強吸收帶,在這些波段中,可采用大氣校正簡化模型[28]或6S輻射傳輸模型[29]等準確校正氣體吸收;②空氣分子和氣溶膠的散射,大氣中的散射可以非常精確地建模,但需準確知道大氣成分,對于空氣分子來說,建模已沒有問題,主要困難在于氣溶膠的影響,因為氣溶膠在不同位置和時間的吸收特征差異很大。
根據(jù)氣溶膠光學厚度和氣溶膠模型的經(jīng)驗積累,利用輻射傳輸模型可以校正氣溶膠影響并將衛(wèi)星大氣頂層反射率轉(zhuǎn)換為地表反射率[30]。OTB的多時相大氣校正和云檢測(MACSS)工具是一連串處理工具的集成[31],由CNES設(shè)計,完全基于OTB類庫開發(fā),最早應用于法國THEIA陸地數(shù)據(jù)中心,以近乎實時的方式生成和分發(fā)在500萬km2區(qū)域獲取的Sentinel-2數(shù)據(jù),并在2016年底和2017年初逐步推廣到其他數(shù)據(jù)中心使用。
及時準確的土地覆蓋數(shù)據(jù)對于許多地表分析應用至關(guān)重要,學術(shù)界已把地表覆蓋數(shù)據(jù)作為一個關(guān)鍵的氣候變量[32],在各種地表變化過程分析和氣候變化模擬中應用。因此,土地覆蓋數(shù)據(jù)需要及時不斷地更新,以反映地球表面的現(xiàn)勢性。法國THEIA土地數(shù)據(jù)中心成立了一個科學專業(yè)知識中心,其主要目的是利用Sentinel-2 時間序列影像對全球進行全自動土地覆蓋制圖。該產(chǎn)品每年更新一次,包含20 個10 m 分辨率的專題圖。法國生物圈研究中心開發(fā)的基于OTB的開源系統(tǒng)可統(tǒng)一生成類似于法國THEIA土地數(shù)據(jù)中心生產(chǎn)的土地覆蓋制圖,且不斷更新。該系統(tǒng)可通過大批量地表覆蓋數(shù)據(jù)評估新的遙感影像分類算法的性能,以更好地服務于全球遙感地表土地覆蓋數(shù)據(jù)生產(chǎn)。此外,該系統(tǒng)設(shè)計目的之一是使其可移植到全球任何國家和地區(qū),并允許用戶修改影像命名規(guī)則和更新頻率,以適應不同的應用場景,因此系統(tǒng)內(nèi)每個步驟都是獨立的,與不同地區(qū)的地圖編碼規(guī)則或地類類別配置沒有關(guān)系;同時還可通過輸入數(shù)據(jù)(其他對地觀測數(shù)據(jù)、參考數(shù)據(jù)等)把所有特征考慮在內(nèi),無需修改工作流程的其他任何部分即可執(zhí)行數(shù)據(jù)生產(chǎn)任務。2020年法國土地覆蓋圖見圖5。
圖5 2020年法國上空的THEIA土地覆蓋產(chǎn)品原型
生態(tài)系統(tǒng)、農(nóng)業(yè)系統(tǒng)和國土空間信息對于環(huán)境可持續(xù)發(fā)展、農(nóng)業(yè)評估和國家公共政策實施至關(guān)重要。GEOSUD旨在調(diào)整國家環(huán)境和國土管理策略,方便學術(shù)界和公眾獲取空間信息。目前,該部分數(shù)據(jù)由提供超高分辨率遙感產(chǎn)品的地理空間數(shù)據(jù)基礎(chǔ)設(shè)施提供(如RapidEye、Pléiades、SPOT6/7 等)。GEOSUD 可由OGC的網(wǎng)絡(luò)服務進行數(shù)據(jù)訪問、數(shù)據(jù)可視化和目錄請求等實現(xiàn)。實現(xiàn)OGC Web處理服務標準的基礎(chǔ)設(shè)施可支持遠程交互式地理空間數(shù)據(jù)處理[33]。當前OTB已集成在該集群計算架構(gòu)中,以加快密集數(shù)據(jù)的處理流程。OTB提供了大量應用工具集以滿足不同層次用戶的應用需求。
對于農(nóng)業(yè)管理和糧食安全來說,基于對地觀測遙感數(shù)據(jù)研發(fā)高效的農(nóng)業(yè)遙感監(jiān)測網(wǎng)絡(luò)至關(guān)重要。Sentinel-2 任務具有區(qū)域到全球農(nóng)業(yè)監(jiān)測能力,在此背景下,ESA 于2014 年啟動了“Sentinel-2 農(nóng)業(yè)”項目,旨在通過開發(fā)相關(guān)產(chǎn)品的開源處理工具,利用Sentinel-2 數(shù)據(jù)進行農(nóng)業(yè)遙感監(jiān)測。這些處理工具是基于OTB 應用程序框架和類庫開發(fā)的,可通過Sentinel-2(Landsat8)在區(qū)域或國家范圍內(nèi)(圖6)快速生成2A級數(shù)據(jù)產(chǎn)品,包括無云的地面反射數(shù)據(jù)集、植被狀況指標(LAI、NDVI 和物候指標)、動態(tài)農(nóng)田掩膜和作物種類制圖。作為OTB 應用工具,“Sentinel-2 農(nóng)業(yè)”處理工具集可與其他標準開源處理框架深度對接,如可與Sentinel應用程序平臺完美集成。
圖6 作物種類制圖和LAI制圖
在過去十幾年中,OTB 已從基于C++類庫服務于Pléiades 衛(wèi)星影像處理的工具包發(fā)展為滿足大多數(shù)遙感圖像處理需求的多功能軟件工具包,目前已是多個大型遙感圖像處理項目的核心組成部分,是遙感圖像處理算法實驗和編寫新算法、模型的首選工具。可擴展性、多功能性和開放性一直是OTB 的關(guān)鍵特點,也是推動其不斷擴展應用的主要驅(qū)動力。OTB發(fā)展始終以用戶為導向,其項目指導委員會充分吸收開發(fā)社區(qū)不同參與者的建議,促進軟件可持續(xù)發(fā)展。隨著OTB 開發(fā)社區(qū)參與者的不斷增加,軟件不斷發(fā)展,擁有更多先進的算法,并使其深度集成,具有較強的交互性,最終更好地服務于遙感圖像處理。