3. onsemi传感器噪声测试环境搭建

噪声测试与坏点治理的第一步不是写算法,而是把"可控的光、可控的温度、可控的采集链路"搭起来。onsemi 的图像传感器(如 AR/ARX 系列、PYTHON 系列、Hyperlux 系列)在数据手册中给出的暗电流、读出噪声、DSNU、PRNU 等指标,都建立在明确的测试条件之上:光照均匀度、色温、积分时间、结温、增益、模拟前端带宽。如果环境不可控,测出来的"噪声"里混着光源纹波、温漂和采集链路噪声,后续坏点判定就失去意义。本节围绕暗室、积分球、光源、温控平台、采集卡与评估板选型,以及 onsemi 评估套件的连接与配置展开。

一、测试环境各环节的作用与选型要点

暗室用于暗电流、暗噪声、暗坏点测试,核心指标是杂散光抑制能力。工程上通常要求暗室内部在传感器工作波段(可见光 400–700 nm,近红外可到 850–940 nm)的漏光低于传感器暗信号等效照度的 1/10。实操中可用黑绒布 + 遮光罩 + 传感器镜头盖三重遮蔽,并在盖镜头盖后采集 100 帧,观察平均 DN 是否随积分时间线性增长——若线性增长,说明是真实暗电流;若出现与积分时间无关的固定偏置,多为读出链路失调。

积分球用于平场(PRNU、DSNU、坏点)与线性度测试,关键参数是出光口均匀度(一般要求中心 80% 区域优于 98%)、开口直径与传感器视场匹配。球内光源经多次漫反射后到达出光口,因此积分球同时起到"匀光"和"去偏振"作用。测试时传感器应贴近出光口,避免环境光从侧面进入。

光源需覆盖两类需求:可调亮度的宽谱白光(如卤素灯 + 中性密度滤光片,或高显色 LED)用于平场与响应测试;单色/窄带光源(LED + 窄带滤光片或单色仪)用于量子效率与光谱响应。光源稳定性直接影响 PRNU 测量重复性,建议光源驱动采用恒流源,并在积分球内加监测光电二极管做闭环反馈。

温控平台是噪声测试中最容易被忽视的一环。onsemi 传感器的暗电流大约每升高 6–8 ℃ 翻一倍,因此暗电流测试必须锁定结温。常用方案是 TEC 半导体制冷片 + 热敏电阻/PT1000 反馈 + PID 控制器,把传感器封装背面或评估板铜箔区控制在设定温度(如 25 ℃、60 ℃、85 ℃)。测试前需等待热平衡(通常 5–10 分钟),并记录实际结温而非平台温度。

采集卡与评估板决定数据链路的噪声底。onsemi 评估套件通常由传感器子板(如 AR0234CS 子板)+ 接口/处理底板(如 APTINA 或 DevWare 兼容底板)+ USB 3.0/千兆以太网采集通道组成。选型时要关注:MIPI/LVDS 通道数与传感器输出匹配、位深(10/12 bit)、帧率是否满足多帧平均需求、是否支持 RAW 输出而非 ISP 处理后的 YUV。若采集卡自带压缩或自动增益,会掩盖真实噪声,必须关闭。

onsemi 传感器噪声测试环境与评估套件连接拓扑 暗室 / 积分球 积分球 均匀度≥98% 可调光源 恒流+ND滤光 遮光罩 / 镜头盖 / 黑绒布 漏光 < 暗信号等效照度 1/10 温控平台 TEC 制冷片 25 / 60 / 85 ℃ PT1000 + PID 热平衡 5–10 min 暗电流 ≈ 每升 6–8 ℃ 翻倍 传感器子板 AR0234CS / PYTHON Hyperlux 等 MIPI / LVDS 输出 10/12 bit RAW 评估底板 DevWare 兼容 USB 3.0 / GbE 关闭 ISP / 压缩 关闭自动增益 采集与上位机 多帧平均 / 直方图 DSNU / PRNU 计算 坏点坐标输出 光 MIPI USB3.0 温控 关键约束:光源稳定 → 积分球匀光 → 传感器贴口 → 温控锁定结温 → 评估板 RAW 直出 → 采集卡无压缩

二、onsemi 评估套件的连接与配置

以典型的 onsemi DevWare 评估链路为例,连接顺序为:传感器子板通过板对板连接器插到底板 → 底板通过 USB 3.0 或千兆以太网连到 PC → 安装 DevWare 与对应传感器 XML 寄存器配置 → 上电后识别设备。上电前务必确认子板供电电压(常见 1.8 V/2.8 V/3.3 V 多域)与底板跳线一致,反接或电压错配会直接损坏传感器。

配置阶段的核心是寄存器初始化。DevWare 通过 XML 文件描述传感器的寄存器序列,包括 PLL 配置、MIPI 时序、曝光/增益、测试图案等。噪声测试时建议:

  • 关闭所有自动算法(自动曝光、自动白平衡、自动增益、镜头阴影校正、坏点校正),否则测到的是"处理后的噪声"。
  • 输出格式设为 RAW10 或 RAW12,位深与后续统计脚本一致。
  • 固定模拟增益与数字增益(如模拟增益 1×、数字增益 1×),避免增益切换引入额外噪声。
  • 固定积分时间,暗场测试时先盖镜头盖,再设置曝光。

采集端建议使用 onsemi 提供的 SDK 或直接调用 DevWare 的抓帧接口,把连续 N 帧(如 100 帧)保存为无压缩 RAW 文件。上位机统计脚本按以下方式计算:

# 示例:暗场 100 帧统计(伪代码,参数为教学示例)
frames = load_raw("dark_100f.raw", width=1920, height=1200, bit=12)
mean_frame = mean(frames, axis=0)          # 每像素时间平均
temporal_noise = std(frames, axis=0)       # 时间噪声(读出噪声+暗噪声)
dsnu = std(mean_frame)                     # 空间噪声(暗信号非均匀性)
hot_pixels = count(mean_frame > mean(mean_frame) + 5*std(mean_frame))
print("temporal_noise(DN) =", mean(temporal_noise))
print("DSNU(DN) =", dsnu)
print("hot_pixels =", hot_pixels)

平场测试则把积分球亮度调到传感器满阱的 50% 左右,采集 100 帧,用同样方式计算 PRNU:先对每帧做去暗场,再求时间平均,最后计算空间标准差与均值的比值。若 PRNU 明显高于数据手册典型值,应检查积分球均匀度、光源纹波和镜头阴影。

温控平台与传感器子板之间建议加导热硅脂或导热垫,热敏电阻尽量贴在传感器封装附近而非平台边缘,否则结温估计会偏低,暗电流结果偏乐观。
不要用 ISP 处理后的 YUV 数据做噪声评估。YUV 经过伽马、去马赛克、降噪后,噪声分布已被改变,DSNU/PRNU 与坏点判定都会失真。必须使用 RAW 域数据。

三、环境搭建的检查清单

环节关键检查项示例判据
暗室盖镜头盖后暗信号随积分时间线性R² > 0.99
积分球出光口中心 80% 区域均匀度≥ 98%
光源恒流驱动 + 监测 PD 闭环波动 < 0.5%
温控热平衡后结温波动±0.5 ℃
评估板RAW 直出、自动算法关闭寄存器确认
采集卡无压缩、无丢帧帧计数一致

完成上述搭建后,才能进入下一步的噪声分解与坏点判定。环境本身的可重复性,决定了后续所有算法结论是否可信。