光与色彩基础:从电磁波到像素

做ISP这行,天天跟光打交道。但说实话,很多人做了好几年,对“光到底是什么”还是模模糊糊的。我刚开始接触图像传感器时也这样——直到有一次调试一个低光场景的AWB,怎么调都偏色,最后发现是没搞懂红外截止滤光片和可见光波段的关系。从那以后,我老老实实把电磁波谱重新学了一遍。

这一节,我们就从最根本的东西讲起。你理解了光,才能理解传感器怎么“看”世界,也才能理解3A算法到底在调什么。

2.1 电磁波谱:传感器能“看见”什么

光,本质上是电磁波。整个电磁波谱范围极宽,从波长极短的伽马射线到长达数公里的无线电波。但人眼能感知的,只有中间窄窄的一小段——380nm到780nm,我们叫它可见光。

关键记忆点:可见光波段只占整个电磁波谱的不到1/70。传感器能“看见”的范围通常比人眼宽,尤其是近红外区域(700nm-1000nm)。这就是为什么手机摄像头在暗光下会发红——红外光干扰了。

我习惯把电磁波谱按波长从短到长分成几段:

  • 紫外(UV):10nm-380nm。大部分被大气层吸收,传感器前通常加UV-cut滤光片。
  • 可见光:380nm-780nm。红橙黄绿青蓝紫,波长从长到短。
  • 近红外(NIR):780nm-2500nm。很多CMOS传感器对这段敏感,所以需要IR-cut滤光片。
  • 中远红外:2.5μm以上。热成像用的,普通视觉传感器不碰。

你想想看,如果传感器没有IR-cut,白天拍出来的绿色植物会偏亮偏白——因为植物在近红外波段反射率很高。我踩过这个坑,后来在选型时都会确认滤光片的截止波长。

2.2 人眼视觉特性:ISP算法的“上帝视角”

ISP的最终输出是给人看的。所以,不理解人眼怎么感知光,你做的算法就是闭门造车。

人眼有几个关键特性,直接决定了ISP的调优方向:

人眼特性 对ISP的影响 我踩过的坑
亮度适应(从暗到亮能调节约10^10倍) AE算法需要模拟人眼的适应曲线,不能线性调增益 有一次在隧道出口场景,AE跳变太猛,画面闪了一下
对比度敏感度(对中频细节最敏感) 锐化强度要按频率分带控制,不能无脑拉 早期做边缘增强,把天空噪点也放大了
颜色恒常性(不同光源下看同一物体颜色不变) AWB算法的核心目标——还原物体本色 白炽灯下拍白纸,AWB没收敛好,偏黄了
马赫带效应(边缘处感知对比度增强) 过度锐化会产生“光晕”,需要做overshoot控制 这个在调试时很容易忽略,但用户一眼就能看出来

我的调试习惯:每次调完一组ISP参数,我都会在暗室和强光下各看一遍。人眼在不同亮度下的颜色感知不一样,算法必须覆盖全场景。

2.3 颜色三要素:色相、饱和度、明度

颜色不是物理量,是心理物理量。换句话说,颜色是大脑对光的解释。为了描述这种解释,我们定义了三个维度:

  • 色相(Hue):颜色的种类,比如红、绿、蓝。对应光的波长。
  • 饱和度(Saturation):颜色的纯度。纯光谱色饱和度最高,掺了白光就变淡。
  • 明度(Brightness/Value):颜色的明亮程度。对应光的强度。

这三个维度构成了HSV色彩空间。为什么ISP里常用HSV?因为人眼对色相和饱和度的感知是近似独立的,调整起来很直观。比如做色彩增强时,我只提饱和度,不动色相——否则肤色会偏。

注意:HSV空间不是线性空间。从RGB转到HSV时,色相是角度值(0°-360°),饱和度是0-1,明度是0-1。做插值或滤波时,千万别直接在HSV上做线性运算——色相0°和360°是同一个颜色,但数值差360。我见过有人在这上面翻车。

2.4 RGB与CMY色彩模型

这两个模型是ISP的基石。一个用于加色,一个用于减色。

2.4.1 RGB加色模型

显示器、传感器、ISP内部处理——全用RGB。原理很简单:红、绿、蓝三种光按不同强度叠加,产生各种颜色。等量叠加得到白色。

RGB的典型应用场景:

  • 传感器Bayer阵列输出:每个像素只采集R、G、B中的一个通道
  • 显示设备:每个子像素独立控制亮度
  • ISP内部处理:去马赛克、白平衡、色彩校正都在RGB域做

2.4.2 CMY减色模型

CMY(青、品红、黄)用于反射光的场景,比如打印、印刷。原理是颜料吸收(减去)一部分光,反射剩下的光。等量CMY叠加理论上得到黑色,但实际因为颜料不纯,会偏暗棕色——所以打印机会额外加一个黑色通道(CMYK)。

我刚开始做ISP时,一直搞不懂为什么传感器不用CMY滤光片。后来明白了:CMY的量子效率更高(每个通道能吸收更宽波段的光),但颜色分离度差,后期色彩校正难度大。RGB虽然牺牲了一些灵敏度,但颜色还原更准。

特性 RGB CMY
原理 加色(光叠加) 减色(光吸收)
应用 传感器、显示器 打印、印刷
通道数 3(R/G/B) 3或4(C/M/Y/K)
颜色范围 广(取决于背光和滤光片) 窄(受限于颜料)
ISP处理 直接处理 需转RGB再处理

实用技巧:如果你在做色彩校正矩阵(CCM),记得RGB和CMY之间可以互相转换。公式很简单:C=1-R, M=1-G, Y=1-B(假设归一化到0-1)。但要注意,这个转换是线性的,实际打印的CMY是非线性的,需要查表。

2.5 知识结构图:光与色彩基础

下面这张图把本章的核心概念串起来了。你可以把它当作一个快速索引——以后遇到色彩相关的问题,先回来看看这张图。

光与色彩基础 · 知识结构 电磁波谱 可见光 380-780nm 人眼视觉特性 亮度适应 · 对比度敏感 颜色恒常性 · 马赫带效应 颜色三要素 色相(Hue) 饱和度(Saturation) 明度(Value) RGB 加色模型 CMY 减色模型 传感器Bayer · 显示器 ISP内部处理(AWB/CCM) 打印 · 印刷 CMYK四色分离 ISP 3A算法:理解光 → 控制光 → 还原色彩

这张图从左到右展示了本章的逻辑:从物理世界(电磁波谱)到生物感知(人眼视觉),再到心理描述(颜色三要素),最后落到工程实现(RGB/CMY模型)。ISP的3A算法,本质上就是在这些概念之间搭桥。

一句话总结:光有物理属性(波长、强度),人眼有感知特性(适应、恒常),颜色有描述维度(H/S/V),工程有实现模型(RGB/CMY)。ISP工程师的工作,就是让这四个层次对齐。