2020年MathorCup高校数学建模挑战赛—大数据竞赛B题遥感图像地块分割与提取求解全过程文档及程序

news2024/11/17 8:30:50

2020年MathorCup高校数学建模挑战赛—大数据竞赛

B题 遥感图像地块分割与提取

原题再现:

  耕地的数量和质量是保持农业可持续发展的关键,利用卫星遥感影像可以识别并提取耕地,并对耕地进行遥感制图,准确的耕地分布能够为国家决策部门提供重要支撑。目前高精度的耕地信息提取主要还是依靠人工解译,耗费大量人力、财力且效率较低,因此,遥感图像的耕地识别算法研究将对耕地遥感制图提供重要帮助。

  资源三号(ZY-3)卫星是中国第一颗自主的民用高分辨率立体测绘卫星,通过立体观测,可以测制 1∶5 万比例尺地形图,为国土资源、农业、林业等领域提供服务,资源三号填补了中国立体测图这一领域的空白。图片来源于资源三号卫星获取的遥感图像数据,空间分辨率为 2 米,光谱为可见光波段(红,绿,蓝)。

  题目提供 8 幅图像和相应耕地标签,用于参赛者模型训练和测试,图像为 tif 格式。原图像预览图如图 1 所示,标签图预览图如图2 所示,标签图中白色(值为 1)代表的是耕地类,黑色(值为 0)代表的是背景类。另提供 2 幅图像作为测试实例。
在这里插入图片描述
  问题 1:计算 10 幅图中耕地在各图像中所占比例,并填写表 1,数据请呈现在论文中;

在这里插入图片描述
  问题 2:从给定的 2 幅测试图像(Test1.tif、Test2.tif)中提取出耕地,制作耕地标签图,并将标签图分别上传到竞赛平台中(注意田块间的边界是否清晰);
  问题 3:我国土地辽阔,地貌复杂,你有什么创新的思路能够快速、精准的识别出田块。

整体求解过程概述(摘要)

  准确标记耕地及计算耕地面积能为国家决策部门提供重要支撑。通过计算机识别卫星遥感影像中的耕地面积能够加速耕地信息的提取,减少人力、财力消耗。
  在初赛中,我队基于 U-Net 卷积神经网络建立模型对题目数据进行处理,实现了精确度较高的遥感图像耕地地块分割与提取,成功计算出耕地面积比例并制作出较为清晰的耕地标签图。参考“集成学习”的思想,我们提出“多图平均二值法”用以辅助 U-Net 模型预测。该方法成功降低了预测结果中的噪声干扰,显著提升了预测的准确度。
  本文对初赛模型进行优化,提升其对耕地边界的识别能力。同时,本文分析了预测模型中的关键参数并定量评估其对模型精度的影响。
  针对问题一,在初赛模型的基础上,本文进一步探究初赛提出的“多图平均二值法”的合理性与使用条件,并依据其原理改进了数据增广方法和模型训练参数,对数据增广的随机旋转范围和训练迭代次数进行优化,使得训练出的 U-Net 模型预测精度显著提升。优化后的模型准确率达 99.02%,损失率 0.041,在遥感图像空间分辨率为 2m 的条件下,测试中可作出误差在 2%范围内的对耕地的精确分割。同时,为了在保证预测精度的同时提升耕地标签图的视觉效果,本文提出采用腐蚀膨胀操作对预测结果做进一步处理。结果显示,腐蚀与膨胀操作使得模型预测效果得到进一步提升。相比初赛模型,本文模型具有更为优秀的分割性能和更为良好的视觉效果。本文模型的预测图像耕地边缘更为清晰,噪声基本消失,道路连通性强。利用上述优化模型,本文预测 Test3,Test4 图像的耕地地块分布并制作标签图,计算耕地面积占比。
  针对问题二,我们对问题一中的优化模型进行深度分析,详细描述了该识别系统中的关键参数(模型训练参数和腐蚀膨胀操作核参数),并定量评估了它们对本文模型识别精度的影响。
  本文所述的优化算法、模型,在遥感图像空间分辨率为 2m 的条件下,测试中可作出误差在 2%范围内的对耕地的精确分割,预测图像噪声低,耕地边缘完整,可为耕地遥感制图提供借鉴与参考。

模型假设:

  (1)假设已知专业人工标记标签图足够准确划分耕地与非耕地;
  (2)假设在神经网络预测中,局部图像特征可代表整体特征;
  (3)假设耕地面积、像素点误差可以作为耕地标签预测模型的评价标准;
  (4)假设灰度、形状大小、分布体现耕地特性。
  (5)假设低于 400 平方米(100 像素点)的误差属于较小面积误差,对识别精度影响不大。

问题分析:

问题1分析

  在问题一中,题目要求我们优化初赛模型,从给定的测试图像(Test3.tif、Test4.tif)中提取出耕地,制作耕地标签图并计算其面积。数据集仍采用初赛中给出的 8 张遥感图像和人工标签。我们需要对初赛模型的预测能力进行分析,寻找模型缺陷,重点关注其对耕地边界的提取情况。在初赛模型的基础上设计优化思路,改进模型,并用优化后的模型对测试图像进行预测,制作耕地标签图,计算耕地面积比例。另外,我们需要比较优化前后对不同类别图像的表现,分析模型优化的合理性并说明优化效果。难点在于提升模型预测精度,优化模型对噪声、边界的处理。

问题2分析

  在问题二中,题目要求我们总结模型中的关键参数,并定量评估其对识别精度的影响。我们需要分析模型,总结对模型识别精度影响较大的参数。我们适当调整参数测试模型,定量评估它们对模型识别精度的影响,寻找最优参数设置。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分Python程序如下:

import numpy as np
import tensorflow as tf

input_data = tf.Variable( np.random.rand(1,6,6,3), dtype = np.float32 )
filter_data = tf.Variable( np.random.rand(3, 3, 3, 1), dtype = np.float32)

y = tf.nn.conv2d(input_data, filter_data, strides = [1, 1, 1, 1], padding = 'VALID')

with tf.Session() as sess:
    init = tf.initialize_all_variables();
    sess.run(init);
    print (sess.run(y));
    print (sess.run(tf.shape(y)));
# -*- coding: utf-8 -*-
import numpy as np
import tensorflow as tf

input_data = tf.Variable( np.random.rand(1,6,6,3), dtype = np.float32 )
filter_data = tf.Variable( np.random.rand(2, 2, 3, 10), dtype = np.float32)

y = tf.nn.conv2d(input_data, filter_data, strides = [1, 1, 1, 1], padding = 'VALID')
output = tf.nn.max_pool(value = y, ksize = [1, 2, 2, 1], strides = [1, 1, 1, 1], padding = 'VALID')

with tf.Session() as sess:
    init = tf.initialize_all_variables()
    sess.run(init)
    print (' --convResult--')
    print (sess.run(y))
    print (' --poolResult--')
    print (sess.run(output))
    print (sess.run(tf.shape(output)))
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

聚观早报 | 蚂蚁集团调整股东结构;「快看点」2 月 6 日终止运营

点击蓝字 / 关注我们 今日要闻:蚂蚁集团调整股东结构;「快看点」2 月 6 日终止运营;Google 同意为隐私问题进行赔偿;苹果已取消 iPhone SE 4 发布;Lightyear 2 太阳能汽车发布 蚂蚁集团调整股东结构1 月 7 日&#xf…

从0到1完成一个Vue后台管理项目(八、Menu改造完善、子组件创建、配置路由)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…

javaweb-拦截器与监听器FilterListener

Filter&Listener 1,Filter 1.1 Filter概述 Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。 如下图所示,浏览器可以访问服务器上的…

mybatisPlus3.5.2在NOT_NULL更新策略下自定义Mapper实现更新null值

版本 当前使用的mybatis plus版本如下 mybatis-plus-3.5.2.jar 默认更新配置 在这个更新策略下,调用mybatis基础的updateById等更新方法的时候会因为xml中的判断条件而更新不了null值,此时又不想修改全局的配置策略。 mybatis plus提供了 com.baomid…

LeetCode091之解码方法(相关话题:动态规划)

题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : A -> "1" B -> "2" ... Z -> "26" 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法…

蓝奥声灯光联动在行业中的技术优势

随着科学技术的发展和人民生活水平的提高,人们对生活或工作的照明系统提出了新的要求,智能照明系统替代传统照明系统是家居智能化过程中必然要走的一步,传统的家居照明控制方式一般是通过电路中的开关来控制电路的导通与关断,开关…

【设计模式】我终于读懂了组合模式。。。

文章目录♈️学校院系展示需求♉️传统方案解决学校院系展示(类图)♐️传统方案解决学校院系展示存在的问题分析♊️组合模式基本介绍♋️组合模式原理类图♌️对原理结构图的说明-即(组合模式的角色及职责)♍️组合模式解决学校院系展示的 应用实例♎️接下来我们Debug下去看一…

【Python】搭建虚拟环境

目录 前言 虚拟环境简介 虚拟环境依赖模块的安装 1、安装好Python环境 2、安装第三方库(虚拟环境库) 3、 安装第三方模块virtualenvwrapper-win 为虚拟环境配置环境变量 1、配置环境变量 2、点击环境变量 3、在系统变量中,点击新建 …

TOOM网络舆情监控系统定制开发,舆情监控开源系统源码有哪些?

软件系统定制开发是指为满足客户特定业务需求而进行的软件系统开发工作。这通常涉及到对现有软件系统进行修改或开发新的软件系统来满足客户的特定要求。软件系统定制开发可以帮助客户解决其特定的业务问题,并为客户带来独特的竞争优势。TOOM网络舆情监控系统定制开…

安装龙蜥或CentOS 7时出现dracut- initqueue timeout解决方法

在安装龙蜥7.9操作系统时,出现dracut- initqueue timeout-starting…starting timeout scripts报错CentOS 7.9出现此问题也可以参考同样的方法如何制作启动盘和系统盘设置raid就不再赘述了,相关文档社区已经很多了,这里直接入正题一、问题描述…

自己搞个chatgpt机器人

chargpt确实越来越火了,目前来看很多文章都教大家如何去注册chatgpt,并且详细的科普了很多chatgpt种种神奇之处。我实际使用之后,确实也感觉非常奈斯。这里看到很多人用那个go环境的去对接个人微信,因此萌生了做个其他版本的想法。…

2022.12青少年软件编程(Python)等级考试试卷(一级)

2022.12青少年软件编程(Python)等级考试试卷(一级) 一、单选题(共25题,共50分) 1.关于Python语言的注释,以下选项中描述错误的是?( C ) A. Python语言有两种注释方式:单行注释和多行注释 B. Python语言的单行注释以#开头 C. Python多行注释使用###来做为标记 D. …

DPDK:UDP 协议栈的实现

文章目录1、DPDK 原理1.1、用户态驱动 IO1.2、内存池管理2、DPDK 启动设置3、DPDK&#xff1a;UDP 协议栈3.1、代码实现3.2、设置静态 arp4、DPDK&#xff1a;KNI4.1、代码实现4.2、程序测试文章参考<零声教育>的C/Clinux服务期高级架构系统教程学习&#xff1a; 服务器高…

缓存工作模型以及使用Redis为查询接口添加缓存

什么是缓存 缓存就是数据交换的缓冲区&#xff0c;是存储数据的临时地方&#xff0c;一般读写性能较高。在以前CPU需要将内存或磁盘中读到数据放寄存器才可以做运算&#xff0c;正是因此计算机运算的能力受到限制。为了解决&#xff0c;人们在CPU中设计了缓存&#xff0c;将一…

Word处理控件Aspose.Words功能演示:从 Java 中的 Word DOC 中提取图像

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。此外&#xff0c; Aspose API支持流行文件格式处…

Minecraft 1.19.2 Fabric模组开发 01.eclipse 开发包构建教程

1.19.2的离线开发包附文末 我们本次来进行Minecraft 1.19.2 Fabric模组开发教程的介绍&#xff0c;首先我们需要下载eclipse和openJDK eclipse下载 eclipse官网下载最新版 openJDK下载 下载最新版JDK 17.028 1.19.2 mdk下载 下载1.19.2MDK 注&#xff1a;1.19.2需要使…

OpenCV实战(6)——OpenCV策略设计模式

OpenCV实战&#xff08;6&#xff09;——OpenCV策略设计模式0. 前言1. 策略设计模式颜色识别1.1 颜色比较1.2 策略设计模式1.3 实现颜色比较1.4 ColorDetector 类1.4 计算两个颜色向量之间的距离2. 使用 OpenCV 函数3. 函子或函数对象4. OpenCV 算法的基类小结系列链接0. 前言…

一文带你攻克JDK新特性

1.Java8 新特性介绍 1.1 实验介绍 在国内&#xff0c;Java8 是当之无愧的普及率最高的 JDK 版本&#xff0c;从笔者工作开始&#xff0c; 就一直使用的是 JDK8 的版本&#xff0c;虽然现在 JDK19 即将面世&#xff0c;但是似乎依旧无法 动摇 JDK8 在国内的地位。这里面最主要…

leetcode-10:还原排列的最少操作步数

原题描述如下&#xff1a; 给你一个偶数 n​​​​​​ &#xff0c;已知存在一个长度为 n 的排列 perm &#xff0c;其中 perm[i] i​&#xff08;下标 从 0 开始 计数&#xff09;。 一步操作中&#xff0c;你将创建一个新数组 arr &#xff0c;对于每个 i &#xff1a; 如…

蓝桥杯-地宫取宝

算法分类&#xff1a; 动态规划 dp 问题描述 X 国王有一个地宫宝库&#xff0c;是 nm 个格子的矩阵&#xff0c;每个格子放一件宝贝&#xff0c;每个宝贝贴着价值标签。 地宫的入口在左上角&#xff0c;出口在右下角。 小明被带到地宫的入口&#xff0c;国王要求他只能向右…