4、AE算法核心:直方图统计与权重,测光模式
曝光算法说白了就是回答一个问题:当前场景到底该亮多少? 答案不在传感器上,而在直方图里。我做了这么多年ISP,见过太多团队把AE调成“死黑一片”或者“过曝成片”,根源都是没吃透直方图和测光模式的关系。
今天咱们就把这块硬骨头啃下来。
4.1 直方图统计:曝光的“体检报告”
直方图是什么?它统计了图像里每个亮度等级上有多少像素。横轴是亮度(0~255,8bit),纵轴是像素数量。你想想看,一张图如果大部分像素挤在左边,那就是欠曝;挤在右边,就是过曝;中间鼓起来,说明细节丰富。
但这里有个坑——直接拿原始直方图做平均,结果往往不对。为什么?因为场景里可能有大面积天空、白色墙壁或者黑色背景,这些区域会严重拉偏统计结果。
我举个例子。有一次调试户外监控摄像头,画面里一半是天空,一半是地面行人。直接用全图平均,AE把曝光压得很低,地面人脸全黑了。后来怎么解决的?给天空区域降权,给地面区域加权。这就是权重的作用。
4.1.1 权重分配策略
权重不是拍脑袋定的,一般分三层:
- 亮度权重:中间调(64~192)给高权重,暗部和亮部给低权重。因为中间调承载了大部分细节。
- 空间权重:图像中心区域权重高,边缘权重低。这是模仿人眼注意力。
- 内容权重:人脸区域、运动区域、高对比度区域,权重可以动态提升。
实际工程里,我习惯把这三层权重做成一张权重图,跟直方图逐像素相乘,再做统计。这样算出来的目标亮度才靠谱。
4.2 测光模式:四种武器
测光模式决定了“用哪些像素、怎么加权”来计算曝光。不同场景选不同模式,这是AE调优的基本功。
| 测光模式 | 核心思想 | 适用场景 | 我踩过的坑 |
|---|---|---|---|
| 全局测光 | 全图像素等权平均 | 光照均匀的场景 | 逆光时主体全黑 |
| 中央重点测光 | 中心区域权重高(约70%~80%) | 人像、主体居中的场景 | 主体偏离中心时失效 |
| 点测光 | 只取画面中心1%~5%区域 | 舞台、逆光、高反差场景 | 对焦点选错直接翻车 |
| 矩阵测光 | 画面分区,每区独立统计+智能加权 | 复杂场景、自动模式 | 算法复杂度高,调参周期长 |
4.2.1 全局测光:简单但粗暴
全局测光就是把全图所有像素的亮度加起来除以像素总数。实现简单,但问题也明显——它假设所有区域对曝光贡献一样。这在光照均匀的室内还行,一到逆光、夜景、高反差场景,结果就惨不忍睹。
我曾经在一个逆光人像项目里,用全局测光怎么调都调不好。人脸黑成剪影,背景却正常。后来换成中央重点测光,问题立刻解决。所以全局测光只适合“安全场景”,别指望它处理复杂情况。
4.2.2 中央重点测光:人像利器
中央重点测光给图像中心区域分配高权重,边缘权重低。权重分布通常是一个高斯核或者圆形渐变。中心半径占画面20%~30%时,效果最自然。
嗯,这里要注意:中央重点测光不是点测光。它仍然考虑了背景,只是中心权重更大。所以当主体偏离中心时,曝光会偏向背景,导致主体曝光不准。这时候就得靠人脸检测来动态调整权重中心了。
4.2.3 点测光:精准但危险
点测光只取画面中心一个很小的区域(通常1%~5%),完全忽略其他区域。精度极高,但风险也极高——对焦点选错,整个画面就废了。
我记得有一次调试舞台追光场景,演员站在聚光灯下,背景全黑。用点测光对准演员脸部,曝光完美。但一旦演员移动,对焦点滑到背景上,画面立刻过曝。所以点测光必须配合自动对焦联动或者触摸选择测光点,否则就是定时炸弹。
4.2.4 矩阵测光:智能但复杂
矩阵测光是目前手机和相机的主流方案。它将画面分成M×N个区域(常见16×16、32×32),每个区域独立统计直方图,然后根据区域内容(亮度、对比度、色彩、人脸等)动态分配权重。
说白了,矩阵测光就是一个小型AI决策系统。它需要大量的场景库和调参经验才能做好。我见过有些团队把矩阵测光调成“玄学”,参数改一个数字,效果天差地别。
我个人习惯的做法是:先固定权重模板,用几百张典型场景图跑一遍,看哪些场景曝光不准,再针对性地调整分区权重。不要一上来就搞动态权重,那会陷入调参地狱。
4.3 直方图与测光模式的联动
直方图是“数据”,测光模式是“策略”。两者必须联动,才能做出好的AE。
举个例子。你用中央重点测光拍人像,直方图统计时,中心区域的像素权重是80%,边缘是20%。算出来的目标亮度,会优先保证中心区域曝光正常。然后AE根据这个目标亮度,调整曝光时间、增益、光圈。
但这里有个细节:直方图统计的权重,和测光模式的权重,是同一张权重图吗? 答案是:可以共用,也可以独立。我建议独立。测光模式权重决定“哪些区域重要”,直方图权重决定“哪些亮度重要”。两者相乘,得到最终的统计权重。
这样设计的好处是:测光模式负责空间选择,直方图权重负责亮度选择,互不干扰,调参也清晰。
4.4 知识结构图
下面这张图总结了直方图统计、权重分配和四种测光模式的关系。你可以把它当作AE算法的“地图”。
4.5 实战建议
最后给几条实在的建议:
- 先定测光模式,再调权重。模式选错了,权重调得再好也没用。
- 权重图用查表法实现。别在AE循环里做浮点运算,性能扛不住。
- 矩阵测光不要一上来就搞动态权重。先固定权重跑通流程,再逐步加入场景识别。
- 点测光必须配合测光点锁定。否则用户手一抖,曝光就崩了。
直方图和测光模式是AE的基石。这块搞明白了,后面联动AWB、调优策略才能顺起来。