基于matlab深度学习的多光谱图像语义分割(附源码)

news2024/11/18 2:45:03

一、前言

此示例演示如何使用 U-Net 对具有七个通道的多光谱图像执行语义分割。

语义分割涉及用类标记图像中的每个像素。语义分割的一个应用是跟踪森林砍伐,即森林覆盖率随时间的变化。环境机构跟踪森林砍伐,以评估和量化一个地区的环境和生态健康状况。

基于深度学习的语义分割可以从高分辨率航空照片中精确测量植被覆盖。一个挑战是区分具有相似视觉特征的类,例如尝试将绿色像素分类为草、灌木或树木。为了提高分类精度,某些数据集包含多光谱图像,这些图像提供有关每个像素的其他信息。例如,哈姆林海滩州立公园数据集通过三个近红外通道补充彩色图像,从而更清楚地区分类别。

此示例首先演示如何使用预训练的 U-Net 执行语义分割,然后使用分割结果计算植被覆盖的范围。然后,您可以选择使用基于补丁的训练方法在哈姆林海滩州立帕克数据集上训练 U-Net 网络。

二、下载数据集

此示例使用高分辨率多光谱数据集来训练网络 [1]。该图像集是在纽约哈姆林海滩州立公园上空使用无人机拍摄的。数据包含标记的训练集、验证集和测试集,以及 18 个对象类标签。数据文件的大小为 3.0 GB。

使用帮助程序函数下载数据集的 MAT 文件版本。此函数作为支持文件附加到示例。指定为所需的数据位置。

加载数据集。多光谱影像数据按高度排列为宽度排列的通道数数组。但是,在 MATLAB® 中,多通道图像被排列为按高度数字排列的数组。确认数据具有正确的结构。将训练数据另存为 MAT 文件,将训练标签另存为 PNG 文件。这有助于在训练期间使用 和 a 加载训练数据。

三、可视化多光谱数据

在此数据集中,RGB 颜色通道是第 3、第 2 和第 1 个图像通道。将训练、验证和测试图像的颜色分量显示为蒙太奇。

将训练数据的最后三个直方图均衡通道显示为蒙太奇。这些通道对应于近红外波段,并根据其热特征突出显示图像的不同组成部分。例如,靠近第二个通道图像中心的树木比其他两个通道中的树木显示更多细节。

通道 7 是指示有效分段区域的掩码。显示训练、验证和测试图像的掩码。

四、可视化真实面标签

标记的图像包含分割的地面实况数据,每个像素分配给 18 个类中的一个。获取类及其相应 ID 的列表。创建类名向量。在直方图均衡的 RGB 训练图像上叠加标签。向图像添加颜色条。

五、执行语义分割

下载预训练的 U-Net 网络。若要在经过训练的网络上执行语义分段,请将帮助程序函数与验证数据一起使用。此函数作为支持文件附加到示例。该函数使用 semanticseg 函数对图像补丁执行分割。需要处理修补程序,因为映像的大小会阻止一次处理整个映像。

要仅提取分割的有效部分,请将分割后的图像乘以验证数据的掩码通道。

语义分割的输出是嘈杂的。执行图像后期处理以消除噪点和杂散像素。使用 medfilt2 函数从分割中去除盐和胡椒噪声。在去除噪声的情况下可视化分割图像。

将分割图像叠加在直方图均衡的 RGB 验证图像上。

六、计算植被覆盖范围

语义分割结果可用于回答相关的生态问题。例如,植被覆盖的土地面积占多大比例?要回答此问题,请查找标记为植被的像素数。标签 ID 2(“树”)、13(“低水平植被”)和 14(“Grass_Lawn”)是植被类。此外,通过将蒙版图像 ROI 中的像素相加来查找有效像素的总数。

通过将植被像素数除以有效像素数来计算植被覆盖百分比。

七、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序下载:基于matlab深度学习的多光谱图像语义分割资源-CSDN文库

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

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

相关文章

Flink消费kafka出现空指针异常

文章目录 出现场景:表现:问题:解决: tombstone : Kafka中提供了一个墓碑消息(tombstone)的概念,如果一条消息的key不为null,但是其value为null,那么此消息就是墓碑消息. …

echarts tooltip自定义线条样式及数据提示框内容

option {......tooltip: {trigger: axis,borderWidth: 0, // 去除数据提示框默认的边框axisPointer: {lineStyle: { // 设置hover时竖线样式color: {type: linear,x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: rgba(128,200,244,0) // 0% 处的颜色},{offset: 1,colo…

【40000字】!最适合新手的Springboot+Vue项目

更多文章:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg2NDY3NjY5NA&actiongetalbum&album_id2053253027934863360#wechat_redirect hello我是索奇,本套项目对应bilibili视频,大家可以结合视频看哈,有些基础的只看…

2022年系统架构师论文(回忆版)

2022年11月6日,全国计算机等级下半年考试,在疫情压力下如期举行。 北京市软件架构师考试地点在北京市工贸技师学院(机电分院),地址:海淀区北四环北路132号(金泰海博大酒店北侧) 查看…

网络安全(黑客)自学笔记

建议一:黑客七个等级 黑客,对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域,越深入越敬畏,知识如海洋,黑客也存在一些等级,参考知道创宇 CEO ic(世界顶级黑客团队 0x557 成员…

chatgpt赋能python:吐血推荐的Python编程好玩的代码

吐血推荐的Python编程好玩的代码 近年来,Python 成为了全球最受欢迎的编程语言之一。Python 的简洁明了,易学易用,使得越来越多的开发者选择了 Python。Python 的生态系统非常丰富,有很多丰富有趣的库和代码可以供我们玩耍。在本…

使用MySQL根据原型字段创建表结构

⭐️ 不爱生姜不吃醋,原创不易,转载请注明原链接 ❗️ 注:本文写的是基于MySQL对数据库表结构进行的操作(DDL) 文章目录 一、数据库1.基本概念2.关系型数据库(RDBMS)3.数据模型4.SQL通用语法5.SQL分类 二.创建表结构1.…

关于nlohmann::json的简单使用

nlohmann::json的使用非常简单&#xff0c;只需要包含.hpp文件即可&#xff0c;这是它的官网https://github.com/nlohmann/json 简单使用&#xff1a; #include "json.hpp" #include <iostream>using Info nlohmann::json;int main() {Info info;std::cout &…

Java面试Day11

1. MySQL 事务有哪些隔离级别、分别有什么特点&#xff0c;以及 MySQL 的默认隔离级别是什么&#xff1f; 在MySQL中事务的隔离级别是为了解决常见的并发问题&#xff0c;在保证数据库性能的同时保持事务的隔离性&#xff0c;常见的并发问题有&#xff1a; 脏读&#xff1a;如果…

利用nginx/apache代理wss 实现 小程序 端口 反向代理

除了用Workerman自身的SSL&#xff0c;也可以利用nginx/apache作为wss代理转发给workerman 我就是栽在这大坑里&#xff08;nginx/apache代理wss&#xff0c;workerman部分就不要设置ssl&#xff0c;否则将无法连接&#xff0c;两个方法2选1&#xff09;官方推荐用nginx/apach…

基于matlab基于预训练的膨胀双流卷积神经网络的视频分类器执行活动识别(附源码)

一、前言 此示例首先展示了如何使用基于预训练的膨胀 3-D &#xff08;I3D&#xff09; 双流卷积神经网络的视频分类器执行活动识别&#xff0c;然后展示了如何使用迁移学习来训练此类视频分类器使用 RGB 和来自视频的光流数据 [1]。 基于视觉的活动识别涉及使用一组视频帧预…

数据结构07:查找[C++][红黑二叉排序树RBT]

图源&#xff1a;文心一言 | 提词&#xff1a;动漫风格 红黑树 少女#创意图# 考研笔记整理1.7w字&#xff0c;但是删除操作的代码是有一点问题的{无法正确处理红色结点的删除}&#xff0c;其它功能可正常使用&#xff0c;请小伙伴注意~~&#x1f95d;&#x1f95d; 第1版&…

【线程池】线程池的ctl属性详解

目录 一、ctl介绍 二、线程池ctl源码 三、线程池ctl分析 1、private static int ctlOf(int rs, int wc) { return rs | wc; } 2、private final AtomicInteger ctl new AtomicInteger(ctlOf(RUNNING, 0)); 3、private static int runStateOf(int c) { return c &am…

TensorFlow框架

TensorFlow框架 本文目录&#xff1a; 一、通过代码了解TensorFlow结构 1.1、TensorFlow实现一个加法运算代码 1.1.1、原生python加法运算 1.1.2、TensorFlow实现加法运算 1.1.3、TensorFlow实现加法运算 1.2、TensorFlow的Hello World 二、TensorFlow架构图 三、Tenso…

WebRTC Docker容器部署方案

文章目录 WebRTC简介WebRTC Docker容器部署优势方案&#xff08;mpromonet/webrtc-streamer&#xff09;步骤 WebRTC简介 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一种开放的实时通信技术&#xff0c;它允许浏览器之间进行音频、视频和数据的实时传输。W…

第九十二天学习记录:C++核心:类和对象Ⅰ(五星重要)

C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 封装 封装的意义 封装是C面向对象三大特性之一 封装的意义&#xff1a; 1、将属性和行为作为一个整体&#xff0c;表现生活中的事物 2、将属性和行为加以权限…

js判断文件类型详解

js判断文件类型详解 通过file的type属性判断 <input type"file" onchange"onchangecb(this)" /> <script> function onchangecb(e) {const file e.files[0];console.log(file.type); } </script>像html中input标签&#xff0c;就是根…

地下水数值模拟-Visual modflow Flex软件应用

地下水&#xff08;ground water&#xff09;&#xff0c;是指赋存于地面以下岩石空隙中的水&#xff0c;狭义上是指地下水面以下饱和含水层中的水。在国家标准《水文地质术语》&#xff08;GB/T 14157-93&#xff09;中&#xff0c;地下水是指埋藏在地表以下各种形式的重力水。…

基于协议判断目标机器是否出网

内网渗透中时常会碰到一些不出网的主机&#xff0c;不出网的原因有很多&#xff0c;如常见的有&#xff1a;没有设置网关、系统防火墙或者其他设备设置了出入站限制&#xff0c;只允许特定协议或端口出网等&#xff0c;遇到这种情况时可以用以下命令测试目标主机允许哪些协议出…

桥接模式的学习与使用

1、桥接模式的学习 当你需要将抽象部分与实现部分解耦&#xff0c;使它们可以独立地变化&#xff0c;而又能够灵活地组合在一起时&#xff0c;可以使用桥接模式。桥接模式通过将抽象和实现部分分离&#xff0c;使它们可以独立地进行扩展和变化&#xff0c;同时又能够在运行时动…