2. 图像退化模型与物理基础

做去雾算法,第一件事不是调参数,而是理解雾是怎么来的。

我刚开始接触这个方向时,也踩过坑——拿着深度学习模型直接怼雾图,结果效果时好时坏。后来才明白,不懂物理模型,调参就是瞎蒙。

这一章,我们把雾天成像的物理基础讲透。顺便把多帧合成的数学底子也搭起来。

2.1 大气散射模型

雾天拍照,光线是怎么到传感器的?

说白了,相机接收到的光由两部分组成:

  • 直接衰减:物体反射的光,穿过雾气,一路被散射削弱
  • 大气光:环境光被雾气颗粒散射进相机,形成雾蒙蒙的底色

这就是经典的大气散射模型,公式长这样:

I(x) = J(x) * t(x) + A * (1 - t(x))

其中:

符号 含义 备注
I(x) 观测到的雾图 你拿到的原始图像
J(x) 无雾的清晰图像 我们要恢复的目标
t(x) 透射率 光线穿透雾气的比例,0~1
A 全局大气光 天空区域的亮度值

这个模型,是所有去雾算法的起点。你想想看,只要估计出 t(x) 和 A,就能反推出 J(x)。

核心思路:去雾 = 从 I(x) 中分离出 J(x),关键在透射率 t(x) 和大气光 A 的估计。

2.2 雾天图像退化原理

为什么雾天图像对比度低、颜色发白?

原因就两个:

  1. 物体信号衰减:距离越远,t(x) 越小,物体细节越模糊
  2. 大气光叠加:雾越浓,A * (1 - t(x)) 占比越大,图像整体偏灰白

我记得有一次做车载摄像头去雾,发现远处车辆几乎消失在雾里。当时测了一下,距离200米时透射率已经降到0.3以下。说白了,雾天图像退化,本质是信噪比急剧下降。

经验之谈:透射率 t(x) 与场景深度 d(x) 呈指数关系:t(x) = e^(-β * d(x))。β 是大气散射系数,雾越浓 β 越大。

这里有个避坑点——不要假设全局透射率一致。我见过有人用单一 t 值做去雾,结果近处过暗、远处还是雾蒙蒙。真实场景中,透射率是随深度变化的。

2.3 多帧合成的数学基础

单帧去雾有天花板——信息不够。多帧合成就不一样了,你想想看,多张图互相补充,能恢复出更多细节。

多帧合成的核心两步:配准 + 融合。

2.3.1 配准:把多张图对齐

手持拍摄,帧与帧之间肯定有偏移。配准就是算出一个变换矩阵,把各帧映射到同一坐标系。

常用的配准模型:

模型 自由度 适用场景
平移变换 2 纯抖动,无旋转
仿射变换 6 小角度旋转 + 平移
透视变换 8 大角度变化、视角差异

我个人习惯先用光流法做粗配准,再用特征匹配精调。光流法速度快,但精度一般;特征匹配(比如 SIFT、ORB)精度高,但计算量大。

注意:配准不准,融合就是灾难。我曾经在运动场景下用全局仿射变换,结果车辆边缘出现重影。后来改用局部光流 + 鲁棒估计才解决。

2.3.2 融合:把对齐后的信息合并

配准完成后,多帧信息怎么合并?

常见融合策略:

  • 均值融合:简单平均,能降噪,但会模糊细节
  • 中值融合:对异常点鲁棒,适合去除运动物体
  • 加权融合:根据置信度分配权重,质量高的帧贡献更大
  • 金字塔融合:多尺度分解,低频均值、高频取最大

我做多帧去雾时,常用加权融合 + 拉普拉斯金字塔。低频部分用均值平滑雾区,高频部分保留边缘细节。效果比单帧去雾好一大截。

多帧合成的优势:通过多帧信息互补,可以突破单帧去雾的信息瓶颈,尤其在透射率估计和噪声抑制上效果显著。

2.4 知识结构总览

下面这张图,把本章的核心逻辑串起来了:

图像退化模型与多帧合成知识结构 大气散射模型 雾天退化原理 多帧合成数学基础 I(x) = J*t + A*(1-t) 透射率 t(x) 信号衰减 大气光叠加 配准 融合 核心逻辑 大气散射模型描述雾天成像物理过程 多帧合成通过配准+融合突破单帧信息瓶颈

2.5 本章小结

这一章,我们干了三件事:

  • 搞懂了大气散射模型——去雾的物理根基
  • 理清了雾天退化原理——信号衰减 + 大气光叠加
  • 搭起了多帧合成数学框架——配准 + 融合