基于深度学习的多光谱图像语义分割 —— 从原理到实践(第一节)

发布时间:2026/7/18 2:54:39
基于深度学习的多光谱图像语义分割 —— 从原理到实践(第一节) 基于深度学习的多光谱图像语义分割 —— 从原理到实践第一节本系列博客将带你完整走一遍使用 MATLAB 和 U‑Net 对多光谱航拍图像进行语义分割的全流程。第一节作为开篇我们先打好地基搞懂语义分割是什么多光谱图像有何特殊优势以及本示例的整体脉络。1. 引言语义分割与多光谱图像的相遇1.1 什么是语义分割在计算机视觉中语义分割Semantic Segmentation是一项像素级别的分类任务。它的目标是给输入图像中的每一个像素都分配一个类别标签如“树”、“道路”、“建筑”、“水体”等从而生成一张与原始图像同尺寸的“标签图”Label Map。为了更直观地理解我们对比一下常见的视觉任务任务类型输出粒度示例图像分类整张图像一个标签“这是一只猫”目标检测多个物体的边界框 类别“这里有猫、狗” 并框出位置语义分割每个像素的类别将图像中所有属于猫的像素标为“猫”属于背景的标为“背景”语义分割能够精确描绘物体的轮廓因此在许多高精度应用场景中不可或缺例如自动驾驶区分道路、车辆、行人、交通标志帮助车辆理解周围环境。医学影像分析分割肿瘤、器官、血管辅助医生诊断。遥感监测识别植被、水体、建筑物、裸地等用于土地覆盖变化分析。1.2 为什么需要多光谱图像我们日常看到的彩色图像通常只有三个波段红R、绿G、蓝B它们覆盖了可见光范围约 400~700 nm。然而不同地物在不同波段的反射特性差异巨大尤其在近红外NIR约 700~1300 nm区域健康植被在近红外波段反射率极高因为叶绿素细胞结构强烈反射 NIR而在红光波段吸收强用于光合作用。清澈水体在近红外波段几乎完全吸收因此呈现深色。人造建筑在短波红外SWIR波段有独特反射特征。通过引入多个窄波段通常包含可见光 近红外 短波红外等我们就能获得地物更丰富、更特异的光谱“指纹”从而大幅提升分类精度。例如仅用 RGB 很难区分健康的绿色植被与枯黄草坪但加入 NIR 后二者差异一目了然。本例使用的Hamlin Beach 州立公园数据集提供了7 个通道通道 1~3红、绿、蓝RGB通道 4~6近红外NIR通道 7掩膜Mask标识哪些像素属于有效分析区域排除图像边界等无关区域。有了多光谱数据加上深度学习模型强大的特征提取能力我们就能精确测量植被覆盖度、跟踪森林采伐等生态指标。1.3 为什么选择 U‑Net在众多语义分割网络中U‑Net因其简洁高效、适合小样本训练而备受青睐尤其医学图像和遥感领域。它的核心思想是对称的 U 形结构左侧为收缩路径编码器通过卷积和池化逐渐降低分辨率、提取高级语义特征右侧为扩展路径解码器通过上采样恢复分辨率同时利用跳跃连接Skip Connection将编码器对应层的高分辨率细节融合进来弥补空间信息损失。端到端训练输入任意尺寸图像输出同尺寸的分割图。对数据量要求不高在标注数据有限的情况下仍能取得不错效果。因此本示例采用 U‑Net 作为骨干网络处理 6 个有效光谱通道去掉掩膜通道的输入输出二分类结果植被 vs 非植被。1.4 本示例使用的 MATLAB 工具箱MATLAB 为深度学习与图像处理提供了完善的支持本例主要依赖以下三个工具箱工具箱名称主要用途Image Processing Toolbox图像读写、直方图均衡histeq、中值滤波medfilt2、分块图像操作blockedImage等Deep Learning Toolbox构建和训练神经网络trainnet、trainingOptions自定义损失函数Computer Vision Toolbox语义分割专用函数semanticseg、unet、evaluateSemanticSegmentation以及数据存储pixelLabelDatastore1.5 整体工作流程概览本博客将按照以下顺序逐步展开数据准备下载预训练模型与原始数据集理解数据结构进行维度转置和可视化。标签处理将原始 18 类标签合并为二分类植被 / 非植被并可视化叠加标签。大图像分块策略利用blockedImage和blockedImageDatastore实现训练和推理时的分块读写避免内存溢出。模型构建使用unet函数创建 U‑Net 网络并自定义带掩膜的交叉熵损失函数。训练与验证设置超参数启动训练可选并在验证集上评估分割精度。测试与后处理对测试图像进行分块推理应用掩膜过滤和中值滤波去除噪声。应用分析计算植被覆盖率并与真实值对比。性能评估利用全局准确率、IoU 等指标量化模型表现。1.6 开始前的环境准备确保你的 MATLAB 已安装上述三个工具箱以及可选的 Parallel Computing Toolbox用于 GPU 加速。所有代码均可在 MATLAB R2023a 及以上版本运行。接下来我们将进入实操环节——下载数据、加载模型并一步步完成从图像到结果的完整流程。敬请期待第二节《数据加载与预处理》。