当前位置: 首页 > news >正文

ENVI:如何进行遥感图像的分类?(支持向量机模型)

目录

01 阅读前要

02 支持向量机分类

2.1 加载需要进行分类的影像

2.2 影像的假彩色合成

2.3 创建ROIs

2.3.1 为什么要创建ROI?(涉及机器学习的相关知识)

2.3.2 创建训练样本

2.3.3 保存训练样本的ROI

2.3.4 创建验证样本 + 保存验证样本的ROI

2.4 加载训练样本

2.5 去除异常值

2.5.1 计算各种标签的ROI分离度

2.5.2 分析ROI分离度报告并进行相关处理

2.6 训练支持向量机模型

2.6.1 找到支持向量机算法的工具并点击

2.6.2 输入需要进行分类的影像文件

2.6.3 支持向量机模型的各项参数设置

2.7 分类好之后的影像结果展示

2.8  模型评估

2.8.1 关闭训练样本(分类样本)ROI文件

2.8.2 打开验证样本ROI文件 

2.8.3 加载的验证样本ROI展示

2.8.4 找到混淆矩阵分析的工具并点击打开

2.8.5 选择需要进行混淆矩阵分析的图像

2.8.6 将分类图像的标签与验证样本ROI的标签一一对应

2.8.7 输出的形式设置

2.8.8 混淆矩阵输出和简单分析

2.8.9 保存混淆矩阵


01 阅读前要

这里主要列举了监督分类中的支持向量机的操作,以及对分类之后的图像分类效果分析(其实是对模型分类效果的评估)。

另外,支持向量机是机器学习里面的一种,那么了解机器学习的流程步骤就显得尤为重要。

 

1.获取数据                ====>        创建ROIs
2.数据基本处理         ====>        去除异常值等
3.特征工程                ====>        特征值标准化等等
4.模型训练                ====>        确定好机器学习模型的各项参数而后进行训练
5.模型评估                ====>        分类后处理

(其中3,4在你选择某一个模型工具时就会融入其中,你只需要指定一些参数即可。)

 

02 支持向量机分类

2.1 加载需要进行分类的影像

 

 

加载的影像展示

(这是进行了2%的线性拉伸)

 

 2.2 影像的假彩色合成

为什么要进行假彩色合成? ====> 为了能肉眼更好的区分各种地物的颜色,使之更为突出明显。

 

 

 

 

进行假彩色合成之后的影像展示

 

2.3 创建ROIs

2.3.1 为什么要创建ROI?(涉及机器学习的相关知识)

一个ROI就是一个小样本。这个ROI所在区域的像素颜色等等就是这个ROI的一个个特征项(这些特征项无需用户自己进行计算和挑选,ENVI会自行进行分辨并得出)。另外对于每一个ROI都应该对应有一个标签或者说是目标值(譬如这个ROI对应是林地,林地就是这个ROI的标签或者说是目标值。但是,请注意,并不是所有的分类中样本都需要标签,这取决于你的分类是否属于监督分类,监督分类就需要每一个样本拥有标签或者说是目标值)。

那么机器学习模型(此处是支持向量机)在干什么呢?实际上,支持向量机模型就是根据你给出的样本去分析为什么这个样本拥有这样子的特征值就会带有这个标签,然后从众多的样本中找出规律(此时模型就训练完毕了)。那么你再给出整幅影像给模型让其分辨出哪一个像素应该属于哪一个标签,这样子模型会根此前在你给出的样本中找出的规律进行分辨,对每一个像素打上一个标签。最后整幅图像就是分类好了的图像。

说白了,就是看图识物。图就是ROI,物就是图的标签。让你分辨你也可以分辨出来(假定你就就是一个机器学习模型),我先告诉你这种颜色风格的图表示林地,那种颜色风格的图表示耕地,下次我只告诉你图的颜色风格,那么我请你告诉我这幅图表示什么地物?想必你应该可以回答出来。对于颜色风格,ENVI里面会用多种特征项去衡量,即每一个样本都会由几个种类的特征值;对于图表示什么,其实对应于图的标签或者就是ROI的标签。

其实你觉得上面就完成了模型的全部吗?其实不然,我们还没有衡量这个模型的好坏或者说这个模型对图像的区分效果到底如何?这就还需要用到我们创建的ROI,不过这次用来验证的ROI绝对不能是之前用来训练模型的ROI,否则这次训练是无效的(这很显然是无效的,这类似于考试,平时的训练我给你出了一些题目,然后还给了你标准答案,让你去分析除这一类题目的解法。考试的时候我当然不应该还将之前出过的题目用来考试了,而是应该用类似的题目来考考你,看看你和标准答案之间的区别,如果区别不大那么说明你已经领悟到了这类题目是如何进行计算处理的,如果你给出的答案和标准答案出入很大,那么说明你还没有理解这类题目到底该如何进行计算。这对应于模型也是类似的。)

最后我其实是想告诉你,我们的ROI应该分为两类,一类是训练样本,另一类是验证样本。但是比例需要控制一下,一般是训练样本的数量占7成,验证样本的数量占3成,当然这并不是一定的,但大致在这个范围。

2.3.2 创建训练样本

 

 

2.3.3 保存训练样本的ROI

 

 

 

 

 

2.3.4 创建验证样本 + 保存验证样本的ROI

这两项操作的步骤和之前的创建训练样本+保存训练样本的ROI是完全一样的步骤,所以你无需更改任何步骤,除了保存时路径名不要和之前重叠将其覆盖即可。这里不再演示。

2.4 加载训练样本

现在模型还没有训练,所以需要先将训练样本加载进来用于训练支持向量机模型。

 

 

 

 加载进来的训练ROI展示

 

 

 2.5 去除异常值

对于一些ROI,我们可能绘制的不是很好,但是怎么评判呢? ==> 使用ROI分离度。所谓ROI分离度,就是指不同标签的ROI之间可以区分的概率或者说是明显度,说通俗点就是ENVI通过算法有多大把握可以将各种标签的ROI正确的区分开来。

ROI分离度范围是[0, 2]之间,当两种ROI的分离度小于1.9时,你需要考虑你绘制的ROI有没有出现纰漏,然后修改或者删除某一个或者某一些ROI。

 

2.5.1 计算各种标签的ROI分离度

 

 

 

2.5.2 分析ROI分离度报告并进行相关处理

 

 

 

2.6 训练支持向量机模型

2.6.1 找到支持向量机算法的工具并点击

 

2.6.2 输入需要进行分类的影像文件

 

 

 

 2.6.3 支持向量机模型的各项参数设置

 

 

 2.7 分类好之后的影像结果展示

 

 

2.8  模型评估

 

现在要对分类好之后的图像进行混淆矩阵分析,需要使用到我们之前的验证样本ROI。差不多理解就是对于支持向量机模型分类号的图像,我们拿到参考答案(验证样本ROI)一个一个像素去对照,看看有没有像素分类错误。当然,我现在说的其实并不是太标准,但是大致思路就是如此。

 

2.8.1 关闭训练样本(分类样本)ROI文件

 

 

2.8.2 打开验证样本ROI文件 

 

 

 

 

 2.8.3 加载的验证样本ROI展示

 

 2.8.4 找到混淆矩阵分析的工具并点击打开

 

 

2.8.5 选择需要进行混淆矩阵分析的图像

 

 

 

 2.8.6 将分类图像的标签与验证样本ROI的标签一一对应

 

 

2.8.7 输出的形式设置

 

2.8.8 混淆矩阵输出和简单分析

 

 2.8.9 保存混淆矩阵

 

如果你有必要保存混淆矩阵,可以参照下面步骤。

<p>炒茄子</p>

相关文章:

  • 刷题记录(NC50959 To the Max,NC236172 货船,NC16655 [NOIP2005]过河)
  • 【JS逆向系列】某乎x96参数3.0版本与jsvmp进阶
  • Markdown博客 设置字体大小、颜色、类型等样式
  • SATA系列专题之四:4.1 Command Layer命令分类详细解析
  • XAI将创建一套机器学习技术,使人类用户能够理解、适当信任并有效管理新一代人工智能合作伙伴
  • 大数据之ZooKeeper(二)
  • 2021CCPC新疆省赛题解BDEFGHIJK
  • Hyperledge Fabric-身份与角色认证
  • SpringAOP底层原理
  • 【高等数学基础进阶】多元函数的极值与最值
  • QT使用MSVC编译器时中文报错问题
  • Java Double toString()方法具有什么功能呢?
  • 猿创征文|Spring Boot日志
  • Blue Prism 异常处理
  • PCL 环境下安装配置CGAL 5.5
  • CSS盒模型深入
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • echarts的各种常用效果展示
  • MySQL几个简单SQL的优化
  • 安装python包到指定虚拟环境
  • 力扣(LeetCode)21
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何用vue打造一个移动端音乐播放器
  • 使用Swoole加速Laravel(正式环境中)
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 阿里云API、SDK和CLI应用实践方案
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • (初研) Sentence-embedding fine-tune notebook
  • (二)构建dubbo分布式平台-平台功能导图
  • (分布式缓存)Redis持久化
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • *上位机的定义
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .form文件_SSM框架文件上传篇
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET企业级应用架构设计系列之结尾篇
  • .NET序列化 serializable,反序列化
  • .php文件都打不开,打不开php文件怎么办
  • :“Failed to access IIS metabase”解决方法
  • @JoinTable会自动删除关联表的数据
  • @JsonSerialize注解的使用
  • @property括号内属性讲解
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [04]Web前端进阶—JS伪数组
  • [1127]图形打印 sdutOJ
  • [android] 请求码和结果码的作用
  • [C\C++]读入优化【技巧】
  • [C++]类和对象(中)
  • [git]git命令如何取消先前的配置
  • [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率
  • [IE技巧] IE8中HTTP连接数目的变化