首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
遥感图像去雾全解析:从大气散射模型到深度学习实战
📅 2026/10/14 12:16:15
✍️ 爱科研究院
👁 阅读 3,247
上周帮某课题组整理遥感图像处理方向的调研资料翻到几十篇图像去雾相关的文章越看越觉得这个方向很有意思别看题目都一样背后思路的差距可以说是天壤之别。有人把去雾当图像增强做有人老老实实建模大气散射过程有人一上来就堆神经网络。这篇文章把我阅读遥感图像去雾相关文章时梳理出来的脉络完整写下来重点不是列论文清单而是回答几个更实际的问题这些方法各自解决什么问题、为什么换到遥感场景下经常失效、以及真正动手做数据、训练和评测时有哪些绕不开的坑。如果你正准备入门遥感图像去雾或者已经在跑模型但效果始终不理想这篇文章应该能帮你省下不少弯路。我按物理基础 → 经典方法 → 深度学习方法 → 评测体系 → 动手实践这个顺序来写前两节是地基后几节更像工具书哪里不会翻哪里。1. 为什么遥感图像去雾总被单独拎出来讨论很多人在刚接触遥感去雾时会有一个疑问手机拍照去雾、自动驾驶去雾、安防监控去雾这些方向已经研究了这么多年把现成的模型搬过来微调一下不就能用在遥感图像上了吗实际做下来发现完全不是这么回事。遥感图像和自然照片之间的差异不是换个域那么简单而是整个成像假设都不一样了。1.1 千米级光程带来的散射累积普通照片的成像距离通常在几米到几十米雾的影响主要来自近地表的薄雾层。而遥感图像不管是卫星拍摄还是无人机航拍光路都要穿过非常厚的大气层。卫星平台的成像高度动辄数百公里即使无人机低空遥感也有几百米到几千米的观测距离。这样一来大气分子和气溶胶颗粒对光线的散射作用不是小修小补而是会把整幅图像的对比度大幅拉低同时叠加一层明显的偏色。大气散射本身还和波长强相关。短波长的蓝紫光散射更强长波长的红光、近红外散射相对较弱这就导致雾天图像普遍偏蓝灰色而且不同波段退化的程度不一样。普通照片去雾可以不用分波段处理但遥感图像如果忽略波段差异把三个通道当作自然图像均匀去雾出来的结果往往会出现波段失衡直接影响后续光谱分析。这个细节是遥感去雾区别于普通图像去雾最核心的出发点。1.2 去雾、去云、大气校正三件事不能混为一谈读遥感去雾相关文章时经常看到这些名词混在一起但它们解决的问题其实完全不同。去雾针对的是薄雾、霾造成的对比度下降图像里地物的边缘和纹理还在只是被蒙了一层去云针对的是云层遮挡运气好时云是半透明的运气不好时云下地物信息完全丢失大气校正处理的是大气吸收和散射导致的辐射失真目标是恢复地表真实反射率更偏定量遥感那一侧。需要特别提醒的是去雾和大气校正在数据产品概念上有本质区别。大气校正需要同步获取大气参数或依赖辐射传输模型是定量反演的一部分而去雾通常只依赖图像本身目标是视觉效果和信息可解译性。读文章时先分清这层边界你才不会拿着去雾的结果去做定量分析然后又回头怪算法不靠谱。我见过不止一个初学者把去雾后的图像拿去反演地表参数结果误差反而变大其实就是混淆了这个边界。2. 大气散射模型整个领域的共同底盘无论文章用的是传统算法还是深度学习去雾研究的根基本质上都是同一个模型大气散射模型。这个模型最早是从大气物理和计算机视觉两个方向各自独立发展出来的后来逐渐收敛成一个统一的数学表达。读懂它后面所有方法就都能串起来了。2.1 一句话读懂去雾公式大气散射模型用下面这个式子描述有雾图像的退化过程I(x) J(x) * t(x) A * (1 - t(x))其中I(x)观测到的带雾图像也就是你手里拿到的原始数据J(x)理想的无雾清晰图像即我们要恢复的目标A大气光值可以理解为雾天环境光的总亮度t(x)透射率代表场景光线经过大气散射后到达传感器的比例取值在0到1之间。透射率t(x)又和观测距离直接相关可以写成t(x) exp(-β * d(x))β是大气散射系数d(x)是场景点与传感器之间的距离。从这个表达式可以看出距离越远、雾越浓透射率越低场景辐射衰减越严重。这个模型描述的现象其实很好理解。你可以想象一块半透明的毛玻璃挡在眼前透过毛玻璃看到的物体J(x)已经变暗了因为有一部分光被散射掉了同时毛玻璃本身又叠加了一层环境光A * (1 - t(x))让整个视野看起来灰蒙蒙的。去雾的任务就是从混合后的I(x)里反推出原始场景J(x)。2.2 为什么单张图像去雾是病态问题注意看这个公式已知的只有观测图像I(x)未知的量有三个——J(x)、A、t(x)。一个等式包含三个未知数这在数学上是典型的病态问题解不唯一。从物理意义上看也很好理解一幅低对比度的图像可能是雾太厚导致的也可能是场景本身动态范围很低如果没有任何额外信息算法无法区分这两种情况。所有去雾方法做的本质工作都是想办法给这个病态问题增加约束。传统方法靠的是人为设定的先验假设比如暗通道先验、颜色衰减先验深度学习方法靠的是大量数据中统计出来的映射关系或者说用神经网络隐式地学习一个更复杂的先验。了解这个背景你再看那些花哨的模型时就会明白它们都是在用自己的方式补足缺失的信息。2.3 从模型出发的两条算法路线基于这个公式所有去雾方法可以分成两条路线。第一条是显式路线先估计透射率t(x)和大气光A然后用公式反解出J(x)。暗通道先验就是典型代表。这条路线的好处是过程可解释每一步都能分析物理含义但缺陷也很明显——一旦透射率估计不准错误会直接传导到最终结果。第二条是隐式路线设计神经网络直接学习I(x)到J(x)的映射网络内部不显式输出t和A而是把物理模型内嵌在损失函数或网络结构里。这条路线在细节恢复上往往更强大但可解释性差而且非常依赖训练数据的质量。把这两条路线放在一起看就能理解为什么现在越来越多的文章在做物理模型神经网络的融合——既能利用物理约束保证合理性又能发挥深度学习在细节建模上的优势。读这类融合文章时我建议你重点关注它把物理模型的哪个环节换成了数据驱动这个环节选得对不对往往决定了模型能走多远。3. 传统三件套直方图、Retinex 和暗通道先验深度学习火起来之前遥感图像去雾基本靠三类方法。它们现在看起来不算时髦但理解它们的思路和局限对后续学习深度方法很有帮助因为很多深度模型的失败案例其实都源于传统方法的老问题。3.1 不建模型的增强派最早被用在遥感去雾上的是直方图均衡化HE及其各种变体。这类方法不建立任何物理模型单纯对像素灰度分布做变换把窄的灰度范围拉伸到整个动态范围。处理之后图像对比度确实提高了但问题也很明显它假设图像对比度损失是均匀的而真实雾效是非均匀的结果就是近处的区域被过度增强远处的区域依然灰蒙蒙一片。同一时期的另一种思路是Retinex理论它把图像分解成照射分量和反射分量认为去雾主要是调整照射分量的问题。Retinex类方法能把一些局部细节提出来视觉上确实比直方图均衡化自然但它本质上假设场景反射率是平滑变化的遇到遥感图像里的大面积城市建筑、锐利道路边界会产生明显的光晕伪影而且多尺度操作的计算代价很高一幅高分辨率遥感影像处理起来非常慢。3.2 暗通道先验为什么能火传统方法里真正改变格局的是暗通道先验Dark Channel Prior。这个先验基于一个非常朴素的统计观察在绝大多数无雾、非天空的局部区域中至少有一个颜色通道的亮度值会非常低甚至趋近于零。换句话说晴朗天气下图像的暗通道应该是很暗的而雾的存在会把大气光叠加进每个像素导致暗通道的亮度值被整体抬高。有了这个规律去雾的求解路径就清晰了对每个像素取RGB三通道的最小值再做局部最小值滤波得到暗通道图从暗通道图中取出最亮的前0.1%像素位置去原始图对应位置找亮度均值作为大气光A的估计用暗通道公式估算透射率t(x)再做一次细化处理防止边缘区域出现光晕最终用大气散射模型反解出无雾图像。暗通道先验最大的贡献是第一次用统计规律把病态问题变成了可求解的工程问题。它不需要多张图、不需要额外传感器单张图像就能出结果这让它迅速成为去雾领域的基石。但它的有效性完全建立在暗通道足够暗这个统计规律上一旦场景本身违反这个规律方法就会崩。3.3 传统方法在遥感图像上的失效点遥感图像里恰恰有很多违反暗通道假设的场景。大面积水体在晴天下暗通道确实很暗但水面一旦有太阳耀斑或波光反射暗通道会被点亮城市里的白色屋顶、玻璃幕墙、雪地、云层这些区域的暗通道天生就不暗算法会把它们误判为浓雾区结果把本不该动的区域强行提亮出现大面积偏色和伪纹理。另外还有一类被传统方法忽略的失效模式厚雾和低透射率场景。暗通道先验对薄雾很有效但透射率极低时图像的信噪比本身已经严重不足先验假设的统计基础也随之瓦解。浓雾场景里的去雾结果常会出现强烈的过饱和色差比原图更难用。说实话传统方法在遥感这个具体场景里实用价值更多是作为baseline和初始化工具真要说适应复杂地物分布的鲁棒去雾还得看后面的深度方法。4. 深度学习来了端到端黑盒与物理模型的合流深度学习进入去雾领域之后遥感图像去雾的形态发生了根本性变化。早期深度方法直接把自然图像去雾的网络结构搬过来效果在公开测试集上看着挺唬人但换到真实遥感数据上就现出原形。后来的方法开始意识到遥感场景需要的是懂遥感的网络结构而不是拿自然图像的惯性思维来套。4.1 有监督路线与合成数据是怎么造出来的深度去雾模型最理想的情况是拥有同一地点的有雾和无雾图像对但现实中很难同时拍到同一位置、同一角度、不同雾浓度的两幅高质量影像。所以绝大多数有监督方法都依赖合成数据而这个合成过程恰恰是决定模型上限的关键。典型的合成流程是先用数字高程模型或立体匹配得到场景深度图再把一张清晰的无雾遥感图像当作真值J(x)设定A和β等参数用大气散射模型逐像素生成透射率t(x)最终合成出带雾图像I(x)。这个过程的认真程度直接决定了模型的泛化能力。很多翻车案例的根源在于合成时把大气光A设成了全局常数生成的雾效太均匀。真实场景中的雾浓度通常是分层、分区域的A值也随空间变化。我见过一个效果最好的合成方案是把A从标量改成随空间缓慢变化的矩阵并让β在不同深度区域取不同分布这样训练出来的模型在真实雾图上明显更稳。4.2 无监督路线没有干净标签也要硬干真实遥感场景下干净无雾的参考图太稀缺了于是无监督方法自然成了一个活跃方向。无监督去雾的基本思路是利用循环一致性约束真实雾图经过生成器去雾后可以得到伪清晰图把这个伪清晰图再加一次雾应该能还原成原始输入。通过这种往返一致的约束即使没有成对标签模型也能学到去雾和加雾的互逆关系。这类方法的问题在于约束不够强。循环一致性只能保证整体分布接近无法约束局部细节。真实遥感图像里地物边缘非常锐利如果约束不够模型很容易在去雾的同时把边缘磨平把纹理细节也一起抹掉。更实用的做法是在循环约束之外增加感知损失、边缘保持损失或者光谱一致性损失从多个角度把生成结果约束在既清晰又真实的区间里。还有一类无监督思路是从大气散射模型本身入手利用多时刻、多角度的遥感观测互为约束。如果同一地点的历史影像中有一幅是晴天一是有薄雾模型可以利用两者共享的地物结构信息进行自监督学习。这种思路在遥感领域很有前景因为它真正利用了遥感数据重复观测的特有属性代价是数据预处理和配准的工作量很大。4.3 遥感专属结构多波段、多尺度与光谱保持自然图像去雾网络通常处理RGB三个通道但很多遥感数据是含近红外等多波段的。不同波段的大气散射特性差异明显如果把多波段数据压缩成三个通道喂给网络等于主动丢掉了最有用的物理信息。现在很多遥感去雾文章会把所有波段一起作为输入在网络中设置波段注意力模块让网络自己学习哪些波段对去雾贡献大、哪些波段不适合参与融合。尺度问题同样关键。遥感图像地物尺度变化极大一栋建筑在商业卫星影像里可能只有十几个像素而在无人机影像里有上千个像素。雾效对不同尺度地物的影响也不同小尺度纹理更容易被雾抹平。这也让多尺度特征提取成为遥感去雾网络的标配。不过多尺度带来的问题是计算量成倍增长在工程落地时通常需要配合分块推理这个后面会细说。5. 评判去雾质量PSNR 只是及格线遥感要看光谱复现文章里的去雾模型时最难的不是跑通代码而是判断什么算好结果。很多遥感去雾文章一上来就晒PSNR和SSIM这两个指标高并不代表结果在遥感场景里真的可用。我在这部分把指标拆开讲清楚再分享一个实际评测中踩过的坑。5.1 三个常用指标的极限PSNR基于像素级误差计算的是去雾结果与参考图之间的均方误差。数值越高代表整体越接近参考图但像素级的接近不代表视觉和语义的接近。比如参考图中有一片锐利的耕地边界去雾结果把边界轻微模糊但整体色调拉得更均匀PSNR反而可能上升但地物边界信息已经损失了。SSIM从亮度、对比度和结构三个维度比较两幅图像比PSNR更能反映人眼感知。但SSIM对局部的光照变化很敏感去雾后整体亮度稍有偏移SSIM就会掉得厉害而这在遥感图像中经常是允许的。更麻烦的是SSIM的局部窗口大小需要人工设定窗口太小对低频雾效不敏感窗口太大又会忽略细节默认参数并不适合遥感图像。UQI作为统一图像质量指标计算的是像素均值、方差和协方差的组合本质上和SSIM有交集但更容易受到图像内非平稳特性的影响。这三个指标有个共同的致命缺陷它们设计时的参考基准都是自然图像没有考虑遥感图像分析任务对光谱保真的需求。一个去雾后的图像看着更亮更锐利不代表地物光谱曲线仍然保持原来的形态。5.2 遥感图像特有的评测维度遥感去雾评测必须额外关注三个维度。第一是光谱保真度通常用光谱角制图SAM来衡量它计算的是去雾前后像素光谱向量的夹角夹角越小代表光谱越保真。第二是边缘保持能力一般在参考图上提取地物边缘再去模糊结果图上检测对应边缘的强度比例看去雾算法有没有把道路、建筑边界磨掉。第三是应用任务验证比如把去雾前后的图像分别送入地物分类器比较分类精度的变化这是最朴素也最说服力的评测方式。这三种评测的权重取决于应用目标。如果去雾结果用于目视解译边缘保持的优先级高一些如果用于遥感反演光谱保真必须放在第一位。很多在自然图像上性能优异的去雾模型拿到遥感应用任务里一测就露馅原因就在这里。5.3 一个分数很高但实际不能用的复盘案例之前在某个模拟项目X里我在一组高分遥感数据上评测同一个去雾模型PSNR虽然高但SAM指标表现很差。翻查具体输出后发现模型为了拉高PSNR把雾图整体提亮、强行往参考图的像素分布上靠结果把原本在暗区域里才有效的光谱信息全部挤压变形。从视觉上看图像确实变清晰了但地物光谱曲线严重偏离真实值。这个案例让我记了一个深刻教训评测去雾模型时不要只看一两个指标一定要结合任务来定权重。如果项目目标是后续做地物分类或定量反演光谱保真度的权重必须给足如果目标只是生成一张视觉上干净快速的底图PSNR和SSIM才适合作为主要参考。选指标之前先想清楚应用场景比事后调模型重要得多。6. 复现与落地数据合成、训练细节和避坑建议最后这部分聊聊动手阶段的事。我复现过多篇遥感去雾相关的网络也自己造过训练数据踩过的坑不少。下面这些经验不一定全对但都是实际跑出来的照着做至少能少走两三个月的弯路。6.1 数据准备的两条路线第一条路线是纯合成。找一幅大尺寸无云无雾的高分辨率遥感影像配合深度估计结果造出大气散射模型所需参数生成带雾图像对。这条路线的优势是标签完全可控可以针对薄雾、霾、局部浓雾等不同场景批量生成劣势是合成分布和真实雾效之间总有gap需要在训练时加入随机扰动来缓解。第二条路线是真实数据配准。利用同一地区不同时间的历史影像挑选晴好天气和轻度雾霾天气的图像对进行严格配准后作为训练样本。这条路线的数据真实但配准误差和光照变化会污染训练数据而且很难找到成对的大规模数据集。我的建议是两路并行用合成数据训练主模型用少量真实数据做微调和验证这样既能保证数量又能保证泛化。6.2 工程化训练与推理细节训练遥感去雾网络时最容易忽视的是归一化。自然图像预训练模型通常使用ImageNet统计量做归一化但遥感影像的多波段数据分布完全不同——有的波段均值很高有的波段方差很大直接套用会破坏原有的光谱比例。正确做法是按各波段自己的统计量做Z-Score归一化或者在训练时让网络接收未归一化的原始DN值把归一化作为网络第一层可学习的部分。推理阶段同样有坑。高分辨率遥感影像通常很大一次送入GPU必然显存溢出常见的做法是分块推理。分块时要注意块与块之间的重叠带重叠太薄会产生接缝效应重叠太厚又浪费算力。我一般取256或512像素的块设置16到32像素的重叠推理完再对重叠区域做加权平均平滑这样基本看不见接缝。如果场景有丰富的线性地物道路、河流建议在推理阶段做大范围的低频补偿否则分块会导致线性地物在块边界处出现轻微错位。6.3 给不同阶段实践者的建议如果你是刚接触遥感去雾的初学者我不建议一上来就碰大型生成模型。先把暗通道先验完整复现一遍在本地找几幅真实的雾天遥感影像跑通流程观察它在水面、白屋顶、云边缘这些地方怎么失效。这个过程能让你建立最直观的物理直觉也能帮你看懂后来所有深度学习文章里为什么这样设计损失函数。如果你已经有深度学习经验想快速在一个遥感去雾项目上出成果请把百分之六十的精力放在数据上。多研究合成数据的物理合理性、多收集真实不同雾浓度的影像、多写几个针对遥感特点的数据增强策略这些对最终精度的影响远大于换一个更花哨的网络结构。去雾的物理过程其实已经被大气散射模型描述得很清楚了深度学习要解决的只是如何更精确地估计中间量而任何网络在困难数据面前都是脆弱的。最后再分享一个小技巧是我在这些项目里反复验证过的合成训练数据时不要把所有图像都等量切成正方形小块。遥感图像的雾效在空间上是大范围平滑的很多细节和纹理在长宽比较大的区块内才更容易被模型学到。我习惯在训练时混用不同长宽比的随机裁剪既保留大尺度雾效的结构信息又保证小目标地物不会被过度下采样。这个改动看起来不起眼但对最终去雾效果的提升通常比加一层注意力模块还明显。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/14 12:11:13
脉冲压缩与相参积累:雷达信号处理核心技术的工程实践与代码解析
2026/10/14 12:11:13
CSS鼠标指针样式与点击效果实战指南
2026/10/14 12:11:13
Node.js+Vue全栈博客社交系统开发实践
2026/10/14 13:01:31
AI辅助编程构建浏览器多人开放世界:架构与同步实战
2026/10/14 13:01:31
Java实现云点播视频上传与转码全流程实战
2026/10/14 13:01:31
《编码》勘误与阅读路线:避开翻译错误,真正理解计算机抽象阶梯
2026/10/14 13:01:31
ABAP屏幕设计从入门到实战:PBO、PAI与GUI状态全解析
2026/10/14 13:01:30
DzzOffice小胡版V1.90.1私有部署实战指南
2026/10/14 12:56:30
苹果内购实战:从StoreKit 2到服务端验证的避坑指南
2026/10/14 0:02:01
Oracle 19c Windows客户端安装配置与连接排错指南
2026/10/14 0:02:01
React Native截图优化:解决Android兼容性问题
2026/10/14 0:02:01
金属锈蚀速率计算模型与防护方案优化实践
2026/10/13 12:25:09
流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南
2026/10/13 18:15:04
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别
2026/10/13 8:14:22
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容
2026/10/12 19:53:23
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/11 21:41:11
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/11 23:43:10
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)