3、低光照图像模型:噪声模型与Retinex理论

做低光照增强,第一件事不是调算法,而是搞清楚——图像到底是怎么变差的。

我早年接过一个安防项目,摄像头在楼道里,晚上几乎全黑。我用了一堆增强算法,结果噪点比信号还明显。后来才意识到:不懂噪声模型,调参就是瞎蒙。

这一章,我们就来拆解低光照图像的退化机制。从噪声类型到光照退化,再到经典的Retinex理论。嗯,都是后面实战的基础。

3.1 噪声模型:三种最常见的噪声

低光照下,噪声是主要矛盾。传感器接收的光子少,信噪比就低。我习惯把噪声分成三类来理解:

噪声类型 来源 数学模型 特点
高斯噪声 传感器热噪声、电路读出噪声 均值为0,方差σ² 加性、与信号无关
泊松噪声 光子到达的随机性(散粒噪声) 均值=方差=λ 信号相关,暗区更明显
散粒噪声 光电转换过程的量子涨落 泊松分布特例 低光照下主导噪声

3.1.1 高斯噪声

高斯噪声是最基础的模型。说白了,就是每个像素上叠加一个随机值,服从正态分布。

数学上很简单:

I_noisy = I_clean + n,  n ~ N(0, σ²)

我在项目中遇到过:用CMOS传感器在长曝光时,热噪声会明显增加。这时候σ会随温度升高而变大。所以工业相机往往带制冷——不是炫技,是真的有用。

实用技巧:高斯噪声的σ值,可以通过拍摄一张全黑帧(盖上镜头盖)来估计。取图像的标准差即可。

3.1.2 泊松噪声与散粒噪声

这个要重点讲。低光照下,散粒噪声才是主角。

你想想看:光子到达传感器是随机的,服从泊松分布。光照越弱,光子数越少,随机波动就越明显。这就是散粒噪声的本质。

模型是这样的:

I_noisy ~ Poisson(λ), 其中 λ = I_clean

注意:泊松噪声的方差等于均值。也就是说,亮区噪声大,暗区噪声小。但暗区信噪比更低,所以看起来更脏。

避坑指南:我曾经直接用高斯滤波器去噪低光照图像,结果暗部细节全糊了。后来改用泊松-高斯混合模型(P-G模型),效果才正常。记住:低光照下,纯高斯假设是错的。

3.2 光照退化模型

除了噪声,光照本身也在退化。低光照图像可以建模为:

I(x,y) = R(x,y) · L(x,y) + N(x,y)

其中:

  • I:观测到的图像
  • R:反射率(物体固有属性)
  • L:光照分量(平滑、缓慢变化)
  • N:噪声

这个模型告诉我们两件事:

  1. 低光照主要是L分量小,不是物体本身黑
  2. 增强的本质是估计L并补偿它,同时抑制N

我习惯把这个过程画成一张图,方便理解:

低光照图像退化模型 光照 L(x,y) 反射率 R(x,y) × 理想信号 S + 噪声 N(x,y) 观测图像 I(x,y) 核心公式:I = R · L + N 增强目标:从 I 中估计 L,恢复 R,同时抑制 N

3.3 Retinex理论简介

Retinex是"Retina"和"Cortex"的合成词。这个理论的核心观点很朴素:人眼感知的颜色,取决于反射率,而不是光照。

换句话说:一张白纸在阳光下是白的,在阴影里也是白的。但相机拍出来,阴影里的纸就是灰的。Retinex要做的,就是把人眼的这个能力教给算法。

3.3.1 核心假设

  • 光照分量L是平滑的:变化缓慢,低频
  • 反射分量R是突变的:边缘、纹理,高频
  • 两者相乘得到观测图像

所以Retinex的求解思路就是:从I中分离出L和R。怎么做?取对数,把乘法变加法:

log(I) = log(R) + log(L)

然后,用低通滤波器估计log(L),再用减法得到log(R)。最后指数还原。

关键理解:Retinex本质上是一个光照-反射率分解问题。所有后续的增强算法,几乎都绕不开这个框架。

3.3.2 经典方法:SSR与MSR

方法 全称 核心思路 缺点
SSR 单尺度Retinex 用一个高斯核估计光照 尺度难选,要么光晕要么细节丢失
MSR 多尺度Retinex 多个高斯核加权融合 计算量大,颜色容易失真
MSRCR 带颜色恢复的MSR 加入颜色恢复因子 参数多,调参麻烦

我早期做低光照增强时,直接调OpenCV的MSRCR。效果嘛……有时候惊艳,有时候翻车。后来才明白:Retinex假设光照是平滑的,但现实中的光照往往有硬阴影。这就是它的天花板。

注意:Retinex对噪声敏感。低光照图像本身信噪比低,直接做Retinex分解,会把噪声放大到反射分量里。所以实际工程中,去噪和Retinex要联合做,不能分开。

3.4 本章小结

这一章我们拆解了低光照图像的退化机制:

  • 噪声模型:高斯、泊松、散粒——低光照下散粒噪声是主要矛盾
  • 光照退化模型:I = R·L + N,增强就是估计L、恢复R、抑制N
  • Retinex理论:从人眼感知出发,做光照-反射率分解