大幅面遥感影像多尺度分割与尺度转换

时间: 2023-07-11 admin 互联网

大幅面遥感影像多尺度分割与尺度转换

大幅面遥感影像多尺度分割与尺度转换

概述

首先谴责某无良网站盗用本文的内容,同时还删除关键性的论文信息、联系方式等。

本篇博文介绍最近刚接收的一个工作,发表在IEEE Transactions on Geoscience and Remote Sensing上面,有兴趣的可以去读原文:A Bi-level Scale-sets Model for Hierarchical Representation of Large Remote Sensing Images,该工作是尺度集应用于大幅面遥感影像处理的初探,取得了一点基础成果,在此做下宣传,也希望有人能够参与共同推进!

面向对象的影像分析方法是当前高分遥感影像解译的主流方法,而影像分割是这一方法的基础。由于遥感影像中地物的多样性,影像分割需要的尺度也各不相同。因此多尺度分割方法是面向对象影像解译中常用的方法,并且,针对不同类型地物分析的需求,还需要调整分割尺度,以获取最佳的分割效果。这其中存在一个问题,在对一景影像进行分析的时候,往往需要多次调节分割参数,才能最终确定最佳的分析尺度。这往往是一个迭代交互的过程,耗时费力。

此外,当影像非常大的时候,这个过程非常耗时。例如,对于一景融合后的资源3号遥感影像,其大小超过24000*24000像素,4.8G,目前最新版本的eCognition 9.2要耗费超过15分钟进行一次分割,9.1版本要50分钟以上。调整几次参数,半天功夫就没有了。

在本文中,提出了一种双层尺度集模型,一次性的解决了多尺度分割调整尺度参数和高性能计算的问题。

尺度集模型

首先简要介绍一下尺度集模型。尺度集模型简单说就是一个经过尺度索引的二叉树模型,2006年由Guigues等人提出来的。尺度集模型可以把层次区域合并过程完整的记录下来,并记录整个过程中产生区域的层次关系,并将每个区域进行尺度索引。因此通过尺度集模型可以反算任意尺度的影像分割结果,从而解决调整分割尺度参数的问题。 

 

尺度集的建立方法

尺度集可以采用层次区域合并方式实现。层次区域合并方法是一种自底向上的区域合并方法,其示意图如下: 

 

在得到这个二叉树的同时,计算各个节点的尺度参数,并在最后将其用于各个节点的尺度索引,即可以得到一个尺度集模型。

区域合并中非常重要的是区域间的合并代价,本算法实验中采用的是eCognition原生算法的那套准则,区域合并是基于层次区域合并(利用区域邻接图的Region Adjacency Graph, RAG).

分块分层尺度集模型

利用传统的这个尺度集模型处理大幅面遥感影像时无法充分利用计算机的硬件资源,面临数据量巨大,处理效率低的问题。为此首先想到的便是采用分块方法,提高计算机资源的利用率。关于分块分割结果的拼接,其实非常容易实现,只要分块之间重叠足够大,就一定能够拼接好,毫无人工痕迹。但这其中有一个问题,当分割尺度非常大的时候,分块之间的重叠也需要非常大才能保证较大的区域能够完美拼接上。这无形中增加了计算量。在分割尺度较小的时候,分割得到的区域也较小,因此只需要较小的重叠区域就能够保证区域拼接的精度。那么如何在较小计算量的情况下既满足小尺度分割的需要,也满足大尺度分割的需要?

我的主要思想是提出一个双层尺度集(Bi-level Scale-sets Model, BSM)的思路。将整个模型分成两个层次,第一个层次解决小尺度分割的问题,将影像切分为带有重叠区的块,每个块分别进行尺度集建模,各个块之间进行并行化计算。最终通过这一系列的分块建模,在应用的时候将各个块的分割结果进行拼接,满足较小尺度的分割的需求。由于仅用于较小尺度的分割,因此区域较小,重叠区域也可以较小。第二层次解决较大尺度的分割的问题,基本思路是利用第一层次的模型,获得一个中等尺度的分割结果,并以此为基础,构建唯一一个覆盖全图的尺度集模型。由于这个模型的初始分割始于一个较大的尺度,因此区域的个数相比较少,计算量也不会很大。双层尺度集模型的基本结构如图所示: 

 

并行计算

由于底层的尺度集模型由不同的分块组成,各个分块之间并不相互干扰,因此可以方便的进行并行计算。最简单的实现方法是采用OpenMPI技术,实现自动的并行计算。在分块处理的时候为了避免无序的分块读写操作引起硬盘的性能下降,采用先分行,再分块的方式。即先将影像划分为一系列的横向条带,各个条带之间串行处理,每个条带内根据CPU核心数进行分块并行处理。基本原理如图: 

 

实验结果

  • 实验影像

    实验采用了深圳湾区域的WorldView2影像和ZY3影像。其中WorldView2影像4096×4096像素,8波段,0.5米分辨率;ZY3影像24000×24000像素,4波段,2.1米分辨率。

  • 实验1 - 效果展示

    首先展示采用分块处理的方式获取的影像分割结果概况。实验数据为深圳湾区域的WorldView2影像,4096*4096像素。分块采用4×4的方式,总共16块。下图展示了从尺度集模型反算的两个不同尺度的分割结果(标记图和矢量边界): 

     

    从标记图中可以看出明显的分块痕迹,但是从矢量的边界中看不出任何的痕迹。并且可以看出该模型满足了小尺度和大尺度分割的需求。下图展示了5个不同尺度的分割结果(实际操作中通过拖动滑块实现尺度参数的转换,软件实时输出对应的分割结果): 

     

  • 实验2 - 效率分析

    本实验仅分析使用不同数量CPU核心时的计算效率。使用的是ZY3遥感影像(24000×24000像素,4.8G),分块的大小为1000×1000像素,缓冲区大小为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
6000×600049.66856.15720.797
12000×12000204.516227.93891.774
24000×12000418.765470.031182.297
24000×24000917.578984.406389.607

从表格中可以看出,采用本文的方法其效率比最新版的eCognition软件多分辨率分割方法效率高出月2.5倍,并且其能够快速的反算不同尺度的分割结果。

软件成果

采用Visual Studio 2013开发,带有分割、矢量化等功能,还带有图像读写、显示、波段调整等基本功能。

7分钟处理一景巨大的遥感数据,一般两三千像素长宽大小的图像几秒钟搞定,拖动滑块搞定选择分割尺度的问题,有木有很激动?

总结

本文中提出了一种分层-分块的双层尺度集模型,通过实验分析证明该模型可以解决大幅面遥感影像多尺度分割的尺度转换困难和计算效率不高的问题,通过对比实验发现该模型相比最新版本的eCognition软件仍然具有明显的优势,具有非常高的实用性。

本博客就大幅面影像的分割和尺度转换进行了初探,构建了基本的计算框架,同时后期还有很多需要完善、优化的部分,比如模型优化、CPU/GPU并行计算、尺度转换的实时交互等问题。如果您也赞同我的观点,可以参与一起研究~~

本博文中技术细节并未详细展开,仅介绍算法思想。

可供参考文献:

[1] A Bilevel Scale-Sets Model for Hierarchical Representation of Large Remote Sensing Images, IEEE TGRS, 2016

[2] Unsupervised simplification of image hierarchies via evolution analysis in scale-sets framework, IEEE TIP, 2017

[3] Stepwise Evolution Analysis of the Region-Merging Segmentation for Scale Parameterization, IEEE JSTARS, 2018

[4] Scale-sets Image Analysis, IJCV, 2016

学术交流邮箱:zwhoo@szu.edu.cn;QQ群: 217312431;

主页:=15&type=教师

试用软件链接: