第二章:工业相机成像模型
各位同学,今天我们来聊聊工业相机的成像模型。说实话,这个章节是整个ISP pipeline的基石。你想想看,如果连传感器怎么工作的都不清楚,后面做色彩还原就是空中楼阁。
我个人习惯把成像模型拆成五个部分来讲:拜耳阵列、CMOS响应、暗电流与噪声、线性度、动态范围。这五个点,每一个我都踩过坑。
2.1 拜耳阵列原理
拜耳阵列,说白了就是给每个像素戴上一副有色眼镜。为什么这么做?因为CMOS传感器本身是色盲的——它只能感知光的强度,分不清颜色。
典型的拜耳模式是RGGB,也就是一个红色、两个绿色、一个蓝色。为什么绿色占两个?因为人眼对绿色最敏感。这个设计很巧妙,对吧?
关键点:拜耳阵列不是简单的滤色片排列,它背后是色彩采样理论。每个像素只采集一种颜色,另外两种颜色要靠插值算出来。这个插值过程,就是我们常说的去马赛克(Demosaic)。
我在项目中遇到过一个问题:用错了拜耳排列顺序。当时拿到的传感器文档写的是BGGR,我按RGGB去解,结果整张图偏色严重。排查了两天才发现是排列搞反了。嗯,这里要注意——不同厂商的拜耳排列可能不一样,拿到新传感器第一件事就是确认排列顺序。
2.2 CMOS传感器响应特性
CMOS传感器的核心是光电二极管。光打上去,产生电子,电子被收集、读出、量化。这个过程不是线性的——至少不是完美的线性。
每个像素的响应可以用一个公式描述:
V_out = G * (Q * E * t + I_dark) + V_offset
其中:
- V_out:输出电压
- G:增益(模拟增益 + 数字增益)
- Q:量子效率(QE)
- E:入射光强
- t:曝光时间
- I_dark:暗电流
- V_offset:偏置电压
实战经验:我曾经调试一款全局快门传感器,发现暗部有奇怪的条纹。查了半天,原来是偏置电压V_offset没校准好。不同像素的V_offset有微小差异,不做校正就会出现固定模式噪声(FPN)。
量子效率QE是个关键参数。它表示每个光子能产生多少个电子。工业相机常用的背照式(BSI)传感器,QE可以做到80%以上。前照式(FSI)就差一些,大概50%-60%。
2.3 暗电流与噪声模型
暗电流,就是没有光照时像素产生的电流。它来自热激发——温度越高,暗电流越大。我记得有次做高温环境测试,传感器温度升到60度,暗电流直接翻了三倍。
暗电流的数学模型:
I_dark(T) = I_0 * 2^((T - T_0) / 10)
温度每升高10度,暗电流翻倍。这个规律叫"暗电流温度系数",大概在6-8%/℃之间。
噪声模型就复杂了。我把它分成三类:
| 噪声类型 | 来源 | 特性 | 抑制方法 |
|---|---|---|---|
| 散粒噪声 | 光子到达的随机性 | √N,与信号相关 | 增加曝光量 |
| 读出噪声 | 电路读出过程 | 与信号无关 | 降低读出速度 |
| 固定模式噪声 | 像素工艺差异 | 空间固定 | 暗场校正 |
| 热噪声 | 电阻热运动 | 与温度相关 | 制冷 |
避坑指南:我曾经做过一个项目,暗场校正没做好,导致图像暗部出现"雪花"。后来发现是校正帧和实际帧的温度差了5度。记住——暗场校正必须在相同温度、相同曝光时间下采集。
2.4 线性度
线性度,说白了就是传感器的输出和输入光强是不是成正比。理想情况下应该是完美的线性,但现实总有偏差。
我一般用两个指标衡量线性度:
- 积分非线性(INL):实际曲线偏离理想直线的最大偏差
- 微分非线性(DNL):相邻码之间的步长偏差
工业相机通常要求INL小于1%,DNL小于0.5%。如果超过这个范围,色彩还原就会出问题——因为色彩校正矩阵(CCM)是基于线性响应推导的。
为什么会非线性?主要有三个原因:
- 光电二极管饱和:电子收集满了,再多光子也转化不了
- 读出电路压缩:高信号时放大器进入非线性区
- 量子效率随波长变化:不同波长的QE不同
关键洞察:线性度不好,最直接的后果就是色彩偏移。比如蓝色在低光下偏紫,高光下偏青。这就是为什么ISP里要做线性化校正——先把传感器响应拉直,再做色彩处理。
2.5 动态范围
动态范围,就是传感器能同时记录的最亮和最暗细节的能力。公式很简单:
DR = 20 * log10(满阱容量 / 读出噪声)
单位是dB。工业相机一般能做到60-80dB,高端的有100dB以上。
满阱容量(Full Well Capacity)决定了能存多少电子。像素越大,满阱容量越大。但像素大了分辨率就低了——这是个trade-off。
我做过一个对比测试:
| 像素尺寸 | 满阱容量 | 读出噪声 | 动态范围 | 典型应用 |
|---|---|---|---|---|
| 2.0μm | 8000 e- | 3 e- | 68 dB | 手机摄像头 |
| 3.45μm | 20000 e- | 5 e- | 72 dB | 工业面阵 |
| 5.5μm | 50000 e- | 8 e- | 76 dB | 机器视觉 |
| 10μm | 150000 e- | 15 e- | 80 dB | 科学相机 |
提高动态范围的方法有很多。最常见的是多帧HDR——拍两张不同曝光时间的图,亮的用短曝光,暗的用长曝光,然后合成。还有一种方法是双增益读出,一个像素有两个读出路径,高增益看暗部,低增益看亮部。
个人建议:选传感器时别只看动态范围数字。还要看动态范围在哪个亮度区间。有些传感器暗部动态范围大,亮部却容易饱和。最好实测一下,用灰阶卡拍一张,看看从黑到白能分辨多少级。
好了,成像模型这部分就讲到这里。记住一句话:传感器是ISP的起点,你给ISP什么数据,它就给你什么结果。把传感器摸透了,后面做色彩还原才能得心应手。
公众号:蓝海资料掘金营,微信deep3321