光与色彩基础:从电磁波到像素
做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 知识结构图:光与色彩基础
下面这张图把本章的核心概念串起来了。你可以把它当作一个快速索引——以后遇到色彩相关的问题,先回来看看这张图。
这张图从左到右展示了本章的逻辑:从物理世界(电磁波谱)到生物感知(人眼视觉),再到心理描述(颜色三要素),最后落到工程实现(RGB/CMY模型)。ISP的3A算法,本质上就是在这些概念之间搭桥。
一句话总结:光有物理属性(波长、强度),人眼有感知特性(适应、恒常),颜色有描述维度(H/S/V),工程有实现模型(RGB/CMY)。ISP工程师的工作,就是让这四个层次对齐。