资讯动态

最大似然法监督分类遥感影像:原理、实操与避坑指南

发布时间:2026/9/20 19:43:54 来源:尧图企业网站定制
简介面向遥感影像分类初学者与科研人员这份资源围绕最大似然法在监督分类中的实际应用展开以8波段遥感影像为数据基础涵盖建筑物、道路、植被、水四类典型地物并提供训练样本、待分类像素及其真实类别标签帮助用户完整体验从样本读取、像素分类到精度评价的流程。资源共9个文件以4个xls训练样本为主另含2个xlsx补充数据、1个m脚本、1个txt结果和1个docx说明文档压缩包仅270KB轻量便携。配套Matlab代码可直接运行已求出总体精度、用户精度、制图精度及Kappa系数用户只需按需修改文件读取路径即可复现分类结果并对照真实类别检验算法效果。目前已有5678人学习下载适合作为遥感图像处理课程设计、本科毕业设计或科研预实验的参考实现。 我至今记得第一次把最大似然法用在Landsat影像监督分类时的场景。当时手里是一幅30米分辨率的OLI多光谱影像要做五个土地覆盖类别我花了整整一下午圈训练样本结果分类图一出建成区被大片大片地分成了农田水体边缘全是椒盐噪声当场就想砸键盘。后来沉下心把最大似然法的原理、假设条件和参数设置捋了一遍才发现问题根本不在影像质量而在我对方法的理解上。这篇文章就把这段经历沉淀下来聊聊最大似然法监督分类遥感影像的核心原理、实操流程以及那些官方文档不会告诉你的坑。1. 为什么在诸多分类器中最大似然法依然是入门的必修课1.1 从一次项目经历说起一个阈值规则被打脸的现场先说个早年的反面教材。有次做一个小范围的植被覆盖度估算领导要求先用NDVI阈值把植被和非植被分开。我当时觉得这事太简单了——NDVI大于0.3就是植被小于0.3就是裸土。结果真到了影像上水体的NDVI是负值可以直接排除但阴影里的植被NDVI只有0.2灌丛和裸地交界处的NDVI直接重叠。用固定阈值硬切出来的图惨不忍睹要么漏了阴影植被要么把裸地错分成植被。这个经历让我意识到一个核心问题地物的光谱特征从来不是一个确定数值而是一个在光谱空间里散布的分布。你今天测一片草地得到的是一个绿光反射率区间、近红外反射率区间而不是某个唯一值。既然是分布就应该用概率的思路去刻画它。最大似然法的核心思路恰好就在这里它不问这个像元的NDVI等于多少而是问假如这个像元属于草地这一类它的光谱特征出现在这个位置的概率有多大。1.2 最大似然法在监督分类中的位置与核心价值遥感影像监督分类的套路其实很统一你先人为地选择一些已知类别归属的像元作为训练样本然后让算法学习这些样本的光谱统计特征最后用学到的规则去判断全图每个像元最像哪一类。整个流程里有三个关键环节训练样本怎么选、统计特征怎么建模、判别规则怎么设计。最大似然法Maximum Likelihood Classifier简称MLC解决的问题就是中间的建模判别。它的价值在于它把判别问题上升到了概率框架。对每一类地物MLC假定其光谱值服从多元正态分布然后用训练样本估计出这个分布的均值向量和协方差矩阵得到一个数学上的概率密度函数。分类时对任意一个像元分别计算它属于每一类的概率密度值哪个大就归到哪类。这种思路相比简单的光谱距离最近要严谨得多因为它不仅看了均值还考虑了围绕均值的散布形状——协方差矩阵。1.3 它与最小距离、马氏距离的本质区别为了说明白MLC的优势有必要把它和两个常被混在一起的算法做对比。最小距离法是最朴素的分类器。它只计算每个像元的光谱向量与各类训练样本均值向量之间的欧氏距离离谁最近就归谁。问题在于它完全没有考虑光谱特征在不同方向上的方差差异。比如裸地在红光波段的变化范围很大而水体的变化范围很小最小距离法会把这个差异忽略掉在光谱散布方向不均匀时容易错分。马氏距离法做了一个改进它引入了协方差矩阵用椭球体而非球体来刻画各类别在光谱空间的分布形状。马氏距离在数学上已经和MLC很接近了它也在计算样本到类别分布中心的一种归一化距离。但有一个本质区别马氏距离没有显式地引入先验概率也没有将距离转换成概率值。MLC则是在贝叶斯框架下做决策可以灵活地加入先验信息并且输出每个像元属于各类别的概率大小这对后续的不确定性分析非常有价值。一句话总结最小距离是初学者友好的快速近似马氏距离是中间态的距离归一化最大似然则是把相似度彻底翻译成概率的过程。2. 把相似度变成概率最大似然的数学核心2.1 贝叶斯后验概率的直觉理解许多教程一上来就把贝叶斯公式拍在脸上容易把人劝退。这里我尝试用生活化的方式拆解一下。假设你在一片雾里看到一个人影没法直接看清但可以根据轮廓和步态猜测他更可能是个子高的还是个子矮的。这个场景里个子高还是矮就是类别标签轮廓和步态特征就是像元的光谱向量。贝叶斯决策的直觉是你不仅要看这类人看起来像这样特征的概率有多大似然还要看这类人在这条路上出现的概率有多大先验概率。最大似然法处理遥感影像时脑子里想的就是这个逻辑。用公式写出来像元x属于类别ω的概率是P(ω|x) P(x|ω) × P(ω) / P(x)其中P(x|ω)就是假设它是第ω类它的光谱特征与分布模型匹配的程度也就是似然项P(ω)是这一类的先验概率P(x)对所有类别来说都一样不影响比较大小通常可以忽略。MLC的判别逻辑就是挑出使P(ω|x)最大的那个类别作为像元归属。2.2 多元正态分布假设是命根子MLC最关键、也最容易被忽略的前提是它假定每一类地物在各波段上的光谱特征服从多元正态分布。这个假设意味着什么单波段的一维正态分布像一个钟形曲线有均值和方差。多波段情况下变成高维空间里的一个椭球体由均值向量和协方差矩阵决定。协方差矩阵的对角线元素是每个波段的方差非对角线元素是波段之间的协方差它刻画了不同波段响应之间的相关程度。这个正态假设是整个方法的地基。如果某类地物的训练样本光谱特征明显不服从正态分布比如样本里混入了两种光谱差异很大的亚类形成一个双峰分布那么用均值和协方差去描述它就会失真分类精度必然下降。后面我会专门讲这种看似正常实则失配的坑。2.3 对数判别函数为什么长这个样子MLC用的判别函数实际是一个取了对数、去掉常数项后的简化形式g_i(x) ln P(ω_i) – 0.5 ln|Σ_i| – 0.5 (x – μ_i)ᵀ Σ_i⁻¹ (x – μ_i)看着唬人逐项拆开其实不复杂。第一项ln P(ω_i)是先验概率的对数它让整体决策可以偏向那些更常见的地物类别。第二项–0.5 ln|Σ_i|是类别协方差矩阵行列式的对数它衡量了该类光谱散布的膨胀程度。协方差矩阵行列式大说明这个类别在特征空间里占据的体积大、分布松散行列式小说明该类别光谱聚集紧密。这一项的作用是把分布本身就比较宽的类别的判断门槛放低否则所有像元都会倾向于被分到分布窄的类别里导致某类被过度分配。第三项(x – μ_i)ᵀ Σ_i⁻¹ (x – μ_i)本质上是马氏距离的平方。它通过协方差矩阵的逆矩阵把原始光谱空间的坐标变换到一个方差归一化的空间里使得各类别在这个空间里是圆形的然后计算距离。这一项越大说明像元x距离类别i的均值中心越远属于该类的概率就越低。实际计算中很多软件如ENVI、ERDAS默认用这个判别函数替代完整的后验概率计算因为对数化之后乘法变成加法指数运算变成普通运算数值稳定性更好计算效率更高。2.4 协方差矩阵的角色比你想的更关键协方差矩阵是MLC的核心参数也是最容易出问题的地方。它决定了类别在光谱空间中的形状、方向和大小。一个形象的类比是每类地物是光谱空间中的一个椭球体协方差矩阵决定了这个椭球体的胖瘦和朝向。注意协方差矩阵需要足够多的样本来估计才能保证稳定。如果某个类别参与分类的波段数是n那么协方差矩阵是n×n的对称矩阵至少有n(n1)/2个独立参数需要估计。这意味着训练样本量至少要大于波段数否则矩阵会退化甚至不可逆。实践中更可靠的经验是每类训练样本像元数至少达到波段的10倍以上比如用7个波段分类每类最好不少于70个像元稳妥起见最好到150到300个。这是我踩过坑后总结出来的底线。3. 实操流程拆解从训练样本到分类图的关键步骤3.1 训练样本设计数量、纯度与代表性说句可能得罪人的话在监督分类里训练样本的质量比分类器本身重要得多。样本选不好再好的分类器也白搭。训练样本设计有三个核心原则。第一是纯度。ROI圈选时要在影像上找到该类别特征非常典型、均一的区域。宁可区域小一点也要保证每个像元都是纯正的目标类别。城市影像里的混合像元经常把建成区和裸土搅在一起圈样本的时候一旦把过渡带像元圈进去这一类的均值会被拉偏、方差会被拉大协方差矩阵严重变形分类结果就会出现大面积混分。第二是数量。除了上面说的每类至少10倍波段数的底线还要考虑类别内部的变异性。如果一个类别分布面积很大、内部光谱差异也大比如森林里同时有针叶林和阔叶林需要增加样本量来覆盖这种变异性。一个简单的自检方式在光学影像上将同类的几个样本Region合并后查看各类样本的均值曲线是否出现明显的多峰或者宽幅震荡若有说明样本区内混入了不同光谱特征的亚类。第三是代表性。训练样本的空间分布应当覆盖整幅影像上该类地物的主要出现区域不要只在一小块范围圈样本。不同地区的大气条件、地形、土壤背景存在差异比如同一个坡度上的草地和沟谷里的草地光谱特征可能相差很大只圈一个地方的样本模型的代表性就不够。3.2 光谱可分性检验用数据而不是直觉判断很多初学者圈完样本就直接跑分类这是非常冒险的。正规流程里应该在分类前做一次光谱可分性检验用数据验证各类别之间是否真的可分。常用指标是Jeffries-Matusita距离简称JM距离和转换分离度Transformed Divergence。这两个指标的值域大致在0到2之间大于1.9认为两类别之间可分性极好1.0到1.9之间说明可分性一般需要谨慎对待小于1.0则基本不能区分。它们计算的本质都是基于两类之间的光谱均值和协方差矩阵差异来的可以直接在ENVI的计算类别统计或类似工具里输出。我习惯在正式分类前先对所有类别组合跑一遍JM矩阵谁和谁都分得不清楚就提前知道结果里哪些类容易混淆。比如有一次做湿地分类芦苇沼泽和中密度草地的JM距离只有0.6后来干脆把两个类别合并成草本湿地分类图反而更实用。别怕合并类别别为了论文里多一个图例而强行分一些光谱上根本拉不开的类别。3.3 分类器参数先验概率与阈值概率的取舍最大似然分类器一般有两个需要自己设置的参数往往被默认值带过其实很值得琢磨。先验概率P(ω_i)。软件里默认给每类相同的先验概率也就是没有任何先验知识时完全靠似然项说话。但如果你已经知道影像里某一类比如水体只占整个研究区面积的5%另一类比如建成区占60%那么把先验概率按面积比例设置能显著减少小面积类别被大面积类别吞掉的趋势。当然如果你担心影像本身有偏差、或者事先的信息不可靠就不如保持均匀先验让算法用数据说话。补充一句先验概率是敏感参数加了先验之后分类结果会往先验方向拉必须给出让人信服的数据来源。阈值概率。这个参数决定了一个像元被判过低的概率密度值时如何处理。设成0表示不管概率多低都凑合分到一个类别里设成一个大于0的值比如0.5那些在各分布中都处于低概率区域的像元会被标记为unclassified留到后面的手工处理。实际项目中我建议阈值不要设太严格先从1等效于不设阈值跑一版看看未分类像元多不多再逐步收紧。影像是实际地物的记录总有一些像元天然处于类别分布的边界一味追求全图覆盖会引入大量错分。3.4 输出格式与结果解读分类结果通常输出为单波段主题图每个像素的灰度值对应一个类别编号。很多人忽略的是多数主流遥感软件比如ENVI在输出MLC结果时可以同时输出一条规则图像或概率图像记录每个像元在入选类别中的后验概率值。这个副产品很有价值概率低的区域往往是分类可靠性差的区域可以映射为分类不确定性专题图。实操层面还有个细节分类完成后要注意检查类别重叠区的处理。MLC算法天然会把每个像元分配到概率最大的类别所以如果一个像元在两个类别中的后验概率都不高你还是会收到一个最不坏的结果前期不设阈值后期就必须对这些低置信度区域进行重点检查。我个人的习惯是输出结果之前先把阈值参数定在0.9左右宁可留一部分unclassified区域做人工判读也不要在勉强归类里藏着大量错分。4. 官方文档不会说的坑最大似然法典型问题的排查链路4.1 协方差矩阵秩亏我的第一次灾难现场那是早年间用TM影像做区域土地利用调查用了6个波段每类样本我精心挑选了60个左右的像元看起来数量也不算少。结果一跑分类软件直接弹错误日志里写着Singular matrix或Covariance matrix is singular。我当时完全懵了。后来排查原因倒不是样本量本身不够而是我圈的水体样本有一个波段上的数值几乎是常数——那幅影像里干净的深水区在近红外波段的DN值全部是同一个数。一个波段方差为0意味着该波段的特征在这个类别上没有变化协方差矩阵就奇异了无法求逆判别函数的马氏距离项直接算不出来。这个坑的排查思路可以总结成一条链路先看各类训练样本的波段统计表检查哪些类别在哪个波段上方差异常小再检查是否有多重共线性两个波段响应几乎完全相关比如某些传感器上绿波段和红波段受同一下垫面影响可能出现极高相关最后检查样本量是否大于波段数。这三步都过了协方差矩阵的理论风险就基本排除了。如果仍然奇异可以适当剔除一个相关性极高的冗余波段或者增加样本量、净化样本区。4.2 椒盐噪声与边界锯齿为什么很猛还会脏椒盐噪声几乎是MLC分类结果的标配。很多初学者看到满屏的脏点就开始怀疑是不是算法太弱了其实要理解这个问题得回到最大似然法的判别机制。MLC是对每个像元独立判别的它完全没有考虑像元之间的空间关系。即使是正态分布假设非常好的类别也存在天然的光谱波动某些像元的光谱值恰好落在另一类分布的尾巴上就会被跳跃性地错分。这就是椒盐噪声产生的根本原因。边界锯齿问题同样是这个道理地物边界像元是混合像元光谱特征本就不属于任何一类MLC只能机械地把它分给概率最大的一类边界自然不平滑。解决思路分两层。第一层是在分类前尽量提升输入质量对辐射定标和大气校正后的影像做轻微的空间滤波比如3×3均值滤波可以在一定程度上压低传感器噪声引起的随机波动。第二层是在分类后处理上使用Majority/Minority分析或众数滤波把孤立的小斑块合并到周围大类别中。但这里有个陷阱滤波核不能选得太大3×3通常够了5×5基本是上限。核大了确实会更平滑但细线状地物道路、河流会被抹掉真实的细小地物图斑也会丢。4.3 类别混淆当水体吃掉阴影类别混淆是MLC最棘手的难题因为它本质上是地物光谱自身重叠算法层面的操作空间有限。最典型的是山地阴影与水体、裸土与建成区这两对冤家。在一次山区土地利用分类中我的水体样本和山体阴影样本在可见光和近红外波段的均值曲线几乎走成了一条线JM距离只有0.8。这背后的物理机制是太阳照射角差异导致的山体阴影削弱了地物反射率其光谱形状模拟了清澈水体的特征。这种混分不是MLC算法造成的是输入特征本身可分性不足。排查和解决这类问题的思路是按优先级逐步升级。先做波段选择阴影和水体在短波红外波段SWIR上的行为往往不同如果可以加入SWIR波段单靠可见光和近红外区分不开的问题就可能缓解。再做光谱增强NDWI归一化差异水体指数在山区水体识别中往往比原始波段更好用可以把指数作为额外特征输入分类器。最后实在不行就只能靠分类后的规则修正先把阴影用形状、地形因子如坡度、坡向识别出来再按语义规则重分类。这种最大似然规则后处理的组合在山区项目中非常实用。5. 结果不好先别怪算法后处理与精度评估5.1 小斑块滤波的科学用法后处理的本质是引入空间上下文来弥补逐像元分类的先天不足它是MLC流程里最后一道可干预的关卡。我之前提到过Majority分析中值滤波的一种这里再补充两个容易被忽略的细节。第一是处理次序先跑Majority分析再跑类别归并和矢量化导出顺序反了之后矢量化成果的拓扑错误会明显增多。第二是掩膜意识主城区大面积的连续工业用地在Majority分析后可能被平滑掉内部真实存在的绿地斑块如果产品最终用于生态评估这类真信息被平滑掉是致命的需要在滤波强度和成图精度之间做权衡。实际操作中我一般会保留一份滤波前的原始分类图再生成一份滤波后的产品图。两份图都存档后处理参数变化不至于影响原始分类结果后续需要重新生成不同风格的专题图时才不会抓瞎。5.2 混淆矩阵里的真正信息精度验证环节很多人只记一个总体精度和Kappa系数其实混淆矩阵里藏着的细节远比这两个数字重要。总精度会被大面积类别主导。如果你的研究区70%是农田即使把剩下的30%全部分错总体精度依然有70%。所以必须逐类看生产者精度Producers Accuracy和用户精度Users Accuracy。生产者精度低说明这一类被漏分了实际是A类很多被判成了B类用户精度低说明这一类被错分了被判成A类实际是B类。两种精度同时低说明该类在特征空间中与别的类别严重纠缠。更实用的是误差矩阵逐格检查法把验证样本对应的真实类别和分类结果做差值图错分像元的空间分布一旦呈现明显的区域性聚集说明是某种系统性因素在作怪——比如某一景影像端元的辐射值整体偏移被训练样本没有覆盖到。这种空间聚集的判断比单纯看一个总体数字有用得多。5.3 分类规则库把专家先验注入逐像元的结果MLC是纯数据驱动的方法它不会告诉你山谷南坡的落叶林和山脊上的针叶林虽然光谱相近但基于地形知识应该被区分开。这时就需要规则库登场。在GIS平台或遥感软件里你可以先跑出MLC分类结果再叠加DEM衍生的海拔、坡度、坡向等图层用条件语句修正明显不符合常识的分类结果。比如海拔大于2800米且坡向朝北的区域不可能是低海拔落叶阔叶林按这个规则把局部可疑像元重新赋值或置为待定类别。这种做法本质上是一种最大似然初分类专家知识再修正的半自动分类范式。我的体会是规则库不用写得很复杂三到五条强约束规则就能显著提升成果的可用性比盲目换分类器、调参数要见效快得多。6. 和现代方法怎么配合从实践角度给选型建议6.1 最大似然 vs 支持向量机 vs 随机森林现在机器学习分类器大行其道经常有人问都2025年了还有必要学最大似然法吗这个问题得放到具体场景里回答。三类方法的本质差异在于对数据的假设和函数的复杂性。最大似然法是参数化方法假设数据服从正态分布参数数量有限均值和协方差矩阵训练速度快结果可解释性强适合光谱维数不高、各类别谱间可分性较好的情况。支持向量机是非参数化方法中的代表它通过核函数把原始特征映射到高维空间后找最优超平面。它的优势是能处理非线性可分问题在波段数高、样本不均衡、光谱重叠严重时往往比MLC表现好。但它像个黑箱参数核函数类型、惩罚系数C、gamma调起来比较玄学对新手不友好。随机森林也属于非参数化方法通过集成多棵决策树降低方差。它抗噪声能力强对特征缩放不敏感还能输出特征重要性排序这在特征筛选阶段很有价值。缺点是训练样本量不足时容易过拟合且模型解释性不如MLC直观。依赖同一个6波段数据集我做过对比光谱类别分离度良好时MLC、SVM、随机森林的总体精度差距通常不超过2到3个百分点一旦涉及高维数据或非线性光谱混淆SVM和随机森林的优势才真正拉开。这个现象提醒我们不要迷信新方法更高精度。6.2 它并没有过时几个适合发挥的场景结合切身体会我总结出三个MLC依然好用的场景。第一个是快出图、重解释的项目。当甲方短时间内需要一张土地覆盖制图并且要求分类结果每一类的统计特征有明确物理意义时MLC的参数化特性反而是优势——你可以直接汇报某一类的光谱均值是哪些波段反射率的组合。第二个是小样本高维度受限的情形。深度学习和大规模机器学习方法需要大量带标签样本而常规遥感项目往往只能提供有限的ROI样本这时MLC的样本需求相对克制且稳定不容易因为样本不足而显式过拟合。第三个是教育和算法对比的基线场景。无论做研究还是做工程都需要一个稳健的基准分类器。在算法对比中MLC被当作baseline的次数远超想象它的表现往往能说明一个数据集的固有可分性上限。6.3 一条效率路线从最大似然开始的完整流程根据这些经验我建议的完整流程是拿到影像先做辐射校正和裁剪快速圈一批初步样本用JM可分性别指标做一个光谱可分离性侦察如果类别分离度普遍较低就考虑用SVM或随机森林如果分离度尚可直接上MLC再把低置信度区域用规则库修正最后做精度评估时重点检查混淆矩阵里的空间聚集。这样既不会在一开始就陷进复杂模型的调参泥潭又能让MLC在它擅长的场景中发挥最大价值。最大似然法教会我的最重要一课是分类器的精度上限早在训练样本选择和类别可分性分析阶段就已经注定了。与其反复换算法不如先把数据清洗、特征分析和样本质量做到位。先把这层逻辑吃透再回头看SVM也好、随机森林也好都是在同一个特征空间中的决策边界问题之上叠加了更复杂的函数形式而已。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价