4、图像采集与传感器:工业相机选型与数据预处理

做MTF测试这么多年,我最大的体会是:相机选错了,后面所有校准都是白搭。传感器就是整个测试系统的眼睛,眼睛不好使,再好的镜头也测不准。今天咱们就聊聊工业相机选型那些事儿,还有传感器噪声怎么处理。

4.1 工业相机选型三要素

选相机,说白了就看三个参数:分辨率、帧率、像元尺寸。但实际项目中,这三个参数是互相牵制的,你得找到平衡点。

4.1.1 分辨率

分辨率决定了你能测多细的细节。根据奈奎斯特采样定理,采样频率至少要是信号最高频率的两倍。用在MTF测试上,就是一个线对至少要覆盖2个像素

我个人习惯这样算:

  • 被测镜头截止频率:比如100 lp/mm
  • 传感器上对应的空间频率:100 lp/mm × 像元尺寸
  • 每个线对至少2个像素:所以像元尺寸 ≤ 1/(2 × 100) = 5 μm

实际经验:我建议分辨率留30%余量。比如算出来需要5μm像元,实际选3.45μm或更小的。为什么?因为镜头边缘的MTF通常比中心差,留点余量心里踏实。

4.1.2 帧率

帧率这事,很多人觉得越快越好。其实不然。MTF测试通常用静态图像,帧率够用就行。

我遇到过的情况:

  • 静态MTF测试:5-10 fps 就够
  • 在线检测(流水线):需要配合产线节拍,一般30-60 fps
  • 振动环境测试:需要高速相机,100 fps以上

小技巧:帧率高了,曝光时间就短。曝光时间太短,信噪比会下降。我曾经为了追求高帧率,选了60fps的相机,结果暗场下噪声大得没法看。后来老老实实降到15fps,问题解决了。

4.1.3 像元尺寸

像元尺寸是个双刃剑:

  • 像元小 → 分辨率高 → 但信噪比差(进光量少)
  • 像元大 → 信噪比好 → 但分辨率受限

我的建议:

  • 实验室环境:选小像元(2-3 μm),配合强光源
  • 现场测试:选大像元(4.5-5.5 μm),适应弱光
  • 通用方案:3.45 μm 是个不错的折中点

4.2 传感器噪声模型

噪声这东西,你躲不开,只能管好它。传感器噪声主要有三种:

4.2.1 读出噪声

读出噪声是传感器读出电路产生的,跟曝光时间无关。说白了就是你拍一张全黑图,看到的那些亮暗变化

典型值:

  • CMOS传感器:2-5 e⁻(电子数)
  • CCD传感器:5-10 e⁻
  • 科学级sCMOS:1-2 e⁻

注意:读出噪声是固定模式噪声,可以通过暗场校正消除大部分。但温度升高时,读出噪声会增大。我一般要求实验室温度控制在22±1°C。

4.2.2 暗电流

暗电流是热激发产生的电子,跟曝光时间成正比。温度每升高6-8°C,暗电流翻一倍。

我记得有一次夏天做测试,没开空调,相机温度到了45°C。结果暗电流大得离谱,10秒曝光下暗场图像都快饱和了。后来加装了半导体制冷,温度降到10°C,暗电流降了两个数量级。

暗电流校正方法:

  1. 拍暗场:盖上镜头盖,用同样的曝光时间拍一张
  2. 减暗场:亮场图像减去暗场图像
  3. 注意:暗场要拍多张平均,减少随机噪声

4.2.3 光子散粒噪声

光子散粒噪声是光本身的量子特性,你没法消除。它服从泊松分布,标准差 = √(信号电子数)。

这意味着:信号越强,信噪比越高。所以MTF测试时,我建议把信号强度控制在满阱容量的50-70%。

信噪比估算:

假设满阱容量10000 e⁻,信号用6000 e⁻:

散粒噪声 = √6000 ≈ 77 e⁻

信噪比 = 6000/77 ≈ 78:1

这个水平做MTF测试,精度基本够用。

4.3 图像采集卡的同步触发

同步触发这事,看着简单,坑不少。

我常用的触发方式:

  • 硬件触发:用外部信号触发相机曝光,精度高(ns级)
  • 软件触发:通过API发送触发指令,精度差(ms级)
  • 自由运行:相机自己按帧率跑,没法同步

MTF测试我强烈建议用硬件触发。为什么?因为你要保证每次曝光时,测试靶标的位置是固定的。软件触发有延迟抖动,会导致图像模糊。

接线注意:触发信号线要用屏蔽双绞线,长度不超过3米。我见过有人用普通杜邦线,结果触发延迟抖动达到200μs,图像都拍糊了。

4.4 RAW数据采集与预处理

RAW数据是传感器最原始的输出,没有经过任何处理。做MTF测试,一定要用RAW数据,不能用JPEG或经过ISP处理的图像。

为什么?因为ISP会做锐化、降噪、伽马校正,这些都会改变图像的频率特性,MTF值就不准了。

4.4.1 RAW数据格式

常见的RAW格式:

  • Bayer格式:每个像素只记录一种颜色(R/G/B)
  • 单色格式:每个像素记录灰度值
  • 多抽头格式:高速相机常用,数据分多个通道输出

我一般用单色相机做MTF测试,省去去马赛克的麻烦。如果只能用彩色相机,那就只取绿色通道(G通道),因为绿色像素密度最高。

4.4.2 预处理流程

我的标准预处理流程:

  1. 暗场校正:减去暗场平均值
  2. 平场校正:除以平场图像(均匀光照下的图像)
  3. 坏点校正:用邻域像素插值替换坏点
  4. 去噪:可选,但MTF测试一般不做,怕影响频率特性
// 暗场校正示例(C++伪代码)
void dark_correction(uint16_t* raw, uint16_t* dark, int width, int height) {
    for (int i = 0; i < width * height; i++) {
        // 减去暗场,注意防止下溢
        raw[i] = (raw[i] > dark[i]) ? (raw[i] - dark[i]) : 0;
    }
}

重要提醒:预处理时不要做任何空间滤波!中值滤波、高斯滤波这些都会改变MTF。我见过有人用3×3中值滤波去噪,结果MTF值凭空高了5%。

4.5 本章知识体系

下面这张图总结了本章的核心逻辑:

图像采集与传感器知识体系 工业相机选型 分辨率 帧率 像元尺寸 传感器噪声模型 读出噪声 暗电流 光子散粒噪声 RAW数据采集与预处理 暗场校正 平场校正 坏点校正 去噪(可选)

嗯,以上就是本章的核心内容。选相机时记住:分辨率看需求,帧率看场景,像元尺寸看平衡。噪声处理要分清楚来源,RAW数据预处理要谨慎,别好心办了坏事。


公众号:蓝海资料掘金营,微信deep3321