1. 从零开始:认识ENVI与监督分类

如果你刚接触遥感图像处理,听到“ENVI”、“监督分类”这些词可能有点发怵,感觉是专业人士才能玩转的东西。别担心,我刚开始用的时候也是这种感觉,但上手后发现,它其实就像给照片里的不同东西“贴标签”,只不过这张照片是卫星或无人机拍的,特别大、信息特别多。今天,我就用最接地气的方式,带你从打开软件开始,一步步玩转ENVI里的监督分类,把复杂的图像变成清晰明了的地图。

ENVI 是什么?你可以把它想象成一个功能超级强大的“图片查看和编辑软件”,但它专门处理遥感图像。我们手机拍的照片,每个像素点记录的是红、绿、蓝(RGB)三种颜色信息。而遥感图像的一个像素点,可能记录了十几个甚至上百个不同波段的信息,比如可见光、红外、热红外等等。ENVI就是用来解读这些海量波段信息的工具,让我们能从图像里识别出哪里是森林、哪里是水体、哪里是建筑。

监督分类又是什么呢?这其实是图像分割的一种核心方法。简单来说,就是“你教电脑认东西”。比如,你想让电脑从一张城市区域的卫星图上分出建筑物、道路、绿地和裸土。你先得亲自在图上指给它看:“看,这一片红色的屋顶就是建筑物”,“这一条灰色的长条就是道路”。你提供的这些已知类别的样本点,就是“监督”的过程。电脑学习了这些样本的特征(比如建筑物在某个波段反射率比较高,水体比较低)之后,就会用一套数学规则(分类器)去分析整张图上每个像素,把特征相似的像素归为同一类,最终生成一张分类图。这个过程,就是把一张色彩斑斓但难以直接使用的原始图像,分割成具有明确意义的几大块,这就是图像分割的实战应用。

为什么这个方法这么重要?我举个例子。之前有个朋友想了解他们县城的绿化覆盖率变化,如果靠人眼在卫星图上去数,那简直是不可能完成的任务。但用ENVI的监督分类,我们只需要在不同时期的图像上,分别圈出一些典型的树林、草地的样本,让软件自己去学习并分类,很快就能得到每一年植被覆盖的精确面积和分布图,效率提升了上百倍。所以,无论你是学生做课题、研究人员分析环境,还是相关行业的从业者,掌握这个技能都能让你从“看山是山”的层面,进阶到“看山能分析出树种和健康状态”的专业水平。

2. 实战第一步:软件准备与图像加载

工欲善其事,必先利其器。在开始激动人心的分类操作之前,我们得先把环境和数据准备好。这个过程看似简单,但细节决定成败,很多新手卡壳往往就卡在第一步。

首先,确保你安装的ENVI版本能正常打开。我推荐使用较新的版本,比如ENVI 5.6或更高,它们的界面更友好,工作流(Workflow)工具也更智能化。安装过程就不赘述了,一路“Next”就行。安装完成后第一次打开,你可能会看到一个略显复杂的界面,别慌,我们一步步来。主界面通常包含菜单栏、工具栏、图层管理器(Layer Manager)和视图窗口。我们的核心武器库——Toolbox,一般位于软件左侧或可以通过菜单“Window”找到并勾选出来。Toolbox里面包含了ENVI所有的处理工具,就像你的工具腰带,分类、变换、滤波等各种工具都挂在这里。

接下来是加载图像。点击菜单栏的 File -> Open,或者直接把你的遥感图像文件拖进ENVI的视图窗口。ENVI支持非常多的格式,比如常见的GeoTIFF(.tif)、JPEG 2000、ENVI自带的.dat格式等。这里有个关键点:监督分类的理想数据是多光谱或高光谱数据,而不仅仅是普通的RGB三波段图片。多光谱数据包含了红、绿、蓝以外的近红外等波段,这些波段对于区分植被、水体等地物有奇效。所以,如果你有包含近红外波段的数据(比如很多公开的Landsat卫星数据),分类效果会好很多。

图像加载进来后,可能会显示为灰度或者奇怪的颜色。这是因为默认显示可能只用了其中一个波段。我们通常需要先进行一个“真彩色”或“假彩色”合成,让图像看起来更接近真实世界或突出某些特征。在图层管理器(Layer Manager)里,右键点击你加载的图像图层,选择 Change RGB Bands。在弹出的对话框里,如果是真彩色合成,就把红色、绿色、蓝色通道分别对应到图像的红、绿、蓝波段。如果是想突出植被(植被在近红外波段反射很强),常用“假彩色合成”,比如把近红外波段赋给红色通道,红波段赋给绿色通道,绿波段赋给蓝色通道,这样植被就会显示为鲜红色,非常醒目。这个步骤能帮助你在后续选取样本时,更准确地识别地物类型。

加载并调好图像后,我强烈建议你先花点时间浏览一下整景影像。用鼠标滚轮放大缩小,拖动看看不同区域。了解图像覆盖了哪些地形,大概有哪些地物类别(比如,有没有大片水体?城市区域集中在哪里?农田是什么形状?)。这个“踩点”的过程,能让你对后续要分类的目标心中有数,避免样本选取的盲目性。有时候,同一类地物在不同区域(比如山阴和山阳的树林)颜色或亮度会有差异,提前注意到这些,有助于你在后续选取更具代表性的样本。

3. 核心流程详解:基于样本的特征提取工作流

好了,图像已经在我们面前展开,是时候请出今天的“主角工具”了。在早期版本的ENVI里,监督分类可能需要在不同菜单下跳来跳去,步骤比较分散。但现在新版本的ENVI提供了一个非常强大的集成化工具——Example Based Feature Extraction Workflow(基于样本的特征提取工作流)。这个工具把分割、样本选择、分类和后续处理都串联在了一个向导式的界面里,对新手特别友好,不容易漏步骤。下面我们就顺着这个工作流,一步步拆解。

3.1 启动工作流与图像分割

首先,在左侧的 Toolbox 工具栏里,找到 Feature Extraction 分类,展开后你就能看到 Example Based Feature Extraction Workflow,双击它打开。这时会弹出一个向导窗口,第一步就是让你选择要处理的图像。从下拉列表里选中我们刚才加载并调好色的那一景数据,点击 Next

现在来到了关键环节:图像分割。你可以把分割理解成“拼图的第一步”。原始图像是由几百万甚至上亿个像素点组成的,如果我们直接对单个像素分类,不仅计算量大,而且结果会非常“碎”,像胡椒面一样,缺乏实际意义。分割的目的就是把光谱特征相似的相邻像素聚合成一个个小的对象块,我们称之为“图斑”或“对象”。后续的分类,就是对这些“图斑”进行分类,而不是单个像素。这样得到的结果边界更自然,也更符合我们对地物的认知(比如一栋房子是一个整体,而不是一堆散点)。

工作流界面里通常有两个核心参数需要你设置:

  • 分割尺度(Scale Level):这个参数控制生成图斑的大小。值越小,分割越细碎,图斑越多;值越大,分割越粗略,图斑越大块。怎么设呢?没有一个绝对的标准,需要根据你的图像分辨率和目标地物大小来调整。比如,你想区分单棵的树木,那尺度就要设小一些;如果你只想区分大的林地、水域和城镇,尺度就可以大一些。我的经验是,先从软件默认的中间值开始,点击 Preview 按钮,软件会在图像上随机选一小块区域预览分割效果。你看着预览图,像玩滑块游戏一样调整尺度值,直到你觉得图斑的边界能比较好地贴合地物边缘(比如刚好把一栋房子、一个池塘圈成一个整体),就差不多了。
  • 融合阈值(Merge Level):分割后,可能还会存在一些过碎的小图斑。这个参数就是用来合并这些小图斑的。一般可以设置得比分割尺度小一些,或者先保持默认,等看到分类结果后再决定是否需要回头调整。

设置好这两个参数后,点击 Next,ENVI就会开始对整个图像进行分割运算。这个过程可能需要一些时间,取决于你图像的大小和电脑性能。喝杯咖啡,等待一下。

3.2 手工选取训练样本

分割完成后,界面会进入样本选择阶段。这是整个监督分类的“灵魂步骤”,你教得好不好,直接决定电脑学得怎么样。界面上会出现分割后的图斑轮廓(通常显示为白色边界),并提供了绘制样本的工具。

首先,你需要创建类别。比如,我们计划分出“水体”、“植被”、“建筑”、“裸土”四类。在样本选择面板上,找到新建类别的按钮(通常是一个“+”号),点击四次,创建四个新类别,并分别重命名为我们规划好的类名。然后,为每个类别分配一个醒目的颜色,比如水体用蓝色,植被用绿色,建筑用红色,裸土用黄色。颜色区分越明显,后面查看结果越直观。

接下来,就是手工点选样本图斑了。选择“水体”类别,然后在图像上的河流、湖泊、水库等区域,寻找那些分割得比较好的图斑,用鼠标点击它们。每点击一个,这个图斑就会被染成水体的蓝色,并作为一个正样本加入到“水体”类别的训练集中。这里有几个非常重要的实战技巧

  1. 样本要“纯”:尽量选择能代表该类别的、内部均一的图斑。比如选水体,就选湖泊中央的区域,避免选择靠近岸边的、可能混合了泥沙或植被的图斑。
  2. 样本要“足”:每个类别至少选取几十个甚至上百个样本图斑,并且这些样本应该分布在图像的不同区域。比如选取植被样本,不能只集中在图像左上角的一片森林,右下角的草地、农田也要选取。这样可以保证样本的多样性,让分类器学习得更全面。
  3. 样本要“准”:如果你不确定某个图斑到底是什么,宁可不选,也不要乱选。模糊的样本会“教坏”分类器。
  4. 利用多波段信息:除了看颜色,可以结合不同波段的显示来辅助判断。比如,在近红外波段,水体吸收很强呈现暗黑色,植被反射很强呈现亮白色,这个特征非常明显。

按照这个方法,依次为“植被”、“建筑”、“裸土”等其他类别选取足够的样本。选取过程中,你可以随时切换到其他类别,补充或修改样本。这个过程需要一些耐心,但绝对是值得的。我常跟学生说,花在选样本上的半小时,能为你节省后面调整结果的好几个小时。

3.3 执行分类与结果预览

样本选好后,信心满满地点 Next,进入分类步骤。这里通常需要你选择一个分类算法。工作流里常用的有“支持向量机(SVM)”和“K最近邻(KNN)”等。对于初学者,我建议先选择 SVM,它在高维数据(我们的多波段就是高维数据)和小样本情况下通常表现比较稳健,不容易过拟合。

选好分类器后,可能还有一些高级参数,比如SVM的核函数类型、惩罚系数等。第一次做,完全可以先用默认参数,我们的重点是掌握流程。点击“运行”或“Next”,软件就会根据你提供的样本,训练分类模型,并把模型应用到整幅图像的所有图斑上。

稍等片刻,分类结果就会以专题图的形式显示在新的视图窗口里。不同的颜色区块代表你定义的不同类别。现在,你需要化身“质检员”,仔细检查这个结果。

怎么判断分类结果好不好?

  • 看大面积区域:大片的森林是否被连续地分为植被?城市区域是否被识别为建筑?有没有出现大面积的、明显的错分(比如把一片湖水判成了植被)?
  • 看边界:地物边界处分类是否清晰?有没有很多“椒盐噪声”(像撒了胡椒盐一样,一个像素点一个类别,杂乱无章)?好的对象级分类边界应该比较光滑。
  • 看混淆区:特别关注那些容易混淆的地物交界处,比如湿地(水体和植被混合)、建筑工地(建筑和裸土混合)。这里往往是错分的重灾区。

如果预览结果让你满意,那真是太棒了!但如果发现有些地方分得不好,比如把沙地错分成了建筑,怎么办?别急,这正是工作流方便的地方。你不需要从头再来,直接点击 Back 按钮,退回到上一步样本选择的界面。

针对性补充样本:针对错分的区域,分析原因。如果是沙地被错分成建筑,可能是因为你之前选的建筑样本里,有些裸土屋顶或水泥广场的光谱和沙地相似,而沙地样本又不足。这时,你需要在“裸土”类别里,在沙地区域多补充点选一些样本;同时,在“建筑”类别里,检查是否有光谱特征不纯的样本(比如混入了泥土的停车场),可以考虑删除或修正它们。补充样本后,再次点击下一步执行分类,看看效果是否改善。这个过程可能需要迭代两到三次,分类精度会在这个过程中逐步提升。我把它叫做“训练-反馈-再训练”的循环,是提升分类精度的不二法门。

4. 进阶技巧与精度提升之道

走通了基本流程,得到了一个初步的分类结果,你可能已经很有成就感了。但要想从“会用”到“精通”,让分类结果真正能达到项目或论文的精度要求,我们还得往深里探一探。这一部分,我分享一些自己踩过坑后才总结出来的进阶技巧。

4.1 分类后处理:让结果更干净

直接分类出来的图,常常会有些“小毛病”,比如一个类别内部夹杂着几个像素的其他类别(孤岛或噪声),或者一些特别细长的地物(如道路)被断裂开。这时就需要分类后处理来美容一下。ENVI的Toolbox里提供了很多后处理工具,在 Classification -> Post Classification 目录下。

  • 聚类处理(Clump Classes):这个工具可以把被其他类别包围的、面积很小的孤立图斑“吞并”掉,归并到它周围的主要类别里。你需要设置一个面积阈值,比如小于10个像素的图斑就被处理掉。这能有效消除椒盐噪声,让分类图看起来更干净、更整块。
  • 筛选处理(Sieve Classes):和聚类类似,但逻辑稍有不同,它是基于图斑的连通性来剔除小面积区域。两者可以结合使用,先用Sieve过滤掉特别碎的小斑块,再用Clump处理稍大一点的孤立区。
  • 边界平滑(Majority/Minority Analysis):这个工具像一个“投票器”,以每个像素为中心,查看它周围一定窗口内(比如3x3或5x5)哪个类别占多数,就把中心像素归为那个多数类别。这能平滑类别的边界,消除锯齿状的边缘,特别适用于那些边界本来就应该比较平滑的地物,如农田、森林。

使用这些后处理工具时,我的建议是循序渐进,参数宁小勿大。先使用较小的阈值或窗口进行尝试,预览效果,避免过度处理导致真实的小图斑(比如一栋独立小屋)也被抹掉。处理后的结果可以保存为一个新的文件,方便和原始分类结果对比。

4.2 精度验证:用数据说话

分类做完了,自己看着也挺好,但怎么向别人(比如导师或客户)证明你的分类是准确的呢?这就需要科学的精度验证。我们不能用训练分类的样本来验证,那就成了“既当运动员又当裁判员”。必须使用另一套独立的、事先预留的验证样本

在ENVI中,你可以在分类前,就专门采集一部分样本,不用于训练,只用于验证。或者,在分类完成后,利用高分辨率影像(比如谷歌地球历史影像)、实地调查数据(如果条件允许)作为参考真值,在分类图上随机或分层随机地布设大量的验证点。

然后,使用Toolbox中的 Classification -> Confusion Matrix -> Confusion Matrix Using Ground Truth ROIs 工具。你需要输入你的分类结果图,以及代表真实地类的验证样本区域(ROIs)。软件会自动生成一个混淆矩阵。这个矩阵是精度评估的核心。从里面你可以直接读出几个关键指标:

  • 总体精度(Overall Accuracy):所有验证点中被正确分类的百分比。这是最直观的一个指标。
  • Kappa系数:一个考虑了随机分类影响的精度指标,比总体精度更严谨。一般来说,Kappa系数大于0.8就可以认为分类结果非常好了。
  • 生产者精度(Producer‘s Accuracy):对于某个真实类别,有多少比例被正确分到了该类。这反映了分类器对该类别的“识别能力”。
  • 用户精度(User‘s Accuracy):对于分类图上的某个类别,有多少比例确实是该类。这反映了分类结果的“可靠性”。

通过分析混淆矩阵,你不仅能知道分类总体好不好,还能精确地知道到底是哪两个类别最容易混淆(比如裸土和建筑),从而为下一步的针对性改进提供明确方向。一份带有精度评估报告的分类图,其可信度和价值会大大提升。

4.3 融合多源数据与特征

当你对单一影像的分类已经玩得比较转之后,可以尝试更高级的玩法——引入更多数据。监督分类器不仅仅可以依据光谱信息,还可以加入其他特征。

  • 利用纹理特征:在 Feature Extraction 工具中,除了光谱,你还可以在分割或分类阶段加入纹理特征。比如,森林的纹理是粗糙的,平静水面的纹理是光滑的。计算纹理特征(如灰度共生矩阵GLCM相关的均值、方差、同质性等)并加入分类,能显著改善光谱相似但纹理不同的地物(比如草坪和农田)的区分度。
  • 加入DEM高程数据:如果你有研究区域的数字高程模型(DEM)数据,可以将它作为一个额外的“波段”和遥感影像一起输入。地形信息非常有用,比如,通常水体位于低海拔,森林可能位于山坡,建筑集中在平坦区域。加入高程约束,可以有效地减少山地阴影被错分为水体、或者将高海拔的裸岩误判为建筑等情况。
  • 使用多时相数据:有时一景影像信息不足,可以考虑使用同一区域不同时间的多期影像。某些地物(如作物)具有独特的物候特征(生长周期),其在多时相上的变化规律是稳定的“指纹”。利用多时相数据构建特征,可以进行更精细的分类,比如区分不同作物类型。

这些进阶方法,开始可能会觉得复杂,但原理都是相通的:给分类器提供更多、更有效的“线索”。在实际项目中,我常常是光谱、纹理、地形几个特征一起上,构建一个综合的特征空间,这样训练出来的分类模型,鲁棒性和精度都比只用光谱要高出一个档次。

5. 成果输出与项目总结

经过一番细致的调整和优化,我们终于得到了一个既美观又准确的分类结果图。最后一步,就是把它妥善地保存下来,并整合到你的报告或项目中。

5.1 选择与保存文件

在ENVI的工作流最后一步,或者在你处理完的分类结果视图窗口中,点击 File -> Save As,就可以选择保存了。这里有几个常见的输出格式选项:

  • ENVI Classification Image (.dat):这是ENVI的标准分类格式,它会保存分类结果和对应的颜色表信息。如果你后续还要在ENVI里进行进一步分析或修改,保存这个格式是最好的。
  • GeoTIFF (.tif):这是最通用、最推荐的输出格式。GeoTIFF不仅保存了分类的像素值,还能嵌入地理坐标信息(Georeference)。这意味着你把它导入到ArcGIS、QGIS等其他GIS软件中时,它能自动对齐到正确的地理位置,非常方便进行面积量算、空间叠加分析等后续操作。保存时,通常选择“Byte”数据类型就足够了。
  • Vector Shapefile (.shp):如果你需要的是矢量多边形数据,以便在CAD或GIS中进行编辑、制图,你可以将分类结果转换为矢量。在Toolbox中找到 Classification -> Post Classification -> Classification to Vector 工具,将分类图转换为面状的Shapefile。转换时可以选择按类别分别输出,也可以合并输出一个文件并用属性字段区分类别。

在保存对话框中,记得给文件起一个清晰易懂的名字,比如“2023_XX区域_土地覆盖分类_最终版.tif”。同时,强烈建议将你最终使用的训练样本ROI文件也一并保存(在ROI工具里选择导出)。这样,如果以后需要回溯、验证或基于此进行修改,你就有据可查,避免了重复劳动。

5.2 从项目角度复盘整个流程

走完这一趟完整的ENVI监督分类之旅,我们再来从项目管理的视角复盘一下,什么样的流程是高效可靠的:

  1. 明确目标与定义类别:动手之前,一定要想清楚分类的最终用途是什么?需要分出哪几类?类别的定义是否无歧义、可操作?(例如,“灌木林”和“高草”在影像上可能很难区分,不如合并为“低矮植被”)。
  2. 数据预处理是关键基础:加载数据后,别急着分类。进行必要的辐射定标、大气校正(如果要求高精度)、图像融合或镶嵌等预处理,能极大提升数据质量。一幅清晰、信息准确的影像,是成功的一半。
  3. 迭代式的样本选择:不要指望一次选样就能完美。采用“初步选样 -> 快速分类预览 -> 发现错分区域 -> 针对性补充/修正样本 -> 再次分类”的迭代循环。这个过程可能重复2-4轮,每一轮都会让精度有所提升。
  4. 善用对象与特征:充分利用ENVI面向对象(图斑)分析的优势,结合光谱、纹理、形状等多种特征,而不仅仅是依赖像素颜色。
  5. 定量化验证不可或缺:无论时间多紧,都要留出时间进行精度验证。用混淆矩阵和Kappa系数等量化指标给你的成果背书,这是专业性的体现。
  6. 妥善管理中间与最终数据:建立清晰的文件夹结构,保存好原始数据、预处理后数据、各轮训练样本、中间分类结果、最终结果及精度报告。良好的数据管理习惯,会在项目协作或未来回顾时让你受益匪浅。

最后我想说,ENVI监督分类是一个实践性极强的技能。看十遍教程,不如自己动手分一幅图。过程中遇到问题太正常了——分类结果一片模糊?可能是分割尺度没设好。某个类别总是错分?可能是样本不纯或特征不足。我的经验是,每解决一个具体的问题,你对这个技术的理解就会加深一层。别怕试错,参数调一调,样本改一改,多预览,多对比。当你第一次独立完成一幅区域的土地覆盖分类图,并计算出各类面积时,那种把海量数据转化为洞察力的成就感,就是学习这门技术最好的奖励。希望这篇指南能成为你手边实用的“导航图”,祝你探索顺利!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐