1. AF 调优算法概述
各位同学好,我是老张。今天咱们聊聊自动对焦——也就是 AF。说实话,我在安防这个行当摸爬滚打了十几年,AF 调优这块踩过的坑,比吃过的盐还多。这一章,咱们先把基础打牢。
1.1 什么是自动对焦(AF)
自动对焦,说白了就是让摄像头自己找到最清晰的那个位置。你想想看,镜头里有个马达,马达带着镜片前后移动。移动过程中,图像从模糊变清晰,再变模糊。AF 算法要做的,就是找到那个“最清晰”的点,然后让镜片停在那里。
我习惯把 AF 分成三个步骤:
- 采样——马达走一步,拍一张图
- 评价——算算这张图有多清晰
- 决策——下一步往哪走,走多远
听起来简单?嗯,实际做起来,每一步都是坑。
核心概念:AF 的本质是一个搜索问题。搜索空间是镜片位置,目标函数是图像清晰度。我们要在最短时间内,找到这个函数的全局最大值。
1.2 安防场景对 AF 的特殊要求
消费级摄像头和安防摄像头,虽然都叫 AF,但要求天差地别。我举个例子你就明白了。
你拿手机拍照,对焦慢个半秒,顶多骂一句“这破手机”。但安防摄像头呢?
- 场景一:周界防范。有人翻墙,镜头必须瞬间锁定目标。慢了,人就跑了。
- 场景二:车牌识别。车从远处开过来,镜头要快速变焦、对焦。对不准,车牌就是一团糊。
- 场景三:低照度。晚上光线暗,图像本来就噪点多。AF 算法要是再不给力,画面直接没法看。
我把安防场景的特殊要求总结成了一张表:
| 维度 | 消费级 | 安防级 |
|---|---|---|
| 对焦速度 | 1-2 秒可接受 | < 0.5 秒,甚至 < 0.2 秒 |
| 低照度性能 | 一般 | 必须优秀,信噪比低时仍能工作 |
| 可靠性 | 偶尔失败无所谓 | 7×24 小时,不能掉链子 |
| 场景复杂度 | 单一主体 | 多目标、遮挡、快速运动 |
| 功耗限制 | 较宽松 | 严格,尤其球机电池供电场景 |
你看,安防场景对 AF 的要求,几乎是全方位的碾压。
避坑指南:我曾经在一个项目中,直接把消费级的 AF 算法移植到安防摄像头上。结果呢?晚上对焦来回震荡,根本停不下来。后来花了整整两周,才把低照度下的搜索策略调好。所以,千万别偷懒,安防场景必须单独调优。
1.3 AF 调优的核心目标
AF 调优,到底在调什么?我个人认为,核心目标就三个字:快、准、稳。
1.3.1 快——速度优先
安防场景里,时间就是一切。我见过一个极端案例:某工厂的周界系统,要求从目标出现到对焦完成,不能超过 200 毫秒。这意味着什么?
- 马达驱动延迟:约 20-50ms
- 图像采集延迟:约 30-50ms(取决于帧率)
- 清晰度计算延迟:约 10-30ms
- 留给搜索决策的时间:不到 100ms
所以,调优的第一步,就是压缩每个环节的时间。
1.3.2 准——精度为王
光快没用,对不准等于白搭。安防场景里,对焦精度通常用“峰值位置偏差”来衡量。我一般要求偏差不超过 1 个马达步长。
但这里有个矛盾:步长越小,精度越高,但搜索时间越长。怎么平衡?
我的经验:采用粗搜+精搜的两阶段策略。粗搜用大步长快速定位大致区域,精搜用小步长精确找到峰值。这样既保证了速度,又保证了精度。
1.3.3 稳——拒绝震荡
这是最容易被忽视的一点。有些算法在实验室里跑得好好的,一上现场就开始“抽风”——镜头来回震荡,画面忽明忽暗。
为什么会这样?
- 场景中有周期性纹理(比如栅栏、百叶窗)
- 目标快速移动,导致清晰度曲线出现多个峰值
- 噪声干扰,让算法误判了方向
解决震荡,我常用的手段包括:
- 滞回比较——不要一看到下降就回头,等下降超过阈值再动
- 滤波平滑——对清晰度曲线做低通滤波,去掉毛刺
- 死区设置——在峰值附近设置一个不敏感区域,避免微调
下面这张图,展示了 AF 调优的核心逻辑:
你看,这三个目标不是孤立的。速度快了,精度可能下降;精度高了,稳定性可能变差。调优的本质,就是在三者之间找到最佳平衡点。
调优原则:先保证稳,再追求快,最后抠精度。不稳的算法,再快再准也是废的。这是我用无数次失败换来的教训。
1.4 本章小结
这一章,我们聊了三个问题:
- AF 是什么——一个搜索清晰度峰值的优化问题
- 安防场景有什么特殊要求——快、准、稳,缺一不可
- 调优的核心目标是什么——在速度、精度、鲁棒性之间找平衡