第2章:镜头阴影校正调试环境搭建

做镜头阴影校正,第一步不是调参数,而是把环境搭对。我见过不少工程师,算法调了半天,最后发现是灯箱亮度不均匀——白忙一场。所以这一章,咱们先把硬件、软件、采集规范这三块地基打牢。

2.1 硬件准备:灯箱、灰卡、均匀光源

硬件选型直接决定你采集到的数据有没有价值。说白了,你给算法喂什么,它就吐什么。

2.1.1 灯箱选型

灯箱的核心指标就两个:均匀度和色温稳定性。

指标 要求 说明
均匀度 ≥ 90% 整个发光面亮度差异不超过10%
色温 D50 / D65 标准日光色温,可复现
显色指数 Ra ≥ 95 颜色还原越准越好
亮度范围 0 ~ 2000 cd/m² 覆盖低中高亮度场景

我个人习惯用X-Rite或Gossen的灯箱,校准周期短,稳定性好。有一次项目赶进度,用了实验室一个老灯箱,结果阴影校正曲线怎么调都不对——后来发现灯箱角落有个LED灯珠已经衰减了。嗯,从那以后我每次调试前都会先拍一张均匀白场做验证。

2.1.2 灰卡选择

灰卡用来做参考白平衡和亮度基准。别随便拿张白纸凑合,纸的反射率不均匀,而且不同纸张的荧光增白剂会影响光谱。

  • 标准灰卡:18%反射率灰卡,用于亮度校准
  • 白卡:96%反射率,用于阴影校正参考
  • 黑卡:2%反射率,用于暗电流评估
我的小技巧:灰卡不要用手直接摸表面,指纹和油脂会改变反射特性。用无尘布夹着拿,或者装在保护套里。

2.1.3 均匀光源

除了灯箱,你可能还需要独立均匀光源来做特定场景测试。比如大角度入射光、多光源混色等。

均匀光源的常见方案:

  • 积分球:均匀度最好,但体积大、价格高
  • LED面光源:可调色温、亮度,适合量产线
  • 卤素灯+扩散板:光谱连续,但发热严重

你想想看,如果光源本身就有暗区,你校正出来的阴影曲线其实是把光源缺陷也补偿进去了——这会导致换一个场景就出问题。所以均匀光源的均匀度,我建议至少做到95%以上。

2.2 软件工具:调试工具链与寄存器读写

硬件到位了,软件工具就是你的武器库。我习惯把工具链分成三层:采集层、分析层、烧录层。

2.2.1 调试工具链

层级 工具 用途
采集层 Sensor驱动 + 图像采集卡 获取原始RAW数据
分析层 MATLAB / Python + OpenCV 计算阴影曲线、坏点检测
烧录层 I²C / SPI 寄存器读写工具 将校正参数写入Sensor或ISP

我在项目中常用的是Imatest做阴影分析,配合Bus Hound抓I²C通信。不过Imatest是商业软件,如果预算有限,用Python自己写一套分析脚本也完全可行。

2.2.2 寄存器读写工具

寄存器读写是调试的最后一公里。你算好了校正系数,写不进去或者写错地址,全白搭。

常用的寄存器读写方式:

  • I²C工具:如Total Phase Aardvark、FTDI FT232H
  • SPI工具:如Saleae逻辑分析仪 + 自定义脚本
  • 厂商专用工具:如OV的OVTune、Sony的ISS
注意:写寄存器前一定要先读一遍当前值,确认通信正常。我曾经遇到过I²C地址偏移了一位,写进去的参数全跑到别的寄存器里去了,排查了整整两天。

2.3 图像采集规范

采集规范决定了你的数据是否可复现、可对比。没有规范,今天采的和明天采的就不是同一套数据。

2.3.1 采集环境要求

  • 暗室环境:避免环境杂散光干扰
  • 灯箱预热:至少预热15分钟,等色温稳定
  • 镜头清洁:用气吹+无尘布擦拭,指纹和灰尘会引入伪阴影
  • 固定机位:使用三脚架或夹具,避免手抖

2.3.2 采集参数设置

采集时,Sensor的参数要固定,不能开自动曝光、自动增益、自动白平衡。否则你采集到的阴影曲线会随着参数变化而漂移。

参数 设置建议 原因
曝光时间 固定值(如30ms) 避免亮度变化影响阴影曲线
模拟增益 1x(最低增益) 减少噪声对阴影检测的干扰
数字增益 1x 保持原始数据线性
输出格式 RAW(Bayer或RGGB) ISP处理前的原始数据
位深 10bit或12bit 保留足够动态范围

2.3.3 采集流程

  1. 灯箱预热15分钟,确认均匀度达标
  2. 安装镜头,清洁镜片和Sensor窗口
  3. 固定相机模组,对准灯箱中心
  4. 设置Sensor参数为固定模式
  5. 采集一张暗场(遮住镜头,评估暗电流)
  6. 采集一张灰场(灰卡,用于阴影校正)
  7. 采集一张白场(白卡,用于增益校正)
  8. 检查图像是否有过曝或欠曝区域
关键点:暗场、灰场、白场三张图缺一不可。暗场用来减暗电流,灰场用来算阴影曲线,白场用来做增益归一化。少一张,校正精度就会打折扣。

2.4 知识结构总览

下面这张图把本章的核心逻辑串起来了。你可以把它当作调试前的checklist。

镜头阴影校正调试环境搭建知识结构 镜头阴影校正调试环境搭建 硬件准备 软件工具 图像采集规范 灯箱 灰卡 均匀光源 采集层 分析层 烧录层 环境要求 参数设置 采集流程 核心原则:硬件均匀 → 工具可靠 → 采集规范 三者缺一不可,否则校正结果不可复现

这张图把硬件、软件、采集规范三个模块串在了一起。你调试前可以对着它过一遍,看看哪个环节还没到位。我个人习惯把这张图打印出来贴在工位上,每次调试前扫一眼,避免漏掉某个步骤。

经验之谈:环境搭建花的时间,至少占整个调试周期的30%。别急着调参数,先把环境搭扎实。我见过太多人一上来就调LSC增益表,结果灯箱都没预热——数据全是废的。