曝光基础与问题定义
自动曝光,简称 AE,是摄像头成像的第一步。说白了,就是让画面亮度刚刚好——不黑成一片,也不白得刺眼。我刚开始做图像算法时,觉得 AE 不就是调个曝光时间嘛,后来才发现,这里面的坑比想象中多得多。
自动曝光的基本概念
自动曝光的核心任务,是根据场景亮度自动调整三个参数:曝光时间、模拟增益、数字增益。这三者组合起来,决定了最终图像的亮度。
| 参数 | 作用 | 调整范围 | 副作用 |
|---|---|---|---|
| 曝光时间 | 控制感光芯片接收光的时间长度 | 1/10000s ~ 30s | 过长会导致运动模糊 |
| 模拟增益 | 放大传感器输出的模拟信号 | 1x ~ 16x | 放大噪声 |
| 数字增益 | 对数字信号做乘法放大 | 1x ~ 256x | 放大量化噪声 |
AE 算法通常分两步走:先统计当前帧的亮度信息,再根据目标亮度计算下一帧的参数。听起来简单,对吧?但实际场景千变万化——从阳光直射的户外到昏暗的室内,从静止的文档到快速移动的车辆,AE 都得应付。
关键指标:AE 的好坏通常用两个维度衡量——收敛速度和稳定性。收敛速度指从开始曝光到画面稳定所需帧数;稳定性指画面亮度在收敛后是否持续抖动。
收敛速度与稳定性的矛盾关系
这里有个绕不开的矛盾:收敛越快,越容易震荡;越稳定,收敛越慢。
为什么会这样?你想想看,如果每次调整的步长很大,几帧就能达到目标亮度。但步长大意味着容易过头——今天亮一点,明天暗一点,画面像呼吸灯一样来回跳。反过来,步长设得很小,画面确实稳,但用户可能要等好几秒才能看清画面。
我记得有一次做手机摄像头项目,产品经理要求 AE 在 5 帧内收敛到目标亮度,同时亮度波动不能超过 ±3%。我试了各种 PID 参数组合,结果要么收敛慢,要么震荡不止。后来才发现,问题不在于参数调得不够好,而是算法本身没有处理好这个矛盾。
避坑指南:我曾经在某个项目中,为了追求极致的收敛速度,把步长设得很大。结果画面在亮暗之间来回切换,用户反馈说“摄像头在抽风”。从那以后,我学会了在收敛速度和稳定性之间找平衡点。
这个矛盾的本质是什么?我画了一张图来说明:
从图中可以看出,收敛速度和稳定性就像跷跷板的两端。传统的固定步长算法只能二选一。但实际场景需要的是——在需要快的时候快,在需要稳的时候稳。这就是本课程要解决的问题。
课程目标与学习路径
这门课的目标很明确:让你掌握一套能同时提升收敛速度和稳定性的 AE 算法设计方法。不是纸上谈兵,而是能直接落地到产品中的实战技术。
学习建议:我建议你准备一个摄像头模组或者至少有一台支持手动曝光控制的手机。边学边调,效果比只看代码好十倍。
整个课程分为四个阶段:
- 基础篇(第1-8章):AE 算法基础、统计方法、目标亮度设定、PID 控制原理。这部分帮你打好地基。
- 进阶篇(第9-18章):自适应步长、场景检测、抗闪烁、多帧融合。这里开始接触真正的优化技巧。
- 实战篇(第19-25章):嵌入式平台优化、低光增强、HDR 融合、运动场景处理。全是我在项目中踩过的坑和填坑经验。
- 调优篇(第26-30章):参数自动调优、测试方法论、质量评估、工程化落地。帮你把算法变成产品。
每一章我都会给出可运行的代码示例和测试数据。你可以在自己的平台上直接跑,看看效果。
课程承诺:学完这门课,你将能够独立设计一套 AE 算法,在收敛速度和稳定性之间找到最优平衡点。这不是吹牛——我带的团队已经用这套方法在三个量产项目中验证过了。
好了,第一章就到这里。记住这个核心矛盾,后面的所有内容都是围绕它展开的。