3、自动曝光基础:18%灰卡原理,曝光三角(光圈、快门、ISO),AE的目标:目标亮度
各位同学,今天我们来聊聊自动曝光的基础。说实话,很多做图像算法的工程师,对曝光的理解停留在“调调亮度”这个层面。但真正到了项目里,你会发现曝光不准,后面的白平衡、降噪、HDR全都会跟着崩。我当年刚入行时就吃过这个亏——一个低光场景,我硬是把ISO拉到3200,结果噪声大得连降噪算法都救不回来。嗯,从那以后我才老老实实把曝光基础补扎实了。
3.1 18%灰卡:曝光测量的“基准点”
先问大家一个问题:相机怎么知道当前场景是“亮”还是“暗”?
答案就是——18%灰卡。说白了,相机默认把整个世界都当成“18%反射率”的灰色来测光。为什么是18%?因为人眼感知的中性灰,恰好对应18%的反射率。你想想看,一张白纸反射率约90%,黑纸约3%,而18%灰正好在中间。
我在项目中遇到过这样一个案例:一个户外监控摄像头,白天对着水泥路面,画面正常;但到了傍晚,天空还有余晖,地面已经暗了,结果AE算法把整体亮度拉高,天空直接过曝成一片死白。原因就是——场景平均亮度低于18%灰,相机“误以为”画面太暗,拼命提亮。
3.2 曝光三角:光圈、快门、ISO
曝光三角,大家应该都听过。但我要强调的是——这三者不是独立调节的,它们是一个“跷跷板”。你动一个,另外两个必须跟着调整,才能保持总曝光量不变。
| 参数 | 物理含义 | 对图像的影响 | 典型范围 |
|---|---|---|---|
| 光圈 (Aperture) | 镜头通光孔径大小 | 控制进光量 + 景深 | F1.4 ~ F16 |
| 快门 (Shutter) | 传感器感光时间 | 控制运动模糊 + 进光量 | 1/8000s ~ 30s |
| ISO | 传感器信号放大增益 | 控制亮度 + 噪声水平 | 100 ~ 12800 |
我个人习惯把曝光三角分成两个维度来理解:
- 物理进光量:由光圈和快门决定。这是“硬件层面”的曝光。
- 电子增益:由ISO决定。这是“软件层面”的补偿。
为什么这么分?因为在ISP pipeline里,光圈和快门是不可逆的——光没进来就是没进来,后期再怎么拉曲线也补不回细节。而ISO放大虽然会引入噪声,但至少能让你看到东西。
3.3 AE的目标:目标亮度
好了,有了18%灰作为参考,有了曝光三角作为工具,那AE算法到底在算什么?
答案就是——目标亮度 (Target Luminance)。
AE算法的核心逻辑其实很简单:
- 测量当前亮度:统计当前帧的亮度直方图,计算平均亮度或加权亮度。
- 对比目标亮度:把测量值和预设的“目标亮度”做比较。
- 调整曝光参数:如果太暗,就增大光圈/拉长快门/提高ISO;如果太亮,就反过来。
这里的关键是——目标亮度怎么定?
我见过很多团队直接把目标亮度设为128(8bit图像的中值),然后发现画面总是偏灰。为什么?因为128对应的是18%灰的亮度,但实际场景中,人脸、天空、草地各有各的“理想亮度”。
- 人脸场景:目标亮度在 160~200(偏亮,保证肤色好看)
- 夜景场景:目标亮度在 60~100(保留暗部氛围)
- 文档扫描:目标亮度在 180~220(保证文字清晰)
下面这张图,是我自己总结的AE目标亮度决策流程,大家可以参考:
3.4 曝光参数调整策略
确定了目标亮度之后,接下来就是怎么调曝光三角了。这里有一个优先级问题:
- 优先调光圈:如果光圈可调(比如手机主摄通常是固定光圈,但专业相机可以),先动光圈。因为光圈不影响噪声和模糊。
- 其次调快门:保证安全快门(1/焦距)以上,避免手抖模糊。
- 最后调ISO:实在不够亮了,再拉ISO。但要注意ISO的上限,超过某个值(比如800)噪声会急剧恶化。
3.5 本章小结
好了,这一章的内容就这些。总结三个核心点:
- 18%灰卡是相机测光的基准,理解它才能理解AE为什么“偏亮偏暗”。
- 曝光三角不是独立参数,而是一个联动系统。动一个,必须考虑另外两个的连锁反应。
- 目标亮度不是固定值,而是根据场景动态调整的区间。人脸、夜景、文档各有各的“理想亮度”。