1. 杂散光问题:拍照里那些看不见的“光污染”
1.1 什么是杂散光,为什么它比分辨率更难处理
做图像质量评估的人,一开始最容易进入的误区就是只盯着分辨率、锐度、MTF这些见高下的指标,却忽略了画面里那些“不该出现的光”。杂散光(Flare)就是这样一类问题:它不是让画面变糊,而是让画面变脏、变灰、变怪。明明镜头光学设计算得清清楚楚,MTF曲线漂亮得不行,结果实拍逆光场景,对比度忽然垮掉,或者画面里冒出一串紫色鬼影,这种体验我相信每位镜头工程师和影像调试工程师都不陌生。
杂散光,通俗点讲,就是成像系统中没有按照设计光路到达传感器,而是经过多次反射、散射、衍射之后,鬼使神差地在传感器某个位置形成了不该有的光照。它可能表现为整体对比度下降、画面起雾一样的灰蒙蒙一层,也可能表现为强烈的鬼影像、光晕、光斑,甚至是一整片区域的亮度抬升。不同表现形态对应不同的物理来源,排查的思路也完全不同。
为什么说它比分辨率更难处理?因为分辨率问题可以靠严谨的实验室数据直接量化,MTF掉到多少、SFR曲线哪个频段塌了,一眼就能定位。但杂散光是一个“长尾分布”的问题,它跟光源角度、波长、光强动态范围、甚至镜头的变焦位置都有强相关。同一个镜头,用LED灯照射和用卤素灯照射,杂散光表现完全不同;同一个场景,太阳在画面左边缘和右边缘,鬼影形态可能天差地别。想从根上把杂散光测明白,需要一整套测量逻辑和一套稳定可复现的实验环境。
这篇文章基于我近几年在影像实验室里做镜头杂散光评测、光学仿真对标和产线抽检的经验,把杂散光(Flare)从“是什么”到“怎么测”再到“怎么判”的过程完整梳理一遍。适合三类人看:一是新入行想建立完整图像质量测试体系的小伙伴,二是被鬼影问题折磨得睡不着觉的镜头设计工程师,三是负责相机模组与整机影像效果验收的质量工程师。文章不涉及高深的数学推导,但会把测量标准的核心逻辑、实验搭建的关键参数和那些容易踩坑的细节全部讲透。
1.2 杂散光的三大来源:镜头、传感器和结构件
想测好杂散光,前提是先建立一套“光路排查”的思维方式。我把杂散光的来源归纳成三条路径,实战排查时按这三条路径逐一排除,效率会高很多。
第一类是镜头光学件内部的反射与散射。这是最常见的来源,尤其是透镜数量多、结构复杂的变焦镜头和广角镜头。镜片表面的菲涅尔反射是物理定律决定的,哪怕镀了增透膜,也不可能做到100%透过。当强光源进入视场或者接近视场边缘时,剩余反射光线在镜片之间来回弹射,最终就可能汇聚成一个或几个鬼影。这种鬼影通常成对出现,形状规则,位置跟光源成镜像对称关系,颜色偏紫或偏绿,取决于镀膜的剩余反射光谱。
第二类是传感器表面的反射。现代CMOS传感器的表面就像一个微小的镜面阵列,虽然感光像素本身会吸收大部分光线,但传感器表面仍然存在约0.5%到2%的反射率(取决于微透镜镀膜和盖板玻璃工艺)。这部分反射光回到镜头内部,再经过镜片反射回来,会在画面另一侧形成“二次鬼影”,或者形成扩散型的耀光。传感器反射导致的眩光,最典型的表现就是画面中央或边缘出现大面积弥散光斑,跟镜头本身的鬼影相比,边界更模糊、形状更不规则。
第三类是结构件内部的散射与漫反射。镜筒内壁、光圈叶片、隔圈、马达支架、甚至传感器周围的PCB,这些结构件在出厂前都会做发黑处理或植绒消光,但实际上没有绝对的黑,材料本身的吸收率、表面粗糙度、老化程度都会影响杂散光表现。尤其值得留意的是红外滤光片(IRCF)的边缘、垫片和传感器盖板玻璃边缘,这些位置如果点胶不均匀或者结构设计不合理,会让光线从侧面“漏”进来,产生固定方向的光斑,整批模组可能都有一模一样的表现。
把三类来源分清楚后,后面的测量方案设计就顺理成章了。针对镜头内部反射,我们可以改变光源与视场的位置关系来诱导鬼影;针对传感器反射,可以换不同波长的窄带光源来验证;针对结构件散射,则需要用高动态范围的黑暗场景配合强光源来暴露问题。这些内容后面都会展开讲。
2. 标准怎么看:从ISO 18844到ASTM的测量逻辑
2.1 ISO 18844的核心思路:用一个黑目标让你无处藏身
说到杂散光的测量标准,绕不开的是ISO 18844。这个标准全称是《Photography - Digital cameras - Image flare measurement》,虽然名字听起来是给数码相机用的,但实际做镜头模组、车载摄像头、安防监控镜头的人也会直接参考这套逻辑。
ISO 18844的核心测量思路,用大白话说就是:在一个均匀照亮的亮背景里,放一个极小、极黑的区域,然后看这个黑区域在实际成像中“被污染”了多少。干净的镜头和传感器,黑区域应该仍然是黑的;有杂散光问题的系统,周围亮背景的光会通过散射、反射的路径蔓延到黑区域内部,让这个“本应全黑”的区域亮度抬升,轮廓变模糊。
这套思路的本质,是把杂散光的“污染程度”量化成一个可比较的数值。它不是去追踪杂散光的具体传播路径,而是站在最终成像结果的角度去衡量系统整体的杂散光水平。这一点很重要,因为在实际测试时,你不会去区分这些杂散光到底是从镜片反射来的,还是从传感器反射来的,又或者是结构件散射来的。只要成像结果变脏了,就说明系统的杂散光抑制能力不够。
标准的测试装置通常包含三部分:均匀光源、测试靶标和成像系统。均匀光源一般是积分球,提供一个亮度均匀、光谱稳定的光场;测试靶标是一块在亮背景中央带有黑斑的图案;成像系统就是被测的摄像头或镜头加传感器。实际操作时,还要特别注意靶标黑斑的面积占比。ISO 18844规定了多种黑斑尺寸,分别对应不同的评估目的:大黑斑考察的是低频杂散光的弥散效应,小黑斑则更灵敏地反映高频鬼影和小角度散射。
2.2 与MTF、SFR测量逻辑的差异
我最初接触杂散光测量时,最大的困惑是:既然都有“对比度下降”这个表现,那杂散光和MTF(调制传递函数)测的东西到底有什么区别?后来想明白了,这两件事的数学本质和信息维度完全不同。
MTF描述的是成像系统对空间频率的传递能力,它反应的是“信号”本身的衰减和损失。一个完美的镜头,MTF是一条标准的低通曲线;如果某个镜片装歪了、光圈没对准,MTF就会掉,但掉的是高频还是低频,能反过来推断是哪组镜片出了问题。MTF测量隐含了一个前提:场景是均匀照明的、没有强光干扰的。
而杂散光本质上描述的是系统对“非设计光路”的通透程度,它反应的是“噪声”的注入。当场景中存在一个亮度远高于平均水平的强光源时,这部分多余的光能会通过非设计路径进入传感器,在原本应该很暗的区域形成额外的照度。MTF测试中信号和噪声是分开的,而杂散光测量中噪声可能远大于某些区域的信号,所以它对系统动态范围的要求极高。
具体到测量方法上,两者的差异也很明显。MTF/SFR测试用的是斜边(slanted edge)或正弦波图案,关注的是边缘锐度和频率响应;而杂散光测试必须用到“暗点在一片亮场中”这样的极端对比度场景。前者是“小信号响应”,后者是“大信号下的微污染”。这也是为什么很多镜头在实验室MTF测试里表现优秀,一到户外逆光拍摄就暴露问题的原因——真实场景的动态范围远远超过测试卡的对比度范围。
我自己的经验是,在做完整的光学评测时,MTF和杂散光测试必须配合进行。MTF告诉你镜头能分辨多细的细节,杂散光告诉你镜头在最苛刻的照明条件下能不能保住对比度。两者缺一个,评测结论都是不完整的。
3. 实战测量:搭建一套靠谱的杂散光测试环境
3.1 暗室与光源选择:环境干净是一切测量的前提
杂散光测量对实验环境的要求,说白了就一个字——“黑”。不是差不多黑,而是要黑到让系统自身的杂散光暴露无疑。我在早期搭建测试平台时吃过不少亏,环境漏光、墙面反射、设备指示灯干扰,这些问题都会叠加到测试结果里,让你分不清到底是镜头的杂散光大,还是测试环境太脏。
暗室的选择标准,我建议从几点入手。墙面和天花板要用深色、哑光、低反射系数的材料处理,通常采用黑色植绒布或专用的无反射涂料,反射率最好控制在5%以下。所有测试设备(光源、监视器、示波器、电脑屏幕)的指示灯都要想办法遮挡或熄灭,因为这些点光源哪怕是0.5lux的亮度,在暗背景里也可能被传感器捕捉到。地面也不要忽视,深色地毯或深色防静电地胶都可以,目的是消除地面反射对低角度的杂散光贡献。
光源选择和均匀性控制是另一个关键环节。积分球是做杂散光测试最理想的均匀光源,它的出光口亮度均匀性可以做到±1%以内,色温可调范围广,是建立重复性测试平台的标配。但积分球也有坑,最大的是亮度调节范围有限,如果被测系统是宽动态范围的强光抑制型摄像头(比如车载或安防产品),积分球的最高亮度可能不够用。
替代方案是使用大面积LED面光源加扩散板,通过调节电流和PWM来控制亮度,再配合灰度渐变滤光片扩展动态范围。面光源方案的优势是亮度上限高,缺点是均匀性需要花心思调试,出光面各区域的色温和亮度可能有细微差异。不管用哪种光源,实测前都要用均匀性探头在靶标覆盖的整个区域扫一遍,确保亮度均匀性在2%以内,否则测出来的数据会让人误判。
3.2 测试图案、相机摆放与遮挡设计
测试靶标的设计,直接从ISO 18844标准里抄作业就行,但我建议根据被测系统的视场角和分辨率做适配,不能死搬标准。
标准靶标的核心元素分两类:亮场和暗斑。亮场是整个靶标的背景,要求亮度均匀,尺寸覆盖被测系统的整个视场角;暗斑是放置在亮场中央或特定位置的黑色吸收区域,直径大小根据评估目的选择。常见的暗斑尺寸有视场角占比1%、2%、5%、10%几种档位。我实测下来,优先建议用1%和5%两档组合:1%暗斑对杂散光中近场散射和鬼影非常敏感,适合镜头和模组之间的横向对比;5%暗斑更接近实际拍照场景中逆光物体对画面的影响,适合整机效果验收。
靶标的制作工艺也需要讲究。黑斑部分不能是普通打印的黑墨,因为打印墨层在近距离观察时仍然有5%左右的反射率,这会被误认为杂散光。必须使用光学吸收材料(比如Acktar的Metal Velvet、爱特公司的黑硅片)来制作暗斑,这类材料的反射率可以做到1%以下。亮场部分也要注意,不能直接用普通白纸,要用漫反射系数高且光谱中性的材料,推荐氧化钡涂层或专用的硫酸钡漫反射板。
相机摆放和相对角度设计,是所有步骤里最容易出错的地方。核心原则是:被测设备的光轴必须垂直于靶标平面,尽量保证传感器完全面对亮场中心;如果测试目的是诱导边缘鬼影,可以按预设角度旋转设备,但每次旋转要固定角度并在报告中记录。对于广角镜头,靶标的尺寸可能要大得离谱,这时候可以采用局部照射法——用足够大的面光源覆盖视场角的关键区域,而不是非要覆盖整个视场。我在做鱼眼镜头和超广角镜头测试时,常用局部照射法加分区扫描的方式,把整个视场划分成几个区域,分别测杂散光响应,再合并评估。
最后还有一个经常被忽略的点:镜头前端的挡光设计。某些镜头在特定角度下会有遮光罩阴影(渐晕)叠加到杂散光指标上,这会影响数据真实性。所以测试时要么不装遮光罩,把裸镜头测清楚;要么明确记录遮光罩状态,保证不同镜头之间有可比性。遮光罩对杂散光的抑制效果本身也值得测,建议做一组“装与不装”的对比数据,这往往是镜头结构设计优化的突破口。
4. 数据处理与关键指标计算
4.1 从原始图像到杂散光指标的算法流程
测试环境搭建好后,采集到原始图像只是第一步,更关键的是把图像数据换算成可对比、可判定的杂散光指标。这一步如果处理不好,前面的硬件投入全部白费。
我先说最基础的杂散光指标——暗斑亮度抬升率(Flare Percentage)。这个指标的逻辑很简单:在没有杂散光的理想系统中,暗斑区域内的亮度应该等于0(或接近0);实际系统中暗斑区域会有一定的亮度残留,这个残留亮度与亮场平均亮度的比值,就是杂散光百分比。
算法流程分这么几步。第一步,对采集到的原始RAW图像做黑电平校正,这一步不能省,否则传感器暗电流会给暗斑区域贡献一个固定偏置,让杂散光数值虚高。第二步,把RAW数据换算成线性光照数据,去掉Gamma或sRGB转换的影响,这是很多新手容易忽略的,非线性数据算出来的杂散光百分比会被压缩或放大,导致横向对比失真。第三步,在图像中框定暗斑区域和亮场区域,分别计算平均灰度值。暗斑区域要扣除边缘过渡带,一般取暗斑几何中心70%面积的区域;亮场区域取暗斑周围或四角位置的几块均值。第四步,按公式计算:Flare% = (暗斑平均灰度 - 黑电平) / (亮场平均灰度 - 黑电平) × 100%。
除了全局百分比,还推荐计算另外两个衍生指标。一个是暗斑区域内的峰值比(Peak-to-Average Ratio),用来衡量暗斑内是否有集中的鬼影或亮点;另一个是暗斑边缘的过渡宽度(Edge Width),用来衡量杂散光的空间弥散范围。前者更能反映点光源鬼影问题,后者更能反映散射型杂散光。做产线抽检或不同镜头横向对比时,我建议同时产出一张“百分比+峰值比+边缘宽度”的三指标报告,这样比单一指标更能说明问题。
4.2 判定标准与常见指标口径
杂散光指标的实际判定,并不是一个板上钉钉的数字就能搞定的,它跟产品定位和场景强相关。这也是为什么同样是杂散光测试,手机镜头、车载镜头、监控镜头可以通过不同的阈值。
先从ISO 18844本身的建议说起。标准中推荐几个判定等级,简单说就是Flare百分比低于0.1%的系统属于优秀,0.1%到0.5%属于可接受范围,超过1%就需要警惕了。这个阈值在实验室环境、中低动态范围场景下是合理的。但我们实测时发现,对车载前视摄像头,尤其是夜间会车场景,杂散光百分比哪怕只有0.3%,也可能在画面里形成明显的边缘光晕,影响算法对行人、车辆的检测。所以车载项目,我一般会把验收阈值收得更紧,要求全视场最大杂散光不超过0.2%,这对镜头镀膜和镜筒消光设计提出了很高的要求。
另一个常见的指标口径是“动态范围法”。这种方法不直接测暗斑亮度抬升率,而是不断改变亮场亮度,直到暗斑区域的杂散光亮度达到某个固定值(比如灰阶的1%),记录此时亮场与暗斑亮度的比值作为“杂散光抑制比”。这种口径的好处是弱化了绝对亮度的影响,更贴近实际应用场景中“强光环境下能否看清暗部细节”的真实需求。安防和车载项目比较喜欢用这个口径,因为它跟ISP的HDR策略是联动的。
再者,报告数据时还要注意波长依赖性。白光LED光源测出来的杂散光水平只是一个加权平均结果,实际系统对蓝光的散射和镀膜的蓝紫光反射会更严重。如果条件允许,建议在测试流程中加入几个窄带滤光片(比如450nm蓝光、550nm绿光、650nm红光)的分波段测试。我记忆中做过的某款广角镜头,白光测试杂散光0.4%,看着正常,换成450nm蓝光直接飙到1.8%,最后的根因就是某种特定膜层的蓝光反射率偏高,这个案例充分说明分波段测试的必要性。
4.3 实测案例分析:怎样从数据反推杂散光来源
指标算出来之后,最考验功力的一步就是“反推来源”。同一组杂散光数据,来源可能是镜头内部反射,也可能是传感器反射,还可能是结构件漏光,定位错了源头,后续所有的整改动作都会白费。
我分享一个实测过的案例。某型号定焦镜头配一款CMOS模组,在全视场杂散光测试中测得暗斑亮度抬升率0.6%,图像中央有一块明显的圆形光斑。初始怀疑是镜片镀膜反射问题,但是把镜头换成同品牌的另一款型号,正常了;再把镜头拆下来直接换成裸传感器配一个无镜片的光筒测试,传感器本身也没问题。于是确定问题在镜头光学系统内部。
进一步排查的方法是改变光源角度。把点光源从视场内移到视场外,从0度、5度、10度、15度逐步扫描,同时记录暗斑亮度的变化。结果发现在12度入射角附近时,暗斑亮度有一个明显的尖峰。对照光学设计数据,这个角度正好对应镜筒内部某组隔圈端面的反射角。最后拆开镜头,发现该隔圈表面发黑处理不彻底,局部反射率超过10%,换成重新阳极氧化处理的零件后,杂散光指标降到了0.15%以内。
这个案例说明一件事:杂散光的来源排查,数据只是起点,真正管用的是“变量控制法”——每次只改变一个条件,看指标怎么变,然后逐层逼近根因。这种思路也适合产线上的批量问题分析,如果一批模组的杂散光指标普遍偏高,先查同一供应商的镜片镀膜,再查机构件装配的一致性,大概率能锁定问题工序。
5. 常见问题与排查技巧实录
5.1 鬼影与镜头内部反射的根源分析
鬼影(Ghost)是杂散光里最容易被肉眼察觉、也最容易引起用户投诉的表现。它的形成机制可以用一个简单的“光线接力”逻辑来讲:强光源的光线经过某组镜片表面反射后,形成一个虚拟光点,该光点再被后续镜片成像在传感器上,就成了鬼影。
鬼影的排查,我建议按颜色、形状和位置三个维度做初步判断。颜色偏紫、偏绿,大概率是镀膜的剩余反射造成的,因为增透膜的剩余反射通常在可见光短波段(蓝紫光)和绿光波段有一个或几个波峰;颜色接近白色,说明反射面没有明显的波长选择性,可能是镜筒结构件的镜面反射;形状跟光源高度对称,说明反射路径比较单一,是某个特定表面造成的;形状散乱、亮度均匀,则更可能是漫反射或散射主导。
位置分析是更高级的排查手段。理论上,光线在两个表面之间来回反射,鬼影和光源在画面上的位置满足特定的比例关系,这个关系可以通过光学设计软件(Zemax、Code V)直接模拟出来。在实测阶段,我用过一个土办法:把点光源放在视场正中央,拍一张鬼影图;再把光源移到视场三分之一处,再拍一张;然后把这两张图的鬼影位置连线、延长,就能大致判断反射发生在哪一组镜片之间。这个方法虽然不如软件精确,但在现场快速定位问题非常好用。
5.2 结构影响、镀膜选型与设计建议
最后落实到设计优化和工程改进层面,我总结了几条有实操价值的建议。
第一条,优先考虑镜头光学设计与镀膜的协同优化。增透膜的剩余反射率不可能做到零,但可以通过膜层设计把剩余反射的光谱推向人眼不敏感或传感器响应较弱的波段。例如,在可见光波段的条件下,把剩余反射峰值移到400nm附近,对近红外增强型传感器或许是合理的,因为很多摄像头模组对650nm以上的红外光比较敏感,蓝紫光的影响相对可控。但这对颜色还原要求高的相机来说就不合适,需要权衡。
第二条,结构件消光要做到“从设计阶段就开始”,不要等样机打出来再补救。镜筒内壁的消光螺纹(俗称乱螺纹)要设计足够的深度和密度,消光漆的选择要关注附着力和耐老化性能,绒布的选用要注意不会掉毛。还要特别关注可动组件的缝隙,比如对焦马达的线圈和磁铁周围、光圈叶片的侧壁,这些位置容易形成窄缝产生衍射或反射,必要时需要增加遮光片。
第三条,针对传感器反射,可以在IRCF(红外滤光片)和传感器之间增加一个微距垫圈,使得传感器表面反射光无法再次聚焦到成像面上;或者在传感器封装层面优化微透镜阵列的防反射镀膜。这个问题在模组设计与镜头设计分离的供应链结构下尤其容易被忽视,很多镜头厂觉得自己没问题,整机厂装上后出现鬼影,最后排查发现是传感器反射导致的,双方扯皮很久。所以在项目立项初期,镜头厂、模组厂、传感器厂就要坐下来把杂散光测试方案定妥,明确各自责任边界。
5.3 杂散光测试系统的日常维护与可重复性保障
我把这个内容单独拉出来写,是因为见过太多团队把精力花在初次搭建上,却不重视日常维护。一套杂散光测试系统用半年之后,如果数据开始漂移,第一个要怀疑的不是被测产品变了,而是测试系统本身出了问题。
暗室的整体可靠性,每季度应当做一次全面核查。检查项目包括墙面植绒布有没有脱落、脏污;积分球出光口的扩散板有没有变黄、积灰;光源色温有没有漂移;面光源每个LED通道的亮度是否有差异。尤其是光源,LED在长时间工作后有亮度衰减和色温漂移的问题,建议系统里配置一台光谱仪,每次测试前花30秒测一下光源色温和光谱分布,把数据存档。实测中出现过两次整批产品杂散光数据忽然恶化,最后发现都是光源系统出问题了,第一次是扩散板被灰尘覆盖,第二次是LED驱动电源老化导致亮度波动。
操作规范也很重要。测试前被测设备要在暗室中预热15分钟以上,让传感器温度和暗电流达到稳定状态;每一组测试都要记录环境温度、湿度;被测设备与靶标之间的距离、相对角度要用固定治具限定,不能每次人工摆放。这些细节看起来琐碎,但在做长时间序列对比(比如产品迭代前后的杂散光对比)时,任何一项不规范操作都可能让数据失去可比性。
就我个人实测的经验来说,杂散光测试是一个“下限很低、上限很高”的事情。下限低,是指随便拿个手电筒和灰卡也能拍出明显的鬼影给大家看;上限高,是指要做到不同实验室之间、不同批次之间的数据高度可复现,需要研究测量标准和测试细节的功夫非常深。如果你正在搭建或优化自己的杂散光测试体系,我的建议是先从ISO 18844的流程走一遍,把基础指标做扎实,再根据自己的产品形态扩展更多专项测试。数据积累得多了,你就能慢慢建立起属于自己的“杂散光评价数据库”,到那时无论是评判供应商的方案,还是推动自家产品改良,都会非常有底气。