一、低光照场景概述与挑战
大家好,我是老张。做图像处理这行十几年了,今天咱们聊聊低光照场景。说实话,这个课题我踩过的坑比走过的路还多。你想想看,摄像头在光线不足的时候,画面又暗又糊,这问题困扰了多少工程师?
低光照场景,说白了就是环境亮度低于传感器正常工作的最佳照度范围。一般来讲,当环境照度低于 10 lux 时,我们就进入了低光照的范畴。我习惯把 1-10 lux 叫「微光」,0.1-1 lux 叫「极暗」,低于 0.1 lux 那基本就是「伸手不见五指」了。
核心观点:低光照不是简单的「暗」,而是信号与噪声的博弈。你每多留一帧细节,噪声就可能翻倍。
1.1 典型应用场景
低光照处理无处不在。我挑三个最常见的场景说说:
- 安防监控:这是最典型的场景。晚上小区、停车场、仓库,摄像头得能看清人脸和车牌。我记得有一次做某小区的监控项目,晚上画面全是噪点,业主投诉说「这跟马赛克有啥区别?」——嗯,从那以后我对低光照降噪就格外上心。
- 自动驾驶夜间模式:这个要求更高。车在夜里跑,得看清路障、行人、交通标志。我曾经参与过一个夜间辅助驾驶的项目,最头疼的是对面来车的大灯——瞬间过曝,周围全黑,动态范围根本拉不住。
- 手机夜景拍照:现在手机都吹「夜视仪」,但说实话,多帧合成和 AI 降噪虽然有用,可处理不好就容易出现「油画感」——细节全磨没了。我自己用手机拍夜景,最怕的就是拍完放大一看,人脸像打了马赛克。
1.2 低光照带来的技术挑战
为什么会这么难?我总结了三座大山:
1. 噪声
这是最直接的敌人。光线不足,传感器就得提高增益(ISO),结果就是噪声被一起放大。我见过最夸张的情况——某款 sensor 在 30dB 增益下,信噪比直接掉到 20dB 以下,画面里全是「雪花」。噪声主要分两种:
- 光子散粒噪声:物理极限,没法完全消除。说白了就是光子到达数量随机波动导致的。
- 读出噪声:电路本身引入的。这个可以通过更好的 sensor 设计和模拟前端来压制。
我的经验:降噪不是越狠越好。我曾经在某个项目里把降噪开到最大,结果画面是干净了,但运动物体的拖影严重到没法看。后来我学乖了——先做运动检测,再分区域降噪。
2. 动态范围
低光照场景往往伴随着高动态范围。比如夜景里,路灯很亮,树影很暗。传感器就那么点动态范围(一般 60-70dB),顾了亮部就丢了暗部。我习惯用「HDR 多帧合成」来解决,但代价是帧率下降,运动物体容易鬼影。
这里有个表格,对比了几种常见方案的动态范围表现:
| 方案 | 动态范围 | 帧率影响 | 运动伪影 |
|---|---|---|---|
| 单帧线性模式 | 60-65 dB | 无 | 无 |
| 双帧 HDR | 80-90 dB | 降低 50% | 中等 |
| 三帧 HDR | 100-110 dB | 降低 66% | 严重 |
| DOL HDR(数字重叠) | 90-100 dB | 降低 30% | 轻微 |
我个人比较推荐 DOL HDR,它在动态范围和运动伪影之间平衡得最好。不过代价是 sensor 要支持,成本会高一些。
3. 细节丢失
这是最隐蔽的问题。低光照下,暗部区域的纹理信息被噪声淹没,或者被降噪算法误当成噪声给抹掉了。你想想看,一张夜景照片,天空是干净的,但建筑物的砖缝全没了——这就是细节丢失。
我曾经做过一个实验:在 5 lux 下拍摄一张打印的测试图,原图有 20 级灰度条。经过 ISP 处理后,暗部的 8 级灰度条完全无法区分。说白了,就是信息被「吃」掉了。
避坑指南:千万不要为了降噪而过度平滑。我曾经在一个项目中把细节保留参数调得太低,结果客户反馈「画面像塑料一样」。后来我改用边缘保留滤波(比如双边滤波),效果好了很多。
1.3 知识体系总览
说了这么多,我画了一张图,帮你把低光照场景的核心逻辑串起来:
这张图把低光照场景的核心逻辑串起来了。从左到右看:先有场景,再面对挑战,然后制定策略。右侧是三个典型应用,每个场景对噪声、动态范围、细节的要求都不一样。比如安防更看重噪声控制,自动驾驶更看重动态范围,手机拍照则三者都要兼顾。
好了,这一章就聊到这儿。低光照场景的挑战,说白了就是「在黑暗中看清世界」。下一章我会深入讲讲 ISP Pipeline 中与低光照相关的模块,包括 AEC、AGC、降噪、HDR 等,咱们到时候再细聊。