拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

杂散光Flare测量全解析:从ISO 18844到系统工程优化

杂散光Flare测量全解析:从ISO 18844到系统工程优化

你有没有遇到过这样的情况:一台镜头死磕中心分辨率,MTF曲线测出来一根根都漂亮得很,可一旦对着强光源拍夜景,画面就像蒙了一层毛玻璃,路灯周围一圈光晕,本该干净的暗部全部泛灰。分辨率没问题,清晰度却总觉得“糊”,这种矛盾十有八九是杂散光(Flare)在作祟。我在图像质量评估系列里专门拿出一篇来写它,是因为Flare太容易被误读成“镜头雾了”“镀膜不行”,实际上它是一种可以测量、可以量化、可以复现,并且能靠工程手段优化的光学指标。

这篇文章我打算按这个顺序展开:先帮大家把Flare的来源和表现理清楚,再拆解ISO 18844标准的测量逻辑,然后分享我从零搭一套杂散光测量系统的完整过程,接着给出一套从RAW到指标的Python数据处理示例,最后谈谈测量结果怎么反推镜头和模组设计。内容主要面向影像测试工程师、光学设计、ISP调试和镜头产品质量相关人员,也会兼顾想入门的读者。

1. 先搞懂Flare从哪来:光路里的“幽灵”不止一种

1.1 三种最常见的Flare表现

Flare在画面上的呈现方式其实有好几种,很多人把它们统称为“鬼影”或“光晕”,但在工程上它们代表的问题很不一样。

第一种是整体灰雾(Veiling Glare)。整个画面的暗部亮度被抬升,黑色变成深灰色,对比度肉眼可见地下降。这种表现最容易被误判为曝光不准或者屏幕亮度过高,但实际上即使你压低曝光,暗部的“灰”依然存在。

第二种是鬼像(Ghost)。强光源附近会出现一个或多个清晰的虚像,形状往往是对称的,有的甚至能看出孔径光阑的影子。鬼像通常来自透镜表面之间的多次反射,光在两个面之间来回弹射后,在焦平面上重新聚焦,形成肉眼可见的虚像。

第三种是光晕(Halo)和放射状条纹。点光源周围出现一圈圈亮环,或者从光源向四周拉出细长的光芒线条。光晕的来源比较复杂,可能是镜筒内壁的多次反射,也可能是传感器保护玻璃与红外截止滤光片之间的间隙反射,还可能是镜片边缘的散射。

这三种表现经常同时出现,但测量时如果我们只给一个“Flare数值”,很容易掩盖背后不同的物理原因。所以专业测试环境里,除了看指标,还一定要保留原始图像,靠形态辅助判断。

1.2 杂散光的几个主要来源

杂散光的本质很简单:光学系统里除了“正常成像光线”之外,还有大量非成像光线到达了像面。它们的路径五花八门,但主要来源可以归纳为几类。

透镜表面反射是最常见的一类。现代镜头单面镀膜反射率可以做到0.3%以下,但一个变焦镜头十几片镜片,几十个反射面,每面反射一点点,叠加起来就相当可观。更别说有些镜片边缘、胶合面、非球面边缘没有镀膜,反射率可能在1%以上。

镜筒内壁反射和散射也容易被忽略。镜筒、隔圈、压环、遮光罩内壁如果消光处理不好,光线打到这些结构件上会向各个方向散射,最终有一部分到达像面。这就是为什么高端镜头内部都有密密麻麻的消光螺纹,还要喷涂高吸收率的消光漆。

传感器模组部分的反射是很多工程师容易漏掉的点。传感器表面的Cover Glass、红外截止滤光片(IRCF)之间会形成一个微型“反射腔”,强光入射后光线在两个平面之间反复反弹,产生独特的环形光晕或鬼像。这类Flare和镜片关系不大,纯粹是模组结构问题。

还有一个来源是机械结构边缘的衍射和散射。比如孔径光阑叶片边缘、快门叶片、结构件开孔边缘,如果工艺粗糙或边缘有毛刺,光线经过时会明显散射。这种散射通常表现为放射状条纹或局部光雾,单看MTF完全发现不了。

1.3 为什么测Flare比测MTF更“琐碎”

MTF测量本质上是测一个确定性很强的高能量信号,靶标本身足够亮,探测器接收到的主要是系统响应,环境干扰相对容易压制。但Flare恰恰相反,它是一个弥散的、叠加在整个画面上的小信号,经常只占亮场信号的百分之几甚至千分之几。

这意味着测量Flare时,实验室环境的一点漏光、光源面板的微小不均匀、传感器自身的热噪声和暗电流,甚至黑靶材料本身的反射率,都会对最终结果产生明显影响。更麻烦的是,Flare还随视场角、光源位置、光谱成分、光圈大小变化,不是一个数字就能概括的。

所以我不建议把Flare当成一个“测一次就有结论”的参数。它更像是一个需要固定测试条件、强调过程控制、依赖重复性验证的工程项目。理解了这一点,再去看ISO 18844标准的思路,会顺畅很多。

2. ISO 18844和它的测量逻辑:白场+黑靶

2.1 标准的总体思路

ISO 18844是关于数字相机眩光测量的一份标准,全称大致是Photography — Digital cameras — Veiling glare measurement。它解决的核心问题是:如何用一套可复现的方法,把由杂散光导致的“暗部抬升”量化出来。

标准的总体思路其实非常朴素:在均匀亮场中放置一个低反射率的黑色靶标,让被测相机对黑靶拍摄,然后比较黑靶区域和周围白场区域的输出信号。如果没有杂散光,黑靶区域的信号应该接近零;如果系统存在杂散光,光线会从亮场部分“漏”到黑靶区域,导致黑靶区域的信号明显大于零。

这个白场+黑靶的思路,和日常观察体验完全一致。晚上开车遇到对向远光灯时,前方原本应该是黑色的车辆会变成深灰色,就是因为强光在挡风玻璃和眼睛/摄像头里产生了杂散光,把暗部的亮度抬高了。ISO 18844就是把这种体验变成一种可以精确比较的数字。

2.2 两个常用指标:Flare Ratio和VGI

基于白场+黑靶的原始数据,实际应用中常用两个指标来表征杂散光水平。

第一个是Flare Ratio,定义是黑靶区域的信号与亮场区域信号的百分比:

Flare Ratio = (S_black / S_white) × 100%

S_black是黑靶区域的中位数信号,S_white是参考亮场区域的中位数信号。这个值越低越好。如果完全没有杂散光,S_black接近0,Flare Ratio接近0%;如果杂散光严重,黑靶区域和亮场区域几乎一样亮,Flare Ratio会接近100%。

第二个是眩光指数VGI(Veiling Glare Index),定义是亮暗信号的对比度归一化:

VGI = (S_white - S_black) / (S_white + S_black) × 100%

VGI越高越好,100%意味着黑靶区域完全没有信号,也就是没有杂散光。VGI和Flare Ratio本质上是同一个物理量的两种表达方式,可以互相换算。

这个公式的逻辑可以理解成“信号干净度”。亮场信号是分子,暗场信号是分母的一部分,暗场信号越大,VGI越小,说明系统把不该有的光混进了暗部。

2.3 参考评价范围

由于不同产品、不同使用场景对Flare的容忍度差异很大,ISO标准本身不会规定“合格线”,实际产品规格里才会定义。以我在影像测试领域的项目经验来看,可以参考这个大致范围:

Flare RatioVGI主观感受
< 0.5%> 99%优秀,逆光场景暗部依然干净
0.5% - 1.5%97% - 99%良好,绝大多数场景无感
1.5% - 3%94% - 97%一般,逆光可感知到暗部泛灰
> 3%< 94%较差,暗部明显发灰,对比度受损

这些数值只是经验参考,不是标准强制判定。比如安防监控摄像头在夜间强光源场景下,要求会苛刻得多;而一些入门级摄像头本身定位低,Flare指标到3%以上也可能被接受。

2.4 测试条件里的几个关键细节

白场+黑靶听起来简单,但测试条件稍有不同,结果就没法横向对比。根据标准思路和我的实践经验,有几个条件需要特别注意。

光源均匀性很关键。白场区域的信号会被当成参考基准,如果光源面板中心亮边缘暗,不同视场测出来的Flare Ratio就会有明显偏差。我一般要求测试面板中心与边缘的亮度偏差控制在3%-5%以内,否则需要做像素级均匀性校正。

黑靶的反射率必须足够低。黑靶的目的是模拟“无光”区域,如果黑靶本身反射率就有2%-3%,你测出来的Flare数据其实是“系统的杂散光+黑靶自身的反射”,结果会系统性偏高。实测中推荐反射率低于1%的黑材料,如果能做到0.3%以下更好。

曝光选择要落在传感器的线性响应区间。白场信号如果超过传感器满阱的90%,可能进入非线性区,黑靶区域的信号会被压缩或抬升,计算出来的Flare Ratio就失真了。我通常把白场区域的平均信号控制在满阱的50%-80%之间,并确认没有过曝像素。

环境光要严格排除。测试需要在暗室或封闭环境中进行,周围墙壁、桌面、测试人员的衣服都有可能把光反射到被测镜头上。这一点在下一节具体展开。

2.5 镜头级和系统级测试要分清

ISO 18844偏系统级测量,也就是镜头、传感器、可能还有部分图像处理链路的整体表现。但在实际研发流程里,Flare问题经常需要区分是“镜头问题”还是“模组问题”。

镜头级的Flare测试通常用光具座,把镜头装在一个能接收平行光的装置上,用积分球产生均匀光,再用探测器接收通过镜头后的光强分布。这种方式能隔离传感器的影响,适合光学设计阶段的验证。

系统级测试则是把镜头装在实际模组上,用RAW数据算Flare指标。这也是我日常做得最多的,因为最终用户感知到的是系统输出,而且传感器Cover Glass、IRCF这些模组结构件的反射贡献只有系统级测试才能暴露出来。

做系统级测试时,我强烈建议关闭所有图像增强算法,比如降噪、锐化、多帧合成、HDR、色彩增强。原因很简单:这些算法会改变暗部信号,尤其是降噪和多帧合成,会把暗部噪声压低,也会把Flare信号压掉一部分,导致结果不能真实反映光学部分的杂散光。

3. 实验室实战:从零搭一套Flare测量系统

3.1 设备清单

自己搭一套可复现的Flare测量系统,并不需要很夸张的设备,但每一件都不能省。我的常用配置是下面这样:

设备要求用途
均匀面光源积分球或LED均匀面板,亮度可调,均匀性≥90%,稳定性好提供白场背景
黑色靶标无光黑绒、黑泡棉或高吸收率黑涂料,反射率<1%模拟暗区
遮光幕布/黑布吸光性好,面积要大隔离环境光
被测相机/模组支持RAW输出,可手动控制曝光参数被测对象
三脚架/云台稳定,可精确调节朝向固定相机
亮度计/照度计可标定光源亮度环境标定
暗室或封闭工作间尽量无反射、可完全遮光测试环境

积分球是理想的白场光源,因为它的均匀性远优于普通面板灯。如果预算有限,用大尺寸LED均匀面板也可以,但一定要确认均匀性,并在测试前用亮度计做多点测量。还有一个容易被忽略的点:LED光源存在频闪,曝光时间太短时画面会亮暗不均,测试前最好用直流驱动或确认频闪周期小于曝光时间。

3.2 环境控制:那些“看似不起眼”的细节

Flare测量最怕的就是环境光污染,但环境光污染往往不是大问题,而是各种小细节叠加出来的。我在实际测试中吃过不少亏。

测试墙面和地面要尽量避免反光。白墙、瓷砖地、光面桌面都会把光源的光反射到镜头上,尤其是测试人员站在相机侧面时,身上的浅色衣服本身就相当于一块“漫反射板”。我现在的做法是在测试区四周围一圈黑色吸光幕布,地上铺黑色吸光布,测试人员统一穿深色工作服。

电气设备的指示灯也要处理。相机屏幕、显示器、示波器、电源适配器上的LED指示灯,都可能成为微弱的光源。它们不会直接出现在画面里,但会进入杂散光系统,把Flare数值抬高零点几个百分点。我习惯用黑色电工胶布把不用的指示灯贴上,这个操作虽然听起来小题大做,但确实让数据稳定了不少。

另一个容易被忽视的问题是镜头和相机自身的发热。相机长时间通电工作,传感器温度升高,暗电流和热噪声都会上升,黑靶区域信号会被“掺水”。所以我一般会让相机在测试环境中开机预热15分钟以上,再进入正式测试序列,并且每次测试都要拍暗帧做校正。

3.3 相机/模组设置与拍摄流程

我把一次标准的Flare测试流程拆成七个步骤,每个步骤都可以直接照抄。

第一步,固定相机。把被测相机或模组安装在三脚架上,正对被测区域中心,确保光轴垂直于光源面板平面。如果测的是模组而不是整机,需要设计一个稳定的夹具,避免模组松动导致画面对不准。

第二步,设置相机参数。切换到手动模式,固定ISO(一般用基础ISO),光圈设置在工作光圈(比如手机镜头是固定光圈,安防镜头用常用F数),曝光时间根据白场亮度调整,目标是让白场区域的平均RAW值落在满阱的50%-80%之间。关闭自动白平衡、自动曝光、自动对焦,白平衡在RAW数据里不影响线性信号,但自动对焦可能导致镜片位置变化,必须固定。

第三步,拍一张无靶的均匀亮场参考帧。此时光源面板前不放黑靶,相机对准面板中部拍摄。这张参考帧用来做像素级均匀性校正,以及确认白场信号水平。

第四步,放置黑靶。把黑靶贴在光源面板上,或者固定在光源前方足够近的位置,确保黑靶在画面中的位置根据需要覆盖,常见是覆盖画面中心或特定视场角区域。黑靶边缘要清晰,尺寸要足够大,至少覆盖画面面积的10%以上,这样统计区域才有意义。

第五步,拍摄黑靶帧。保持相机参数完全不变,拍一张含黑靶的画面。建议连续拍摄至少3张,后续可以用均值或中位数降低随机噪声。

第六步,拍暗帧。盖上镜头盖,用完全相同的曝光参数拍摄至少3张暗帧,取均值作为暗电流和固定模式噪声的参考。

第七步,记录完整的测试条件。包括光源亮度、曝光时间、ISO、光圈、黑靶型号、黑靶位置、环境温度、湿度、相机固件版本、RAW文件名。这些元信息对后续复现和排查异常非常重要。

3.4 最容易踩的三个坑

搭好系统后,真正让数据“翻车”的往往是几个小问题。

第一个坑是黑靶材料选错。有些看起来是黑色的材料,在近红外波段反射率其实不低。比如普通黑色塑料、黑色胶带,可见光反射率可能只有3%,但在850nm近红外下反射率能到10%以上。如果被测系统对近红外敏感,测出来的Flare数值会异常偏大。建议用专门的高吸收率黑材料,比如黑色天鹅绒、AKChrome等消光材料,并且用分光光度计确认全光谱反射率。

第二个坑是光源频闪。LED灯具如果驱动电源质量不好,会有100Hz或120Hz的频闪。曝光时间较短时,画面会出现明暗条纹,黑靶区域的信号统计自然不准。判断方法很简单:用手机对着LED灯拍慢动作视频,如果存在明显的亮度脉动,就说明频闪明显,需要换用积分球或直流驱动的光源。

第三个坑是忘记拍暗帧或没有扣黑电平。不扣暗帧的话,传感器的暗电流和固定模式噪声会叠加在黑靶区域信号上,Flare Ratio会被系统性高估。尤其是曝光时间较长的情况下,热噪声贡献可能超过真实Flare信号,导致测出来一个“看起来很严重”但其实大部分是热噪的假数据。

4. 从RAW到指标:数据处理实例

4.1 第一步:把RAW还原成线性信号

拍摄完RAW之后,数据处理的第一步是把RAW字节还原成线性的、可直接比较的信号值。这一步看起来基础,但实际上很多问题的根源都出在这里。

RAW文件里的数字通常不是真正的“线性光强”,它包含了传感器的黑电平(Black Level)偏置。如果不扣除黑电平,相当于在S_black上人为加了一个固定偏移,Flare Ratio会偏高。所以第一步是从RAW元数据中读取黑电平值并扣除。

然后要减去暗帧。暗帧是用相同曝光参数拍摄的纯黑图像,它表达的是传感器在没有光照时的响应,包含暗电流和固定模式噪声。对暗帧取均值或中位数,再从RAW帧里减去,可以最大程度消除这些非光学的信号贡献。

如果传感器响应明显非线性,比如暗部有严重roll-off,还需要做线性化校正。不过大多数CMOS传感器在RAW模式下,线性度都相当好,只要白场信号没落在非线性区,这一步可以先不处理。

坏点和热像素需要处理。即使扣了暗帧,某些像素在长时间曝光下依然会有异常响应,它们会污染黑靶区域的统计值。我通常的做法是从暗帧中找出明显偏亮的像素位置,建立一个缺陷像素掩膜,在统计黑靶区域时排除这些像素。

4.2 第二步:选取统计区域

区域选取看似简单,但直接影响结果稳定性。黑靶区域应该选在黑靶的中心位置,避开黑靶边缘的过渡带,因为边缘可能存在因靶标厚度产生的边界效应。参考白场区域建议选在光源面板上、离黑靶有一定距离的位置,同时尽量避开画面边缘,以减少镜头暗角对白场信号的影响。

更严谨的做法是参考白场也选取整块亮场区域,然后用无靶参考帧做像素级均匀性校正。我先对参考帧做全局均值归一化,得到每个像素的增益系数,然后把这个系数作用到含黑靶的帧上,这样Vignetting的影响就被消除了。没有这个校正时,如果黑靶在画面中央而参考区域在边缘,因为暗角导致的边缘信号偏低会把Flare Ratio高估。

统计黑靶区域信号时,我强烈建议用中位数而不是均值。均值对异常值敏感,一个热像斑就能让均值升高几十个DN;中位数则稳定得多。

4.3 第三步:计算指标

下面是一段简化版的计算代码,能直接跑通从“已扣除黑电平和暗帧的RAW图像”到“Flare Ratio和VGI”的完整过程:

import numpy as np # 假设raw_linear是已扣除黑电平、暗帧的线性RAW图像 # 单位是DN(Digital Number),float64 img = raw_linear.astype(np.float64) # 定义黑靶区域掩膜(以画面中心一块矩形为例,实际要按图卡位置调整) black_mask = np.zeros_like(img, dtype=bool) h, w = img.shape bh_start, bh_end = int(h * 0.45), int(h * 0.55) bw_start, bw_end = int(w * 0.45), int(w * 0.55) black_mask[bh_start:bh_end, bw_start:bw_end] = True # 定义参考亮场区域掩膜,取画面左下角一个矩形 white_mask = np.zeros_like(img, dtype=bool) wh_start, wh_end = int(h * 0.65), int(h * 0.85) ww_start, ww_end = int(w * 0.10), int(w * 0.30) white_mask[wh_start:wh_end, ww_start:ww_end] = True # 统计中位数 S_black = np.median(img[black_mask]) S_white = np.median(img[white_mask]) # 计算指标 flare_ratio = (S_black / S_white) * 100 # 单位:% vgi = (S_white - S_black) / (S_white + S_black) * 100 # 单位:% print(f"Flare Ratio: {flare_ratio:.2f}%") print(f"VGI: {vgi:.2f}%")

需要注意的是,这段代码的前提是raw_linear已经完成了黑电平和暗帧扣除。如果还没有做,前面的预处理可以参考类似下面的操作:

# raw是原始RAW DN值 # black_level是元数据里读出的黑电平 # dark_frame是暗帧均值 raw_linear = raw.astype(np.float64) - black_level - dark_frame raw_linear = np.clip(raw_linear, 0, None)

4.4 第四步:结果解读与有效性校验

我拿一组实际项目里的简化数据举例。两台不同镜头模组,在相同光源和曝光条件下:

项目镜头A镜头B
S_white(参考区域中位数)5100 DN5100 DN
S_black(黑靶区域中位数)215 DN48 DN
Flare Ratio4.21%0.94%
VGI91.91%98.13%

主观来看,镜头A在逆光场景的暗部明显发灰,画面像蒙了一层薄雾;镜头B则干净很多。这两个指标和主观感受是高度一致的,这也是Flare测量值得做的根本原因,它能把“感觉”变成可比较、可追踪的数据。

但拿到数字后先别急着下结论,要做有效性校验。我一般会做三件事。

第一,改变曝光时间后重测。Flare Ratio本质上是光学系统的内在属性,如果曝光量改变后Flare Ratio发生明显变化,说明传感器响应不在线性区,或者黑靶区域有细微过曝,需要调整测试参数。

第二,重复性测试。同一状态下连续拍摄5组,计算Flare Ratio的标准差。正常情况下游离差应该很小,如果标准差超过0.3个百分点,说明光源稳定性、环境光控制或相机稳定性有问题。

第三,亮度线性验证。把光源亮度从100%调到80%、60%,看Flare Ratio是否基本不变。如果变化大,说明存在传感器非线性响应或黑靶自身透光/反光的问题。

4.5 我在实测中遇到的一个“假Flare”

曾经测过一款车载摄像头,Flare Ratio测出来有3.2%,明显超标。按照正常流程排查,镜头表面已经清洁过,黑靶也确认反射率很低。后来我关了灯,拿着手电在镜头周围照了一圈才发现,问题出在模组外壳的一个散热孔上,环境光从那个小孔直接漏进去,经过内部结构反射到达传感器,产生了一条微弱光带。我用黑色胶带封住散热孔后,Flare Ratio降到1.1%。

这个案例让我养成了一个习惯:所有模组级Flare测试前,先在全黑环境下手电筒检查一遍外壳缝隙和开孔。这种问题不是光学设计能解决的,属于结构设计的杂散光泄漏,但在测量端如果不注意,很容易被误判为镜头问题。

5. 测量结果怎么反推设计:Flare的归因与优化

5.1 看形态判断问题方向

拿到Flare测量结果时,除了看数值,我建议一定要同时看原始图像。数值只能告诉你“严重不严重”,图像才能告诉你“问题可能出在哪”。

如果黑靶区域周围是一大片均匀的灰色,通常说明杂散光来自大面积的漫反射,比如镜筒内壁消光不良、机械结构件表面发亮、或者IRCF上的大面积反射。这类问题优先查机械结构件表面处理和镜筒内壁喷涂。

如果黑靶区域内部出现清晰的亮斑或圆形环,说明存在光学表面之间的聚焦反射,比如两个镜片表面、镜片与传感器Cover Glass之间形成的鬼像。这类问题需要回到光学设计软件里做非序列光线追迹,找到对应反射面。

如果画面边缘出现明暗条纹或放射状光线,多半是机械孔径边缘、遮光罩边缘的散射,也可能是模组内部开孔处的衍射效应。

5.2 一个实战排查案例

以前做过一个车载前视摄像头项目,客户要求逆光Flare Ratio小于1.5%,但送样模组测出来是2.5%。这个项目我和光学工程师一起排查,整个过程可以作为归因参考。

我们先更换了不同批次的镜头,Flare依然超标,排除了镜头单体一致性。然后拆掉IRCF,保留同样的镜头和传感器再测,Flare Ratio降到了0.9%。这说明问题主要集中在IRCF和传感器Cover Glass这段模组结构上。

进一步做了光线路径模拟,确认是IRCF上表面反射后,在Cover Glass表面二次反射,最终在传感器上形成一个大范围的弥散光斑。IRCF镀膜在可见光波段反射率确实不高,但在某些大角度入射条件下,反射率会明显升高。

最终方案是三个方面同时优化:改善IRCF镀膜在大角度下的反射率,把IRCF倾斜0.3度避免二次反射形成规律路径,再加了一个小挡光结构吸收杂散光。复测Flare Ratio降到1.2%,通过了客户规格。

这个案例说明一个关键点:Flare超标不能默认就是镜头的锅,模组结构方面的反射很多时候贡献更大。

5.3 进阶:光源角度、光谱和多光源的Flare矩阵测试

基础的白场+黑靶测试只覆盖了一个光源方向,但实际使用场景中,光源位置千变万化,尤其是安防、车载、运动相机这类复杂光照场景。所以我建议在基础测试通过后,做Flare矩阵测试。

光源角度矩阵是让点光源或强光源从不同视场角射入,常见做法是把点光源沿水平和垂直方向移动,记录每个位置的Flare Ratio或VGI,生成一张Flare随视场角变化的曲线。这能发现某些特定角度上的鬼像峰值,比如很多球面镜头在视场角40度附近特别容易产生强鬼像。

光谱矩阵是切换不同波长的光源,比如白光、红光、红外光。因为镜片镀膜、IRCF、机械消光涂料的光谱反射率都不同,Flare的水平可能随波长剧烈变化。近红外波段的Flare评估尤其重要,因为很多安防相机的图像传感器对近红外很敏感,而这些波段镜片镀膜往往不如可见光段优化。

多光源叠加时,Flare并不是简单的线性叠加。两个光源同时出现在画面里,产生的鬼像和散射会比它们单独出现时更复杂。这种多光源测试更适合模拟真实场景,比如夜间街道上同时存在路灯、车灯、霓虹灯的情况。

5.4 从指标到产品决策的几个经验

做了这么多期Flare测试之后,我对这个指标在产品开发里的使用有几个体会。

Flare不是越低越好。过低的Flare往往意味着用了复杂的光学结构和高性能镀膜,成本会明显上升。产品定义阶段就应该根据实际使用场景定一个合理的规格,比如主打夜景拍照的手机和主打大光比环境的行车记录仪,对Flare的要求完全不同。

算法端可以补偿一部分Flare,但依赖算法会牺牲噪点表现。有的方案团队会通过动态范围压缩或局部对比度提升来减轻Flare造成的“灰雾感”,但本质上算法只是把视觉感受拉回来一部分,并没有恢复真正的暗部信息。如果在测试阶段发现Flare超标,最稳妥的方式还是光学和结构端解决。

测试记录要完整。Flare数据只有在相同测试条件下才有比较意义。光源亮度、曝光参数、黑靶型号、环境温湿度、遮光状态任何一个变了,数据可能就无法对比。我建议在每张测试RAW文件的元数据或文件名里至少包含项目名、光源亮度、曝光参数和测试日期,方便后续追溯。

另外有一个很实用的小技巧:在正式测试序列里,每张黑靶帧后面紧跟一张无靶亮场帧。这组对照可以非常快速地判断光源是否漂移,也能为像素级校正提供准确的参考。我坚持用这个习惯后,跨批次复测的数据一致性明显提高了。

最后说一点个人体会。杂散光测量最吸引我的地方,在于它把一种“说不清的画面发灰”变成一个能精确到小数点后两位的数字。但这个数字只在一整套严格条件下才有意义,环境和操作稍不严格,得出的数据可能比不测更误导。如果你刚开始搭Flare测试系统,我的建议是先别急着追求高精度设备,用最简单的积分球加一块好黑绒,把流程跑通、把数据稳定性做出来,再逐步升级。先把测量系统的“可靠性”做好,再谈指标的“好坏”,这是我在反复踩坑之后最想强调的一点。

返回列表