【遥感专题系列】影像信息提取之——面向对象的影像分类技术

“同物异谱,同谱异物”会对影像分类产生的影响,加上高分辨率影像的光谱信息不是很丰富,还有经常伴有光谱相互影响的现象,这对基于像素的分类方法提出了一种挑战,面向对象的影像分类技术可以一定程度减少上述影响。

本专题以ENVI中的面向对象的特征提取FX工具为例,对这种技术和处理流程做一个简单的介绍。

本专题包括以下内容:

  • 面向对象分类技术概述
  • ENVI FX简介
  • ENVI FX操作说明

1、面向对象分类技术概述

面向对象分类技术集合临近像元为对象用来识别感兴趣的光谱要素,充分利用高分辨率的全色和多光谱数据的空间,纹理,和光谱信息来分割和分类的特点,以高精度的分类结果或者矢量输出。它主要分成两部分过程:对象构建和对象的分类。

影像对象构建主要用了影像分割技术,常用分割方法包括基于多尺度的、基于灰度的、纹理的、基于知识的及基于分水岭的等分割算法。比较常用的就是多尺度分割算法,这种方法综合遥感图像的光谱特征和形状特征,计算图像中每个波段的光谱异质性与形状异质性的综合特征值,然后根据各个波段所占的权重,计算图像所有波段的加权值,当分割出对象或基元的光谱和形状综合加权值小于某个指定的阈值时,进行重复迭代运算,直到所有分割对象的综合加权值大于指定阈值即完成图像的多尺度分割操作。

影像对象的分类,目前常用的方法是“监督分类”和“基于规则(知识)分类”。这里的监督分类和我们常说的监督分类是有区别的,它分类时和样本的对比参数更多,不仅仅是光谱信息,还包括空间、纹理等对象属性信息。基于规则(知识)分类也是根据影像对象的属性和阈值来设定规则进行分类。

表1为三大类分类方法的一个大概的对比。

类型

基本原理

影像的最小单元

适用数据源

缺 陷

传统基于光谱的分类方法

地物的光谱信息特征

单个的影像像元

中低分辨率多光谱和高光谱影像

丰富的空间信息利用率几乎为零

基于专家知识决策树

根据光谱特征、空间关系和其他上下文关系归类像元

单个的影像像元

多源数据

知识获取比较复杂

面向对象的分类方法

几何信息、结构信息以及光谱信息

一个个影像对象

中高分辨率多光谱和全色影像

速度比较慢

表1 传统基于光谱、基于专家知识决策树与基于面向对象的影像分类对比表

2、ENVI FX简介

全名叫“面向对象空间特征提取模块—Feature Extraction”,基于影像空间以及影像光谱特征,即面向对象,从高分辨率全色或者多光谱数据中提取信息,该模块可以提取各种特征地物如车辆、建筑、道路、桥、河流、湖泊以及田地等。该模块可以在操作过程中随时预览影像分割效果。该项技术对于高光谱数据有很好的处理效果,对全色数据一样适用。对于高分辨率全色数据,这种基于目标的提取方法能更好的提取各种具有特征类型的地物。一个目标物体是一个关于大小、光谱以及纹理(亮度、颜色等)的感兴趣区域。

可应用于:

  • 从影像中尤其是大幅影像中查找和提取特征。
  • 添加新的矢量层到地理数据库
  • 输出用于分析的分类影像
  • 替代手工数字化过程

具有易于操作(向导操作流程),随时预览效果和修改参数,保存参数易于下次使用和与同事共享,可以将不同数据源加入ENVI FX中(DEMs、LiDAR datasets、shapefiles、地面实测数据)以提高精度、交互式计算和评估输出的特征要素、提供注记工具可以标识结果中感兴趣的特征要素和对象等特点。

3、ENVI FX操作说明

ENVI FX的操作可分为两个部分:发现对象(Find Object)和特征提取(Extract features),如图1所示。

图1 FX操作流程示意图

下面在ENVI5.x下的FX工具,以0.6米的QB图像为例,介绍向对象信息提取的流程。下面我们。

3.1 基于规则的面向对象信息提取

该方法的工具为Toolbox /Feature Extraction/ Rule Based Feature Extraction Workflow

第一步:准备工作

根据数据源和特征提取类型等情况,可以有选择地对数据做一些预处理工作。

  • 空间分辨率的调整

   如果您的数据空间分辨率非常高,覆盖范围非常大,而提取的特征地物面积较大(如云、大片林地等)。可以降低分辨率,提供精度和运算速度。可利用Toolbox/Raster Management/Resize Data工具实现。

  • 光谱分辨率的调整

如果您处理的是高光谱数据,可以将不用的波段除去。可利用Toolbox/Raster Management/Layer Stacking工具实现。

ENVI5.6版本后改为/Raster Management/Build Layer Stack

  • 多源数据组合

当您有其他辅助数据时候,可以将这些数据和待处理数据组合成新的多波段数据文件,这些辅助数据可以是DEM, lidar 影像, 和SAR 影像。当计算对象属性时候,会生成这些辅助数据的属性信息,可以提高信息提取精度。可利用Toolbox/Raster Management/Layer Stacking工具实现。

ENVI5.6版本后改为/Raster Management/Build Layer Stack

  • 空间滤波

如果您的数据包含一些噪声,可以选择ENVI的滤波功能做一些预处理。

这里直接在ENVI中打开qb_colorado.dat图像文件。

第二步:发现对象

  • 启动Rule Based FX工具

在Toolbox中,找到Feature Extraction,选择/Feature Extraction/Rule Based Feature Extraction Workflow,打开工作流的面板,选择待分类的影像qb_colorado.dat,此外还有三个面板可切换:在Input Mask面板可输入掩膜文件,在Ancillary Data面板可输入其他多源数据文件,切换到Custom Bands面板,有两个自定义波段,包括归一化植被指数或者波段比值、HSI颜色空间,这些辅助波段可以提高图像分割的精度,如植被信息的提取等自定义的属性,在Normalized Difference和Color Space属性上打钩,如下图所示,点击Next;

图2 输入数据和属性参数选择

  • 影像分割、合并

FX根据临近像素亮度、纹理、颜色等对影像进行分割,它使用了一种基于边缘的分割算法,这种算法计算很快,并且只需一个输入参数,就能产生多尺度分割结果。通过不同尺度上边界的差异控制,从而产生从细到粗的多尺度分割。

选择高尺度影像分割将会分出很少的图斑,选择一个低尺度影像分割将会分割出更多的图斑,分割效果的好坏一定程度决定了分类效果的精确度,我们可以通过preview预览分割效果,选择一个理想的分割阀值,尽可能好地分割出边缘特征。有两个图像分割算法供选择:

  • Edge, 基于边缘检测,需要结合合并算法可以达到最佳效果;
  • Intensity: 基于亮度,这种算法非常适合于微小梯度变化(如DEM)、电磁场图像等,不需要合并算法即可达到较好的效果。

调整滑块阀值对影像进行分割,这里设定阈值为40。

注:按钮

是用来选择分割波段的,默认为Base Image所有波段。

影像分割时,由于阈值过低,一些特征会被错分,一个特征也有可能被分成很多部分。我们可以通过合并来解决这些问题。合并算法也有两个供选择:

  • Full Lambda Schedule,合并存在于大块、纹理性较强的区域,如树林、云等,该方法在结合光谱和空间信息的基础上迭代合并邻近的小斑块;
  • Fast Lambda: 合并具有类似的颜色和边界大小相邻节段。设定一定阈值,预览效果。

这里我们设置的阈值为90,点Next进入下一步。

Texture Kernal Size:纹理内核的大小,如果数据区域较大而纹理差异较小,可以把这个参数设置大一点。默认是3,最大是19。

注:这一步是可选项,如果不需要可以按照默认的0直接跳过。

 

图3 图像分割、合并

这时候FX生成一个Region Means 影像自动加载图层列表中,并在窗口中显示,它是分割后的结果,每一块被填充上该块影像的平均光谱值。接着进行下一步操作。

目前,已经完成了发现对象的操作过程,接下来是特征的提取。

第三步:根据规则进行特征提取

在规则分类界面。每一个分类有若干个规则(Rule)组成,每一个规则有若干个属性表达式来描述。规则与规则之间是与的关系,属性表达式之间是并的关系。

同一类地物可以由不同规则来描述,比如水体,水体可以是人工池塘、湖泊、河流,也可以是自然湖泊、河流等,描述规则就不一样,需要多条规则来描述。每条规则又有若干个属性来描述,如下是对水的一个描述:

  • 面积大于500像素
  • 延长线小于5
  • NDVI小于25

对道路的描述:

  • 延长线大于9
  • 紧密度小于3
  • 标准差小于20

这里以提取居住房屋为例来说明规则分类的操作过程。

首先分析影像中容易跟居住房屋错分的地物有:道路、森林、草地以及房屋旁边的水泥地。

点击按钮

,新建一个类别,在右侧Class properties下修改好类别的相应属性。

图4 规则分类面板

  • 第一条属性描述,划分植被覆盖和非覆盖区。

在默认的属性Spectral Mean上单击,激活属性,右边出现属性选择面板,如图所示。选择Spectral,Band下面选择Normalized Difference。在第一步自定义波段中选择的波段是红色和近红外波段,所以在此计算的是NDVI。把Show Attribute Image勾上,可以看到计算的属性图像。

通过拖动滑条或者手动输入确定阈值。在阈值范围内的在预览窗口里显示为红色,在Advanced面板,有三个类别归属的算法:算法有二进制、线性和二次多项式。选择二进制方法时,权重为0或者1,即完全不匹配和完全匹配两个选项;当选择线性和二次多项式时,可通过Tolerance设置匹配程度,值越大,其他分割块归属这一类的可能性就越大。这里选择类别归属算法为Liner,分类阈值Tolerance为默认的5,如下图

图5 对象属性面板

图6 归属类别算法和阈值设置

  • 第二条属性描述,剔除道路干扰

居住房屋和道路的最大区别是房屋是近似矩形,我们可以设置Rectangular fit属性。在Rule上右键选择Add Attibute按钮,新建一个规则,在右侧Type中选择Spatial,在Name中选择Rectangular fit。设置值的范围是0.5~1,其他参数为默认值。

注:预览窗口默认是该属性的结果,点击All Classes,可预览几个属性共同作用的结果。

同样的方法设置

Type:Spatial;Name:Area——Area>45

Type:Spatial;Name:Elongation——Elongation<3

  • 第三条属性描述,剔除水泥地干扰

水泥地反射率比较高,居住房屋反射率较低,所以我们可以设置波段的象元值。

Type:spectral;Name:Spectral Mean,Band:GREEN——Spectral Mean (GREEN)<650。

点击All Classes,最终的rule规则和预览图如下图所示。

注:单击

按钮,打开“房屋.rul”,可以导入预先设置的规则。

图7 房屋提取规则与结果

第四步:输出结果

    特征提取结果输出,可以选择以下结果输出:矢量结果及属性、分类图像及分割后的图像、还有高级输出包括属性图像和置信度图像、辅助数据包括规则图像及统计输出,如下图所示。

图8 输出结果

     这里我们选择矢量文件及属性数据一块输出,规则图像及统计结果输出。点击Finish按钮完成输出。可以查看房屋信息提取的结果和矢量属性表

类似的思路可以提取道路、林地、草地等分类,这里就不一一例举。

3.2 基于样本的面向对象的分类

该方法的工具为Toolbox /Feature Extraction/Example Based Feature Extraction Workflow。

在Toolbox中找打该工具,双击打开流程化的面板,前面两步和第一种方法的前两步完全一致,选择数据和发现对象,在此不一一赘述。我们直接看特征提取这部分:基于样本的图像分类。

第三步:基于样本的图像分类

经过图像分割和合并之后,进入到监督分类的界面,如下图所示:

图9监督分类界面

  • 选择样本

对默认的一个类别,在右侧的Class Properties中,修改显示颜色、名称等信息。

图10 修改类别属性信息

在分割图上选择一些样本,为了方便样本的选择,可以在左侧图层管理中将Region Means图层关闭掉,显示原图,选择一定数量的样本,如果错选样本,可以在这个样本上点击左键删除。

一个类别的样本选择完成之后,新增类别,用同样的方法修改类别属性和选择样本。在选择样本的过程中,可以随时预览结果。可以把样本保存为shp文件以备下次使用。点击按钮可以将真实数据的ShapeFile矢量文件作为训练样本。

这里我们建立5个类别:道路、房屋、草地、林地、水泥地,分别选择一定数量的样本,如下图所示。

图11 选择样本

  • 设置样本属性

   切换到Attributes Selection选项。默认是所有的属性都被选择,这些选择样本的属性将被用于后面的监督分类。可以根据提取的实际地物特性选择一定的属性。这里按照默认全选。

图12 样本属性选择

  • 选择分类方法

切换到Algorithm选项。FX提供了三种分类方法:K邻近法(K Nearest Neighbor)、支持向量机(Support Vector Machine ,SVM)和主成分分析法(Principal Components Analysis ,PCA)。

图13 分类方法

K邻近分类方法依据待分类数据与训练区元素在N维空间的欧几里得距离来对影像进行分类,N由分类时目标物属性数目来确定。相对传统的最邻近方法,K近邻法产生更小的敏感异常和噪声数据集,从而得到更准确地分类结果,它自己会确定像素最可能属于哪一类。

在K参数里键入一个整数,默认值是1,K参数是分类时要考虑的临近元素的数目,是一个经验值,不同的值生成的分类结果差别也会很大。K参数设置为多少依赖于数据组以及您选择的样本。值大一点能够降低分类噪声,但是可能会产生不正确的分类结果,一般值设到3-7之间就比较好。

支持向量机是一种来源统计学习理论的分类方法。选择这一项,需要定义一系列参数:

a)Kernel Type下拉列表里选项有 Linear,Polynomial,Radial Basis,以及 Sigmoid。

  • 如果选择Polynomial,设置一个核心多项式(Degree of Kernel Polynomial)的次数用于SVM,最小值是1,最大值是6。
  • 如果选择Polynomial or Sigmoid,使用向量机规则需要为Kernel指定 the Bias ,默认值是1。
  • 如果选择是 Polynomial、Radial Basis、Sigmoid,需要设置Gamma in Kernel Function参数。这个值是一个大于零的浮点型数据。默认值是输入图像波段数的倒数。

b)为SVM规则指定the Penalty参数,这个值是一个大于零的浮点型数据。这个参数控制了样本错误与分类刚性延伸之间的平衡, 默认值是100。

Allow Unclassified是允许有未分类这一个类别,将不满足条件的斑块分到该类,默认是允许有未分类的类别。

Threshold 为分类设置概率域值,如果一个像素计算得到所有的规则概率小于该值,该像素将不被分类,范围是0~100,默认是5。

    主成分分析是比较在主成分空间的每个分割对象和样本,将得分最高的归为这一类。

这里我们选择K邻近法,K参数设置为5,点击Next,输出结果。

最终结果的输出方法和基于规则的一样。

3.3 直接输出矢量

该方法的工具为Toolbox/Feature Extraction/Segment Only Feature Extraction Workflow。

操作方法参考前面的第一和第二步骤,第三步直接选择路径输出分割栅格结果和矢量结果。

从以上的实际操作可以看到,ENVI FX扩展模块操作具有易于操作(向导操作流程),随时预览效果和修改参数。

4、小结

    基于像元的分类方法,依据主要是利用像元的光谱特征,大多应用在中低分辨率遥感图像。而高分辨率遥感图像的细节信息丰富,图像的局部异质性大,传统的基于像元的分类方法易受高分辨率影像局部异质性大的影响和干扰。而面向对象分类方法可以高分辨率图像丰富的光谱、形状、结构、纹理、相关布局以及图像中地物之间的上下文信息,可以结合专家知识进行分类,可以显著提高分类精度,而且使分类后的图像含有丰富的语义信息,便于解译和理解。对高分辨率影像来说,还是一种非常有效的信息提取方法,具有很好的应用前景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(三)SQL优化与索引使用

示例 CREATE TABLE `employees` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(24) NOT NULL DEFAULT COMMENT 姓名,`age` int(11) NOT NULL DEFAULT 0 COMMENT 年龄,`position` varchar(20) NOT NULL DEFAULT COMMENT 职位,`hire_time` timestamp NOT NULL DEFAUL…

Go-gin-example 第二部分 jwt验证

文章目录 使用 JWT 进行身份校验jwt知识点补充认识JWTTOKEN是什么jwt的使用场景jwt的组成headerpayloadsignature 下载依赖包编写 jwt 工具包jwt中间件编写如何获取token 编写获取token的Apimodels逻辑编写路由逻辑编写修改路由逻辑 验证token将中间件接入Gin功能验证模块 续接…

交友脱单盲盒源码,纸条广场,支持单独抽取/连抽/同城

源码介绍 交友脱单盲盒源码&#xff0c;纸条广场&#xff0c;单独抽取/连抽/同城。 盲 盒交友脱单系统源码包含了学校、爱好、城市、地区、星座等 等信息&#xff0c;具有首页轮转广告和页面美化功能。 首页提供了两款 连抽和高质量底部连抽的选项&#xff0c;并且可以在后台…

如何通过ISPC使用Xe(核显)进行计算

我一直以为 ISPC 的 Xe 是只包含独立显卡的&#xff0c;比如 A770 这些&#xff0c;没想到看了眼文档是可以使用核显的&#xff0c;但只能在 Linux 和 Windows 上&#xff0c;macOS 不行&#xff0c;就想试试看。 写本文是因为 ISPC 已经出现了三四个版本的大改&#xff0c;但…

基于SSM的网上挂号系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

每日一练:LeeCode-102、二又树的层序遍历【二叉树】

本文是力扣LeeCode-102、二又树的层序遍历 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&…

蓝桥杯备赛

洛谷做题打卡day2 嵌套循环yyds&#xff01; 很多前辈的题解都很长且包括诸如s[i-1][j-1]一直到s[i1][j1]这般冗长的搜索&#xff0c;其实…我觉得直接用循环就好了嘛 两次debug然后AC&#xff0c;嵌套了find函数看起来会稍微简洁一些&#xff0c;其实这题思路不难的——不外…

友元函数与友元类

友元函数与友元类 实验介绍 私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。声明为友元函数或友元类后就可以直接访问类中所有成员,但同时也破坏了类的封装性。 为什么在模板篇中讲解友元函数和友元类…

类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦

类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦 文章目录 类型“{}”上不存在属性“xxx”。ts(2339)-解决方案集锦一、方案一&#xff08;优先尝试&#xff09;二、方案二&#xff08;优先尝试&#xff09;三、方案三这该是多么痛苦的一篇笔记啊&#xff01;&#xff0…

【设计模式-3.3】结构型——享元模式

说明&#xff1a;说明&#xff1a;本文介绍设计模式中结构型设计模式中的&#xff0c;享元模式&#xff1b; 游戏地图 在一些闯关类的游戏&#xff0c;如超级玛丽、坦克大战里面&#xff0c;游戏的背景每一个关卡都不相同&#xff0c;但仔细观察可以发现&#xff0c;其都是用…

【二叉树遍历和练习】

文章目录 一、二叉树前中后遍历二、获取节点个数三.获取叶子节点个数四.获取第k层节点个数五.求二叉树的高度&#xff0c;时间复杂度O&#xff08;N&#xff09;六.检测值为value的元素是否存在七. 检查两颗树是否相同八.判断一棵二叉树是不是平衡二叉树九.一个二叉树的根节点 …

Hutool sqlserver 数据库简单操作-Db

项目中主数据库是mysql的&#xff0c;使用mybatis处理非常舒服。项目中还会极少量涉及一个sqlserver数据源的读取操作&#xff0c;虽然mybatis是支持多数据源的&#xff0c;但是感觉用起来不那么顺手偏重一些了。 最初我的想法是涉及sqlserver的库的操作直接使用jdbc来实现就好…

java基于Spring Boot的灾害应急救援评估调度平台

灾害应急救援平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。&#xff08;1&#xff09;鉴于该系统是一款面向…

深入理解和应用C++ std::shared_ptr别名构造函数

深入理解和应用C std::shared_ptr别名构造函数 引言 在现代C中&#xff0c;智能指针是一个极为重要的工具&#xff0c;尤其std::shared_ptr以其自动内存管理、引用计数和多线程安全性等特性深受开发者喜爱。其中一个不太常用但功能强大的构造方式是别名构造函数&#xff0c;它…

C++ 设计模式之外观模式

【声明】本题目来源于卡码网&#xff08;题目页面 (kamacoder.com)&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【简介】什么是外观模式 外观模式Facade Pattern , 也被称为“⻔⾯模式”&#xff0c;是⼀种结构型设计模式&#…

WordPress如何修改旧文章的发布日期让其变成新文章发布?

我们个人网站发展一段时间后&#xff0c;可能就不懂得发布什么内容了&#xff0c;这个时候可以考虑翻看以前的旧文章&#xff0c;必要时对其进行适当修改&#xff0c;然后修改它的发布日期变成当前日期重新发布&#xff0c;这样就会变成新文章重新出现在我们首页的文章列表中。…

libbpf-tips

使用 libbpf 编写 BPF 应用程序进阶技巧 本文地址&#xff1a;https://www.ebpf.top/post/top_and_tricks_for_bpf_libbpf 原文地址&#xff1a;https://www.pingcap.com/blog/tips-and-tricks-for-writing-linux-bpf-applications-with-libbpf/ 2020 年初&#xff0c;当使用…

numpy 筛选多段数据

目录 掩码方式 利用切片 掩码方式 range_to_remove list(range(77-1, 111-1)) list(range(122-1, 135-1))keep_mask np.ones(image0_cut.shape[0], dtypebool)keep_mask[range_to_remove] Falseprocessed_data image0_cut[keep_mask] 利用切片 import numpy as np# 假设…

基于Pytorch的身份证及其他证件检测矫正模型应用

前言 在做身份证和其他证件识别的时候&#xff0c;图片基本都不是摆正的状态&#xff0c;此时在进行OCR文字识别的提取文字信息的时候会出现很多误差&#xff0c;如何将证件摆正&#xff0c;再进行OCR文字识别就可以大大提高准确率。 准备工作 1、Python环境&#xff0c;在P…

tda7294功放电路图大全

简易电子管功放电路图&#xff08;一&#xff09; 6P3P单端A类电子管功放电路图 如图为6P3P单端A类电子管功放电路图。VT1、VT2直流通路串联。VT1构成普通的三极管共阴放大器&#xff0c;VTr2构成阴极输出器&#xff0c;对VT1而言VT2是一个带电流负反馈的高阻负载。音频信号由…