
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的流程走一遍把基础指标做扎实再根据自己的产品形态扩展更多专项测试。数据积累得多了你就能慢慢建立起属于自己的“杂散光评价数据库”到那时无论是评判供应商的方案还是推动自家产品改良都会非常有底气。