自动曝光(AE)基础:曝光三要素与评价标准
自动曝光,说白了就是让摄像头自己决定「进多少光」。你按下快门,它帮你算好光圈、快门、ISO这三个参数,最终输出一张亮度合适的图像。
我刚开始做AE调优时,总觉得这玩意儿很简单——不就是调亮度嘛。直到有一次在户外强光下,画面过曝得一塌糊涂,我才意识到:曝光控制远不止「亮」和「暗」这么简单。
曝光三要素:光圈、快门、ISO
这三者共同决定了传感器接收到的总光量。我习惯用一个比喻来理解:光圈是水龙头口径,快门是开水时间,ISO是水桶的放大倍数。
| 要素 | 物理含义 | 对图像的影响 | 典型范围(手机) |
|---|---|---|---|
| 光圈(Aperture) | 镜头通光孔径大小,用F数表示(F1.8、F2.0等) | F值越小,进光越多;同时影响景深 | F1.4 ~ F2.4(固定光圈居多) |
| 快门(Shutter Speed) | 传感器曝光时间,单位秒或毫秒 | 时间越长,进光越多;但手抖/运动模糊风险增加 | 1/8000s ~ 1s(夜景可达数秒) |
| ISO(感光度) | 传感器信号放大增益 | ISO越高,亮度越高;但噪声也越明显 | 50 ~ 6400(部分机型可达12800) |
核心公式(简化版):
图像亮度 ∝ 光圈面积 × 快门时间 × ISO增益
即:亮度 ∝ (1/F²) × T × ISO
嗯,这里要注意:手机摄像头的光圈通常是固定的。你想想看,手机镜头就那么小一点,做可变光圈的成本和体积都划不来。所以手机AE主要调节的是快门和ISO这两个自由度。
AE的目标:找到「刚刚好」的亮度
AE算法的核心任务就一句话:让输出图像的目标区域亮度落在人眼觉得舒服的范围里。
具体来说,我们通常用目标亮度(Target Luminance)来量化这个「舒服」。这个值一般用8位图像的灰度值表示,范围0~255。我个人习惯把目标亮度设在110~130之间,对应18%中性灰的映射。
为什么会是这个范围?因为人眼对中间调最敏感,太暗或太亮都会丢失细节。我在项目中遇到过一个问题:某款手机在室内拍人脸总是偏暗,后来发现是目标亮度设得太低(只有90),导致AE算法一直在压低曝光。调高到120后,人脸亮度就正常了。
评价标准:过曝/欠曝容忍度
AE不能只看平均亮度,还得考虑高光区域和暗部区域。你想想看,如果为了让人脸亮起来,结果背景天空一片死白,那这张照片也是废的。
所以我们引入了两个关键指标:
- 过曝容忍度(Overexposure Tolerance):允许高光区域饱和的比例。通常设定为画面总像素的1%~5%超过阈值(比如250)。
- 欠曝容忍度(Underexposure Tolerance):允许暗部区域纯黑的比例。通常设定为画面总像素的0.5%~2%低于阈值(比如5)。
实战经验:
我曾经调过一款户外监控摄像头,过曝容忍度设得太宽松(10%),结果正午时分画面大面积死白。后来收紧到2%,配合HDR策略才解决问题。记住:过曝比欠曝更难修复,因为高光区域一旦饱和,信息就彻底丢失了。
AE算法的评价流程
实际调优时,我们通常按以下步骤评估AE效果:
- 采集测试场景:包括室内、室外、逆光、夜景、高对比度场景等。
- 计算图像统计信息:直方图、平均亮度、区域亮度分布。
- 检查目标亮度偏差:实际平均亮度与目标亮度的差值,通常要求偏差≤±10(8位灰度)。
- 检查过曝/欠曝区域:统计超过阈值和低于阈值的像素比例。
- 评估收敛速度:从暗到亮或从亮到暗场景切换时,AE需要多少帧稳定下来。我一般要求≤15帧内完成收敛。
避坑指南:
我曾经遇到一个案例:AE在室内场景表现完美,但一到户外强光下就疯狂振荡。后来发现是曝光补偿策略出了问题——算法在快门和ISO之间来回切换,导致亮度忽高忽低。解决方案是给快门和ISO的调整加上滞回区间,避免频繁跳变。
知识体系框架
下面这张图总结了本章的核心逻辑,我建议你多看几遍,把三要素、目标、评价标准串起来理解:
调优实战要点
最后,我总结几个实际调优中容易踩的坑:
- 不要只看平均亮度:平均亮度达标不代表画面好。比如逆光场景,平均亮度可能正常,但人脸是黑的。一定要结合区域权重来评估。
- 注意收敛速度:AE从暗场景切换到亮场景时,如果收敛太慢,用户会看到明显的闪烁。我一般要求15帧内稳定,超过20帧就要优化算法了。
- 小心ISO噪声:在暗光环境下,AE倾向于拉高ISO来保证亮度。但ISO超过800后,噪声会明显增加。这时候应该优先考虑降低快门速度(配合防抖),而不是一味拉ISO。
一句话总结:
AE调优就是在快门、ISO、目标亮度、过曝/欠曝容忍度之间找平衡。没有完美的参数,只有最适合当前场景的配置。