一提到光学传感器,很多从半导体或嵌入式转过来的人,第一反应是像素尺寸、满阱容量、暗电流这些电学参数。但真正让一台相机拍出来“像人眼看到的那样”,背后还有一套极其容易被忽略的光学标尺——V(λ)曲线,也就是人眼视见函数。做图像传感器或者光学测量的工程师,大概率会遇到这个场景:传感器明明对红外光响应很好,可人眼根本看不见红外;传感器对蓝光响应偏弱,人眼反而对蓝光很敏感。问题就出在这里——我们一直在跟CMOS打交道,却常常忘了传感器要模仿的,其实是一双人眼。
这篇文章就围绕V(λ)曲线展开,把光学传感器如何模拟人眼视见函数这件事讲透。内容覆盖人眼视觉机制的来源、光度学与辐射度学的转换关系、CMOS像素的光谱响应设计、滤光片选型以及系统级标定,既适合刚接触传感器光谱响应设计的初学者,也适合在产线上做调试和校准的朋友参考。
1. 人眼为什么有“标准曲线”:V(λ)的生物学与计量学起源
1.1 三种视锥细胞与明视觉、暗视觉的切换
要理解V(λ)曲线,先得回到人眼本身。人眼的视网膜上有两类感光细胞:视锥细胞和视杆细胞。视锥细胞又分三种,分别叫做S型、M型、L型,它们的吸收峰大致在420nm、530nm和560nm附近,分别对应蓝、绿、红三个波段。这三种细胞的响应相互叠加,构成了人眼在明亮环境下的光谱灵敏度,也就是常说的“明视觉”。而在光线非常昏暗的环境下,视锥细胞基本不工作了,主要由视杆细胞负责感光,它的吸收峰大约在507nm,整体曲线更偏向蓝绿波段,这就是“暗视觉”。
这个双系统设计很有意思。视锥细胞给了我们丰富的色彩分辨能力,但灵敏度相对较低,所以晚上看不清颜色;视杆细胞灵敏度高,单个光子就能触发响应,但牺牲了色彩信息。光学传感器在设计时,通常默认模拟的是明视觉状态,也就是以视锥细胞为主体的情况。如果某个传感器被用在夜间监控场景,还要额外考虑暗视觉曲线的偏移,否则夜间画面与人眼感知的亮度关系会明显错位。
1.2 CIE标准观察者与V(λ)曲线的定义过程
V(λ)曲线的正式定义,来自国际照明委员会(CIE)在1924年制定的标准。当时CIE组织了一批观察者,用等色实验确定不同波长在相同辐射功率下的视觉亮度感受,最终统计出一条标准化的曲线,叫“CIE 1924标准光度学观察者”。这条曲线在555nm附近达到峰值,也就是说人眼对黄绿色光最敏感,向蓝端和红端逐渐衰减,在400nm处相对灵敏度仅有约0.0004,在700nm处约为0.0041,两端几乎可以忽略。
这里要特别强调一个容易混淆的概念:V(λ)不是人眼对所有波长的绝对吸收曲线,而是一条归一化的相对灵敏度曲线。它描述的是“同样辐射功率下,不同波长对人眼产生的亮度刺激比例”。峰值处的数值被定义为1,其他波长按比例取值。基于这条曲线,后来的光度学才有了严格定义:1瓦的555nm绿光,其光通量被定义为683流明;而相同功率的红光,因为人眼不敏感,光通量要低得多。
对于做传感器的人来说,V(λ)意味着一个“标准观众”。如果你设计出来的CMOS光谱响应偏离了这条曲线,那么你拍到的亮度、色彩就和人眼感受不一致,这是所有相机色彩还原和亮度测量问题的根源。可以说,V(λ)是连接物理世界与视觉世界的第一座桥梁。
2. V(λ)在测量中的角色:从辐射度到光度的“翻译官”
2.1 两组物理量体系的差异与场景选择
既然提到了光度学,就不得不梳理两个概念体系:辐射度学和光度学。辐射度学描述的是纯粹的物理量,比如辐射功率单位是瓦特,辐照度单位是瓦每平方米;而光度学描述的是人眼感知的量,比如光通量单位是流明,光照度单位是勒克斯,亮度单位是坎德拉每平方米。它们之间的换算关系,核心就是V(λ)曲线。
举一个生活化的例子。一颗850nm的红外LED和一颗白光LED,如果它们的辐射功率都是1瓦,人眼看到的效果完全不一样:红外LED几乎没有感觉,白光LED则非常刺眼。从辐射度学角度看,两者功率相同;但从光度学角度看,红外LED的光通量几乎为0,因为V(850nm)已经衰减到接近于零。这正是很多硬件工程师在调试红外补光灯时容易踩的坑——用光功率计测出很高功率,但人眼就是看不见,因为这个波段的视觉权重实在太低了。
实际工程中,两个体系各有用武之地。做照明设计、显示屏亮度评估,一定要用光度学单位;做太阳能电池、光通信、红外传感器设计,则以辐射度学单位为准。对于CMOS图像传感器来说,如果定位是“替代人眼做视觉应用”,那必须关注光度量;如果定位是工业检测、光谱分析,辐射量更重要。
2.2 一道关键的换算示例
举一个实际的换算例子。假设有一个单色光源,波长555nm,辐射功率2W。因为是555nm,V(λ)=1,那么光通量Φ=2W×683lm/W=1366流明。如果同样功率的650nm红光,V(650nm)约0.155,光通量就是2×683×0.155≈211.7流明。同样是2瓦,亮度感知差了6倍多,这就是曲线的威力。
再延伸一下,如果要评估一个宽光谱LED的总光通量,需要用光谱功率分布P(λ)对V(λ)做加权积分:Φ = 683 × ∫ P(λ)·V(λ)dλ。这个公式在光源选型和传感器标定中会反复出现。很多时候我们在测试透射率、量子效率时,得到的数据本质上都经过了这个加权过程,只不过软件已经帮你算好了,不提醒的话很容易忽略。
3. CMOS传感器如何一步步逼近人眼
3.1 像素级光谱响应:量子效率从何而来
理解了人眼标准,再来看CMOS传感器。一个像素的光谱响应,背后是量子效率(QE)这个概念。QE描述的是入射光子转换为电子的概率,通常用百分比表示。换个角度理解,QE乘以入射光子数,就是输出电子数,决定了传感器的灵敏度和信噪比。
量子效率由三个因素共同决定:入射光到达感光区的透射率、半导体材料对光子的吸收率、以及光生载流子被有效收集的概率。用公式说就是QE(λ) = T(λ) × A(λ) × C(λ)。这三个因子都和波长强相关。硅材料本身对光的吸收能力随波长剧烈变化:蓝光波长较短,能量高,在硅材料的浅表层(几百纳米内)就被吸收完了;红光波长长,穿透深度可达数微米;近红外光则能穿透几十微米深。
这意味着,CMOS像素剖面结构对光谱响应影响极大。如果光电二极管做得太浅,蓝光响应可能不错,但红光和近红外会有大量光子穿透到衬底深处,根本来不及被收集就被复合掉了。反过来,如果光电二极管做得深,长波响应上去了,但蓝光在表面就被吸收,产生的位置太靠近表面,反而容易受表面缺陷和暗电流影响。
3.2 拜耳阵列与三通道响应如何接近人眼
商用彩色CMOS传感器普遍采用拜耳阵列(RGGB),每个像素头顶覆盖一个微型滤光片,只允许红、绿或蓝光通过。这样的设计本质上就是对V(λ)曲线的一种分段近似。但要注意,拜耳滤光片划分的是“色彩通道”,并不是严格模拟V(λ)曲线。绿色通道通常覆盖约500nm到580nm范围,与V(λ)曲线的峰值区有重叠,但形状远不如标准曲线那么平滑。
从信号链角度来说,传感器的原始响应是“光源光谱 × 滤光片透射率 × 像素QE”三者乘积的结果。要逼近人眼,并不是简单地把三通道响应都调整到V(λ)那么窄,而是要保证最终的白平衡和色彩转换矩阵能准确还原标准观察者的三刺激值。这也是为什么ISP(图像信号处理器)里要设置3×3颜色校正矩阵的原因:传感器的原始光谱响应形态和人眼三刺激值不完全一样,通过线性矩阵变换,让传感器输出的RGB能映射到标准色彩空间。
很多工程师以为加红绿蓝滤光片就能“模拟人眼”,其实这远远不够。滤光片只是把人眼光谱响应切成了三段,而这三段的形状、带宽和重叠程度,直接决定了色彩还原和亮度匹配的准确度。这个“切法”很有讲究,也不是越窄越好。滤光片太窄,灵敏度低,信噪比下降;滤光片太宽,通道间串扰大,色彩容易发灰。
3.3 硅材料本身的局限与对策
硅材料对可见光波段的吸收特性其实是不均衡的。在短波蓝光波段,硅的吸收系数很高,但表面复合效应显著,很多光生载流子在扩散到PN结之前就被复合掉了,导致蓝光QE通常偏低。而在近红外波段,硅的吸收系数下降,需要足够厚的有源区才能有效吸收,但是有源区加厚又会带来暗电流和串扰的增大。至于超过1100nm的波段,硅更是完全无能为力——因为硅的禁带宽度约1.12eV,对应光子波长的极限恰好是1100nm左右,更长的波长根本无法激发电子跃迁。
这带来一个有趣的对照:人眼可见范围是380nm到780nm,硅响应范围大约可以延伸到1100nm。也就是说,CMOS传感器天然就能“看到”人眼看不见的近红外光。在室内环境下,白炽灯和LED灯会发射不少近红外成分,如果传感器不加任何滤光片,拍出来的颜色会有明显的偏红或偏紫倾向。这就是为什么几乎所有相机模组里都有一片红外截止滤光片(IR-cut),它的任务非常明确:把人眼看不见的780nm以上红外光挡在外面,让传感器响应逼近V(λ)的适用范围。
4. V(λ)匹配的工程实现:从仿真到产线标定
4.1 光谱匹配度如何评估:f1'指标
在光度测量和传感器设计领域,评价一个探测器与人眼V(λ)曲线的吻合程度,最常用的指标是f1',即光谱匹配误差。按照国家标准和国际标准,合格的照度计、亮度计,其f1'通常要求在3%以下(A级)或5%以下(B级)。f1'的计算本质是通过测量探测器在不同波长下的响应度,与标准V(λ)曲线进行归一化对比,然后计算两者差异的绝对平均值。
对消费级相机模组来说,f1'并不像专业照度计那么苛刻,但设计师心里要有个数。如果传感器在蓝光区的相对响应特别低、红外区特别高,那么f1'就会很大,拍出来的亮度自动曝光算法往往会在冷色温场景下欠曝,在暖色温场景下过曝。这也是为什么有些手机摄像头在钨丝灯环境下白平衡不准、亮度不稳的原因,很大一部分就来自光谱响应对V(λ)的偏离。
如果你是在用CMOS传感器自己搭光谱仪或色度计,那f1'就是绕不开的核心指标。选型的时候,不光要看QE绝对值,还要看QE曲线形态。有些传感器标称QE很高,但峰值在600nm以上,在蓝光和绿光区响应很差,这种器件做照明测量会让人非常头疼。
4.2 滤光片设计的关键参数与选型对比
滤光片是实现V(λ)匹配最核心的物理手段。市面上常见的滤光片分两大类:吸收式滤光片和干涉式滤光片。
吸收式滤光片的原理是材料本身选择性吸收特定波段的光。蓝玻璃是典型例子,它通过玻璃中掺杂的离子吸收红外和部分红光,广泛用于CMOS传感器的IR-cut。这类滤光片成本低,入射角敏感度低,在广角镜头等大入射角场景表现好。缺点是截止过渡带比较宽,对陡峭的V(λ)曲线拟合能力有限。
干涉式滤光片则是在玻璃基底上镀多层介质膜,通过多光束干涉实现特定波段的反射或透射。它的优势是可以设计出非常锐利的截止边,甚至能做成任意形状的透射曲线,在专业光度计和光谱仪器中应用极广。但干涉滤光片对入射角非常敏感,光线斜射时截止波长会蓝移,镀膜生产工艺的控制难度也更高,成本自然更高。
对比来看,消费级相机模组现在主流方案是“蓝玻璃吸收式IR-cut”,因为经济且对入射角宽容度高;而专业照度计、光色度计大多用干涉滤光片组,配合针对V(λ)曲线专门优化的镀膜曲线。近些年中高端方案还把滤光片和微透镜做成一体化结构,在wafer level直接贴合到像素表面,减少模组组装环节的误差。
选择滤光片时,需要重点确认三个参数:截止波长位置、截止深度的光学密度、以及工作波段内的平均透过率。比如一片典型IR-cut,通常设计为在650nm之前透过率尽量高,650nm之后尽快下降到OD4(光学密度4,透过率万分之一以下)。如果把截止波长往前挪到600nm,能更接近V(λ)的衰减趋势,但也会损失部分红光,导致画面明显偏绿。
4.3 系统级标定的完整路径与设备清单
硬件设计做得再好,没有标定也出不了准确结果。系统级标定的核心思路有两个方向:一是直接使用单色仪输出已知功率的窄带光,逐一扫描波长,记录传感器的响应值,从而获得完整的光谱响应度曲线;另一种是使用已知光谱功率分布的标准光源,通过数学反卷积的方式解算响应函数。
单色仪标定的典型流程是这样的:首先准备一台波长精度可靠的单色仪,输出带宽设置为10nm或更窄,配合标准硅探测器(NIST可溯源)作为参考基准。从380nm到780nm,每间隔10nm或20nm扫描一遍,记录标准探测器的输出和测试传感器的输出,两者相除再乘以标准探测器的绝对响应度,就得到传感器的绝对光谱响应度。这套流程说起来简单,实际操作中的关键是保持光路稳定。光源的漂移、单色仪狭缝杂散光、环境光反射都会带来明显误差,所以通常会先在暗室中稳定30分钟以上,再用双光路交替测量的方式消除光源漂移。
工厂端的量产标定往往不会这么精细。消费品级别的做法是校准白平衡和曝光模型,拟合出光源色温与RGB增益的映射表,再根据黑体辐射曲线做插值。对于一些高精度环境光传感器(ALS),产线上会用标准光源(比如CIE标准光源A,2856K色温的白炽灯)做单点标定,再结合器件出厂前测好的光谱响应数据,统一算出一个加权系数。
5. 常见问题与排查技巧实录
5.1 为什么照度计测出来的亮度总和人眼感觉不一致
这个问题在照明工程里太常见了。室内做一个LED灯具改造,原来的荧光灯测得照度是500lux,换完LED灯珠之后照度计读数也是500lux,但人眼就是觉得变亮了或者变暗了。如果照度计本身满足国家一级标准,f1'小于3%,那通常不是照度计的问题,而是灯具光谱差异带来的视觉感受差异。LED光谱中蓝光成分高、光谱不连续,人眼的明暗感知容易受到短波成分的额外刺激。
但更多时候,问题出在便宜照度计上。市面上一两百块的手持照度计,很多直接用一个光敏电阻或普通硅光电池加一块简易滤光片,f1'可能高达15%甚至更高。用这种照度计测暖白灯、冷白灯,读数差异会特别明显,因为器件对不同波段的响应已经严重偏离V(λ)曲线。此时先不要怀疑灯具,先拿一台经过计量的照度计做交叉对比,再看光谱数据。
5.2 传感器在近红外环境下偏色怎么办
很多家庭监控摄像头在夜间红外人眼看不见的光照下,偶尔拍出诡异的明亮画面;但有些摄像头在白天室内,也会莫名出现偏红或偏紫的色彩。原因是室内的节能灯或白炽灯会发射较多近红外光。此时IR-cut滤光片的质量就极其关键了。有些低成本模组只涂了很薄的一层蓝膜,红外截止深度不够,传感器在红光通道上叠加了额外的红外信号,画面自然偏红。
排查思路分三步:第一,用一块已知合格的红外截止滤光片替换原模组镜头,看偏色是否消失;第二,用红外LED照射镜头,观察画面响应是否明显变亮;第三步,查看传感器在850nm和940nm波段的QE数据——很多工业Sensor的QE在850nm仍有20%以上,如果没有IR-cut配合,偏色几乎是必然的。处理办法要么升级滤光片的截止深度,要么在ISP里增加红外抑制算法,对纯红外通道做分离扣除。
5.3 传感器蓝光响应偏低导致的曝光问题
另一个典型故障是,在色温较高的阴影环境下,传感器自动曝光明显偏慢,拍出来的照片发暗发黄。这是因为阴影处的光谱以蓝紫光为主,而硅基CMOS的蓝光QE本身就偏低,再叠加拜耳滤光片蓝通道透过率不理想,蓝通道输出能量非常弱,自动曝光算法如果主要参考Y通道(亮度通道),就容易出现判断偏差。
这种问题从硬件层面改进,可以优化像素光电二极管结深,把结深做得更浅,或采用表面Pin层工艺,增强蓝光吸收;从系统层面,则需要在ISP测光算法中给蓝通道更高的权重,或者增加针对高色温场景的曝光补偿。我见过不少项目在低照度蓝光场景下花了大力气调ISP参数,最后才发现根源是传感器外延层太厚,蓝光响应先天不足。所以说,提前看QE曲线能省下大量后期调试时间。
6. 这组关系的底层逻辑与个人实操体会
如果要在实际项目中灵活应用V(λ)匹配,我的建议是先把“三层映射”想清楚:第一层是物理光谱到传感器电子信号的映射,由QE决定;第二层是电子信号到RGB数值的映射,由滤光片和色彩矩阵决定;第三层是RGB数值到人眼感知亮度和色彩的映射,由V(λ)等标准观察者函数决定。每一层都有自己的误差,三层叠加后,某一个环节的小偏差很可能被放大成肉眼可见的偏色或亮度异常。
我自己的习惯是,拿到一款新的CMOS传感器,第一件事不是看像素和帧率,而是先下载它的光谱响应曲线,对比一下蓝绿红三通道峰值位置和V(λ)曲线的三条分支。如果绿色通道峰值明显往560nm以后偏移,这个传感器在还原肤色时大概率会有偏差。另外,做环境光传感器时,尽量选择那些官方数据表直接标注“V(λ) corrected”的型号,这类器件在封装内部就已经集成了匹配滤光片,能节省大量后期校准工作。
最后再分享一个产线上得来的小技巧:在验证一款传感器或模组的V(λ)匹配效果时,不要只测白光和黑白对比卡,准备一套窄带滤光片,分别放在450nm、532nm、635nm三个波长下拍灰度卡片,观察三个通道的灰阶比例是否接近同一个人眼观察结果的比例。这能在不做单色仪扫描的前提下,快速判断器件的光谱响应趋势是否合理。这个方法虽然粗糙,但操作快、成本低,发现明显异常后再上单色仪做精细测量,效率会高很多。