三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

010、光圈档位的蝴蝶效应——F值变化0.1对景深/信噪比/衍射极限的多米诺骨牌式影响

010、光圈档位的蝴蝶效应——F值变化0.1对景深/信噪比/衍射极限的多米诺骨牌式影响

010、光圈档位的蝴蝶效应——F值变化0.1对景深/信噪比/衍射极限的多米诺骨牌式影响

上周三晚上十一点,车载项目组的小王把一版新固件丢到我桌上,说夜视模式下车牌过曝得厉害,他试着把光圈从F1.6收到F1.8,结果画面暗了一档不说,远处路牌边缘还起了白边。他挠着头问:“就0.2的差异,怎么跟捅了马蜂窝似的?”

这个问题我太熟了。光圈档位从来不是孤立参数,它像推倒第一张多米诺骨牌,后面跟着一串连锁反应。今天就把这串骨牌从头到尾捋一遍,顺便聊聊那些年我们踩过的坑。

先看景深这第一张牌。很多人以为景深只跟焦距和拍摄距离有关,其实光圈孔径才是那个最容易被忽略的变量。F值每缩小0.1,孔径变化看起来微乎其微,但弥散圆半径的公式里,光圈直径是平方项。拿50mm镜头举例,F1.6到F1.8,孔径从31.25mm缩到27.78mm,弥散圆半径直接缩了约11%。这意味着焦平面附近的清晰范围明显收窄。在车载场景里,前车尾牌距离变化个半米,原本合焦的位置可能就虚了。我们曾经在AEB测试中发现,F1.6下能清晰分辨的30米处行人轮廓,收到F1.8后边缘开始发毛,识别置信度掉了三个百分点。这不是玄学,是几何光学在作祟。

第二张牌是信噪比。光圈收小,进光量按孔径面积比例下降。F1.6到F1.8,孔径面积缩了约21%,传感器接收到的光子数直接打八折。在暗光环境下,这21%的光子损失意味着散粒噪声占比上升,信噪比恶化。具体到数值,假设原本SNR是30dB,现在可能掉到28.5dB左右。别小看这1.5dB,在ISP的降噪强度固定时,画面噪点颗粒感肉眼可见地增加。我们做过盲测,让十位工程师对比F1.6和F1.8在10lux下的夜景样张,八个人能准确指出哪张是收小光圈的——噪点纹理完全不同。

第三张牌最阴险,衍射极限。光圈收小到一定程度,衍射效应开始压过几何像差。艾里斑半径跟F值成正比,F1.8的艾里斑比F1.6大约12.5%。当像素尺寸小于艾里斑直径时,分辨率不升反降。拿我们常用的IMX490传感器,2.0μm像素,F1.6时艾里斑直径约2.1μm,勉强够用;收到F1.8,艾里斑直径涨到2.4μm,已经超过像素尺寸,画面中心锐度开始下降。这就是小王看到“路牌边缘起白边”的物理根源——不是对焦问题,是衍射把点光源的能量摊薄了。

这三张牌不是独立倒下的,它们互相纠缠。景深变浅,你可能想用更小的光圈来增加清晰范围,但衍射极限又限制了你不能收得太狠。信噪比恶化,你可能想提高ISO补偿,但增益放大噪声的同时也放大了衍射造成的模糊。这就是蝴蝶效应的核心——你动一个参数,其他所有参数都在暗中联动。

实战中我们怎么处理这种联动?分享几个踩过坑后的经验。

第一,调光圈前先明确场景优先级。车载夜视,车牌识别优先,那就死守信噪比底线,光圈尽量开大,景深不够靠算法补偿(比如多帧融合或深度估计)。安防监控,大范围覆盖优先,景深比噪点重要,光圈可以适当收小,但要用更强的降噪算法兜底。没有万能光圈,只有场景适配的光圈。

第二,别用“感觉”判断光圈变化。拿一张测试卡,在固定光照下拍一组F1.4到F2.8的序列,用Imatest或类似工具量化MTF50、SNR、景深范围。你会发现F1.6到F1.8的差异,比F2.0到F2.2的差异更敏感——因为在小光圈端,衍射的边际效应在加速。这个非线性关系,只有实测才能摸清。

第三,注意光圈马达的步进精度。很多模组的步进马达最小步长是0.1F,但实际到位精度受温度、电压影响,可能偏到0.15F。我们曾经在-20℃环境下测过,标称F1.8实际落在F1.95,景深和信噪比全偏了。所以量产标定一定要做全温域的光圈位置校准,别只盯着25℃的实验室数据。

第四,如果ISP有自动光圈策略,务必设置合理的限制区间。有些方案默认光圈优先,为了保亮度会一直开大,结果白天过曝、晚上景深不够。我们通常的做法是:根据场景亮度分三段,暗光段锁定最大光圈,中光段允许在F1.6-F2.0间浮动,亮光段强制收到F2.8以上。这个分段阈值要结合具体传感器的动态范围和镜头MTF曲线来定,不能拍脑袋。

最后说个容易被忽略的细节——光圈叶片形状对焦外成像的影响。圆形叶片和六边形叶片,在同样F值下,焦外光斑的柔和度完全不同。如果你做的是人像或电影机,这个差异很关键;但做车载或安防,焦外不重要,别在这上面浪费调优时间。

回到小王那个问题。我让他把光圈调回F1.6,同时把ISP的局部对比度增强关掉,改用更精细的降噪参数,车牌过曝问题通过调整曝光权重区域解决。结果画面干净了,路牌边缘的白边也消失了。他后来跟我说,原来光圈不是“拧一下”的事,是牵一发动全身。

这就是光圈的蝴蝶效应。你改变的不是一个数值,而是一整套光学-电学-算法的平衡态。理解这个平衡,比记住任何公式都重要。下次再有人跟你说“就差0.1,没事”,你可以把这篇笔记甩给他看。

← 返回列表