2. 窗口尺寸选择策略:大窗口与小窗口的优缺点、不同场景下的尺寸推荐、尺寸与信噪比的权衡

对焦窗口的尺寸,说白了就是你在图像上圈了多大一块区域来做对比度计算。这个尺寸选得好,对焦又快又准;选不好,要么来回拉风箱,要么对到背景上去了。

我刚开始做相机系统那会儿,总觉得窗口越大越好——信息多嘛,算出来的肯定准。结果呢?有一次在户外拍树叶,大窗口把天空也包进去了,对比度全被蓝天拉低,焦点直接飘到无穷远。嗯,从那以后我才认真琢磨窗口尺寸这件事。

2.1 大窗口的优缺点

大窗口,一般指覆盖画面 30% 以上的区域,或者超过 200×200 像素的矩形框。

优点 缺点
信噪比高,抗噪声能力强 容易包含多个深度目标,产生歧义
对低对比度场景更鲁棒 计算量大,帧率下降
不易受局部纹理干扰 对焦响应慢,容易拉风箱
适合大光圈浅景深场景 边缘区域可能被裁切

我个人习惯在以下场景优先考虑大窗口:

  • 风景拍摄:整个画面深度接近,大窗口能稳定收敛
  • 低光照环境:信噪比是瓶颈,大窗口能多积累像素能量
  • 视频连续对焦:大窗口的平滑性更好,不会频繁跳变
我的经验:在夜景模式下,我通常把窗口扩大到画面 40% 左右。虽然计算量大了,但信噪比提升明显,对焦不会因为几个噪点就乱跳。

2.2 小窗口的优缺点

小窗口通常覆盖画面 5%~15%,或者 64×64 到 128×128 像素。它追求的是「精准打击」。

优点 缺点
对焦精度高,能锁定小目标 信噪比低,容易受噪声干扰
计算量小,响应速度快 对低对比度区域几乎失效
避免背景干扰 容易丢失目标(目标移出窗口)
适合小光圈大景深场景 对焦曲线容易抖动

小窗口的典型应用场景:

  • 人眼/人脸对焦:窗口只框住眼部区域,精度极高
  • 微距拍摄:焦点只在极小范围内有效
  • 快速抓拍:小窗口计算快,能跟上瞬间动作
避坑指南:我曾经在一个项目中把小窗口直接设为 32×32,结果在室内灯光下对焦一直不稳。后来发现是窗口太小,信噪比不够,对比度曲线全是毛刺。小窗口至少保证 64×64,低于这个值就要考虑补光或增大窗口。

2.3 不同场景下的尺寸推荐

这里我整理了一张推荐表,你可以直接拿来参考:

场景 推荐窗口尺寸 窗口占比 备注
人眼对焦 64×64 ~ 96×96 2%~5% 配合人脸检测框使用
人脸对焦 128×128 ~ 200×200 10%~20% 覆盖整个面部区域
风景/远景 300×300 以上 30%~50% 中心区域优先
微距/特写 96×96 ~ 160×160 5%~10% 窗口要避开背景
运动物体 160×160 ~ 240×240 15%~25% 需要配合预测算法
低光照 200×200 以上 25%~40% 信噪比优先
视频连续对焦 240×240 ~ 320×320 20%~35% 平滑性优先

你想想看,这些推荐值不是拍脑袋定的。它们背后有一个核心权衡——信噪比与空间分辨率的平衡。

2.4 尺寸与信噪比的权衡

这是窗口选择里最核心的数学关系。简单说:

  • 窗口面积翻倍,参与计算的像素数翻倍,信噪比提升约 3dB
  • 窗口面积减半,信噪比下降约 3dB,但对焦精度可能提升

为什么会这样?因为对比度检测本质上是在计算像素之间的灰度差异。像素越多,随机噪声被平均掉的效果越好,信噪比自然就高了。

但代价是什么?

  • 大窗口会把不同深度的物体包进来,对比度曲线可能出现多个峰值
  • 小窗口虽然信噪比低,但曲线更「干净」,只有一个主峰
核心公式(简化版):
SNR ∝ √(N),其中 N 为窗口内像素总数。
窗口边长翻倍 → N 变为 4 倍 → SNR 提升 6dB。
但空间分辨率下降,可能引入多峰值风险。

我在一个项目中做过实测:64×64 窗口的信噪比大约是 28dB,128×128 窗口能到 34dB,256×256 窗口接近 40dB。但 256×256 窗口在拍摄人像时,经常把头发和背景一起算进去,焦点反而偏了。

所以我的建议是:先保证信噪比够用,再追求精度。信噪比低于 25dB 时,优先扩大窗口;信噪比高于 35dB 时,可以缩小窗口来提升精度。

2.5 知识结构图:窗口尺寸选择决策流程

下面这张图总结了我平时做窗口尺寸选择的思路:

窗口尺寸选择决策流程 输入场景与光照条件 光照是否充足?(Lux > 50) 是 小窗口优先 64×64 ~ 128×128 否 大窗口优先 200×200 ~ 320×320 判断目标类型 人眼/人脸 64×64 ~ 128×128 风景/远景 300×300 以上 运动/微距 96×96 ~ 240×240 最终尺寸 = 基础尺寸 × 场景权重系数(0.8~1.5)

这张图的逻辑很简单:先看光照,再定目标类型。光照好就小窗口追求精度,光照差就大窗口保证信噪比。然后根据目标类型微调最终尺寸。

我的习惯:在实际工程中,我不会只用固定尺寸。我会做一个动态窗口调整模块——光照充足时自动缩小窗口,光照变差时自动扩大。这样既保证了精度,又不会在暗光下失效。

最后说一句:窗口尺寸没有银弹。你需要在信噪比、精度、响应速度三者之间找到平衡点。我建议你在项目中先跑一组对比测试,把不同窗口尺寸下的对焦成功率画成曲线,那个拐点就是你的最佳尺寸。