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 总结与实战建议
低照度成像,说白了就是和噪声做斗争。噪声来源要搞清楚,降噪算法要选对,增益控制要克制。我建议你记住三点:
- 先硬件后软件:选低噪声传感器、做好散热,比啥算法都管用。
- 3D降噪优先:静态场景用3D降噪,运动场景配合运动检测。
- AGC设上限:一般不超过18dB,超过这个值画面质量下降太快。
嗯,今天就聊到这里。下一章我们讲宽动态技术,到时候你会看到,低照度和宽动态其实是「一对冤家」——一个要提亮暗部,一个要压暗亮部。怎么平衡?到时候细说。