3. 图像清晰度评价函数(下)

好,咱们接着聊。上一节我们把基于梯度的评价函数讲透了,这一节要聊的这几个,说实话,在实际工程里用得更少一些,但某些特定场景下,它们就是杀手锏。

3.1 基于信息熵的评价函数

信息熵这个概念,最早是香农搞通信时提出来的。说白了,它衡量的是信息的不确定性。一张清晰的图像,细节丰富,灰度分布更分散,熵值就大。一张模糊的图像,像素值都差不多,熵值就小。

公式长这样:

E = - Σ p(i) * log₂(p(i))

其中 p(i) 是灰度 i 出现的概率。嗯,就这么简单。

我当年在一个医疗影像项目里试过这个。显微镜下的细胞图像,用 Tenengrad 函数老是跑偏,换成信息熵反而稳得很。为什么?因为细胞图像纹理太复杂,梯度法容易受局部噪声干扰,而熵函数看的是全局统计特性。

适用场景:

  • 纹理丰富的场景(比如毛发、织物)
  • 光照均匀的环境
  • 对实时性要求不高的系统

注意:信息熵对直方图分布很敏感。如果场景里有大面积纯色背景,熵值会偏低,容易误判。我曾经在拍白墙时吃过这个亏,后来加了 ROI 裁剪才解决。

3.2 基于机器学习的评价函数(CNN特征)

这个就有点意思了。传统方法说到底都是手工设计的特征,而 CNN 能自动学习出最适合判断清晰度的特征。

具体做法是这样的:

  1. 收集大量清晰/模糊的图像对
  2. 用预训练的 CNN(比如 VGG16)提取特征
  3. 把特征送入一个回归网络,输出清晰度分数

你想想看,这相当于让网络自己总结「什么算清晰」。我试过用 ResNet50 做特征提取,效果确实比传统方法好,尤其是面对复杂场景时。

但代价也很明显——计算量太大了。在嵌入式平台上跑一次推理可能要几十毫秒,而传统方法只要几微秒。所以目前这个方案主要用在高端相机或医疗设备上。

我的建议:如果项目对实时性要求不高,可以试试 MobileNet 这类轻量网络。我在一个无人机项目里用过,帧率能跑到 15fps 左右,够用了。

3.3 混合评价函数的设计思路

单一评价函数总有短板。我个人的习惯是,把几种方法组合起来用。就像做菜,光放盐不行,得加点酱油和糖。

常见的混合策略:

  • 加权融合:给不同评价函数分配权重,比如 0.6 * 梯度 + 0.4 * 熵
  • 级联判断:先用快的函数粗筛,再用慢的细判
  • 自适应切换:根据场景特征自动选择最合适的函数

举个例子,我在做安防摄像头时,白天用梯度法,晚上光线暗了就切到信息熵。因为晚上图像噪声大,梯度法容易误判,而熵函数对噪声没那么敏感。

// 伪代码示例:自适应混合评价
float evaluate_image(Image img) {
    float brightness = compute_brightness(img);
    if (brightness > THRESHOLD) {
        return gradient_based(img);  // 白天用梯度
    } else {
        return entropy_based(img);   // 晚上用熵
    }
}

核心思路:没有万能药,只有最合适的组合。混合评价函数的设计,本质上是把不同方法的优点拼起来,同时避开各自的坑。

3.4 评价函数的性能指标

好,函数设计出来了,怎么判断它好不好?我一般看三个指标:单峰性、无偏性、灵敏度。

指标 含义 怎么测
单峰性 评价曲线是否只有一个峰值 在焦点附近扫描,看曲线是否单调上升再单调下降
无偏性 峰值是否对应真正的焦点位置 用已知焦点的标定板验证
灵敏度 焦点附近曲线是否陡峭 计算峰值处的二阶导数或曲率

单峰性不好,AF 算法就容易在多个峰值间来回跳。无偏性不好,对焦结果就是偏的。灵敏度不够,对焦精度就上不去。

我记得有一次调试一个长焦镜头,用 Tenengrad 函数,单峰性很好,但无偏性差了 5 个像素。查了半天才发现是镜头色差导致的。后来加了预处理校正才解决。

避坑指南:我曾经在实验室里测得好好的,一到户外就翻车。后来发现是光照变化影响了评价函数的稳定性。所以测试时一定要覆盖各种光照条件。

3.5 知识体系总览

这一节的内容比较多,我画了张图帮你理一理思路:

图像清晰度评价函数知识体系 清晰度评价函数 信息熵评价函数 全局统计特性 抗噪声能力强 CNN特征评价 自动特征提取 计算量大 混合评价函数 加权融合 级联判断 自适应切换 性能指标:单峰性 | 无偏性 | 灵敏度 三种评价方法各有优劣,实际工程中需根据场景选择或组合

这张图把三种评价方法的关系和性能指标串起来了。你仔细看看,会发现它们不是互斥的,而是互补的。实际项目中,我经常把信息熵和梯度法混合使用,效果比单独用任何一种都好。

好了,这一节就到这里。评价函数是 AF 算法的基石,选对了函数,后面的调优工作就轻松一半。下一节我们聊聊对焦搜索策略,那又是另一片天地了。


专注资料整理