第二章:工业相机成像模型

各位同学,今天我们来聊聊工业相机的成像模型。说实话,这个章节是整个ISP pipeline的基石。你想想看,如果连传感器怎么工作的都不清楚,后面做色彩还原就是空中楼阁。

我个人习惯把成像模型拆成五个部分来讲:拜耳阵列、CMOS响应、暗电流与噪声、线性度、动态范围。这五个点,每一个我都踩过坑。

2.1 拜耳阵列原理

拜耳阵列,说白了就是给每个像素戴上一副有色眼镜。为什么这么做?因为CMOS传感器本身是色盲的——它只能感知光的强度,分不清颜色。

典型的拜耳模式是RGGB,也就是一个红色、两个绿色、一个蓝色。为什么绿色占两个?因为人眼对绿色最敏感。这个设计很巧妙,对吧?

关键点:拜耳阵列不是简单的滤色片排列,它背后是色彩采样理论。每个像素只采集一种颜色,另外两种颜色要靠插值算出来。这个插值过程,就是我们常说的去马赛克(Demosaic)。

我在项目中遇到过一个问题:用错了拜耳排列顺序。当时拿到的传感器文档写的是BGGR,我按RGGB去解,结果整张图偏色严重。排查了两天才发现是排列搞反了。嗯,这里要注意——不同厂商的拜耳排列可能不一样,拿到新传感器第一件事就是确认排列顺序。

工业相机成像模型知识体系 成像模型 拜耳阵列原理 CMOS响应特性 暗电流与噪声 线性度 动态范围 RGGB模式 去马赛克 色彩插值 光电转换 量子效率 光谱响应 暗电流补偿 噪声抑制 温度影响 响应曲线 Gamma校正 高动态范围 HDR合成

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)是基于线性响应推导的。

为什么会非线性?主要有三个原因:

  1. 光电二极管饱和:电子收集满了,再多光子也转化不了
  2. 读出电路压缩:高信号时放大器进入非线性区
  3. 量子效率随波长变化:不同波长的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