1. 反差对焦基础:基本原理与工作流程
1.1 什么是反差对焦
反差对焦(Contrast Detection Auto Focus, CDAF)是数字成像系统中最基础、最通用的被动式自动对焦技术。它不依赖外部测距传感器,而是直接利用图像传感器捕获的画面信息,通过分析图像中边缘区域的对比度(反差)变化来判断焦点的准确位置。
CDAF 的核心思想非常简单:当画面合焦时,图像中物体边缘的明暗过渡最锐利,像素间的灰度差异最大;反之,离焦时边缘模糊,灰度差异减小。 因此,通过搜索使图像整体反差达到峰值的镜头位置,即可实现自动对焦。
💡 关键概念: 反差对焦本质上是一个“爬山搜索”过程——镜头在移动过程中,系统持续计算图像的反差值,当反差值从上升转为下降时,即判定峰值位置为最佳焦点。
1.2 反差值的计算方式
图像反差(对比度)通常通过计算相邻像素之间的灰度梯度来量化。常用的评价函数包括:
- Tenengrad 函数: 基于 Sobel 算子提取水平和垂直方向的梯度幅值,求和作为反差值。
- Laplacian 函数: 使用拉普拉斯算子检测图像的二阶导数,对边缘响应更敏感。
- 方差函数: 计算图像像素灰度值的统计方差,反映整体对比度。
- 能量梯度函数: 计算相邻像素差值的平方和,计算量小且效果稳定。
| 函数名称 | 计算方式 | 特点 | 适用场景 |
|---|---|---|---|
| Tenengrad | ∑(Gx² + Gy²) | 抗噪性好,峰值锐利 | 高精度静态对焦 |
| Laplacian | ∑|∇²I| | 对高频细节敏感 | 纹理丰富的场景 |
| 方差 | ∑(I - μ)² | 计算简单,全局性强 | 低光照环境 |
| 能量梯度 | ∑(Δx² + Δy²) | 计算量最小,实时性好 | 视频连续对焦 |
1.3 CDAF 工作流程
标准的 CDAF 工作流程包含以下五个核心步骤,形成一个闭环控制回路:
- 图像采集: 图像传感器曝光并输出当前帧的 RAW 或 YUV 数据。
- 感兴趣区域(ROI)提取: 从画面中选取对焦窗口(通常为画面中央区域或检测到的人脸/物体区域)。
- 反差计算: 在 ROI 内应用评价函数,计算当前帧的反差值。
- 搜索决策: 将当前反差值与历史值比较,判断镜头移动方向和步长。
- 镜头驱动: 根据决策结果驱动音圈马达(VCM)或步进电机移动镜头。
📐 闭环特性: 步骤 1-5 反复迭代,直到反差值达到峰值或满足终止条件(如步长小于阈值、超时等)。每次迭代称为一个“对焦步”。
1.4 反差曲线与峰值搜索
在镜头从近到远(或从远到近)的移动过程中,系统记录每个位置对应的反差值,形成一条“反差曲线”。理想情况下,该曲线呈单峰形状,峰值位置对应最佳焦点。
CDAF 的搜索策略本质上是在这条曲线上寻找全局最大值。常用的搜索算法包括:
- 全局搜索: 遍历整个行程,记录所有位置的反差值,取最大值。精度高但速度慢。
- 爬山法: 沿反差上升方向移动,直到检测到下降趋势,回退到峰值位置。速度快但易陷入局部极值。
- 二分搜索: 在行程范围内不断二分缩小搜索区间,适用于已知峰值大致范围的情况。
⚠️ 常见问题: 实际场景中,由于噪声、光照变化、物体运动等因素,反差曲线往往不是理想单峰,而是存在多个局部峰值或平坦区域。这会导致对焦犹豫、误判或反复振荡。后续章节将重点讨论如何通过步长优化和曲线平滑来解决这些问题。
1.5 CDAF 的优缺点
| 维度 | 优点 | 缺点 |
|---|---|---|
| 精度 | 理论上可达像素级精度,无相位检测的基线误差 | 对低对比度场景(如白墙、天空)失效 |
| 硬件 | 无需专用相位检测像素,传感器设计简单 | 需要反复移动镜头,对马达寿命有影响 |
| 速度 | 在静态场景中表现稳定 | 需要多次迭代,速度慢于相位对焦 |
| 适应性 | 对任何镜头和传感器都适用 | 在低光照或快速运动场景中容易失败 |