基于轻量级CNN的WHDLD多标签遥感分类识别系统

news2024/9/27 15:25:51

WHDLD数据成像波段包括R、G、B波段,数据覆盖包括6类地貌:裸地、建筑物、人行道、道路、植被、水域。数据集中包含4940张遥感影像及对应地物分类标记样本,影像大小为256x256像素,影像以jpg格式存储,标签数据格式为单通道的png图像,每个像素的标签值和地物要素类别对应分布如下图所示:

可以看到:一共六种不同类型,数据分布相对还是比较均衡的。

接下来就是需要基于该数据集来开发构建多标签分类识别系统,首先看下效果图:

在我之前的文章中也有做过多标签分类识别相关的项目,感兴趣可以自行移步阅读:

《Python基于深度学习多标签分类模型实现云状识别》

《基于HOG+LBP完成特征工程,基于机器学习模型同时完成人脸识别+表情识别》

首先看戏这里的WHDLD数据集:

标签数据是存储在Excel表中的,样例数据如下:

wh0001

0

1

0

1

0

1

wh0002

0

0

0

1

0

1

wh0003

1

0

0

1

0

1

wh0004

0

0

0

1

0

1

wh0005

0

0

0

1

0

1

wh0006

0

0

0

1

0

1

wh0007

0

0

0

1

1

1

wh0008

0

0

0

1

1

1

wh0009

0

0

0

1

0

1

wh0010

0

0

0

1

0

1

wh0011

0

0

0

1

0

1

wh0012

0

0

0

1

0

1

wh0013

1

0

1

1

0

1

wh0014

0

0

0

1

0

1

wh0015

0

0

1

1

0

1

wh0016

0

0

1

1

0

1

wh0017

0

0

0

1

0

1

wh0018

1

1

1

1

0

1

wh0019

1

1

1

1

0

0

wh0020

1

0

1

1

1

1

wh0021

1

0

1

1

1

1

wh0022

1

0

1

1

1

1

wh0023

1

1

1

1

1

1

wh0024

1

1

1

1

1

1

wh0025

1

1

1

1

1

1

wh0026

0

0

1

1

1

1

wh0027

0

0

0

1

1

1

wh0028

0

0

0

1

0

1

wh0029

0

0

0

1

0

1

wh0030

0

0

0

1

1

1

wh0031

1

0

1

1

0

1

wh0032

1

1

1

1

1

1

可以根据原始图像的id进行标签数据的匹配提取即可。核心实现如下:

with open("label_map.json") as f:
    label_map=json.load(f)
one_y_list = label_map[one_pic_id]

label_map形式如下所示:

"wh4938": [1, 0, 1, 1, 0, 1]
"wh4939": [1, 1, 1, 1, 0, 1]
"wh4940": [1, 1, 0, 1, 1, 1]

这里相对之前的多分类任务来说就更为复杂了,我基于前文课堂行为识别模型来开发构建本文的遥感多标签分类识别系统,对其训练过程进行了

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

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

相关文章

高级前端常考手写面试题合集

解析 URL Params 为对象 let url http://www.domain.com/?useranonymous&id123&id456&city%E5%8C%97%E4%BA%AC&enabled; parseParam(url) /* 结果 { user: anonymous,id: [ 123, 456 ], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字…

React(coderwhy)- 09(项目实战 - 1)

创建React项目 ◼ 创建项目的方式:create-react-app ◼ 项目配置:  配置项目的icon  配置项目的标题  配置jsconfig.json 新建jsconfig.json文件,在文件中粘贴以下内容{"compilerOptions": {"target": "es5","…

【数据结构趣味多】循环队列

目录 函数介绍及模拟实现 Front()函数 Rear()函数 enQueue()函数 deQueue()函数 isEmpty()函数 isFull()函数 循环队列模拟题 定义:把队列的头尾相连接的的顺序存储结构称为循环队列;循环队列的是由顺序表实现的。 为什么要使用循环队列&#…

Android MVVM之SavedStateHandle数据保存之详解与使用。

一、介绍 SavedStateHandle从名字可以看出,是保存状态的。这个类常和MVVM中的ViewModel搭配使用,对页面生命周期的数据状态的缓存与恢复做一个容器。这个容易相对onSaveInstanceState(Bundle)要更强一点,保存的数据类型也比较丰富&#xff0c…

算法刷题打卡第60天:回文链表

回文链表 难度:简单 给定一个链表的 头节点 head ,请判断其是否为回文链表。 如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。 示例 1: 输入: head [1,2,3,3,2,1] 输出: true示例 2: 输入:…

文本摘要,基于Pytorch和Hugging Face Transformers构建示例,有源码

​ 文本摘要的常见问题和解决方法概述,以及使用Hugging Face Transformers库构建基于新浪微博数据集的文本摘要示例。 作 者丨程旭源 学习笔记 1 前言简介 文本摘要旨在将文本或文本集合转换为包含关键信息的简短文本。主流方法有两种类型,抽取式和生…

Nodejs模块的封装(数据库Mysql)

文章目录项目结构本次演示需要使用的第三方包为1.app.js相关配置2.router下的user.js相关配置3.db/index.js文件相关操作4.router_handler下的user.js相关操作项目结构 后面的项目相关文件的创建步骤按照我写的博客从上往下一步一步来 本次演示需要使用的第三方包为 "cor…

【操作系统实验/Golang】实验4:虚拟内存页面置换算法

目录 1 实验问题描述 2 测试数据 3 流程图 4 实验结果 4 实验代码 1 实验问题描述 设计程序模拟先进先出FIFO,最佳置换OPT和最近最久未使用LRU页面置换算法的工作过程。 假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个…

【Leetcode面试常见题目题解】1. 两数相加

题目描述 本文是leetcode第2题的题解,题目描述摘自leetcode。如下 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个…

海外服务器提供商选择中存在哪些风险?

开展海外业务时,毫无疑问,选择一个高质量的海外服务器提供商可以省去不少麻烦。但是,同时有一些海外服务商需要避开。毕竟一个服务器不靠谱,这跟提供商有很大的原因。下面主要是关于低于标准的海外服务器提供商的一些潜在风险。 1…

ES6中字符串和数组新增的方法

ES6中字符串和数组新增的方法一、字符串中新增的方法1、模板字符串 (表达式、函数的调用、变量)2、repeat(次数)函数 : 将目标字符串重复N次,返回一个新的字符串,不影响目标字符串3、includes()函数 :判断字符串中是否含有指定的子字符串,返回…

mysql 8 新旧密码可以同时生效

在MySQL8.0以前版本,给MySQL更改密码,明确写到开发规范中,拒绝更在线更改更密码,因为在8.0以前操作非常麻烦且不太完美。 MySQL 8.0之前的处理方法: 1. 创建一个同样权限的帐号通过 show grants for ‘user_name’1…

通用vue编辑按钮和新建按钮事件逻辑

一、编辑按钮对话框 1.首先先创建一个文件夹page-model,在里面使用elemengt-plus提供的对话框组件el-dialog。 2.在page-model里面去使用之前封装好的form表单,就是之前封装好的搜索组件的hy-form 3.在form组件里面加一个插槽,对应 page-m…

微信小程序:会议OA项目-首页

目录 一、flex布局 Flex布局简介 什么是flex布局? flex属性 flex的属性 二、轮播图组件及mockjs的使用 三、会议OA小程序首页布局 一、flex布局 Flex布局简介 布局的传统解决方案,基于盒状模型,依赖 display属性 position属性 float…

CompletableFuture详解

CompletableFuture详解 概要 RunnableThread虽然提供了多线程的能力但是没有返回值。CallableThread的方法提供多线程和返回值的能力但是在获取返回值的时候会阻塞主线程。 上述的情况只适合不关心返回值,只要提交的Task执行了就可以。另外的就是能够容忍等待。 C…

Java并发容器

一、并发容器总结1、大部分在 java.util.concurrent 包中。ConcurrentHashMap: 线程安全的HashMapCopyOnWriteArrayList: 线程安全的List,在读多写少的场合性能非常好,远远好于Vector.ConcurrentLinkedQueue: 高效的并发队列,使用链表实现。可…

[ 数据结构 ] 平衡二叉树(AVL)--------左旋、右旋、双旋

0 引出 数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在 回顾:二叉搜索树 左子树全部为空,从形式上看,更像一个单链表.插入速度没有影响查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要…

第四十二章 动态规划——数字三角形模型

第四十二章 动态规划——数字三角形模型一、数字三角形模型1、什么是数字三角形模型二、例题1、AcWing 1015. 摘花生(1)问题(2)思路状态表示状态转移循环设计初末状态(3)代码2、AcWing 1018. 最低通行费&am…

第二章:感知机

文章目录2.1感知机模型2.2感知机策略2.3梯度下降法2.4感知机-原始算法形式2.5感知机-原始算法实例2.6感知机-对偶形式2.7感知机-对偶形式实例2.8感知机算法收敛性证明如下:2.1感知机模型 2.2感知机策略 损失函数非负,策略是选择使其最小的模型参数 2.3梯…

【Linux工具】-gcc/g++

gcc/g一,简介二,代码的翻译过程1,预处理2,编译3,汇编4,链接(1)静态库(2)动态库(3)动静态库比较三,常见选项一,…