4. 对焦窗口选择:全局窗口与局部窗口、中心权重窗口、多区域窗口(九宫格)、基于人脸/物体检测的自适应窗口、窗口大小对精度的影响

对焦窗口怎么选?这个问题,我当年刚入行时也纠结过很久。

说白了,窗口选得好,对焦就成功了一半。窗口选得不好,哪怕你的算法再牛,也白搭。你想想看,如果窗口里同时包含了前景和背景,对比度评价函数算出来的值就会很混乱,镜头不知道该听谁的。

4.1 全局窗口 vs 局部窗口

全局窗口,就是把整张图像的所有像素都参与计算。听起来很公平对吧?但实际用起来问题不少。

  • 优点:信息量大,不容易漏掉细节
  • 缺点:计算量大,容易受背景干扰

我在项目中遇到过这样一个场景:拍一张白纸上的黑色文字,全局窗口效果很好。但换成拍窗外的风景,背景里的天空和远处的山全进来了,对焦结果飘忽不定。为什么会这样?因为全局窗口把低对比度的天空也算进去了,拉低了整体的评价值。

局部窗口,只取图像中间一小块区域。这是最经典的做法,也是很多手机摄像头默认的方案。

  • 优点:计算快,抗干扰能力强
  • 缺点:如果主体不在画面中央,就完蛋了

嗯,这里要注意:局部窗口的大小不是随便定的。我见过有人把窗口设成10x10像素,结果稍微有点噪声,评价值就剧烈抖动。太小了不行,太大了又失去局部意义。

我的经验:窗口大小一般取图像总像素的1/16到1/8比较稳妥。比如1080p的图像,窗口取120x68左右,效果不错。

4.2 中心权重窗口

中心权重窗口,说白了就是给图像不同位置分配不同的权重。中心区域权重高,边缘区域权重低。这是一种折中方案。

我记得有一次做安防摄像头的项目,场景里经常有人从画面边缘走进来。如果用纯局部窗口,人没到中心区域时对焦就不管了。用全局窗口呢,背景里的树叶晃动又干扰很大。最后我用了中心权重窗口,效果好了很多。

权重分配方式有很多种,我常用的有两种:

权重类型 分配方式 适用场景
高斯权重 中心权重最高,向四周平滑衰减 一般拍摄场景
阶梯权重 中心区域权重1.0,中间区域0.6,边缘0.2 需要快速计算的场景

小技巧:权重窗口的系数最好归一化,不然不同窗口大小下的评价值范围不一致,会影响后续的爬山算法判断。

4.3 多区域窗口(九宫格)

九宫格窗口,就是把画面分成3x3的网格,每个格子独立计算对比度,然后综合判断。这种方法在相机领域用得很多。

我曾经踩过一个坑:九宫格每个格子都算一遍对比度,然后取最大值作为最终评价值。结果呢?画面里有个强光源,那个格子的对比度特别高,镜头就对着光源对焦了,主体反而模糊了。

正确的做法应该是:

  1. 计算每个格子的对比度评价值
  2. 剔除异常值(比如过亮或过暗的格子)
  3. 对剩余格子加权平均
  4. 权重可以根据场景动态调整

九宫格的好处很明显:它能覆盖画面的大部分区域,同时又保留了局部信息。但坏处也明显——计算量是单窗口的9倍。在嵌入式平台上,这可不是闹着玩的。

避坑指南:我曾经在低端平台上硬上九宫格,结果帧率直接掉了一半。后来改成先粗筛,只对对比度高的几个格子做精细计算,才把性能拉回来。

4.4 基于人脸/物体检测的自适应窗口

这才是现代智能对焦的核心。先检测出人脸或物体,然后窗口跟着目标走。

自适应窗口的流程大概是这样的:

1. 运行检测算法(人脸检测、物体检测等)
2. 获取目标区域的边界框(Bounding Box)
3. 将边界框略微扩大(一般扩20%-30%)
4. 以此区域作为对焦窗口
5. 如果目标移动,窗口跟着移动

我做过一个项目,需要在会议摄像头上实现人脸跟踪对焦。一开始直接用检测框作为窗口,结果发现人脸稍微侧一下,检测框变小了,对焦就飘了。后来我把检测框固定扩大1.5倍,稳定性好了很多。

这里有个关键点:检测算法的帧率和稳定性。如果检测算法本身就不稳定,窗口忽大忽小,对焦就会来回跳动。我建议检测算法至少跑在15fps以上,并且要做时间上的平滑滤波。

我的建议:自适应窗口不要完全依赖检测结果。最好加一个fallback机制——检测不到目标时,自动切换回中心权重窗口或九宫格窗口。

4.5 窗口大小对精度的影响

窗口大小这个问题,我花了好几年才真正吃透。它直接影响三个东西:

  • 精度:窗口越大,对比度曲线的峰值越平缓,精度下降
  • 稳定性:窗口越小,噪声影响越大,评价值抖动越厉害
  • 速度:窗口越大,计算量越大,对焦速度变慢

你想想看,这是一个三角关系。你不可能三个都做到最好,必须做取舍。

我整理了一个经验表格,供你参考:

窗口大小(占图像比例) 精度 稳定性 速度 推荐场景
1/32 微距、文字拍摄
1/16 较高 较快 一般拍摄
1/8 运动场景
1/4 很高 低光照、高噪声

我记得有一次做低光照场景的优化,窗口太小了,噪声把对比度信号完全淹没了。后来我把窗口扩大到1/4图像大小,虽然精度下降了,但至少能对上焦。在低光照下,能对上焦比精度高更重要。

实用技巧:可以在粗对焦阶段用大窗口(快速找到大致位置),细对焦阶段用小窗口(精确定位)。这叫多尺度对焦策略,效果很好。

4.6 本章知识体系

下面这张图总结了各种对焦窗口的特点和适用场景,你可以快速回顾:

对焦窗口选择知识体系 对焦窗口选择 全局 vs 局部窗口 信息量 vs 抗干扰 中心权重窗口 高斯/阶梯权重分配 多区域九宫格 3x3网格综合判断 自适应窗口 人脸/物体检测驱动 窗口大小影响 精度·稳定性·速度 核心原则 场景决定窗口策略,没有万能方案

最后说一句:没有最好的窗口,只有最适合的窗口。不同场景、不同硬件平台,窗口策略都要调整。我做了这么多年,每次换项目都要重新调窗口参数。这很正常,别指望一套方案打天下。

总结:对焦窗口的选择,本质上是在精度、稳定性和速度之间做权衡。理解每种窗口的优缺点,结合你的实际场景,才能做出最优选择。


公众号:蓝海资料掘金营,微信deep3321