如何进行DSNU校准、PRNU校准、LUT?
1. DSNU校准
(1)为什么 DSNU(暗信号不均匀性)校准
即使在完全黑暗的条件下,传感器中也会存在一些暗电流。由于制造工艺的细微差异,这些暗电流在传感器表面形成不均匀的分布,因此需要通过DSNU校准对图像进行均匀的背景校准。
(2)DSNU校准方法
1)数据采集:首先,相机需要在完全黑暗的环境下采集一组暗场图像。
2)平均:对采集的暗场图像进行相位平均,得到平均暗场图像。
3)通用校准图像:减去参考图像(全0或者全100等)生成暗场校准图像。
4)存储校准图像:将得到的暗场校准图像存储在相机内部的非易失性存储器中,作为后期暗场校准算法的输入。
5)应用校准:在拍摄实际图像时,相机减去校正后的图像,以消除传感器的暗电流不均等。
(3)DSNU校正前后对比
从下面两张图可以明显看出,校正后的图像在水平方向上相对于校准前的图像均匀性有了明显的改善。
未校正暗场水平灰值曲线
DSNU校准后的暗场水平灰值曲线
(4)DSNU校准步骤
1)FanOperationMode设置为Temperature,TECOperationMode设置为Temperature。
2)将CoolOperationTemperature温度设置为实际工作温度。
3) 等待传感器温度稳定。(DeviceControl / SensorTemperature)
4)将BinningHorizontal和BinningVertical设置为X1。
5)将触发模式设置为关闭。
6) 将 LUTEnalbe 设置为 Off。
7) 将 DSNUMode 设置为关闭。
8)将PRNUMode设置为关闭。
9) 将测试模式设置为关闭。
10)将操作模式设置为TDI。
11) 将BlackLevel设置为0。
12)实际操作中设置AcquisitionLineRate、TDIStagsP1、AnalogGain、PixelFormat等参数。
13)盖上镜头盖,如果不方便盖上镜头盖,可以看一下平均灰度值是否正常,当AcquisitionLineRate为80000Hz,TDIStagsP1为256,AnalogGain为X2,PixelFormat为8bit,设置好以上参数后的平均灰度值应该在20左右,如果超过20,有漏光,建议盖上镜头盖。
14)Live开始绘图,DSNUGenerate相机开始DSNU校准,所需时间与AcquisitionLineRate设置有关,将DSNUMode设置为On,观察图像的平均灰度值。理论上8bit的平均灰度值为6,10bit为25,12bit为100。如果平均灰度值与理论值的差异表明DSNU校准错误,请检查操作程序是否正确。
15) 如果判断DSNU校准有效,则可以执行DSNUSave,此时校正后的数据将与当前的PixelFormat和AnalogGain绑定,并存储在相机的非易失性存储器中。断电不会丢失。下次使用该PixelFormat和AnalogGain组合时,将自动加载存储的校准数据。
16) 如果选择了DSNUGenerateAll,则phase会自动将AnalogGain从X2切换到X8,在每个模拟增益下做一次DSNU校准,并且每次校准后都会自动保存到相机非易失性存储器中,这会覆盖之前的校准数据,因此在校准前需要判断之前的DSNU校准数据是否可以被覆盖。DSNUGenerateAll只会对当前配置的PixelFormat进行DSNU校准。如果需要在其他PixelFormat参数下进行DSNU校准,则需要切换到实际的PixelFormat参数,然后再执行DSNUGenerateAll。
(5)DSNU校准常问问题
1)DSNULoad 的作用
使用DSNUGenerate校准时不会直接保存到易失性存储器中,而是保存在DDR中,断电会直接丢失,如果对DSNUGenerate校准结果不满意,需要重新加载历史保存在相机中的DSNU校准参数,此时可以点击DSNULoad,加载之前保存的相机校准数据。
2)为什么不同线频率、模拟增益、TDI阶段、位深度、温度需要做DSNU校准分别地
由于sensor暗电流、不同线频、模拟增益、TDI阶段、位深以及温度背景数据等原因,我们无法在出厂时将所有场景校正完毕并保存到相机中,因此建议客户在使用时结合自身设备的使用情况进行校正。以下数据是在AnalogGain X2、DigitalGain X1、TDI阶段256的配置下,分别设置暗场图像平均灰度值为1K和300K时得到的。不同线频下暗场图像平均灰度值差异较大,数据上也进一步说明,DSNU校准需在线频下单独进行。
线路频率 | 8位 | 10位 | 12位 |
30万 | 20 | 80 | 70 |
1K | 31 | 108 | 150 |
3)为什么8bit、10bit开启DSNU校正后图像不能不饱和,12bit开启DSNU后图像平均灰度值增加
8bit时,DSNU校准会从平均暗场像(20DN)中减去一个参考图(6DN),生成一个暗电流校准像(14DN)。开启校准功能后,会实时从原始图像中扣除暗电流校准像(14DN),因此图像相对于原始图像会偏暗,且不会达到饱和状态,与10bit一样。
在 12bit 分辨率下,DSNU 校准使用平均暗场图像 (70DN) 减去参考图像 (100DN) 生成暗电流校准图像 (-30DN)。开启校准功能后,实时使用暗电流校准图像 (-30DN) 减去原始图像,因此校准后的图像会相对于原始图像更亮。如果上述问题影响使用,可以通过调整 BlackLevel 的值来解决。
以上数据是在频率300K,AnalogGain X2,DigitalGain X1,TDI级数256的情况下测得的结果。不同线路频率下,图像上的DSNU不同,需要按照上述逻辑分别进行分析。
4)DSNU 的有效期是多长校准拿
由于DSNU校准需要图像采集,因此校准时间与行频相关。行频越大,校准速度越快,所需时间越短。理论校准时间可以通过DSNU PRNU Generate时间计算表计算得出。可以通过下图所示的代码判断是DSNUGenerate还是DSNUGenerateAll。如果在Sample上进行了校正,可以通过观察图像是否恢复正常来判断校准是否成功。
5)如何判断DSNU校准成功
首先需要将DSNUMode设置为On,BlackLevel设置为0,观察图像的平均灰度值是否在正确的范围内。正确的平均灰度值应该是8bit为6,10bit为25,12bit为100。其次,我们可以对比一下图像水平方向的均匀性,分别采集DSNUMode设置为Off和设置为On的图像,用ImageJ对比水平方向的图像均匀性。如果均匀性明显更好,则表示DSNU标定成功,可以通过DSNU Save将组参数保存到相机中。
6)为什么选择DSNU校准切换模拟增益或位深度后效果发生变化
由于不同位深和不同模拟增益的DSNU校准参数会分别保存,因此在切换位深或模拟增益时,无需执行DSNULoad命令,相应的DSNU参数就会自动加载。因此,如果需要切换到不同的位深或模拟增益,建议先切换到10bit执行DSNUGenerateAll,再切换到12bit执行DSNUGenerateAll。由于10bit和8bit模式共用一套DSNU参数,因此8bit无需单独进行校准。校准完成后,所有位深和增益都已校正完毕,方便后续相机在不同位深和模拟增益下使用。
7)为什么执行 DSNU 时会出现图像异常校准
由于DSNU校准过程中会采集Sensor的图像计算校准参数,因此输出图像会存在异常,此为正常现象,校准后会自动恢复正常。因此需要等待DSNU校准完成后再进行图像采集。
8)你需要单独做 DSNU 吗校准针对不同的方向?
不会,因为相机在执行校准命令时会自动对两个方向进行校正,并且相位在切换方向时会自动加载该方向的DSNU校准参数。
9)为什么暗场背景值在校准
AcquisitionLineRate设置为300kHz,TDIStagsP1设置为256,AnalogGain设置为X2,暗场背景值理论上8bit设置为20,10bit设置为80,12bit设置为70。如果基准值错误,需要判断DSNUMode是否设置为Off,BlackLevel是否设置为0,PRNU是否设置为Off,DigitalGain是否设置为X1,LUTEnalbe是否设置为Off,OperationMode是否设置为TDI。
确定固件版本,由于历史原因,29/04之前的版本可能背景值较大。具体测试的是2901211203版本,12bit暗场背景有170DN左右。
判断是否漏光,建议盖上盖子,对比一下灰度值是否有差异,如果有差异,就是漏光。
10)执行 DSNU 时是否需要将 DSNU 模式设置为关闭校准
在判断是否有漏光以及暗场校准前的背景值是否正常时,需要将DSNU Mode设置为Off,并且在DSNUGenerate或DSNUGenerateAll命令之前,DSNU Mode状态不受影响。
11)UserSet 是否影响 DSNU 校准参数?
不,只有 DSNUGenerateAll 和 DSNUSave 会覆盖相机内部保存的 DSNU 校准参数。
2. PRNU校准
(1)为什么选择 PRNU(光响应不均匀性)校准?
PRNU校准是一种图像传感器校准技术,用于消除由于传感器响应不均匀而引入的图像噪声和伪影。图像传感器中的PRNU是由于制造工艺和材料节点性导致的,这会导致不同像素在相同光照条件下的响应存在差异。这种差异可能表现为图像中的背景噪声、斑点、条纹和其他问题。
(2)PRNU校准 方法
1)标定图像的获取:相机在半满均匀光照下采集一组原始图像,最好采用均匀光照,保证标定图像中没有其他复杂的影响。
2)平均多幅图像:从一组图像中找到一张平均图像。
3)确定目标灰度值:可以对采集到的图像进行平均作为目标灰度值,也可以手动输入目标灰度值。
4)PRNU校准图像:通过目标灰度/平均图像计算得到校正后的图像。
5) 存储PRNU校准图像:生成的PRNU校准图像存储在相机内部的非易失性存储器中,作为后期暗场校准算法的输入。
6)应用校准:实际拍摄图像时,将相机拍摄的每幅图像乘以PRNU校准图像,以消除传感器光学响应均匀性。
(3)PRNU校准前后对比
从下面两张图可以明显看出,校正后的图像在水平方向相对于校正前的图像均匀性有明显的改善。
未校正的旷场灰值曲线
PRNU校准后的旷场灰度值曲线
(4)PRUN校准步
1) 将 FanOperationMode 设置为温度,将 TECOperationMode 设置为温度。
2)将CoolOperationTemperature温度设置为实际工作温度。
3) 等待传感器温度稳定。(DeviceControl / SensorTemperature)
4)将BinningHorizontal和BinningVertical设置为X1。
5)将触发模式设置为关闭。
6) 将 LUTEnalbe 设置为 Off。
7) 将 DSNUMode 设置为开。
8)将PRNUMode设置为关闭。
9) 将测试模式设置为关闭。
10)将操作模式设置为TDI。
11) 将BlackLevel设置为0。
12)实际操作中设置AcquisitionLineRate、TDIStagsP1、AnalogGain、PixelFormat等参数。
13)将相机放置在均匀光线下,建议使用均匀光积分球,校准效果最佳,调整光源亮度,直到图像达到半饱和状态。注意尽量使整个9072像素点都处于半饱和状态。如果使用转接环导致图像两边都出现感光现象,会导致自动计算的目标值偏低。最后一种现象是开启PRNU后图像平均灰度值下降比较明显,那么需要更新固件版本到2904230720或更高版本,该版本采用3520像素点偏移后2048像素点的平均值作为目标值,因此应使用自动目标值来保证中间2048像素点处于曝光状态。
14)实现Live开始绘制,执行PRNUGenerate相机开始PRNU校准,所需时间与设置的AcquisitionLineRate有关,设置PRNUMode为On,对比校准前后图像水平方向的均匀性,如果均匀性明显更好,则说明PRNU校准有效。
15) 如果判断PRNU校准有效,则可以执行PRNUSave,此时校正后的数据将与当前选择的PRNU Selector绑定,并存储在相机的非易失性存储器中。断电不会丢失,并且在下一次PRNU Selector切换时,存储的校准数据将自动加载。
(5)公共关系委员会校准常见问题解答
1)角色 PRNU负载
使用PRNUGenerate校准时不会直接保存到易失性存储器中,而是保存在DDR中,断电会直接丢失,如果对PRNUGenerate校准结果不满意,需要重新加载历史保存在相机中的PRNU校准参数,此时可以点击PRNULoad,相位加载之前保存的相机校准数据。
2)角色 目标级别AUTO
PRNU有手动模式(通过PRNUTargetLevel参数手动设置校正后的目标值)和自动PRNU模式(相机以校正后的图像平均灰度值作为PRNU校准的目标值)。PRNUTargetLevel的范围为0~255、10bit和12bit。
3)为什么做PRNU的时候会出现图像异常校准
由于PRNU校准过程中会采集Sensor的图像计算校准参数,因此输出图像会存在异常,此为正常现象,校准后会自动恢复正常。因此,图像采集需要等待PRNU校准完成后再进行。
4)PRNUGenerate 需要多长时间
由于PRNU校准需要图像采集,因此校准时间与行频相关。行频越大,校准速度越快,所需时间越短。理论校准时间可以通过DSNU PRNU Generate时间计算表计算得出。PRNUGenerate可以根据下图所示的代码进行判断。如果在Sample上进行校准,可以通过观察图像是否恢复正常来判断校准是否成功。
5)RPRNUFactoryReset 的 ole
出厂前我们会在积分球下方制作5组默认的PRNU参数,如果用户使用过程中不小心将错误的PRNU参数存放在PRNU 0~PRNU 4中,我们可以通过执行此命令将5组默认的PRNU参数复制到PRNU 0~PRNU 4中。
相机的5个PRNU在出厂时均已校正。校准条件为半满均匀光照,行进频率=18000Hz,位深度和模拟增益有所不同。具体参数如下:
PRNU0=12位-模拟增益×2
PRNU1=12位-模拟增益×8
PRNU2=10bit-模拟增益×2
PRNU3=10位-模拟增益×8
PRNU4=10位-模拟增益×8
6)执行 PRNU 时是否需要将 PRNU 模式设置为关闭校准
将图像调整为半全和时,需要在 PRNUGenerate 命令之前将 PRNU 模式设置为关闭。
7)PRNU校准在 DSNU 之后校准,并且 DSNU 功能已开启
因为相机内部的PRNU算法是在DSNU算法之后,所以校准时也需要先校正DSNU,再校正PRNU,然后开启DSNU功能。
8)UserSet 是否影响 PRNU校准参数
不,只有 PRNUFactoryReset 和 PRNUSave 会覆盖相机内部保存的 PRNU 校准参数。
3.查找表
(1)什么是 LUT
查找表(Lookup Table,LUT)转换是图像处理的基本功能,可以突出细节,包括重
参考信息。这些函数包括直方图均衡、伽马校准、对数校准、指数校准。输出图像
将原始图像的灰度值与原始图像进行对比,用户根据应用情况设置相应的值。
(2)设置LUT的方法
LUT设置需要用到UptadeTool和Samplepro软件,软件界面如下图所示。
UptadeTool界面
Gamma:输入数值后可调出相应的INPUT-OUPUT曲线。
应用:应用当前 Gamma 值对应的 LUT 曲线。
Default:恢复默认Gamma=1时的LUT曲线状态。
保存文件:将当前LUT曲线保存到指定的文件路径。
加载文件:加载已保存的LUT曲线文件。
下载:将当前应用的LUT曲线配置到相机中。
上传:从相机读取配置好的LUT曲线。
Samplepro软件
LUTEnable:LUT控制开关,默认不打开。
LUTIndex:INPUT值,输入后自动加载应用曲线对应的输出值,范围0~4095。
LUTValue:OUTPUT值,根据输入的LUTIndex值加载,可手动修改,并保存,范围0~4095。
LUTSave:保存修改后的曲线。
LUTLoad:加载 LUT 曲线。
(3)LUT设置步骤
1)LUT曲线配置:设置实际需要的输入输出LUT曲线。通常有两种方法:
l 通过设置Gamma值,调用相应的Gamma曲线,也可以用鼠标在Gamma曲线中进行微调。
l 保存默认Gamma=1的LUT文件,手动修改灰度成像关系,然后将文件加载到相机中。
2)LUT功能启用:在相机软件上勾选LUTEnable。