4、AF算法基础:对焦评价函数、搜索策略与马达驱动

自动对焦(AF)是摄像头成像质量的核心环节,其本质是一个搜索-评价-驱动的闭环过程。本章深入剖析AF算法的三大基石:对焦评价函数(如何判断图像清晰度)、搜索策略(如何高效找到最佳对焦位置)以及马达驱动(如何物理移动镜头)。理解这三者的协同关系,是掌握RK平台3A联合调试的关键。

4.1 对焦评价函数:清晰度的量化标尺

对焦评价函数(Focus Measure)用于计算图像中高频细节的丰富程度。图像越清晰,边缘越锐利,高频分量越强。在RK平台中,常用的评价函数包括基于梯度的Sobel算子和Laplacian算子。

4.1.1 Sobel算子:一阶梯度评价

Sobel算子通过计算图像在水平(x)和垂直(y)方向的一阶梯度来评估清晰度。其核心是使用两个3x3的卷积核分别提取边缘信息。

  • 原理:对焦准确的图像,边缘处灰度变化剧烈,梯度值大;离焦图像边缘模糊,梯度值小。
  • 计算公式:
    Gx = [[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]] 与图像卷积
    Gy = [[-1, -2, -1], [0, 0, 0], [1, 2, 1]] 与图像卷积
    最终评价值 F = Σ(|Gx| + |Gy|) 或 F = Σ√(Gx² + Gy²)。
  • 特点:对噪声有一定抑制能力,计算量适中,是工程中最常用的评价函数之一。
工程提示:在RK平台ISP中,Sobel评价通常基于RAW域或YUV域的亮度分量(Y)进行计算。建议在调试时设置一个ROI(感兴趣区域),避免背景干扰。

4.1.2 Laplacian算子:二阶梯度评价

Laplacian算子是一个二阶微分算子,对图像中的灰度突变(如边缘、角点)更为敏感。

  • 原理:通过计算图像的二阶导数,检测灰度变化的速率。对焦准确时,边缘处的二阶导数过零点更尖锐。
  • 常用卷积核:
    L = [[0, -1, 0], [-1, 4, -1], [0, -1, 0]]
    评价值 F = Σ|L * Image|。
  • 特点:对噪声非常敏感,但能提供更精细的清晰度变化曲线。通常需要配合高斯滤波预处理。
调试避坑:在低照度或高ISO场景下,Laplacian算子容易将噪声误判为清晰度,导致对焦位置偏移。建议在RK平台中根据ISO值动态切换评价函数或增加噪声阈值。

4.1.3 评价函数对比

特性 Sobel算子 Laplacian算子
阶数 一阶梯度 二阶梯度
对噪声敏感度 中等 高
计算复杂度 低 低
边缘响应 宽边缘响应 窄边缘响应,过零点
适用场景 通用场景,白天/室内 高对比度、纹理丰富场景
RK平台推荐 默认首选 辅助参考或混合使用
对焦评价函数:清晰度曲线对比 镜头位置 (Lens Position) 清晰度评价值 Sobel Laplacian 最佳对焦点 Laplacian曲线更尖锐,峰值定位更精确,但易受噪声干扰;Sobel曲线更平滑,鲁棒性更好。

4.2 搜索策略:高效寻找最佳对焦点

有了评价函数,AF算法需要一种策略来搜索评价函数的峰值位置。常见的搜索策略包括爬山法和全局搜索,以及它们的变种。

4.2.1 爬山法(Hill Climbing)

爬山法是一种局部搜索算法,模拟“爬山”过程:沿着评价函数值增加的方向移动镜头,直到找到峰值。

  • 步骤:
    1. 初始化:从当前位置开始,设定一个初始步长。
    2. 移动:向一个方向移动镜头,计算新位置的评价值。
    3. 比较:如果新评价值大于当前值,继续同方向移动;如果小于,则反向移动。
    4. 收敛:当步长减小到阈值以下,或连续多次移动评价值不再增加,则认为找到峰值。
  • 优点:速度快,计算量小,适合连续对焦(CAF)。
  • 缺点:容易陷入局部极值(如面对低对比度物体或噪声干扰时),且对初始位置敏感。
RK平台优化:在RK3588等平台上,爬山法常与运动检测结合。当检测到场景变化时,强制重置搜索起点,避免在错误位置持续对焦。

4.2.2 全局搜索(Global Search)

全局搜索(也称为全行程扫描)在镜头整个物理行程范围内,等间隔采样并计算评价值,然后选择评价值最高的位置。

  • 步骤:
    1. 将镜头从近端(Macro)移动到远端(Infinity),或反之。
    2. 在移动过程中,每隔固定步长采集一帧图像并计算评价值。
    3. 遍历所有采样点后,选择评价值最大的位置作为对焦目标。
  • 优点:一定能找到全局最优解(在采样分辨率内),不受局部极值影响。
  • 缺点:速度慢,耗时较长(通常需要数百毫秒到数秒),不适合视频连续对焦。

4.2.3 搜索策略对比

特性 爬山法 全局搜索
搜索类型 局部搜索 全局搜索
速度 快(毫秒级) 慢(百毫秒级)
抗局部极值 弱 强
适用场景 视频CAF、运动场景 拍照S-AF、初始对焦
马达磨损 小(移动距离短) 大(全行程移动)
RK平台典型用法 默认CAF模式 触发式AF或场景切换
AF搜索策略流程图 AF触发 场景类型? 爬山法 (CAF) 全局搜索 (S-AF) 1. 设定初始步长 2. 沿梯度方向移动 3. 步长衰减,收敛峰值 1. 全行程等距采样 2. 记录每个位置评价值 3. 选择最大值位置 注:实际工程中常采用“全局搜索粗定位 + 爬山法精定位”的混合策略。

4.3 马达驱动:物理执行机构

评价函数和搜索策略最终需要由马达驱动来物理移动镜头。在RK平台手机摄像头方案中,最常用的两种马达是VCM(音圈马达)和步进电机。

4.3.1 VCM(音圈马达)

VCM是目前手机摄像头最主流的对焦马达,其原理类似于扬声器:通过改变线圈中的电流大小,在磁场中产生不同大小的力,从而推动镜头移动。

  • 驱动方式:模拟电压或PWM(脉冲宽度调制)控制。RK平台通常通过I2C接口向VCM驱动芯片(如DW9714、AK7314)写入DAC值(0~1023),控制镜头位置。
  • 特点:
    • 体积小,功耗低,响应速度快(毫秒级)。
    • 位置控制精度高,但存在磁滞效应(Hysteresis):从不同方向到达同一位置时,实际物理位置可能不同。
    • 需要初始化校准:上电后需要执行一次“归零”动作,找到物理行程的起点。
调试避坑:VCM的磁滞效应会导致AF回程误差。在RK平台调试时,建议在搜索策略中采用单向逼近原则:始终从同一方向(如从近到远)移动到目标位置,以消除磁滞影响。

4.3.2 步进电机

步进电机通过接收脉冲信号,按固定的步进角度旋转,再通过丝杆或齿轮机构将旋转运动转化为直线运动,推动镜头。

  • 驱动方式:数字脉冲信号。RK平台通过GPIO或专用驱动芯片(如DRV8834)输出脉冲序列,控制电机转动的步数和方向。
  • 特点:
    • 开环控制即可实现精确定位,无磁滞问题。
    • 扭矩大,适合驱动较重的镜头模组(如潜望式长焦镜头)。
    • 存在失步风险:当负载过大或脉冲频率过高时,电机可能无法跟上指令。
    • 功耗和噪声通常比VCM大。

4.3.3 马达驱动对比

特性 VCM(音圈马达) 步进电机
控制方式 模拟电压 / PWM / DAC 数字脉冲
定位精度 高(受磁滞影响) 高(开环,无磁滞)
响应速度 快(<5ms) 中等(10~50ms)
功耗 低 中等
体积 小 较大
典型应用 主摄、广角、微距 潜望式长焦、工业相机
RK平台接口 I2C + PWM GPIO + SPI
马达驱动架构:VCM vs 步进电机 RK SoC (AP) I2C / PWM 驱动芯片 VCM 音圈马达 镜头 (Lens) GPIO / SPI 驱动芯片 步进电机 丝杆 + 镜头 VCM路径:I2C写入DAC值 → 驱动芯片输出电流 → VCM推动镜头 步进电机路径:GPIO输出脉冲序列 → 驱动芯片控制相序 → 步进电机转动 → 丝杆推动镜头

4.4 本章小结:AF算法协同要点

在RK平台进行AF调试时,需要将评价函数、搜索策略和马达驱动三者作为一个整体来考虑:

  • 评价函数选择:根据场景动态切换Sobel和Laplacian,或使用加权混合。
  • 搜索策略优化:采用“全局搜索粗定位 + 爬山法精定位”的混合策略,兼顾速度和准确性。
  • 马达驱动补偿:针对VCM的磁滞效应,在搜索算法中实现单向逼近逻辑;针对步进电机,设置合理的加减速曲线防止失步。
  • 系统级协同:AF算法需要与AE(自动曝光)联动,因为曝光时间变化会影响图像信噪比,进而影响评价函数的可靠性。
实践要点:在RK平台调试工具中,建议实时抓取“镜头位置-评价值”曲线,观察曲线是否平滑、是否存在多峰。如果曲线出现剧烈抖动,应优先排查马达驱动稳定性或评价函数对噪声的敏感性。