RSD面向对象分类的图像分割

RSD面向对象分类的图像分割

李国春 2018.11.12

目录

RSD面向对象分类的图像分割... 1

1.    图像分割方法... 1

2. 使用RSD进行图像分割... 3

2.1 准备数据... 3

2.2 分水岭分割... 3

2.3 合并对象... 5

3. 对象编辑... 6

3.1 未识别的对象。... 6

3.4 剪切... 9

4.使用对象对遥感图像初分割... 9

4.1 分割植被... 9

4.2 分割水体... 12

5. 对象的边界与面积... 12

6. 结语... 14

注     14

前文说过RSD设计了一套暂时命名为SC(Steadfast Classification)分类的对象分割、特征提取和分类的技术。与其它常用分类方法不同的是SC只分1类(当然不是总共只分一类,是每次提取1类),所以叫它Steadfast。它是一个基于二叉树的分类,但只保留一个分支,丢弃一个分支,最后只得到一类。特点1是半自动分类,增加一个半自动使系统更复杂了。特点2是要快一些。只关注1类符合应用习惯,比方如果只想研究水色,公路、建筑、农田、沙地等等就可以直接丢弃。得到1类之后使用RSD的架构优势马上就可以2次类别细分。当然还需要在应用实践中检验这样分类是否合理。

这里介绍一下RSD的图像分割。分割是分类非常重要的一步,没有好的分割支持的分类一定不会是成功的分类。

RSD的SC分类方法将在下文介绍。

  1. 图像分割方法

水岭和多分辨率结合的算法。分水岭算法模拟洼地注水水坝淹没的原理探测对象边界,能够较好地检测到对象的边缘,不同质对象界限分明,非常适合遥感图像的对象边界检测。但是分水岭算法检测到的对象大小差别非常大,平滑区域大对象会很大,而变化复杂的区域小对象会很小。这其实也不能就算是缺点,小对象可以检测到细小的河流、道路等特征。但是小对象太多会造成处理方面的困难,因此RSD借鉴了多分辨率的处理思想,将小对象进行邻域的两两同质性检验归并,迭代处理使之达到期望的标准。

图1 分水岭算法识别的对象

虽然RSD设置了调整水坝的等级和可以忽略比较矮的水坝,但有时仍达不到满意的尺度效果。多分辨率算法是在某些遥感软件中经常使用的方法,大都从像元开始进行同质性归并。RSD先用分水岭算法识别初始对象,再划分小对象,然后将这些小对象根据邻域关系和最小异质性差异递归进行两两归并,既保留了原来分水岭边界清晰的界限,又达到了归并的目的。

图2 分水岭算法再由多分辨率处理的效果

本文还对SLIC算法进行了实验,这个算法对象大小比较均匀。

图3 SLIC算法的对象分割

给人的感觉怎么像边缘比较整齐呢,看来值得找时间深入研究一下。不过看起来非常细小的线状地物是不容易识别了。

2. 使用RSD进行图像分割

2.1 准备数据

下面用一个例子演示图像分割。

数据集名称GF2_PMS1_E121.6_N41.3_20170924_L1A0002623380.rar

下载地址在https://pan.baidu.com/s/1nvIJekT

应用https://blog.csdn.net/gordon3000/article/details/83994974介绍的方法进行融合。这里使用上述博文的融合结果。

由于上述数据融合后达30000*30000像元以上,一次性处理比较浪费时间。这里分割成若干子图像进行处理。有多种方法可以用来分割子图像,这里介绍一个简便的方法。

首先勾选待分割的层,然后在主窗口滚动鼠标滚轮,待光标呈现十字状,按下鼠标左键,拖动鼠标在窗口画出一个矩形。在矩形中右击鼠标出现一个弹出菜单。

图4 剪切子图像

点击“从选择区域创建新层”后,一个新的子图像就建好了。在层列表中可以看见这个新层。

右击该层,保存到一个新的.rsd文件中。

2.2 分水岭分割

打开上面保存的.rsd数据,在主窗口滚动鼠标滚轮,待光标呈现一个黑箭头时右击,出现下面的弹出菜单。

图5 开始图像分割

有3种可用的分割选择:基于图像特征的分割、基于植被指数的分割和基于水指数的分割。选择基于图像特征,点击后出现下述对话框。

图6 图像分割参数

第一个参数是分水岭方法水坝的等级数,第二个参数是忽略的矮水坝。输入200和1时,分割效果如下。

图6 图像分割(1)

输入20 和0时的效果,注意有不应该出现的边界贯通,可根据不同应用调节这些参数。

图7 图像分割(2)

对于植被识别和水体识别应用大家可以试试基于植被指数的分割和基于水指数的分割。也有一些新的特性。

2.3 合并对象

合并对象就是按照上述所说将小对象进行邻域的两两同质性检验归并,使之迭代达到期望的标准。

上述图5的菜单下面有一个合并对象的菜单项,点击后出现下述对话框。

图8 合并对象的参数

第一个参数是目标期望值,小于该标准的两个对象可能发生合并。第2、3个参数都是停止域,第2个是小对象达到该标准时停止,第3个是迭代次数达到该值时停止。注意合并是两两发生且有同质性标准,最后并不是所有小对象都被合并,总有部分漏网之鱼。是否将其强制合并容后研究。

合并后的效果如图2。

同质性合并不是必须的,可以根据应用自行确定。

3. 对象编辑

3.1 未识别的对象。

选择基于植被指数的分割,忽略植被指数低于0.2的区域。

图9 基于植被指数的分割

图10 被忽略的未划分对象的区域

3.2 对象的迁移、剪切

首先创建一个分割目标层,用于存放分割出来的数据。在主窗口滚动鼠标滚轮,待光标呈现黑箭头,右击鼠标出现图5的菜单,选择“新建分割目标层”,这时在层列表可以看见建立了一个新的没有数据的空层,对象编辑时迁移的数据将存放在这个层里。(这个层是在任务中登记了的,除了一些有目的性的操作,不用勾选这个层)。

图11 新建的图像分割目标层

从原始数据中的右下角剪切一块比较平滑的图像。这样处理起来简单一些。看看下图中间这块区域,这是一片稻田。

图12 一片稻田

点亮选中的对象。按下ctrl键就把光标处对象点亮了,或者打开点亮开关,鼠标移动处自动就点亮。任意点击一下鼠标左键,点亮就取消了。

图13 点亮对象

在点亮区按下鼠标右键,出来一个弹出菜单,在里面选“复制对象到XXX”,XXX是分割目标层名。结果如下:

 

图14 迁移的对象

显然这不是我们需要的结果,中间的田埂都被遗漏了。并且仅适用于比较平滑的区域对象尺度比较大的情况,如果都是密密麻麻的小对象这样做也是不可以的。

3.3 邻接对象

邻域特征是面向对象分类的一个重要特征,这里先借来为我所用。对图14,我们按下述黑箭头右击出现的菜单。

图15 复制邻接对象

图16 复制邻接对象后的效果

可以看见中间的裂隙被填充了。这个操作的主要作用就是将来源层(勾选)中与分割目标层中所有对象有邻接关系的对象都复制到分割目标层中。

可是新的问题又出现了。外部吸附了不是同类的对象,内部可能仍然有间隙。这些可以在分类时对邻域对象进行限制,比方限制邻域的距离、大小以及一些指数如NDVI等,这里先不讨论详细讨论,再后面讨论分类时再详细说明。

3.4 剪切

对上述这样简单例子手工剪切往往更简单有效。使用笔形工具,圈好区域,剪一下就完成了。

图17 手工描边剪切

看起来挺丑的,RSD矢量部分工作还没有实质性开始,矢量线没有样条处理什么的。并且还仅仅是光栅数据的剪切。

无论如何,描边也是很辛苦的活儿,这个简单的例子就把我累够呛,复杂地物就更可怕了。另外这个手工活儿又不像工艺品纯手工的值钱,这个手工既不能传世又不能申遗,早消失早幸福。还有就是眼睛是很珍贵的东西,同学们节约用眼噢!

希望大家广出思路,群策群力,有什么好的算法&构思我们在RSD里面实现它,争取早日消灭手工描边。

4.使用对象对遥感图像初分割

4.1 分割植被

比如想在这样一个区域研究林地

图18 林地研究区域

可以分解成图19、图20两部分。

 

 

图19 保留植被指数大于某阈值的区域

 

图20植被指数低于某阈值的区域被丢弃

RSD的架构优势可以马上开始对保留部分的分析研究,比方再分割。

图21 高植被区分割再分割

这样做的好处是可以排除其它因素的干扰,集中分析高植被区林地或者作物分布情况。

 

4.2 分割水体

使用前面图1的数据,使用水指数进行对象识别,忽略水指数低于某阈值的部分,分割后如图22。

图22分割水体

上述分割植被和水体是在对象划分时使用植被指数和水指数进行的分割。分割时通过设置低值门限,使部分区域不被识别为对象。这样图像中就分成了对象区域和游离像元的区域。再把所有对象迁移到目标层,游离像元就被留下了。

图23 迁移所有对象

5. 对象的边界与面积

对象的边界是一个很细节又很重要的问题,也是一个被经常忽略的问题。本来嘛,对对象本身讨论的就比较少,而对象的边界关注的就更少了。

细心的同学可能会注意到,RSD的对象边界都是单边界的细线,而一些其它遥感软件的对象边界是双线的,看起来比较粗一点。这是因为有的软件将边界分为内边界和外边界,两个边界所以是双线。理想情况,相邻的两个对象内边界挨在一起,同时自己的内边界又是对方的外边界。比如陆地上一个对象叫L,邻接的另一个对象在水体里,叫W。L的内边界在陆上,外边界就在水里,W的内边界在水里,外边界就在陆上。计算面积时计算内边界就可以了。见图24a,中间的2列是边界。

但是实际情况下,这样清晰的边界划分只是一种特例,大多数情况下都是图24b的情况。RSD使用单边界(图24b的中间1列),计算面积时双方都统计边界像元,并将边界像元一侧乘一个系数a,另一侧乘(1-a),a == 0.0时表示将边界全部当成外边界,a == 1.0时认为边界是内边界。大多数情况下取 a == 0.5, 这是基于大样本时跨两侧的边界各有一半的假设。

这样做的优点是显而易见的,面积求算更合理,更准确。所有对象面积可以直接相加,基本不会造成所有对象面积之和显著大于或者小于总面积的情况。一个缺陷是3连通或者4连通边界的交点会多统计半个或者一个像元。平心而论,这样的误差,忍了吧!

图24 对象的双边界与单边界

不考虑双边界或者单边界情况的软件也很多,误差还是很大的。看看下面的例子。

                        

            A带对象边界                                                         B 去掉边界

图25 对象的双边界与单边界

图25A是两个对象,第一个对象内部像元9个,边界像元24个。假如每像元1m2,算边界时面积是33m2,不算边界时只有9m2,差了很多。RSD算法该对象是21m2。

转到矢量数据统计面积时模糊了这一问题,而不是这个问题没有了。需要找时间详细跟踪一下。

还没有做一个单独的命令对对象求算面积(2.1.5版),容后补充。但是可以在输出窗口临时查看。

图26 对象面积

6. 结语

RSD对对象进行了一些研究,发现了很多问题。对象只是分类的第一步,但是对象的质量对分类太重要了。下次我们讨论分类时还要有进一步的涉及。

 

RSD的2.1.5版注定是一个过渡版本,暂时(2018年11月12日)发出来在群里内测一下,稍成熟些再传网盘上。(现在更新到了3.0.5-20190606,下载时注意版本

加QQ群136965427关注软件更新情况。

 

 

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值