大幅面遙感影像並行多尺度分割與尺度轉換

2021-12-30 05:00:49 字數 3994 閱讀 3101

概述

物件導向的影像分析方法是當前高分遙感影像解譯的主流方法,而影像分割是這一方法的基礎。由於遙感影像中地物的多樣性,影像分割需要的尺度也各不相同。因此多尺度分割方法是物件導向影像解譯中常用的方法,並且,針對不同型別地物分析的需求,還需要調整分割尺度,以獲取最佳的分割效果。這其中存在乙個問題,在對一景影像進行分析的時候,往往需要多次調節分割引數,才能最終確定最佳的分析尺度。這往往是乙個迭代互動的過程,耗時費力。

此外,當影像非常大的時候,這個過程非常耗時。例如,對於一景融合後的資源3號遙感影像,其大小超過24000*24000畫素,4.8g,目前最新版本的ecognition 9.2要耗費超過15分鐘進行一次分割,9.1版本要50分鐘以上。調整幾次引數,半天功夫就沒有了。

在本文中,提出了一種雙層尺度集模型,一次性的解決了多尺度分割調整尺度引數和高效能計算的問題。

尺度集模型

首先簡要介紹一下尺度集模型。尺度集模型簡單說就是乙個經過尺度索引的二叉樹模型,2023年由guigues等人提出來的。尺度集模型可以把層次區域合併過程完整的記錄下來,並記錄整個過程中產生區域的層次關係,並將每個區域進行尺度索引。因此通過尺度集模型可以反算任意尺度的影像分割結果,從而解決調整分割尺度引數的問題。

尺度集的建立方法

尺度集可以採用層次區域合併方式實現。層次區域合併方法是一種自底向上的區域合併方法,其示意圖如下:

在得到這個二叉樹的同時,計算各個節點的尺度引數,並在最後將其用於各個節點的尺度索引,即可以得到乙個尺度集模型。

區域合併中非常重要的是區域間的合併代價,本演算法實驗中採用的是ecognition原生演算法的那套準則,區域合併是基於層次區域合併(利用區域鄰接圖的region adjacency graph, rag).

分塊分層尺度集模型

利用傳統的這個尺度集模型處理大幅面遙感影像時無法充分利用計算機的硬體資源,面臨資料量巨大,處理效率低的問題。為此首先想到的便是採用分塊方法,提高計算機資源的利用率。關於分塊分割結果的拼接,其實非常容易實現,只要分塊之間重疊足夠大,就一定能夠拼接好,毫無人工痕跡。但這其中有乙個問題,當分割尺度非常大的時候,分塊之間的重疊也需要非常大才能保證較大的區域能夠完美拼接上。這無形中增加了計算量。在分割尺度較小的時候,分割得到的區域也較小,因此只需要較小的重疊區域就能夠保證區域拼接的精度。那麼如何在較小計算量的情況下既滿足小尺度分割的需要,也滿足大尺度分割的需要?

我的主要思想是提出乙個雙層尺度集(bi-level scale-sets model, bsm)的思路。將整個模型分成兩個層次,第乙個層次解決小尺度分割的問題,將影像切分為帶有重疊區的塊,每個塊分別進行尺度集建模,各個塊之間進行並行化計算。最終通過這一系列的分塊建模,在應用的時候將各個塊的分割結果進行拼接,滿足較小尺度的分割的需求。由於僅用於較小尺度的分割,因此區域較小,重疊區域也可以較小。第二層次解決較大尺度的分割的問題,基本思路是利用第一層次的模型,獲得乙個中等尺度的分割結果,並以此為基礎,構建唯一乙個覆蓋全圖的尺度集模型。由於這個模型的初始分割始於乙個較大的尺度,因此區域的個數相比較少,計算量也不會很大。雙層尺度集模型的基本結構如圖所示:

平行計算

由於底層的尺度集模型由不同的分塊組成,各個分塊之間並不相互干擾,因此可以方便的進行平行計算。最簡單的實現方法是採用openmpi技術,實現自動的平行計算。在分塊處理的時候為了避免無序的分塊讀寫操作引起硬碟的效能下降,採用先分行,再分塊的方式。即先將影像劃分為一系列的橫向條帶,各個條帶之間序列處理,每個條帶內根據cpu核心數進行分塊並行處理。基本原理如圖:

實驗結果

實驗影像

實驗採用了深圳灣區域的worldview2影像和zy3影像。其中worldview2影像40964096畫素,8波段,0.5公尺解析度;zy3影像2400024000畫素,4波段,2.1公尺解析度。

實驗1 - 效果展示

首先展示採用分塊處理的方式獲取的影像分割結果概況。實驗資料為深圳灣區域的worldview2影像,4096*4096畫素。分塊採用44的方式,總共16塊。下圖展示了從尺度集模型反算的兩個不同尺度的分割結果(標記圖和向量邊界):

從標記圖中可以看出明顯的分塊痕跡,但是從向量的邊界中看不出任何的痕跡。並且可以看出該模型滿足了小尺度和大尺度分割的需求。下圖展示了5個不同尺度的分割結果(實際操作中通過拖動滑塊實現尺度引數的轉換,軟體實時輸出對應的分割結果):

實驗2 - 效率分析

本實驗僅分析使用不同數量cpu核心時的計算效率。使用的是zy3遙感影像(2400024000畫素,4.8g),分塊的大小為10001000畫素,緩衝區大小為100個畫素。採用的計算機為4核8執行緒,3.5ghz,64g記憶體,機械硬碟。下表為採用不同數量執行緒時對實驗影象處理的時間(單位:秒):

執行緒底層尺度集反算中間尺度分割結果頂層尺度集總時間

1809.17241.187150.2971000.656

2515.20329.828151.407696.438

4308.22725.703151.640485.570

6247.67225.594150.968424.234

8214.06325.434150.110389.607

從表中可以看出採用多執行緒時可以明顯的實現底層尺度集的加速,總時間從1000秒減小到389秒;而上層尺度集由於沒有採用加速策略,時間沒有明顯變化。

- 實驗3 - 對比分析

該實驗中對比最新版的ecognition9.2,在該版本中,採用了最新的多解析度分割(mrs)演算法,實現了多核並行加速,相比之前的版本分割效率有明顯的提公升。首先對比兩個演算法在相同光譜、形狀和尺度引數情況下的分割結果:

你能看出來哪個更好嗎?(左側是我的方法,右側是易康的)

然後採用不同尺寸的影像(從zy3遙感影像中擷取),分析其演算法效率。(單位:秒)

image sizemrs(scale:30)mrs(scale:75)bsm

6000600049.66856.15720.797

1200012000204.516227.93891.774

2400012000418.765470.031182.297

2400024000917.578984.406389.607

從**中可以看出,採用本文的方法其效率比最新版的ecognition軟體多解析度分割方法效率高出月2.5倍,並且其能夠快速的反算不同尺度的分割結果。

軟體成果

採用visual studio 2013開發,帶有分割、向量化等功能,還帶有影象讀寫、顯示、波段調整等基本功能。

7分鐘處理一景巨大的遙感資料,一般兩三千畫素長寬大小的影象幾秒鐘搞定,拖動滑塊搞定選擇分割尺度的問題,有木有很激動?

總結

本文中提出了一種分層-分塊的雙層尺度集模型,通過實驗分析證明該模型可以解決大幅面遙感影像多尺度分割的尺度轉換困難和計算效率不高的問題,通過對比實驗發現該模型相比最新版本的ecognition軟體仍然具有明顯的優勢,具有非常高的實用性。

大幅面印表機

大幅面印表機是印表機的列印幅寬超過a2 42公分 的印表機。大幅面印表機突破了數碼印刷技術瓶頸,實現了真正意義上的一張起印 無須製版 全彩影象一次完成,是傳統印刷機的換代產品。快精度高,色彩專業效率有保障。萬能印表機列印高度為20cm,影象製作操作簡單,可立等即取 採用免塗層高保真7色或8色專用墨能...

Python 批量拼接Landsat遙感影像

usr local bin python coding utf 8 import arcpy,os def mosaic path name 指定工作目錄,即存放影像的目錄 outfolder r h wangyu pcos 2000useful 07 i 0for item in os.listd...

如何製作用於遙感影像分類的高解析度遙感影像資料集?

how to make high resolution remote sensing image dataset?github位址 0.引言 根據自身需要製作遙感影像資料還是很具有現實意義 第一,高解析度遙感影像資料集目前整體上是缺乏的,主流的有uc merced dataset,whu rs da...