1. 自动对焦概述

各位同学好,我是老周。今天咱们开始聊自动对焦。说实话,我做了十几年成像系统,每次跟新人聊这个,我都会先问一个问题:你按下快门那一瞬间,相机到底在忙什么?

自动对焦,说白了就是让镜头自己找到最清晰的那个位置。听起来简单,但背后涉及光学、图像处理、电机控制、嵌入式实时调度……嗯,是个典型的交叉学科难题。

1.1 自动对焦技术发展史

我入行那会儿,用的还是手动对焦的工业相机。后来才慢慢见识到自动对焦的演进。咱们快速过一下几个关键节点:

年代 技术 代表产品 我的评价
1970s 主动红外/超声波测距 宝丽来、柯尼卡傻瓜机 精度差,但开了先河
1980s 相位检测(PDAF) 尼康F3AF、美能达α7000 单反时代的基石
1990s 对比度检测(CDAF) 早期数码相机、DV 慢但准,无额外硬件
2010s 混合对焦(PDAF+CDAF) 索尼微单、iPhone 又快又准,至今主流
2020s AI/深度学习辅助对焦 旗舰手机、智能显微镜 场景理解更强,但算力开销大

你可能会问:为什么早期不用对比度检测?其实是因为那时候传感器读出速度太慢,CPU也跟不上。我在2008年做过一个项目,用一颗200MHz的ARM9跑对比度对焦,一帧图像要算300ms,对焦全程得花两三秒——放到今天,用户早把手机摔了。

1.2 应用场景

自动对焦不是手机和相机的专利。我这些年接触过的场景,列出来你感受一下:

  • 手机摄影:最卷的战场。从单摄到多摄,从定焦到潜望式长焦,对焦速度直接影响用户体验。我见过某款手机因为对焦慢,被用户骂上热搜。
  • 单反/微单:追求极致的速度和精度。体育摄影、野生动物摄影,对焦跟不上就出废片。
  • 显微镜:这个有意思。病理切片扫描、细胞跟踪,对焦精度要到亚微米级。我做过一个数字病理项目,Z轴步进精度要求0.1μm,电机选型折腾了两个月。
  • 工业检测:PCB焊点检测、晶圆缺陷识别。这里对焦不是目的,是手段——对不准,后面的算法全白搭。
  • 安防监控:变焦镜头需要自动聚焦,尤其是PTZ摄像机。场景光照变化大,目标移动快,对焦策略要很鲁棒。

核心观点:不同场景对自动对焦的要求差异巨大。手机要快,显微镜要准,工业检测要稳。没有万能的对焦方案,只有针对性的策略设计。

1.3 基本工作原理

自动对焦的本质,是一个搜索+评价+控制的闭环。我习惯用下面这张图来跟新人解释:

自动对焦闭环工作原理 自动对焦闭环工作原理 镜头移动 步进电机/VCM 图像采集 传感器读出 清晰度评价 评价函数计算 对焦策略 搜索/决策算法 光学成像 原始图像 评价值 控制指令 💡 闭环逻辑: 镜头移动 → 采集图像 → 计算清晰度评价值 → 策略决策下一步 → 继续移动镜头

这个闭环里,每一步都有坑。我一个个说:

  1. 镜头移动:电机有惯性、有回差。我用过开环的VCM音圈马达,也用过闭环的步进加编码器。精度和成本永远在打架。
  2. 图像采集:曝光时间、增益、帧率,这些都会影响评价函数的稳定性。你想想看,如果场景在动,或者光照在变,同一位置两次采集的评价值可能差很多。
  3. 清晰度评价:这是本课程的核心。用什么函数?Tenengrad?Laplacian?Brenner?还是深度学习?不同的函数对不同的场景敏感度完全不同。
  4. 对焦策略:怎么搜索?爬山法?全局搜索?黄金分割?还是预测式?我见过一个项目,用了最简单的爬山法,结果在局部极值里出不来了——后来加了粗搜+精搜两级策略才搞定。

我的经验:新手最容易犯的错误,是只盯着评价函数本身,忽略了整个闭环的时序和稳定性。我曾经在一个项目中,评价函数算得特别准,但电机控制有200ms的延迟,结果对焦来回震荡,始终收敛不了。后来加了PID前馈才解决。

1.4 评价函数的核心地位

为什么这门课叫《自动对焦评价函数与策略设计》?因为评价函数是整个系统的眼睛。策略再好,如果评价函数给的信息是错的,那就是盲人摸象。

一个好的评价函数,应该满足:

  • 单峰性:在正确对焦位置只有一个最大值
  • 无偏性:峰值位置就是真实最清晰位置
  • 灵敏度:离焦一点点,评价值变化要明显
  • 鲁棒性:对噪声、光照变化不敏感
  • 计算效率:嵌入式平台上要跑得动

这几个指标之间经常是矛盾的。灵敏度高的函数往往对噪声也敏感。计算快的函数往往精度不够。嗯,这就是我们后面要深入探讨的内容。

注意:不要迷信某个评价函数万能。我见过有人把Tenengrad吹上天,结果在低对比度场景下直接失效。也见过有人用深度学习做评价,精度确实高,但帧率掉到5fps——工业线上根本用不了。

好了,第一章就到这里。咱们先把自动对焦的全局图景搭起来,后面再一个一个拆解评价函数和策略的细节。记住一句话:没有最好的对焦方案,只有最合适的。