3. 反差式对焦:精度与速度的博弈
反差式对焦,圈内人常叫它「爬山法」。名字挺形象——就像爬山,一步步往高处走,直到山顶。
说白了,它的核心逻辑就一句话:找图像对比度最大的那个点。镜头移动时,传感器实时计算画面的对比度值,值越大,说明越清晰。等对比度爬到顶峰,对焦就完成了。
这个方案在手机、安防相机、入门级工业检测里用得非常多。我最早接触它是在十年前做USB显微镜项目的时候,当时觉得这东西真简单,后来才发现——简单的东西往往藏着坑。
3.1 工作原理:爬山算法
先看它的基本流程。我画了张图,你一看就明白。
流程不复杂,但有个关键问题:它不知道峰值在哪,只能一步步试。这就导致了它的核心矛盾——精度和速度天生冲突。
3.2 优点分析
先聊优点。反差式对焦能活到今天,自然有它的道理。
核心优势:
- 精度高——理论上可以达到像素级。只要算法够好,它能找到对比度曲线的真实顶点。我在做显微对焦时,用反差式能做到亚微米级的重复精度。
- 成本低——不需要额外的相位检测像素,也不需要激光或结构光模组。普通CMOS传感器加一颗MCU就能跑。对于成本敏感的产品,这是巨大的诱惑。
- 结构简单——硬件上只需要马达驱动和图像数据通路,没有复杂的校准流程。产线调试工作量小很多。
- 适用面广——任何场景都能用,不挑光源,不挑被摄物体纹理。这一点比相位对焦强。
我记得有个项目,客户要求把BOM成本压到50块以内,还要实现自动对焦。当时方案选型时,只有反差式能满足预算。最后做出来的效果,在静态场景下跟千元级产品的对焦精度差不多。
3.3 缺点剖析
但缺点也很明显,而且有些是硬伤。
| 缺点 | 具体表现 | 影响程度 |
|---|---|---|
| 速度慢 | 需要来回搜索,尤其从失焦状态起步时,可能要移动几十步才能找到峰值 | 高 |
| 局部极值陷阱 | 遇到低纹理区域或周期性图案,算法可能停在假峰值上 | 高 |
| 无法预判方向 | 不知道镜头该往哪边走,只能先试一步再判断 | 中 |
| 对光照敏感 | 低照度下对比度信号弱,容易误判 | 中 |
| 不适合运动场景 | 目标移动时,对比度曲线一直在变,算法很难收敛 | 高 |
⚠ 避坑指南:局部极值
我曾经在一个条码扫描项目里吃过这个亏。条码的黑白条纹在某个距离上产生了周期性对比度信号,算法在错误位置停住了,画面其实是模糊的。后来加了多尺度搜索策略才解决。如果你做的是带纹理重复的场景,一定要在算法里做峰值有效性校验。
3.4 速度瓶颈的根源
为什么慢?我拆开来说。
反差式对焦本质上是一个搜索问题。镜头从起点出发,每走一步都要停下来采集一帧图像,计算对比度,然后决定下一步往哪走。这个过程有几个时间开销:
- 帧采集延迟——至少等一帧的时间。30fps的相机,一帧就是33ms。
- 计算延迟——对比度计算虽然不复杂,但也要几毫秒到十几毫秒。
- 马达响应延迟——步进马达的加减速时间。
- 过冲回退——如果步长太大,冲过峰值了还得退回来。
算下来,一次完整的对焦过程,少则几百毫秒,多则几秒。这在视频录制或运动抓拍场景里,基本不可用。
💡 提速技巧
我习惯的做法是:粗搜+精搜两段式。先用大步长快速找到峰值附近区域,再换小步长精细定位。这样能把时间压缩到原来的1/3左右。另外,如果硬件支持,可以开ROI(感兴趣区域)只计算画面中心区域,也能省不少时间。
3.5 局部极值的成因与对策
局部极值这个问题,说大不大,说小不小。遇到简单的场景,它不会出现。但一旦出现,对焦就废了。
成因主要有三种:
- 低纹理区域——比如拍一面白墙,对比度曲线几乎是平的,算法找不到明显的峰值。
- 周期性纹理——比如栅栏、布料纹理,对比度曲线出现多个波峰,算法可能停在错误的那个上。
- 噪声干扰——传感器噪声在某些位置恰好产生了虚假的对比度峰值。
怎么解决?我分享几个实战经验:
| 问题类型 | 常用对策 | 效果 |
|---|---|---|
| 低纹理 | 辅助光源投射纹理,或切换到其他对焦方式 | 好 |
| 周期性纹理 | 多窗口对比度融合,不同区域的峰值互相校验 | 较好 |
| 噪声干扰 | 时域滤波,连续几帧的对比度值做平滑 | 中等 |
| 全局搜索 | 全行程扫描一次,记录所有峰值,选最高的 | 最可靠,但最慢 |
嗯,这里要注意:没有银弹。每种方法都有代价。全行程扫描最可靠,但速度最慢。多窗口融合效果好,但计算量上去了。选哪种,取决于你的应用场景。
3.6 适用场景总结
说了这么多,到底什么时候该用反差式对焦?
我个人觉得,它最适合以下场景:
- 静态拍摄——文档扫描、条码读取、显微成像、产品检测
- 成本敏感——消费级摄像头、门禁系统、玩具相机
- 精度优先——需要精确对焦但速度要求不高的场景
- 混合对焦的辅助——作为相位对焦的精细校准环节
不适合的场景:
- 运动物体跟踪——比如体育摄影、无人机避障
- 视频录制——连续对焦时画面会来回抽动
- 低照度环境——对比度信号太弱,容易失败