遥感资源大放送(上):用开源代码,训练土地分类模型
教程传送门
遥感资源大放送(下)| 11 个经典遥感数据集
遥感影像是开展测绘地理信息工作的重要数据,对于地理国情监测、地理信息数据库更新等意义重大,在军事、商业、民生等领域发挥了越来越重要的作用。
近年来,随着国家卫星影像获取能力的提升,遥感影像数据采集效率大幅提升,形成了低空间分辨率、高空间分辨率、宽视角多角度、雷达等多种传感器共存的格局。
该卫星是 NASA 陆地卫星计划中的第 2 颗,于 1975 年发射,旨在以中等分辨率获取全球季节性数据
传感器种类齐全,满足了不同用途的对地观测需求,但是也造成了遥感影像数据格式不统一、耗费大量存储空间等问题,在图像处理过程中常常面临较大的挑战。
以土地分类为例,以往利用遥感影像进行土地分类,往往依赖大量人力进行标注和统计,耗时长达数月甚至一年的时间;加上土地类型复杂多样,难免也会出现人为统计失误。
随着人工智能技术的发展,遥感影像的获取、加工、分析,也变得更加智能和高效。
常用的土地分类方法
常用的土地分类方法,基本上分为三类:以 GIS 为基础的传统分类方法、以机器学习算法为依据的分类方法,以及利用神经网络语义分割的分类方法。
传统方法:利用 GIS 地理信息系统分类
GIS 是处理遥感影像时常需要用到的工具,全称 Geographic Information System,又被称为地理信息系统。
它把关系数据库管理、高效图形算法、插值、区划和网络分析等先进技术集成起来,让空间分析变得简单易行。
利用 GIS 的空间分析技术,可以获取对应土地类型的空间位置、分布、形态、形成和演变等信息,识别土地特征并进行判断。
机器学习:利用算法分类
传统的土地分类方法包括监督分类和非监督分类。
监督分类又称训练分类法,它是指用已确认类别的训练样本像元,跟未知类别像元作比较和识别,进而完成对整个土地类型的分类。
在监督分类中,当训练样本精度不够时,通常会重新选择训练区或人为目视修改,以确保训练样本像元的准确性。
非监督分类是指不必提前获取先验类别标准,而是完全按照遥感影像中像元的光谱特性进行统计分类,该方法自动化程度高,人为干预少。
借助支持向量机、最大似然法等机器学习算法,可以极大提高监督分类和非监督分类的效率和准确度。
神经网络:利用语义分割分类
语义分割是一种端到端像素级别的分类方法,可以加强机器对环境场景的理解,在自动驾驶、土地规划等领域应用广泛。
基于深度神经网络的语义分割技术,在处理像素级分类任务时,其表现优于传统的机器学习方法。
高分辨率遥感图像场景复杂、细节信息丰富,地物间光谱差异不确定,很容易导致分割精度低,甚至产生无效分割。
利用语义分割处理高分辨率、超高分辨率遥感影像,可以更准确地提取图像的像素特征,迅速且准确地识别特定土地类型,进而提高遥感图像的处理速度。
常用的语义分割开源模型
常用的像素级语义分割开源模型包括 FCN、SegNet 和 DeepLab。
1、全卷积网络(FCN)
特性:端到端语义分割
优点:不限制图像尺寸,具有通用性和高效率
缺点:无法快速进行实时推理,处理结果不够精细,对图像细节不敏感
2、SegNet
特性:将最大池化指数转移至解码器中,改善了分割分辨率
优点:训练速度快、效率高,占用内存少
缺点:测试时不是前馈(feed-forward ),需要优化来确定 MAP 标签
3、DeepLab
DeepLab 由 Google AI 发布,主张用 DCNN 来解决语义分割任务,共包括 v1、v2、v3、v3+ 四个版本。
DeepLab-v1 为了解决池化引起的信息丢失问题,提出了空洞卷积的方式,在增大感受野的同时不增加参数数量,同时保证信息不丢失。
DeepLab-v2 在 v1 的基础上,增加了多尺度并行,解决了对不同大小物体的同时分割问题。
DeepLab-v3 将空洞卷积应用在了级联模块,并且改进了 ASPP 模块。
DeepLab-v3+ 在 encoder-decoder 结构上采用 SPP 模块,可以恢复精细的物体边缘。细化分割结果。
模型训练准备
目的:在 DeepLab-v3+ 基础上,开发用于土地分类的 7 分类模型
数据:源自 Google Earth 的 304 张某地区遥感图像。除原图外,还包括经过专业标注的配套 7 分类图、7 分类 mask、25 分类图、25 分类 mask 图像。图像分辨率为 560*560,空间分配率为 1.2m。
调参代码如下:
net = DeepLabV3Plus(backbone = 'xception')
criterion = CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.05, momentum=0.9,weight_decay=0.00001)
lr_fc=lambda iteration: (1-iteration/400000)**0.9
exp_lr_scheduler = lr_scheduler.LambdaLR(optimizer,lr_fc,-1)
训练详情
算力选择:NVIDIA T4
训练框架:PyTorch V1.2
迭代次数:600 epoch
训练时长:约为 50h
IoU:0.8285(训练数据)
AC:0.7838(训练数据)
数据集传送门
详细训练过程
教程使用
教程中的样例展示文件是 predict.ipynb,运行这个文件,会安装环境,并展示已有模型的识别效果。
项目路径
测试图片路径:
semantic_pytorch/out/result/pic3
掩膜图片路径:
semantic_pytorch/out/result/label
预测图片路径:
semantic_pytorch/out/result/predict
训练数据列表:train.csv
测试数据列表:test.csv
使用说明
训练模型进入 semantic_pytorch,训练的模型被保存在 model/new_deeplabv3_cc.pt。
模型采用 DeepLabV3plus,训练参数中,Loss 采用二进制交叉熵。Epoch 为600,初始学习率0.05。
训练指令:
python main.py
如果使用我们已经训练好的模型,则使用保存在 model 文件夹中 fix_deeplab_v3_cc.pt,在 predict.py 中直接调用即可。
预测指令:
python predict.py
教程传送门
模型作者
问题 1:为了开发这个模型,你都通过哪些渠道,查阅了哪些资料?
王岩鑫:主要是通过技术社区、GitHub 等渠道,查看了一些 DeepLab-v3+ 的论文和相关项目案例,提前了解了一下都有哪些坑、怎么克服,为后续模型开发过程中随时遇到问题随时查询解决,做了比较充分的准备。
问题 2:过程中遇到了哪些障碍?怎么克服的?
王岩鑫:数据量不是很够,导致 IoU 和 AC 的表现一般,下次可以用数据量更丰富的公开遥感数据集试试。
问题 3:关于遥感还想尝试哪些方向?
王岩鑫:这一次是对土地进行分类,接下来我想利用结合机器学习和遥感技术,对海洋景观和海洋要素进行分析,又或者结合声学技术尝试对海底地形进行识别和判断。
此次训练所用数据量较小,在训练集上 IoU 及 AC 表现一般,大家也可以尝试用已有公共遥感数据集进行模型训练,一般情况下训练越充分、训练数据越丰富,模型表现越好。
本系列的(下)篇文章中,我们汇总了 11 个主流的公共遥感数据集,并将其做了归类整理。大家可以依据本文提供的训练思路,按需选用,训练更完善的模型。
—— 完 ——
遥感资源大放送(上):用开源代码,训练土地分类模型相关推荐
- 【数据资源】遥感资源大放送(下)| 11 个经典遥感数据集
By 超神经 内容提要:利用遥感影像进行土地类别分型,最常用的方法是语义分割.本文继上期土地分类模型训练教程之后,又整理了几大主流公开遥感数据集. 关键词:遥感数据集 语义分割 机器视觉 在上 ...
- 【数据资源】遥感资源大放送(上):用开源代码,训练土地分类模型
内容概要:土地分类是遥感影像的重要应用场景之一,本文介绍了土地分类的几个常用方法,并利用开源语义分割代码,打造了一个土地分类模型. 关键词:遥感数据集 语义分割 机器视觉 遥感影像是开展测绘地 ...
- Abaqus二次开发——UEL资源大放送!!!
本次给大家分享的是:UEL资源汇总 经过之前给大家分享的UEL入门案例,相信大家对于自定义开发单元有一定的理解,最起码会使用,整体的流程大概有一定的了解. 身处科研一线的你们可能会需要一些比较&quo ...
- 数据和云2020年度最受欢迎的Top10文章、专栏、文档、直播资源大放送(建议收藏)...
转眼又到了总结一年的时刻,这一年我们积累了很多,也分享了很多,我们在过去的一年,应广大读者需要,增加了数据库直播推荐(包括直播资源放送).墨天轮优质专栏推荐,数据库的每日一题.每日一练等. 这里,我们 ...
- 福利啊,精品资源大放送
为了感谢大家一直以来对Android机动车的支持,今天特将自己积累和整理多年的各编程语言和好用的工具分享给大家,其中不乏相关最新的pdf版教材.知名培训机构教学视频.程序源码等等. 最最关键的是,全部 ...
- 漫画绘制技法大放送(上)
网络收集整理(jundark) [1b]一.人体基本结构[/1b] [img]/uploads/allimg/080422/1101080.jpg[/img] 小孩 孩子的头部较大,一般比例为三到四个 ...
- 黑马程序员:福利来袭!网络安全斗鱼直播“录像+资源”大放送
不知大家是否知道,就在上周五(8月5日),黑马程序员C++学院资深讲师冰哥和知名美女老师码小趣,为大家带来了一场关于网络安全的直播盛宴! 关于直播内容如下: 一.科普网络安全知识,手把手教大家怎么 ...
- 「超级干货大放送」机器学习十二种经典模型实例
目录 实例一:线性回归波士顿房价 实例二:KNN实现电影分类 实例三:基于线性回归预测波士顿房价 实例四:sklearn完成逻辑回归鸢尾花分类 实例五:支持向量机完成逻辑回归鸢尾花分类 实例六:使 ...
- 【资源放送】机器学习/深度学习最全公开视频大放送!
文章首发于微信公众号<有三AI> [资源放送]机器学习/深度学习最全公开视频大放送! 该篇小记一下机器学习与深度学习的一些好的基础视频资源. 如果你是刚入门的小白,建议细细阅读一下下面将要 ...
最新文章
- 实施ERP系统要先进行思考
- java中file类_Java中file类
- ERP顾问在甲方好还是乙方好?
- Centos7设置Tomat开机自启
- Linux用系统命令杀死僵尸进程
- jquery创建并行对象或者叫合并对象
- java lambda 实现_Java 8 Lambda实现原理分析
- java中的private public protected
- IIS错误信息--另一个程序正在使用此文件,进程无法访问!
- python是什么意思怎么读-python怎么读,python是什么意思
- “安全宝”,云安全服务
- xshell7,xftp7个人免费版官方下载,无需破解,免激活,下载即可使用
- C语言联合体基本内容
- redis 复制功能测试(转阿辉的百度空间)
- Java的基本语法^_^
- java自动化word报告
- 矩阵幂之和(矩阵乘法)
- Kubernetes: kubectl 插件管理器 Krew 安装
- 如何编写优秀的测试用例,建议收藏和转发
- 【Matlab】错误使用 classify (line 233) The pooled covariance matrix of TRAINING must be positive definite.