1. 遥感与深度学习概述
大家好,我是这门课的主讲。在正式开始之前,我想先聊聊我对遥感影像的理解。说实话,我最早接触遥感时,觉得这玩意儿就是「天上的相机拍照片」。后来真正做项目才发现——完全不是那么回事。
遥感影像,说白了就是传感器在几百公里外「看」地球。它看到的不是我们肉眼看到的东西,而是地物在不同波段的反射信号。嗯,这里有个关键点:每个波段都是一张独立的「灰度图」,组合起来才能还原地物的真实面貌。
1.1 遥感影像的三大类型
我在项目中接触过三类主流遥感数据,它们各有各的脾气:
| 类型 | 波段数 | 典型数据 | 我的经验 |
|---|---|---|---|
| 多光谱 | 4-10个 | Landsat 8、Sentinel-2 | 做分类最常用,RGB+近红外基本够用 |
| 高光谱 | 100-300个 | AVIRIS、Hyperion | 信息量大但冗余也大,我吃过降维的亏 |
| SAR | 单/双极化 | Sentinel-1、Radarsat-2 | 不受云影响,但斑点噪声让人头疼 |
核心区别一句话:多光谱像「彩色照片」,高光谱像「光谱指纹库」,SAR像「雷达扫描图」。三种数据在深度学习中的预处理方式完全不同。
拿多光谱来说,我习惯把近红外波段单独拿出来做植被分析。为什么?因为植被在近红外波段反射率极高,这个特征在分类任务中特别好用。高光谱呢?我曾经在矿物识别项目里用了200多个波段,结果模型过拟合得一塌糊涂——后来才明白,高光谱必须先降维再喂给网络。
至于SAR,嗯,这玩意儿最坑。我第一次用Sentinel-1做水体提取,模型死活学不会。后来发现是斑点噪声把水面纹理全打乱了。解决办法?先做滤波,再用对数变换把数据拉到一个合理的分布范围。
1.2 深度学习在遥感中的应用场景
你想想看,遥感影像动辄几千乘几千像素,传统方法靠人工设计特征,效率低不说,泛化能力也差。深度学习正好解决了这个问题——让网络自己学特征。
我按任务类型把常见场景梳理了一下:
- 场景分类:给整张影像打标签,比如「这是农田」「这是城市」。我在做全国土地利用分类时,用ResNet50在10万张样本上训了3天,精度比传统方法高了12%。
- 目标检测:找特定目标的位置,比如飞机、船舶、车辆。YOLO系列在遥感检测里很火,但要注意——遥感目标通常很小,我建议用多尺度检测策略。
- 语义分割:像素级分类,比如把每块地分成「建筑」「道路」「植被」。U-Net是标配,但我在实际项目里发现,加个注意力机制能显著提升边界精度。
- 变化检测:对比两期影像,找出变化区域。这个任务最难,因为要同时处理配准误差和光照差异。我踩过的坑是——直接用差值图做输入效果很差,得用双分支网络。
我的建议:初学者先从分类和分割入手,这两个任务的数据集最成熟,模型也最稳定。检测和变化检测对数据质量要求高,容易劝退。
1.3 课程整体技术栈与学习路径
这门课我设计了30章,从基础到部署,一步步带你走完。技术栈选型上,我坚持一个原则:用最主流的工具,讲最实用的方法。
先看这张技术栈全景图:
这张图我画了好几次才满意。你看,从数据到部署,每一层都有对应的工具和模型。我个人习惯是PyTorch为主,TensorFlow为辅——不是TF不好,而是遥感社区用PyTorch的人更多,遇到问题好查资料。
学习路径上,我建议这样走:
- 第1-5章:打好基础,搞懂遥感数据格式和PyTorch基本操作。别急着跑模型,先把数据读明白。
- 第6-15章:逐个攻克分类、检测、分割任务。每章我都会给一个完整项目,从数据准备到模型训练全流程。
- 第16-25章:进阶技巧,包括数据增强、迁移学习、模型优化。这部分是我多年踩坑经验的精华。
- 第26-30章:部署实战,把模型变成真正能用的服务。嗯,这一步最容易被忽略,但也是最有价值的。
避坑指南:我曾经在第一个项目里直接拿整景影像(1万×1万像素)训练,结果显存爆了。后来才学会用滑动窗口裁剪——把大图切成256×256的小块,既省显存又增加样本量。
最后说一句:这门课不讲花哨的理论,只讲能落地的技术。你跟着我走完30章,至少能独立完成一个遥感深度学习项目的全流程。准备好了吗?我们开始吧。