手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类

背景:

很多初入深度学习的学生都会遇到各种环境配置问题,环境搭建不好模型就跑不了,所以这是限制新手的一大难点,MATLAB具有成熟的运行环境,无需配置,这点对于想跑通一个深度学习模型的新手是非常有利的。所以,本教程手把手教你使用MATLAB中的深度学习框架,完成遥感影像分类的具体操作步骤。本教程给出完整的代码及原始训练及测试样本,旨在最大限度的简化操作步骤,让深度学习零基础的学生也可以轻松跑通深度学习代码,增加自信心和学习兴趣,为遥感影像分类提供一个可借鉴的新型的方法。

准备工作:

1.准备电脑性能较好的电脑一台,建议内存最好16G以上,有GPU更好,否则会非常慢。

2.自行安装MATLAB2018,因为2018集成了很多深度学习模块儿,之前版本没有测试。

3.下载数据本人提供的数据包,csdn下载链接https://download.csdn.net/download/weixin_39691594/11287276(本想象征性设置一个积分,结果下载csdn系统默认最低5分,还不能修改,有点坑,但是教程绝对超值,花了好久才整理出来)。

可实现功能:

1.下载文档后只需按照教程更改路径即可完成深度学习模型的训练及测试,替换训练数据即可运用到自己独立的项目。

2.自己深入研究也可以更改网络,训练适合自己的网络模型。

3.适合初学者及简单的应用,想要深入精通学习深度学习还是使用基于Python的一些较为热门的框架,比如TensorFlow、Keras、PyTorch、Caffe、Theano等,其中建议先入手Keras。

具体操作步骤:

本教程鉴于MATLAB官方文档示例代码改写完成,有兴趣的可以在MATLAB帮助文档搜索框查找Semantic Segmentation of Multispectral Images Using Deep Learning,即可看到官方示例。

本实验之所以选择MATLAB框架,在于MATLAB成熟的商业框架,无需繁琐的框架环境配置,对于零基础的学员来说非常容易入手深度学习。言归正传,介绍操作步骤:

  1. 打开下载好的资料包如下图所示                               手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第1张图片                                                                              其中选中的两个文件是主文件,train_3band.m是训练模型文件,test_model.m是用来测试应用模型做分类;其余的文件是涉及到的运行模块儿;image文件夹里面是训练、验证及测试数据。如图所示手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第2张图片
  2. 直接打开train_3band.m,按照下图替换相应训练数据路径,使用以上数据集中的数据,对应名字将红色框框中四个数据替换掉,注意路径要改对。                                           手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第3张图片
  3. 此时直接运行,不出错的请路况下就会按照预设参数进行训练,电脑配置好的分分钟完成,很差的话就等吧。。。。

    介绍下预设参数,本实验是做了2分类,循环次数及输入数据量都设为最小,完成后只是保证训练成功,结果会很差,跑通之后将如下参数改大即可训练多次提高精度。如下更改红色框框参数,其他参数自己根据需要自己摸索:手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第4张图片

  4. 训练无误会出现几个MATLAB弹窗显示结果,精度满意的话可以保存模型,右键MATLAB工作区中的net,另存为一个mat文件,比如3band_model.mat,保存到跟主文件一个文件夹中待用,如图:       手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第5张图片

  5. 测试数据:打开test_model.m,如图替换红色框框中的数据。手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第6张图片                                                                          如下图更改自己想保存的结果路径,等待运行结果即可。

  6. 运行成功最终文件夹会出现几个文件,如图所示,可以自行对比。至此训练及测试模型程序步骤完全跑通,可以根据自己的工作项目实际需求,替换原始数据,应用到自己的项目中。其中需要注意几点:标签数据和训练数据的行列大小一定要对应上,标签数据的像素值要跟程序中设置的参数对应,本实验标签的像素值设置为1和2 ,做了2分类,也可根据需要做多分类和更改网络模型,具体操作是要更改文件夹中其他的几个文件,有兴趣可以深入研究,有疑问欢迎留言探讨。

            手把手教程:零基础使用MATLAB完成基于深度学习U-Net模型的遥感影像分类_第7张图片

你可能感兴趣的:(深度学习,MATLAB,遥感影像分类,U-Net模型,零基础)