4、低照度成像技术:低照度环境下的噪声来源(热噪声、读出噪声)、降噪算法(3D降噪、2D降噪)、增益控制(AGC)的利弊

说到低照度成像,很多朋友第一反应就是「把画面调亮」。但调亮之后呢?满屏的噪点,像下雪一样。我当年调试一个户外监控项目,客户说晚上画面「全是雪花,根本看不清人脸」。嗯,这就是我们今天要聊的核心——低照度下的噪声问题。

4.1 噪声从哪里来?两大元凶

低照度环境下,信号本身就弱。你想想看,光线不足,传感器接收到的光子数量少,这时候任何一点干扰都会被放大。噪声主要来自两个地方:热噪声读出噪声

4.1.1 热噪声(暗电流噪声)

热噪声,说白了就是传感器自己「发热」产生的噪声。温度越高,电子越活跃,即使没有光照,传感器也会产生暗电流。我在项目中遇到过,夏天户外摄像机在40℃高温下,暗电流噪声比冬天高出好几倍。

  • 产生原因:半导体材料的热激发,温度每升高10℃,暗电流大约翻一倍。
  • 表现特征:均匀分布在画面上,像细沙一样,长时间曝光时尤其明显。
  • 应对思路:物理降温(散热设计)、缩短曝光时间、或者用算法做减法。

重要提示:热噪声是「加性噪声」,意味着它和信号强度无关。弱光下信号本来就弱,热噪声占比就更大,画面看起来就更脏。

4.1.2 读出噪声

读出噪声,是传感器把电荷转换成电压、再经过模数转换时引入的噪声。你可以把它理解为「读取过程的手抖」。我调试过一款CMOS传感器,读出噪声在低增益下还好,一旦增益拉高,噪声就跟着放大。

  • 产生原因:电路中的热噪声、1/f噪声、量化噪声等。
  • 表现特征:固定模式噪声(FPN)或随机噪声,有时会出现竖条纹。
  • 应对思路:优化传感器设计、采用相关双采样(CDS)技术。

个人经验:我曾经在选型时对比过两款传感器,一款读出噪声3e-,另一款5e-。在白天看不出区别,但到了晚上0.1 lux环境下,3e-那款画面干净得多。所以低照度项目,读出噪声是硬指标。

4.2 降噪算法:2D降噪 vs 3D降噪

硬件上的噪声控制有限,更多时候要靠算法来「擦屁股」。降噪算法主要分两类:2D降噪和3D降噪。我建议你理解它们的本质区别——一个只处理单帧,一个利用多帧信息。

4.2.1 2D降噪(空间域降噪)

2D降噪,就是在一张图片上做文章。它分析每个像素和周围像素的关系,把「异常点」抹平。常用的方法有均值滤波、高斯滤波、双边滤波等。

  • 优点:实现简单,计算量小,对静态场景效果好。
  • 缺点:容易丢失细节,边缘会变模糊。说白了就是「杀敌一千,自损八百」。
  • 适用场景:运动物体少、对实时性要求高的场景。
// 一个简单的2D均值滤波示例(伪代码)
for each pixel (x, y):
    sum = 0
    for each neighbor in 3x3 window:
        sum += neighbor_value
    output[x][y] = sum / 9

注意:2D降噪做过头了,画面会像「油画」一样,细节全没了。我见过一个项目,为了降噪把锐度调到最低,结果车牌号码都糊成一团。降噪和保细节永远是矛盾的。

4.2.2 3D降噪(时域降噪)

3D降噪,利用的是多帧图像之间的相关性。它假设噪声是随机的,而真实场景是连续的。通过比较前后几帧的差异,把噪声滤掉。

  • 优点:降噪效果好,能保留更多细节。尤其适合静态场景。
  • 缺点:运动场景容易出现「鬼影」(拖尾),计算量大。
  • 适用场景:固定监控、低照度长时间曝光。

核心原理:3D降噪通常结合运动检测。如果检测到运动,就降低时域滤波强度,避免鬼影;如果静止,就加大滤波强度,把噪声压下去。

我个人习惯,在项目中优先使用3D降噪,但一定要配合运动补偿。否则,你想想看,一个人从画面中走过,身后拖着一串「尾巴」,那画面多尴尬。

4.3 增益控制(AGC)的利弊

AGC,自动增益控制。说白了就是信号太弱时,把信号放大。但放大信号的同时,噪声也被放大了。这是个双刃剑。

4.3.1 AGC的好处

  • 提升亮度:在极低照度下,没有AGC画面就是黑的。
  • 自动适应:根据环境光自动调节,不用人工干预。
  • 成本低:纯软件或简单电路实现,不需要额外硬件。

4.3.2 AGC的坏处

  • 噪声放大:增益每增加6dB,噪声幅度翻倍。画面会越来越「脏」。
  • 动态范围压缩:高增益下,亮部容易过曝,暗部细节也未必能看清。
  • 色彩失真:增益过高,颜色会偏色,尤其是红色通道容易饱和。
增益值 亮度提升 噪声水平 画面质量
0dB(无增益) 暗但干净
12dB 明显 中等 可接受
24dB 很高 噪点多,细节丢失
36dB以上 极高 极高 几乎不可用

避坑指南:我曾经调试一个仓库监控,客户要求「晚上也要看得清」。我把AGC开到最大,结果画面亮是亮了,但全是噪点,客户反而投诉「还不如不开」。后来我改成限制最大增益到18dB,配合红外补光,效果反而更好。记住,AGC不是万能的,补光才是王道。

4.4 总结与实战建议

低照度成像,说白了就是和噪声做斗争。噪声来源要搞清楚,降噪算法要选对,增益控制要克制。我建议你记住三点:

  1. 先硬件后软件:选低噪声传感器、做好散热,比啥算法都管用。
  2. 3D降噪优先:静态场景用3D降噪,运动场景配合运动检测。
  3. AGC设上限:一般不超过18dB,超过这个值画面质量下降太快。

嗯,今天就聊到这里。下一章我们讲宽动态技术,到时候你会看到,低照度和宽动态其实是「一对冤家」——一个要提亮暗部,一个要压暗亮部。怎么平衡?到时候细说。