自动曝光(AE)基础:曝光三角、直方图与经典控制策略

各位同学,欢迎来到第二章。今天咱们聊聊自动曝光(AE)的基础。说实话,AE 是 3A 里最“物理”的一个环节——它直接跟镜头、传感器打交道。我刚开始调 AE 的时候,总觉得不就是调个亮度嘛,后来才发现,这里面的坑,一个比一个深。

曝光三角:光圈、快门、ISO

曝光三角,说白了就是控制进光量的三个旋钮。你想想看,一张照片要亮起来,无非就是:进光的口子开多大(光圈)、进光的时间有多长(快门)、传感器对光的敏感度有多高(ISO)。

参数 物理含义 对亮度的影响 副作用
光圈(Aperture) 镜头通光孔径的大小 F 值越小,进光越多 景深变浅,边缘画质下降
快门(Shutter) 传感器感光的时间长度 时间越长,进光越多 运动模糊,手持抖动
ISO 传感器信号的放大增益 增益越高,信号越亮 噪声爆炸,动态范围压缩
我的经验: 调 AE 时,优先动快门和 ISO,最后才动光圈。为什么?因为光圈一变,整个镜头的 MTF(调制传递函数)曲线都会变,画质分析那边会找你麻烦的。

这里有个关键点:曝光三角不是独立工作的。你调了光圈,就得补偿快门或 ISO。我见过不少新手,为了压低 ISO 降噪,把快门拉得很长,结果拍出来的全是鬼影。嗯,这就是没理解三角的联动关系。

亮度直方图与目标亮度

直方图,是 AE 的眼睛。它统计了画面里每个亮度级别的像素数量。横轴是 0~255(8bit)或 0~1(归一化),纵轴是像素个数。

我个人习惯把直方图分成三个区:

  • 暗区(0~85): 阴影细节,过暗就死黑一片。
  • 中间区(86~170): 主体亮度,大部分场景的目标落在这里。
  • 亮区(171~255): 高光细节,过亮就过曝,拉不回来。

目标亮度,就是 AE 想让直方图的“重心”落在哪个位置。比如室内人像,我一般把目标亮度设在 120~140(8bit),让肤色看起来通透。但如果是夜景,目标亮度就得降到 40~60,否则噪点全出来了。

避坑指南: 我曾经在强逆光场景下,把目标亮度设得太高,结果背景过曝成一片死白。后来我加了“区域权重”——只对画面中心 60% 的区域计算直方图,才解决了这个问题。

AE 的经典控制策略

AE 的核心,就是让当前亮度 L_cur 逼近目标亮度 L_target。怎么逼近?业界有两种经典策略:爬山法和 PID。

爬山法(Hill Climbing)

爬山法,说白了就是“试错”。它先朝一个方向调整曝光参数,然后看亮度变化:

  • 如果亮度变大了,说明方向对了,继续走。
  • 如果亮度变小了,说明方向错了,掉头。
  • 如果亮度不变或震荡,说明到顶了,停下来。

听起来简单对吧?但实际调起来,问题很多。我记得有一次在无人机项目里,爬山法在快速光照变化下,一直在来回震荡,根本收敛不了。为什么?因为爬山法没有“记忆”,它不知道之前走过哪条路。

爬山法的优缺点:
  • 优点:实现简单,不需要系统模型。
  • 缺点:收敛慢,容易震荡,对噪声敏感。

PID 控制

PID 就聪明多了。它不光看当前误差(P),还看误差的变化趋势(D),以及误差的累积(I)。公式长这样:

output = Kp * error + Ki * ∫error dt + Kd * d(error)/dt

其中:

  • P(比例): 当前亮度离目标有多远。误差大,就大步调;误差小,就小步调。
  • I(积分): 消除稳态误差。比如一直偏暗,I 项会慢慢累积,直到把亮度拉回来。
  • D(微分): 抑制震荡。如果亮度变化太快,D 项会“踩刹车”。

我个人的调参习惯是:先调 P,让系统能响应;再加 D,抑制过冲;最后加 I,消除静差。千万别一上来三个参数一起调,你会疯掉的。

实战技巧: 在手机摄像头项目里,我遇到过场景切换时亮度突变的问题。后来我在 PID 输出端加了一个“限幅器”,限制每次调整的最大步长,画面就平滑多了。

两种策略的对比

维度 爬山法 PID
收敛速度 慢,依赖步长 快,可调参数多
抗噪声能力 弱,容易误判 强,D 项可滤波
实现复杂度 低,几行代码 中,需要调参经验
适用场景 光照稳定、低帧率 光照多变、高帧率

AE 控制流程图

下面这张图,是我自己总结的 AE 控制流程。你把它看懂了,后面调参就顺了。

AE 控制流程图 AE 经典控制流程图 传感器 RAW 数据 计算亮度直方图 计算误差 e = L_target - L_cur |e| > 阈值? 是 执行 PID / 爬山法 否 保持当前参数 更新曝光参数 阈值一般设为 3~5 个灰度级

这张图里有个关键点:阈值判断。为什么要加这个?因为如果误差很小,你还去调参数,画面就会一直微抖,看起来很不舒服。我一般把阈值设在 3~5 个灰度级(8bit),低于这个值,就认为亮度已经“够好了”。

核心总结:
  • 曝光三角是 AE 的物理基础,调参时优先动快门和 ISO。
  • 直方图是 AE 的眼睛,目标亮度要根据场景动态调整。
  • 爬山法适合简单场景,PID 适合复杂场景。
  • 加阈值判断,避免画面微抖。