动手学习基于深度学习的遥感影像分类 | 闯关训练营 | 在线优质课程

Heywhale_rs_classification_rsdl

这是中国地质大学(武汉) UrbanComp 团队出品的《遥感影像深度学习》系列训练营第一场。围绕遥感影像分类,用一个完整案例,带领你提高深度学习实战能力。

训练营完全免费,并由和鲸社区 ModelWhale 提供算力与平台支持。


在探索遥感影像的广袤视野之际,你是否好奇过这些影像数据背后蕴藏的丰富信息?在这个训练营中,我们将借助 Python 编程语言和先进的图像分类模型,通过分类分析,揭示遥感影像中不同地物类别的秘密,从而更深入地理解地球表面的变化与特性。

遥感影像分类模型通过将影像数据划分为若干地物类别,使得同一类别内的像素具有较高的相似性,而不同类别之间的像素相似性较低。该算法的核心思想是通过机器学习或深度学习技术,通过分析和计算遥感影像数据,从大量数据中提取有用的信息,并实现高效分类。这个算法在城市扩展分析、灾害评估、城乡规划等领域有着广泛的应用。

在本期训练营中,你将借助系统的课程、案例和实践,掌握遥感影像分类的基本理论、分类模型和算法,提升你在遥感应用方面的技能,并增强你解决实际问题的能力。使用的数据集参考 CN-MSLU-DEMO-1K

先备知识:

  • python 基础
  • pytorch 基础
  • 遥感影像分类的概念

学习大纲

关卡 1:读取数据并可视化

  • 闯关题 1:请利用collections库统计数据集中二级类别的数量,并输出“Farmland”类别的数量
  • 闯关题 2:在数据表中将数量小于10的二级类别修改为“Others”
  • 闯关题 3:获取尺寸最小的影像
  • 闯关题 4:将min_size_row这一行的影像进行可视化,并标注二级类别

关卡 2:训练数据的准备和划分

  • 闯关题 1:通过继承 ImageDataset 类,实现了在输出数据时添加二级标签
  • 闯关题 2:构建数据转换并统一影像尺寸
  • 闯关题 3:按照 7:2:1 的比例划分训练集、验证集和测试集

关卡 3:定义并训练ResNet模型

  • 闯关题 1 :通过导入torchvision下的resnet18模型,构建二级分类模型
  • 闯关题 2 :构建损失函数和优化器
  • 闯关题 3:编写模型训练函数

关卡 4:模型对比与训练过程可视化

  • 闯关题 1:通过上述模型训练过程,构建VGG、GoogLeNet和DenseNet三个模型进行训练
  • 闯关题 2:调整 VGG、GoogLeNet 和 DenseNet 模型并创建实例

关卡 5(通关题):基于深度学习的遥感影像分类系统的完整实现

  • 闯关题 1 :读取CSV文件并对其进行调整
  • 闯关题 2 :构建自定义的数据集类
  • 闯关题 3:构建遥感影像分类模型
  • 闯关题 4:进行模型的训练
  • 闯关题 5:对模型的训练过程进行可视化

需要帮助?

  • 训练营讨论区发帖提问。提问前参考讨论区置顶的《💡【提交出错时】常见错误与排查建议》自行排查,提问时保持信息充足、描述精准。
  • 进群交流唠嗑:描下方二维码添加方大鲸微信号(heywhale888),回复“地理”即可等待方大鲸分批拉入群聊。

Heywhale_rs_classification_code

关于作者

唐蜜 中国地质大学(武汉)地理与信息工程学院研究生在读,测绘科学与技术地图制图学与地理信息工程专业。研究方向为遥感图像处理,擅长 Python。

通关选手反馈

  • Hchen.Zhao:作者从读取数据、划分数据、训练模型、模型对比等方面给我们一个对机器学习的直观体验,通关题的设计并不算难,但需要去自己仔细思考,是一个入门地学机器学习很好的活动,值得反复回味。

  • 小须鲸5nol:刚好最近在看《动手学深度学习》(这本书真能帮你深度学习深度学习),这也是我第一个(线上)跑起来的项目,我还尝试将其在本地Linux下跑起来(虽然配环境配得快把头发掉光了,但是听到显卡呜呜响还是有点满足),感谢作者提供这样一个教程!

特别致谢 ☕

  • 特别感谢中国地质大学 城市之光 团队 姚尧 教授对本次训练营筹备的大力支持!

  • Hchen.Zhao、小须鲸5nol、艾式鲸f4tv、wushishi_50 4 位闯关勇士在讨论区分享了每一关的通关经验。这些对其他想要学习的同学非常实用!

报名地址:https://www.heywhale.com/home/competition/67e4f344d347186d14bef82b/content/0

具体海报如下
Heywhale_rs_classification

Q.E.D.