5.17.4.1. 修订记录

版本 修订日期 修订说明
0.1 2024.6.13 初版
0.5 2024.6.19 Modify-修订格式和个别图标引用问题
1.00 2024.7.1 语义格式修改

5.17.4.2. X5 ISP校准工具概述

X5 ISP校准工具是用于X5 ISP camera校准的工具。

本文面向已经将对应camera集成到X5 SDK中的客户,帮助调整传感器以适应camera接口。目的是通过标定传感器的多个参数并调整X5 ISP的软件驱动程序,以便传感器数据能够在X5 ISP中得到最佳处理,从而提高图像质量。

ISP校准工具组成

当前的X5 ISP校准工具集包括以下内容:

  • 校准工具

    • Black Level Correction:校正图像中的黑电平,包含压缩、解压缩和PD点校正。

    • Lens Shade Correction:调整Lens Shading校正以补偿大多数手机镜头产生的渐晕和传感器交叉影响。

    • Color Calibration:调整色彩校正矩阵以生成不同照明条件下的正确颜色。

    • Auto White Balance:计算自动白平衡软件控制回路的参数。

    • Noise Calibration:表征传感器模块的时间噪声水平。评估结果是描述时间噪声标准偏差与像素强度关系的噪声级别函数(NLL),可以将生成的文本导出,用于X5 ISPDPF模块的NLL相关寄存器。

    • Chromatic Aberration Correction:计算CAC硬件功能的校正参数。

    • Supplemental Tools

      • Color Checker Synthesizer:生成ColorChecker Chart或ColorChecker SG Chart的图像。如果实验室中无法拍摄某些条件下的实际图像,则这些图像可用于色彩校准工具。

      • Image Rectifier:帮助去除失真的图像。此工具的典型用例是校正以45°/0°对齐方式拍摄的色彩检查器图像,以便在IMATEST中进一步分析。

      • XML Generator:将校准数据转换为XML文件。

操作系统兼容性

X5 ISP校准工具可用于Microsoft Windows环境。X5 ISP校准工具支持在Windows 32位和64位操作系统上运行。

Note:ISP校准工具目前处于持续开发阶段。以下说明和UI可能会有所更改。

5.17.4.3. 环境要求

兼容的IP

ISP8000 v1.2.0及以上版本

软件要求

X5 ISP校准工具版本2.1.4及以上。

5.17.4.4. 安装与启动

校准工具安装与启动

  1. 安装MCRInstaller.exe运行库。 在使用校准工具之前,需要安装运行库。MCR运行库的版本应为9.14.0.2206163 (R2023a)。可以使用以下链接下载运行库: MATLAB Runtime R2023a

  2. 启动工具。

安装运行库后,应将工具目录复制到硬盘的指定位置。然后通过执行工具目录中的相应.exe文件启动工具。无需进一步安装。工具将启动一个用于控制台的窗口,并显示GUI窗口。

如果需要更新工具版本,可以将新版本工具复制到现有目录中,无需卸载旧版本。

5.17.4.5. 校准主流程

../../../_images/image2.jpeg

图 3.1‑1 X5 ISP Calibration Tools

校准的主要流程对应于校准工具主屏幕上选项的顺序。点击链接可以直接跳转到工具描述。

  1. Black Level Correction

  2. Lens Shade Correction

  3. Color Calibration

  4. Auto White Balance

  5. Noise Calibration

  6. Chromatic Aberration Correction – 可选

此外,还有补充工具可供校准使用。

  1. Color Checker Synthesizer

  2. Image Rectifier

  3. XML Generator

5.17.4.6. 黑电平校正

黑电平校正模块从图像数据中减去暗电流。CMOS传感器总会有一些黑电平的偏移,这意味着在没有光线照射的情况下,像素读取的值不会为零。这个黑电平可以通过拍摄对应的RAW图像轻松校准。

黑电平校准原始图像拍摄

  1. 使用黑色盒子或黑色物体覆盖传感器,确保没有光线进入传感器。

  2. 在传感器上启用BLC功能。

  3. 将传感器的曝光模式设置为手动。

  4. 对于下表中的每个曝光设置,拍摄五张RAW照片,增益步长为1,从1到最大值(如16);积分时间步长为10ms,从10ms到最大值(如30ms):

Gain Integration Time (10ms/step)
1 10ms
1 20ms
1 30ms
2 10ms
2 20ms
2 30ms
. . . 10ms to MAX
15 10ms to MAX
16 10ms to MAX
  1. 创建以下格式的文件夹:

Gain_<gain>_T_<time>

  1. <gain>是拍摄的原始数据的曝光增益。

  2. <time>是拍摄的原始数据的曝光时间(以秒为单位)。

例如: Gain_4_T_0.03表示曝光增益为4,曝光时间为0.03秒(或30ms)。

使用黑电平校正工具

在校准工具主窗口中,点击“Black Level Correction”选项。

../../../_images/image31.png

图 5.2‑1 Black Level Correction Button

将出现“Please Input BLC Parameters”窗口,如图 5.2‑2所示。

../../../_images/image4.png

图 5.2‑2 Please Input BLC Parameters Window

1.点击“Select”选项选择BLC原始数据文件夹。

2.对齐位置文本框:输入实际的Bayer pattern格式。

3.设置输入位宽和输出位宽,有效范围为[8-32]位。

4.设置分辨率:宽度和高度。

5.点击“OK”开始对指定数据进行黑电平计算。

6.合并通道复选框:如果选中,用户可以获得R、Gr、Gb、B的BLC合并测量值;如果未选中,用户可以分别获得R、Gr、Gb、B的测量值。

7. Normal File Out / Extended File Out:如果选择正常文件输出,将输出blc_para.txt;如果选择扩展文件输出,将分别输出不同增益和时间下R、Gr、Gb和B的BLC。

接下来将显示“黑电平与积分时间”的图,如图 5.2‑3所示。

../../../_images/image51.png

图 5.2‑3 Black Level vs Integration Time Graph

Load Data

BLC窗口左上角的LoadData菜单包含以下选项:

../../../_images/image6.png

图 5.3‑1 Load Data Menu

  • GetCompressData:加载压缩数据。

输入数据必须采用如图 5.3‑2所示的格式。

输入数据后,您可以选择“曲线”选项继续校正过程。有关“Curve”选项的详细信息,请参见曲线章节。

../../../_images/image73.png

图 5.3‑2 Compression Data Format Input Example

  • GetEpdData:加载解压缩数据。

输入数据必须采用如图 5.3‑3所示的格式。BLC值取决于用户输入的黑电平校正值,并且可以根据不同的位宽重新计算。

输入数据后,您可以选择“曲线”选项继续校正过程。有关“Curve”选项的详细信息,请参见曲线章节。

../../../_images/image8.png

图 5.3‑3 Decompression Data Format Input Example

  • GetPDCfg:通过使用外围点插值来恢复原始图像中PD点的像素值。

点击此选项后,将弹出如图8所示的窗口。

由于传感器和图像裁剪参数的差异,PD点的位置会发生变化,但PD点的排列和分布规则不会改变。因此,需要定义图 5.3‑4中的参数以补偿这些差异。

../../../_images/image92.png

图 5.3‑4 PD Correction Setting

窗口中显示的参数解释如下:

  • PD_AREA_X:每个块的宽度。 PD点的位置用于将原始图像拆分为几个相同大小的块,然后定位每个块中PD点的位置。

  • PD_AREA_Y:每个块的高度。

  • First_pd_x:每个块的x方向偏移距离。

  • First_pd_y:每个块的y方向偏移距离。

由于PD点的交错排列,图像边缘的一些块可能尺寸较小且PD点不完整。为了使所有块都能分割成相同的大小,需要设置First_pd_x和First_pd_y。

../../../_images/image10.png

图 5.3‑5 First Shift of Original PD Area

  • shift_mark[16]

定位每个分割块中包含的每对PD点的坐标。值的数量基于每个块中的PD点数。以图 5.3‑6为例,包含4对PD点。

shift_mark[16] = {6,3, 14,3, 2,11, 10,11,0…0}

shift mark:用于定位块中每个PD点的偏移对。

../../../_images/image111.jpeg

图 5.3‑6 Block of PD Area

  • Shift_L_R_X:块中第一个PD点与其右侧点之间的x方向偏移。

  • Shift_L_R_Y:块中第一个PD点与其右侧点之间的y方向偏移。

每对PD点的左右PD点之间的距离。在定位左侧PD点后,右侧PD点的位置等于

image-20240905220451358

  • Pd_num_x 和 Pd_num_y:对于每个区块,在x、y方向上分别有PD对的数量。

每个区块包含了PD点的对数,也就是说,每个区块中有 Pd_num_x * Pd_num_y 个PD点。

在定义了所有参数之后,您可以点击“预处理”菜单上传RAW图像。有关“预处理”菜单的详细信息,请参见预处理章节。

曲线

LoadData菜单右侧的Curve选项用于实施黑电平校正。点击此选项后,工具将提示用户选择一个原始文件夹。选择后,程序将递归遍历父文件夹和子文件夹中的所有RAW图像。

选择压缩数据后,点击Curve菜单中的“Compress”选项,但不要选择RAW图像。然后扩展曲线将自动生成。

../../../_images/image12.jpeg

预处理

在点击LoadData菜单中的“GetPDCfg”后弹出的窗口中设置参数后,选择预处理菜单中的“PdCorrect”选项选择源PD-RAW图像,如图 5.5‑1所示。

../../../_images/image13.png

图 5.5‑1 PD-Raw File Choosing

5.17.4.7. Lens Shading校正工具

Lens Shading校正工具用于补偿大多数手机镜头产生的渐晕和传感器交叉影响。便宜的镜头往往在图像的角落出现阴影伪影。Lens Shading校正是传感器校准的第二步。Lens Shading校正的结果将直接影响传感器校准的后两个模块(色彩校准和自动白平衡),因此必须确保Lens Shading校正校准正确。

此工具需要一张均匀照明的纯白或灰色图表的图像作为输入。Lens Shading校正块的参数是从此图像中提取的,通过拟合校正参数以观察到的阴影伪影。

非常重要的是,图像必须均匀照明;否则,得出的参数也将校正用于不均匀照明。这种不均匀照明会在实际图像中引入不需要的伪影。此外,图像不得过曝。这可以通过查看测试图像中间的像素值来检查。这些像素值不得超过220(对于8位每像素的情况)。

推荐的测试图像输入格式是RAW,可以存储为*.pgm或*.raw文件格式。工具可以接受其他格式,但用户可能容易在图像和得出的参数中引入不必要的错误。此外,黑电平不为零也会在计算中引入错误。因此,测试图像必须进行黑电平校正,但不能进行其他处理。

LSC工具在处理测试图像之前提供了几个选项。以下部分将描述这些选项。

Lens Shading校正原始图像拍摄

原始图像拍摄设置

Lens Shading补偿图像必须满足以下要求:

  • 整个图像均匀分布的照明

  • 灰色或白色图表上没有任何图案或纹理

  • 曝光必须设置,使图像中心的最高像素值约为220(对于8位每像素的情况)

  • 使用产生日光(>5000 K)的光源

  • 关闭环境照明以避免在图表上产生反射

标准的光箱不适合拍摄图像,因为照明不均匀。下图显示了一个合适的设置示例。这里使用了一个球形透射照明器,其光分布均匀性超过96%。

../../../_images/image14.png

图 6.1‑1 Example Setup for LSC Test Image

步骤:

  1. 设置光源:A/CWF/TL84/D50/D65。

  2. 在传感器正对光源的地方覆盖一个扩散器,确保光源均匀照明。建议使用DNP光箱。

  3. 调整曝光增益和积分时间,以生成8位情况下范围为30~220的像素值。

  4. 拍摄一张RAW格式的图像。

  5. 更换光源。

  6. 重复步骤1-4。

使用Lens Shading校正工具

Lens Shading校正工具用于确定特定传感器模块的Lens Shading参数,以便与X5 ISP相机接口一起使用。该工具计算必须写入X5 ISP寄存器的参数。

X5 ISP必须配置为所需的图像分辨率,因为计算的参数依赖于图像分辨率。对于每个支持的分辨率,LSC需要不同的参数,必须在初始化时和更改传感器分辨率后写入到X5 ISP寄存器中。

在校准工具主窗口中,点击“Lens Shade Correction”选项以打开LSC Parameter

Optimizer窗口。

../../../_images/image15.png

图 6.2‑1 Lens Shade Correction Button

为了快速开始,可以通过按照Load Image Menu sectionRGB Bayer Pattern Layout section 部分中描述的方式将测试图像加载到工具中,并使用所有其他选项的默认设置来推导出LSC(镜头遮光校正)参数。点击“Start”选项并定义参数输出的文件名后,工具将计算参数并将其写入指定的文本文件中。LSC工具的GUI如图 6.2‑2所示。

../../../_images/image16.png

图 6.2‑2 LSC Parameter Optimizer

加载图像

加载图像菜单项用于将测试图像加载到工具中。推荐的测试图像文件格式为.pgm或.raw,包含RAW格式。表格 7.3‑1 Supported File Formats 中的所有文件格式都可以接受。如果使用RAW格式以外的文件格式,确保图像除了黑电平校正外未进行其他处理。如果使用.raw文件格式,则需要Width, Height, Bit字段。

重要的输入是位字段,它与使用的传感器的Bit有关。如果该数字输入错误,图像将以错误的亮度显示,并且计算的参数也会错误。

../../../_images/image17.png

图 6.3‑1 LSC Parameter Optimizer (Top of Dialog)

如果原始图像中包含坏像素,则在使用图像进行Lens Shading校正之前应使用中值滤波器滤除这些像素,因此应始终选中“Median Filter”复选框。否则,得出的参数可能会受到坏像素的影响。

../../../_images/image18.jpeg

图 6.3‑2 Median Filter

默认情况下启用Median Filter,通常使能它。

RGB Pattern选择

../../../_images/image19.png

图 6.4‑1 RGB Bayer Pattern Layout

如果输入图像为RAW格式,则必须通过选择适当的单选选项来指定Bayer pattern布局。默认设置为GRGR、BGBG,这意味着图像从图 6.4‑2所示的图案开始。

image-20240905220618253

图 6.4‑2 Bayer Pattern Example of GRGR and BGBG

(可选)CCT

如果您想继承6.6节中描述的信息并自动生成XML,如XML生成器中描述的那样,则需要选择RAW图像的当前色温(CCT),如图 6.5‑1所示。

../../../_images/image20.png

图 6.5‑1 LSC Parameter Optimizer

如果不选择CCT类型,将直接使用默认的D50。在这种情况下,必须通过配置文件夹和txt文件手动生成XML,如XML生成器中介绍的那样,因为自动生成的XML会产生意外数据。

继承BLC基本信息

../../../_images/image21.jpeg

图 6.6‑1 LSC Parameter Optimizer

选择“Inherit blc basic Info box”复选框后:

  • 如果已校准BLC模块,将自动继承偏移量、宽度、高度、位和Bayer pattern的信息。

  • 如果未校准BLC模块,将使用默认值。

有关BLC模块的信息,请参见黑电平校正章节。

校正方法

../../../_images/image22.png

图 6.7‑1 Correction Method

如果测试图像在整个图像上显示相同的颜色,则应选择“one plane vignetting only”。在这种情况下,将为所有颜色分量计算一个通用参数集。

如果测试图像在图像的角落显示不同的颜色,则应选择“four plane”以消除这些颜色伪影。在这种情况下,将分别为每个颜色分量R、G和B计算一个参数集。

Offset扣除

../../../_images/image23.png

图 6.8‑1 Offset Subtraction

如果在未进行黑电平校正的情况下拍摄测试图像,则可以在LSC工具中设置黑电平偏移值,然后再开始参数计算。可以分别为红色、绿色和蓝色指定单独的黑电平值。使用与色彩校准工具相同的偏移值。

节点位置

../../../_images/image24.jpeg

图 6.9‑1 Knots Distribution and Grid Part 1

../../../_images/image25.png

图 6.9‑2 Knots Distribution and Grid Part 2

Knot Positions选项允许定义用于X5 ISP内部双线性校正函数的网格节点位置。水平和垂直节点位置可以手动定义为图片大小的百分比。默认设置考虑到Lens Shading通常在图像边缘具有更高的梯度,因此网格需要在边缘设置更密集以更好地拟合函数。

X5 ISP硬件中提供了16x16和32x32网格部分(17x17节点和32x32节点)。因此,可以根据ISP硬件版本选择16x16或32x32。

图 6.9‑3显示了X5 ISP硬件的16x16 LSC部分的概述。

../../../_images/image261.png

图 6.9‑3 16x16 Lens Shading Correction Sectors

节点位置始终对称于框架。即,部分X1和X16或部分Y2和Y16的尺寸相同。因此,仅需要指定左上象限中的9x9节点位置。其他三个象限的节点位置通过镜像自动生成。节点位置还支持33x33节点,使网格直接覆盖整个图像。为了配合硬件,还支持32x17选项,使网格覆盖整个图像在x方向,并覆盖图像的上半部分在y方向。

大多数传感器模块的默认节点位置设置可以获得良好的效果。

自动定位初始点

../../../_images/image27.png

图 6.9‑4 Offset Subtraction

如果选中Automatic initial knot positions复选框,工具将尝试根据应用于测试图像的高斯拉普拉斯滤波操作找到最佳节点位置。然后使用图像内的导数估计最佳节点位置。

默认情况下启用Automatic initial knot positioning

优化节点位置

../../../_images/image28.png

图 6.9‑5 Optimize Knot Positions (Non-Linear)

Optimize knot positions (non-linear)部分用于激活一个非线性迭代搜索算法,该算法试图进一步优化参数拟合超出先前获得的结果。通常不需要此优化步骤,且很少能产生比之前更好的结果,因此默认情况下禁用。如果启用此功能,工具的运行时间将显著增加。最大迭代次数可以通过更改Max. iterations文本字段手动调整。

ALSC节点位置

../../../_images/image29.png

ALSC均匀网格匹配软件级别的自动LSC,强制生成均匀的网格分布,以确保插值的校正。

双线性样条拟合

../../../_images/image30.png

图 6.10‑1 Bilinear Spline Fitting

默认启用Bilinear Spline Fitting,因为测试图像通常包含一些噪声和图像失真。Bilinear Spline Fitting的结果是一个更平滑的曲线。可以使用Max. points per bilinear surface文本字段增加拟合的采样点。增加采样点也会增加工具的运行时间。

Lambda用于样本点值的连续条件,它将调整图像角落的样本值。如果在LSC计算后,图像角落生成异常像素,用户可以减少lambda以帮助缓解。

Lambda值越小,LSC增益引起的噪声越可能产生。因此,如果Lambda不能在异常像素和噪声之间保持平衡,用户可以直接点击Smooth Gain选项,以避免角落出现异常的LSC增益。

工具启动时显示的给定参数下启用样条拟合。

比例最大值

../../../_images/image311.jpeg

图 6.11‑1 Maximum Compensation Ratio

默认情况下,Ratio Max为4x,这意味着从中心到角落的最大补偿比例为4倍。也可设定较大的补偿比例6x、8x或16x。

光衰减

../../../_images/image32.png

图 6.12‑1 Light Fall-Off

渐晕补偿可以指定为百分比值。此值在“补偿”文本字段中指定。默认值为100%,表示LSC参数完全补偿渐晕。选择低于100%的值时,Lens Shading不会完全去除图像中的渐晕。例如,80%的补偿意味着图像角落在补偿后至少有80%的像素强度相对于图像中心。这有助于减少图像外围的噪声放大。此外,补偿后的渐晕形状可以在Drop-off下拉菜单中指定(余弦和三角形)。

尽管可以指定渐晕补偿的程度,但由于像素串扰和镜头红外滤光片等引起的颜色阴影始终完全补偿。

默认Light fall-off设置为100%补偿和cosine drop-off。

颜色阴影和亮度&颜色阴影

../../../_images/image33.png

点击Color Shading选项以避免生成颜色阴影。如果启用Color Shading选项,则仅颜色阴影会生效。

点击Luma&Color Shading选项以避免生成亮度和颜色阴影。实际上,以前的LSC过程仅包括亮度阴影。如果启用Luma&Color Shading选项,亮度和颜色阴影都会生效。

启动选项

在GUI中定义所需的选项后,需要按工具右下角的Start选项,如图 6.14‑1所示。

../../../_images/image34.png

图 6.14‑1 The Start Button

这将打开一个文件选择器框,在其中需要通过输入适当的文件名来定义存储参数的文本文件。工具根据指定的选项计算LSC参数。根据指定的选项和PC的处理能力,计算需要一些时间才能完成。进度可以在工具初始化期间打开的命令窗口中监控。计算完成后,结果参数将在3D图形窗口中显示,如图 6.14‑2所示。

../../../_images/image35.png

图 6.14‑2 3D Graphical Output for Parameter Set After One Plane Optimization

LSC工具的示例输出

图 6.14‑3显示了一个从扩散光箱照明器的测试图像生成的示例参数集。

%***************************************************************************
%*                        LSC parameter optimizer                          *
%***************************************************************************
LSC_CALIB_IMAGE_NAME = 'pict063_A.pgm'; LSC_CALIB_IMAGE_BayerLayout = 'RGGB';
LSC_sectors = 16;  % Using 2x8 sectors in each direction. % Automatic grid refinement chosen!
LSC_Compensation_Percentage = 100; LSC_Compensation_Shape = 'cosine';
% Data for hardware programming:
% ------------------------------
LSC_planes = 4;  % Using FOUR planes for LSC
LSC_No = 10; LSC_Xo = 15; LSC_Yo = 15;
LSC_SECT_SIZE_X = [115  126  137  150  164  185  204  215];
LSC_SECT_SIZE_Y = [ 92   97  106  117  129  135  146  150];
LSC_RESOLUTION_X = 2592; LSC_RESOLUTION_Y = 1944; LSC_BLS_BIT_DEPTH = 16;
LSC_BLS_R = 4096;  % based on 16-bits LSC_BLS_Gr = 4096;
LSC_BLS_Gb = 4096; LSC_BLS_B = 4096;
% Tables for hardware programming:
% --------------------------------

LSC_SAMPLES_red =
[2871	2606	2444	2315	2199	2109	2042	1973	1938	1972	2042	2131	2214	2307	2427	2540	2699
2696	2463	2333	2222	2109	2005	1912	1841	1825	1855	1927	2014	2122	2228	2334	2453	2577
2540	2382	2258	2124	2018	1899	1797	1721	1693	1734	1806	1910	2024	2148	2243	2351	2487
2434	2285	2160	2035	1902	1776	1669	1583	1551	1583	1668	1778	1894	2026	2148	2269	2384
2354	2200	2073	1937	1788	1668	1539	1440	1393	1441	1534	1662	1792	1918	2063	2172	2284
2264	2121	1978	1834	1699	1555	1416	1303	1254	1291	1398	1538	1681	1818	1959	2095	2212
2203	2057	1918	1764	1609	1459	1306	1181	1139	1174	1284	1434	1594	1741	1883	2016	2160
2156	2016	1866	1702	1554	1391	1220	1104	1052	1090	1196	1360	1516	1670	1821	1968	2115
2147	2006	1845	1691	1534	1362	1199	1070	1024	1056	1165	1328	1494	1657	1810	1950	2102
2183	2023	1872	1707	1556	1383	1217	1089	1035	1071	1182	1343	1512	1669	1820	1971	2108
2221	2063	1919	1753	1597	1439	1283	1151	1100	1132	1244	1397	1554	1706	1855	2006	2147
2283	2123	1987	1818	1681	1518	1374	1252	1197	1230	1339	1477	1632	1781	1930	2079	2198
2346	2213	2061	1921	1757	1621	1488	1378	1320	1362	1453	1590	1723	1864	2018	2144	2298
2459	2298	2149	2005	1853	1719	1597	1492	1454	1478	1573	1682	1819	1955	2095	2220	2355
2567	2370	2233	2103	1960	1825	1708	1621	1576	1607	1686	1797	1921	2054	2175	2299	2447
2698	2478	2309	2181	2044	1921	1815	1726	1697	1717	1793	1907	2011	2134	2258	2386	2528
2921	2575	2409	2249	2140	2028	1913	1837	1807	1811	1904	1988	2118	2224	2332	2464	2645];

LSC_SAMPLES_greenAtRedLine =
[2476	2242	2129	2023	1943	1856	1778	1736	1716	1730	1811	1897	1984	2084	2198	2284	2420
2313	2147	2051	1949	1854	1765	1702	1635	1619	1650	1712	1811	1925	2025	2114	2220	2332
2206	2090	1977	1878	1789	1700	1611	1560	1529	1564	1642	1742	1844	1966	2063	2158	2275
2122	2009	1905	1810	1706	1607	1519	1442	1416	1454	1543	1660	1770	1890	1999	2088	2210
2069	1942	1834	1725	1622	1519	1410	1337	1294	1340	1432	1559	1685	1817	1924	2037	2139
1992	1875	1769	1657	1541	1426	1315	1218	1181	1219	1335	1469	1613	1734	1858	1967	2095
1958	1830	1724	1595	1477	1360	1225	1124	1091	1132	1240	1395	1538	1683	1810	1934	2048
1936	1820	1699	1572	1448	1313	1176	1069	1034	1078	1189	1351	1509	1649	1794	1904	2038
1927	1813	1696	1565	1444	1305	1168	1056	1024	1061	1178	1340	1499	1652	1786	1906	2033
1960	1835	1721	1595	1468	1342	1196	1093	1055	1100	1210	1377	1528	1676	1814	1933	2063
2016	1885	1777	1654	1533	1412	1275	1174	1133	1175	1290	1440	1596	1734	1859	1999	2098
2066	1952	1839	1719	1611	1489	1376	1275	1240	1284	1386	1537	1664	1806	1938	2046	2173
2131	2029	1913	1808	1703	1600	1488	1402	1371	1409	1503	1633	1755	1893	2008	2112	2231
2235	2106	2006	1895	1794	1689	1600	1525	1504	1531	1624	1730	1852	1965	2093	2183	2303
2336	2173	2081	1977	1883	1786	1704	1631	1613	1647	1727	1825	1946	2063	2160	2251	2380
2475	2274	2157	2053	1969	1875	1782	1723	1703	1733	1807	1914	2022	2122	2232	2326	2443
2654	2388	2241	2149	2058	1965	1895	1837	1837	1851	1937	2020	2119	2225	2308	2425	2560];

LSC_SAMPLES_greenAtBlueLine =
[2481	2243	2125	2019	1930	1841	1750	1717	1693	1726	1796	1880	1975	2088	2198	2290	2424
2308	2136	2045	1934	1829	1747	1665	1583	1573	1625	1684	1797	1915	2021	2119	2226	2342
2202	2088	1969	1866	1768	1673	1576	1527	1495	1530	1622	1733	1837	1961	2071	2167	2290
2125	2003	1899	1798	1687	1581	1485	1410	1391	1431	1526	1643	1766	1891	1997	2099	2213
2068	1935	1832	1719	1607	1496	1387	1304	1273	1317	1426	1553	1677	1818	1927	2046	2154
1993	1880	1765	1652	1529	1413	1293	1198	1161	1206	1323	1467	1616	1735	1866	1978	2107
1966	1830	1722	1593	1473	1348	1209	1112	1079	1126	1240	1396	1545	1687	1824	1948	2070
1941	1822	1698	1569	1440	1311	1171	1064	1031	1077	1191	1357	1516	1660	1804	1922	2054
1930	1817	1699	1565	1445	1304	1166	1057	1024	1068	1183	1349	1516	1670	1799	1930	2064
1969	1846	1729	1601	1475	1350	1206	1099	1068	1107	1227	1393	1547	1699	1837	1966	2089
2024	1894	1791	1663	1540	1422	1285	1188	1148	1194	1315	1464	1625	1761	1887	2031	2133
2080	1960	1854	1735	1629	1504	1396	1297	1267	1316	1421	1574	1700	1839	1980	2078	2213
2146	2045	1926	1824	1720	1622	1513	1435	1407	1458	1550	1681	1794	1934	2058	2153	2273
2243	2122	2027	1916	1822	1716	1642	1569	1562	1592	1686	1789	1897	2020	2141	2230	2346
2355	2190	2102	1996	1906	1820	1738	1681	1670	1718	1791	1882	2001	2113	2216	2307	2417
2492	2292	2179	2081	2003	1913	1839	1789	1782	1823	1894	1994	2080	2193	2283	2376	2506
2665	2405	2261	2172	2072	1999	1930	1884	1900	1919	1996	2068	2172	2253	2353	2466	2600];

LSC_SAMPLES_blue =
[2187  1959  1883  1779  1720  1632  1581  1526  1508  1515  1570  1640  1709  1797  1894  1984  2106
2070  1915  1832  1744  1661  1602  1538  1476  1450  1469  1511  1587  1680  1765  1868  1958  2054
1962  1856  1763  1687  1607  1530  1468  1411  1384  1411  1464  1530  1623  1722  1823  1900  2014
1882  1785  1698  1604  1533  1449  1390  1341  1311  1328  1385  1467  1557  1651  1755  1842  1939
1811  1713  1621  1527  1456  1381  1320  1250  1218  1245  1318  1405  1494  1582  1691  1793  1886

1758	1655	1559	1470	1389	1317	1236	1173	1127	1172	1249	1352	1440	1538	1651	1748	1826
1711	1610	1515	1424	1337	1259	1175	1091	1074	1108	1196	1295	1405	1512	1614	1730	1813


1672	1579	1483	1385	1309	1221	1126	1046	1024	1066	1154	1276	1389	1499	1606	1706	1810
1686	1568	1470	1386	1302	1210	1120	1034	1024	1063	1157	1284	1402	1502	1621	1732	1830
1677	1581	1491	1395	1312	1234	1136	1070	1046	1092	1188	1315	1424	1532	1647	1750	1850
1702	1605	1520	1424	1359	1276	1194	1124	1113	1160	1260	1378	1485	1593	1700	1798	1888
1742	1648	1569	1488	1414	1334	1279	1213	1206	1257	1345	1459	1554	1658	1768	1856	1962
1806	1709	1622	1543	1481	1433	1354	1324	1307	1367	1444	1542	1632	1736	1840	1930	2000
1873	1755	1682	1625	1548	1482	1439	1411	1411	1458	1526	1623	1704	1811	1907	1986	2087
1946	1819	1760	1680	1619	1560	1522	1484	1504	1562	1612	1719	1783	1885	1969	2057	2141
2037	1895	1806	1753	1697	1640	1600	1568	1574	1632	1694	1772	1844	1944	2027	2117	2206
2195	1964	1886	1800	1762	1693	1660	1643	1665	1706	1772	1835	1936	1983	2108	2169	2279];

图 6.14‑3 Example Parameter Set

LSC工具输出的各种部分的描述显示在表格 6.14‑1的表格中。

Section Name Description
LSC_SECT_SIZE_X horizontal (X) sector sizes for first quadrant of the image in pixels
LSC_SECT_SIZE_Y vertical (Y) sector sizes for first quadrant of the image in pixels
LSC_XGRAD_1plane gradients to programmed into X5 ISP registers for X direction
LSC_YGRAD_1plane gradients to programmed into X5 ISP registers for Y direction
LSC_SAMPLES_1plane sample values for the knots of the correction grid to be programmed into X5 ISP registers

表格 6.14‑1 Description of LSC Tool Output Sections

将LSC应用于图像

../../../_images/image36.png

图 6.15‑1 Apply LSC to Image

在LSC(Lens Shading Correction)参数计算完成后,会生成一个输出文件,如第LSC工具的示例输出章节中的说明。这个输出文件中的参数可以通过将它们应用到测试图像上来进行视觉检查。要做到这一点,测试图像必须预先加载。点击“Apply LSC to Image”选项,并选择生成的参数文件。然后,LSC 工具的图像窗口将显示校正后的测试图像,并展示所选参数集的二维可视化。

RTL中的精度

../../../_images/image371.png

图 6.16‑1 Accuracy in RTL

Accuracy in RTL” 部分用于使LSC(Lens Shading Correction)工具适应不同版本的X5 ISP(图像信号处理器)。

Open Image in Window

../../../_images/image381.jpeg

图 6.17‑1 Open Image in Window

open image in window “选项用于在单独的窗口中打开显示的图像。这样可以对图像进行缩放并显示图像的像素值。

Save Image to File

../../../_images/image39.png

图 6.18‑1 Save Image to File

点击“save image to file”选项会打开一个对话框,允许将显示的图像保存到文件中,以便进一步处理或查看。

5.17.4.8. Color Calibration

大多数消费者产品提供的图像都是在一个指定的色彩空间中,最常见的是 sRGB。CMOS 传感器产生的传感器特定色彩空间不同于 sRGB。因此,必须移除相机传感器的色彩空间。这是通过使用色彩校正矩阵和自动白平衡(AWB)增益来实现的。 色彩校准工具用于调整 X5 ISP 的色彩校正矩阵,以生成在不同照明条件下的正确色彩,并计算传感器特定的色彩配置文件。色彩配置文件是 X5 ISP 处理链中变换矩阵和各个红、绿、蓝增益的组合。色彩配置文件基于光源的测量光谱和传感器的光谱响应来计算。这是通过在定义的照明条件下拍摄已知色卡(称为 ColorChecker,以前称为 Gretag Macbeth ColorChecker)的图像来实现的。

本节提供了有关如何使用色彩校准工具的分步教程。

色彩校准-原始图像拍摄

  1. 在视野中心设置 ColorChecker 图表。

  2. 设置光源:H/A/CWF/TL84/D50/D65/D75。注意:推荐使用 D65 光源。

  3. 调整传感器焦距对准 ColorChecker。

  4. 调整曝光增益和集成时间,以生成像素值在 [30..220] 范围内(8 位情况下)。

  5. 确保 ColorChecker 的白块值小于 208(8 位),黑块值大于黑电平校正值。

  6. 在不同的曝光设置下,拍摄原始格式的图像。

  7. 更换光源(H/A/CWF/TL84/D50/D65/D75)。

  8. 重复步骤 2-7。

设置 ColorChecker

为了更高的准确性,推荐在色彩校准过程中使用如图 7.1‑1所示的 ColorChecker® SG(半光)图表。

../../../_images/image401.png

图 7.1‑1 ColorChecker SG Chart

SG图表有140个颜色贴片,而如图 7.1‑2所示的标准ColorChecker图表只提供24个;然而,标准ColorChecker对于颜色校准来说已经足够了。

../../../_images/image41.png

图 7.1‑2 ColorChecker SG Chart

SG图表在灯箱中以45°/0°的排列方式放置。因此,光源直接从上方照射图表,相机从一个45°角拍摄照片。这导致照明更加均匀,减少了光源本身的反射(光泽效果),并且测量了图表的真实反射。

../../../_images/image42.png

图 7.1‑3 45°/0° SG Chart/Light Source Arrangement

../../../_images/image43.png

图 7.1‑4 Lightbox Arrangement in the Lab

这种排列方式在图像中导致了图表的梯形变形。这种变形在颜色校准工具中得到了补偿。

另一个问题是灯箱的非均匀光分布和传感器的镜头遮光效应。通过拍摄光分布的图像来补偿这些影响。有了光分布作为额外的输入,颜色校准工具可以补偿这些效果。因此,对于每一个图像,都需要从同一位置拍摄第二张显示光分布的图像。这张图像在颜色校准工具中被称为背景图像。

Note:ColorChecker背后的背景不能有任何结构或纹理;只允许纯灰色背景。如果ColorChecker背后的背景不是灰色的,工具将计算出错误的参数。

../../../_images/image44.png ../../../_images/image45.png

图 7.1‑5 Sample Snapshot and Snapshot of Light Distribution

颜色校准工具还需要知道所拍摄图像的黑电平。R、Gr、B和Gb的黑电平必须作为参数输入到图形用户界面(GUI)中。

为了确定黑电平,当镜头完全被覆盖时(例如,用一张黑纸),拍摄一张图像。其他图像应该使用相同的X5 ISP配置。不同的配置可能导致不同的黑电平。

请确保自动曝光(AE)是关闭的,因为AE会导致增益增加到最大,这会引入过多的噪声并改变黑电平。

然后,如果知道Bayer图案的排列,可以使用图形程序确定黑电平。有关如何提取单个像素值的额外信息,请参见下文关于PGM文件格式的段落。

C:\Users\HUA~1.ZHA\AppData\Local\Temp\ksohtml134724\wps1.png

图 7.1‑5 Snapshot for Black Level Determination

EXAMPLE_COLOR_CALIBRATION文件夹包含了在上述条件下拍摄的一些示例图像。

总结如下:

  • 使用ColorChecker SG图表

  • 45°/0°排列方式

  • 对于每一个图像,拍摄第二张显示光分布的图像(保持确切位置)

  • 拍摄一张黑电平的图像(关闭AE,相同的帧定时)

X5 ISP的配置

拍摄图像时应具有足够的分辨率。推荐的最小分辨率为1024x768,约20x20像素用于原始图像中的最顶部块(每个通道10x10像素)。

为了避免X5 ISP或JPEG编码器的任何处理,图像应以原始数据格式从传感器写入便携式灰度图(.PGM)文件。 没有公认的图像格式来存储原始Bayer数据。PGM是一种用于灰度图像的简单格式。此格式用于容纳原始Bayer数据。优点是可以使用任何图形程序打开图像,并提供对单个像素数据的访问。缺点是图像以灰度显示(不是彩色)。没有进行去马赛克处理。当放大时可以看到Bayer图案。可以确定所有通道的各个像素的值:红色(R)、绿色(Gr)、蓝色(B)和绿色(Gb)。

曝光必须设置为不超过图像最大像素值的80%。否则有可能进入传感器的非线性饱和范围。因此白块中的所有像素值不应超过204(8位输出),以保持足够的距离离开饱和范围。

使用AE(自动曝光)通常会导致图像曝光不足或过度曝光。AE没有调整到适合我们分析的测量问题的良好结果。调整实际实施中的循环设定点无法提供足够精细的调整。然而,可以使用AE进行初步照明估计。先打开AE拍摄第一张图像(甚至可以使用JPEG图像,这样更快)。查看AE在传感器寄存器中编程的内容。查看图片中的像素值。从中插入传感器寄存器的新设置。

总结:

  • 分辨率>= 1024x768

  • 原始图像

  • PGM格式

  • 像素值<205

使用色彩校准工具

色彩校准工具用于调整X5 ISP的色彩校正矩阵,以在不同照明条件下生成正确的色彩,并计算传感器特定的色彩配置文件。色彩配置文件是X5 ISP处理链中变换矩阵和各个红、绿、蓝增益的组合。

大多数消费级数字相机提供指定颜色空间的图像;最常见的颜色空间是sRGB。CMOS传感器产生的是特定于传感器的颜色空间,这与sRGB不同。因此,相机传感器的颜色空间必须转换为sRGB颜色空间,并去除像色差这样的伪影。这是通过X5 ISP的颜色校正矩阵和自动白平衡(AWB)增益来完成的。

sRGB颜色空间是针对CIE标准照明体D65定义的,因此sRGB的参考值是使用D65照明推导出来的。通过色彩校正卡目标上的颜色进行线性回归,可以找到将相机RGB空间线性转换到sRGB空间的方法。因此,颜色校准工具计算了一个最小二乘线性变换,它使用在特定照明条件下由传感器拍摄的ColorChecker(标准或SG)的一张校准图像。

目标颜色空间可能是任何其他RGB颜色空间,这取决于作为输入文件加载到颜色校准工具中的参考值。

在主校准工具窗口中,如图 3.1‑1所示,点击颜色校准选项以打开颜色校准工具窗口,如图 7.2‑1所示。

../../../_images/image471.png

图 7.2‑1 Color Calibration Tool GUI

加载

在处理之前,至少需要加载一张色彩校正卡的图像和参考数据。为此,可以使用“Load”菜单,该菜单包含以图 7.3‑1形中显示的项。

../../../_images/image481.png

图 7.3‑1 Load Calibration Files

加载sRGB参考文件

RGB色彩校正卡的参考文件可以以ASCII格式(RGB值以制表符分隔)加载,也可以以MATLAB格式(*.mat)或X-Rite i1 spectrophotometer支持的CXF文件格式加载。MATLAB格式可以是24x3(标准ColorChecker)或140x3(ColorChecker SG)的矩阵。

sRGB参考值必须是线性的(未进行Gamma校正)并且在[0..1]范围内。然而,如果色彩校正卡的色域不能完全适应目标色域,在参考列表中可能会出现负值或大于一的值。颜色是按行然后按列排序的。加载的参考类型决定了校准过程中使用标准还是SG色彩校正卡。

文件SG_sRGB_reference_D65_linear.mat包含了在D65照明下ColorChecker SG的线性sRGB值。ColorChecker的RGB坐标参考值描述了XYZ值,每个校正卡字段在D50照明下的XYZ值由X-Rite(最初来自GretagMabeth)提供。由于sRGB的白点是D65,所以使用Bradford色差适应转换将白点从D65转换到D50。然后,XYZ转换为sRGB。

如果可用,建议直接加载用X-Rite i1直接测量的CXF文件。需要将色彩校正卡的贴片逐行测量并存储在CXF文件中。参见SG色彩校正卡参考文件CC_SG.cxf。

由于校准是在线性数据上执行的,所以不对参考值应用Gamma。图 7.3‑2显示了Saturation滑块和色相滑块。加载sRGB参考文件后,您可以使用饱和度滑块(1.00表示饱和度不变,低于和高于1.00的值会减少或增加饱和度)和Hue 滑块调整RGB参考的饱和度和色相。这两项操作都是在HSV颜色空间中执行的。

../../../_images/image49.png

图 7.3‑2 Saturation Slider and Hue Slider

参考颜色可以根据“Clip Reference Colors”复选框的设置进行裁剪或保持不变。如果颜色空间不包含ColorChecker的所有色度(例如,sRGB颜色空间就是这种情况),这可能就很重要。然后,所有位于颜色空间色域之外的颜色都会被裁剪。裁剪后的参考颜色将用于校准(默认设置)。

../../../_images/image50.png

图 7.3‑3 ColorChecker SG Gamut Out of Range of the sRGB Gamut

此外,可以通过勾选“Bradford Chrom. Adapt”复选框对参考颜色执行色差白点适应。这种适应方法基于Bradford变换

../../../_images/image51.jpeg

图 7.3‑4 Bradford Chrome Adaptation Checkbox

加载Color Checker图像

ColorChecker图像的文件格式可以是原始的Bayer格式或下表中列出的任何支持的文件格式。

Format Full Name Variants
bmp Windows Bitmap (BMP) 1-bit, 4-bit, 8-bit, 16-bit, 24-bit, and 32-bit uncompressed images and 4-bit and 8-bit run length encoded (RLE) images.
gif Graphics Interchange Format (GIF) 1-bit to 8-bit images.
jpg or jpeg Joint Photographic Experts Group (JPEG) Any baseline JPEG image or JPEG image with some commonly used extensions, including Image Type Bit depth Compression, grayscale 8- or 12-bit lossy, grayscale 8-, 12-, or 16-bit lossless, RGB 24- and 36-bit lossy or lossless.
pbm Portable Bitmap (PBM) 1-bit images using either raw (binary) or ASCII (plain) encoding.
pcx Windows Paintbrush (PCX) 1-bit, 8-bit, and 24-bit images
pgm Portable Graymap (PGM) ASCII (plain) encoding with arbitrary color depth, or raw (binary) encoding with up to 16 bits per gray value.
png Portable Network Graphics (PNG) 1-bit, 2-bit, 4-bit, 8-bit and 16-bit grayscale images; 8-bit and 16-bit indexed images; and 24-bit and 48-bit RGB images.
pnm Portable Anymap (PNM) PNM is not a file format itself. It is a common name for any of the other three members of the Portable Bitmap family of image formats: Portable Bitmap (PBM), Portable Graymap (PGM) and Portable Pixel Map (PPM).
ppm Portable Pixmap (PPM) ASCII (plain) encoding with arbitrary color depth or raw (binary) encoding with up to 16 bits per color component.
ras Sun Raster (RAS) 1-bit bitmap, 8-bit indexed, 24-bit true color and 32-bit true color with alpha data.
tifor tiff Tagged Image File Format (TIFF) Any baseline image,including 1-bit, 8-bit, and 24-bit uncompressed images; 1-bit, 8-bit, and 24-bit images with packed bits compression; 1-bit images with CCITT compression; and 16-bit grayscale, 16-bit indexed and 48- bit RGB images.

表格 7.3‑1 Supported File Formats

原始图像必须是8位、10位、12位或16位(未插值)的Bayer CFA图像,可以是小端或大端格式。

在加载色彩校正卡图像后,可以在GUI中如图 7.3‑5所示的适当面板中选择Bayer Pattern Layout

../../../_images/image52.jpeg

图 7.3‑5 Bayer CFA Pattern Layout Selection

如果更改了布局类型,则原始图像将重新插值。因此,也可以通过尝试Bayer CFA图案的四种可能设置来确定加载图像的RGB Bayer布局。产生黄色、蓝色和红色色块最佳的那个设置是最优设置。下图是正确颜色设置的一个示例。

../../../_images/image53.png

图 7.3‑6 Setting Markers for the Color Patches at the Edges

可以通过旋转和翻转调整图像对齐。请注意,图像最好是线性的,没有应用Gamma校正。因此,强烈建议使用未处理的原始Bayer图像作为输入图像。最佳文件格式为.pgm。

加载背景图像

如果ColorChecker图像是在照明不均匀的灯箱中拍摄的,则可以加载一张额外的图像用于补偿不均匀的照明。这张图像应在与ColorChecker图像相同的条件下拍摄,但不包含ColorChecker。这张图像称为背景图像,也可补偿传感器镜头系统引起的镜头阴影效应。

Note:ColorChecker后面的背景不能有任何结构或纹理。仅允许纯灰色背景。否则工具将计算错误的参数。

如果没有加载背景图像,则跳过背景补偿步骤。

加载Lab-Customer参考

如果需要使用自定义的目标值,点击“Load ”选项并选择“Load Lab-Customer References”。然后工具将提示输入一个*.txt文件。文件内容格式如图 7.3‑7所示。自定义目标值在Lab空间中。

../../../_images/image54.png

图 7.3‑7 Lab-Customer References

加载参考图像

如果要使用参考图像作为色彩参考或白平衡参考,点击**“Load”**选项并选择“Load Reference Image然后工具将允许选择一个参考图像。用户可以点击“Ref-CC Img”选项显示并检查该图像。

LSC

对于产生显著彩色镜头阴影的传感器,应通过LSC菜单加载由镜头阴影校正(LSC)工具生成的镜头阴影补偿参数。通过这样做,彩色镜头阴影将被补偿,色彩校正矩阵将更加准确。

如果加载的LSC配置文件已经包含黑电平补偿(通常是这种情况),则黑电平补偿将使用LSC配置文件中给出的值。这些值在色彩校准工具中不能再更改,并且用于黑电平的GUI设定将被禁用。否则黑电平补偿将被执行两次,导致错误的色彩校正矩阵值。

../../../_images/image55.jpeg

(可选)继承LSC信息

从镜头阴影校正模块继承LSC信息的过程类似于从黑电平校正模块继承BLC信息的过程,如继承blc基本信息章节所述。

../../../_images/image56.jpeg

图 7.5‑1 CCT Type Selection and LSC information Inheritation

如果您想要继承信息,包括来自镜头遮光校正(LSC)模块的BLS(偏移量)、Bayer图案、宽度、高度和位深度的值,您需要确保在颜色校准模块中选择的CCT(相关色温度)类型与LSC模块中的相同,如第(可选)CCT章节中所述。

在选择正确的CCT类型后,勾选“Inherit lsc Info”复选框,然后从LSC模块继承的数据将被正确输出。在这种情况下,您不需要加载LSC文件,因为工具将自动读取从LSC模块生成的LSC值。否则,您必须加载一个LSC文件。如果原始图像拍摄为20位或24位,原始图像的显示会稍暗。因此,用户可以设置Dgain值使图像更亮。

锚点选择

../../../_images/image57.jpeg

图 7.6‑1 Self-Define Input Patch RGB

在加载了物体颜色校正卡图像之后,用户需要在点击Calibrate选项之前配置锚点选择方法。

  • 自动选择器:默认方法。仅在图像拍摄质量足够好时有效。

  • 半自动选择器:推荐方法。

在点击Calibrate选项后,执行以下步骤:

  1. 点击锚点。

  2. 等待自动选择过程完成。

  • 手动选择器:

在点击校准选项后,手动选择锚点并覆盖每个颜色贴片。

  • 客户输入(仅限RGB):当颜色校正卡ROI(感兴趣区域)太小而无法用于提取贴片值时使用。您可以使用第三方工具手动测量每个贴片的平均像素值,并将值写入*.txt文件。文件内容应按图 7.6‑2所示的格式。

../../../_images/image58.png

图 7.6‑2 Customer Input RGB Value Format

在点击校准选项之后,颜色校准工具将提示用户加载 *.txt 文件。

功能

选择ROI

有时仅加载色卡图像而没有背景图像或LSC文件。如果需要应用白平衡(即白色区域),可以通过“Select ROI”功能手动选择白色区域,如下图 7.7‑1所示。

../../../_images/image591.jpeg

图 7.7‑1 ROI Selection

选择ROI后,可以在Calibration面板中选择white balance和“Only WB”复选框,如图 7.7‑2所示。white balance复选框包含gray world,input wbneutral patches的选项。如果要使用自定义的白平衡值,可以通过选择“input wb”手动输入白平衡值。

如果选中了white balance复选框但没有选择“Only WB”复选框,将计算颜色校正矩阵(CCM)和白平衡。如果同时选择了white balance和“Only WB”,则只会计算白平衡。

../../../_images/image60.png

图 7.7‑2 White Balance Calibration Selection

配置这些设置后,可以按照校准章节中的说明选择“Calibrate”选项。

(可选)应用WB CCM

如果用户已经点击了“Load Reference Image”选项,并将参考图像加载到工具中,接着点击“Select Reference Color Checker”选项。然后,颜色校正卡的选择将开始,用来识别CC值(色彩校正卡的值)。

选择参考白平衡

如果用户已经点击了“Load Reference Image”选项,将参考图像加载到工具中,并选择了target WB选项,那么,接下来点击“Select Reference WB”选项。白平衡感兴趣区域(WB ROI)的选择过程将开始,以识别参考白平衡的值。

校准

颜色校准过程是通过按下位于图形用户界面(GUI)左下角的Calibrate选项来启动的。如果也选中了锚点选择章节中介绍的automatic picker,将显示一个十字光标,用来标记ColorChecker边缘的四色贴片。

../../../_images/image61.png

图 7.8‑1 Calibration Panel

将光标定位到一个颜色贴片的中间后,必须按下鼠标左键以设置标记。标记完所有四个颜色贴片后,计算过程开始。

如果automatic picker选项未被选中,则会显示手动选择器。在这种情况下,会显示一个蓝色网格,可以将其放置在ColorChecker目标上。第一次点击鼠标左键设置初始位置,随后的鼠标左键点击会修改最近网格角的位置。当网格适应ColorChecker时,蓝色方块会覆盖在棋盘格字段上,右键点击鼠标选项完成选择器的对齐。注意,网格中的绿色方块标记了左上角的棋盘格字段,红色方块标记了右侧的棋盘格字段。

现在,从棋盘格目标图像中提取颜色,并执行图 7.8‑2所示的校准流程。

../../../_images/image62.png

图 7.8‑2 Calibration Pipeline

输入图像数据是使用具有线性传感器曲线特性(无Gamma校正)拍摄的,并且没有任何ColorChecker字段曝光过度。

校准从黑电平补偿开始,即从红色、绿色和蓝色通道中减去四个偏移量。由于CFA布局中两个绿色像素的光谱响应可能不同,因此为绿色定义了两个偏移量,但内部使用两个值的平均值进行补偿,因为颜色贴片将被平均。黑电平通常取决于传感器属性,应利用传感器边缘区域的黑色层像素或通过拍摄完全黑色的图像(镜头被覆盖)来测量每张校准图像的黑电平。

为了准备接下来的步骤,将拍摄的ColorChecker的白色和黑色贴片的亮度与参考黑色和白色棋盘格的亮度值同化。因此,所有拍摄的目标颜色都通过一个偏移(仿射变换)进行缩放和平移,使得输入和参考的黑色和白色贴片具有相同的亮度。对于标准ColorChecker,使用白色和黑色字段;对于ColorChecker SG,使用E5和J5字段。白色贴片同化是必要的,以在颜色转换后保留整体亮度。黑色贴片同化确保棋盘格目标的对比度与参考值相同。

下一步,执行自动白平衡(AWB),通过调整每个R、G和B颜色通道的增益来校正白点。AWB是通过使用lightbox的灰色背景或通过调整ColorChecker的中性(灰色)贴片来实现的。如果工具没有执行AWB,则必须取消选中white balance复选框。

通过最小二乘拟合确定3x3颜色变换矩阵。可选地,在颜色校正矩阵之后计算额外的偏移量,这可以改善拟合的均方误差。通过在校准面板上选中**CC Offsets (flare)**复选框来选择额外的偏移量。

拟合可以加权,这样特定的字段可以更多地影响拟合结果,如图 7.8‑3所示。

../../../_images/image631.png

图 7.8‑3 Field Weights

例如,当白色贴片的权重设置为2时,白色贴片将比其他字段对结果产生两倍的影响。

如果额外的偏移值在图像的暗部区域产生裁剪,则可以通过增加黑色和深灰色贴片的权重来改善偏移计算;然而,这也会影响其他颜色贴片的再现。使用SG ColorChecker也可以改善偏移计算。

相应的工具命令窗口用于显示信息消息以及错误消息。例如,一个信息消息显示最后一次运行的均方误差,并显示“SSE_withGamma =”。此线下的值提供了拟合质量的指示,并且可以用作连续运行改进的度量:值越低,拟合越好。

如果使用了上述的“field weights”功能,那么均方误差给出了通过将当前值与前值比较所实现的改进的指示。

由于标准ColorChecker包含在SG类型中,权重也适用于SG类型。

颜色校正可以在进一步的处理步骤中进行优化。如果选中了“Optimize in CIELAB”复选框,那么在线性回归之后将执行非线性矩阵优化过程。此优化步骤的目标是改善CIELAB空间中的残余delta E*颜色误差。优化可能需要几分钟,具体取决于CPU性能,进度可以在命令行窗口中跟踪。

相机输入和颜色校正输出都通过输出Gamma(sRGB的Gamma为2.2)进行校正,并在GUI中显示。如果选择了不同的目标颜色空间,可以调整Gamma值。作为额外的选项,可以通过选中MARVIN gamma curve复选框来选择由外部文本文件定义的Gamma曲线。在这种情况下,使用由16个线性段定义的Gamma曲线。Gamma曲线定义的一个示例如下:

% Gamma out curve
gamma_equi = 0;          % equidistant segmentation
gamma_log = 1;           % logarithmic segmentation
ISP_gamma_out Y 0  =   0;
ISP_gamma_out Y 1  =  50;
ISP_gamma_out Y 2  =  90;
ISP_gamma_out Y 3  = 150;
ISP_gamma_out Y 4  = 230;
ISP_gamma_out Y 5  = 340;
ISP_gamma_out Y 6  = 440;
ISP_gamma_out Y 7  = 520;
ISP_gamma_out Y 8  = 575;
ISP_gamma_out Y 9  = 660;
ISP_gamma_out Y 10 = 720;
ISP_gamma_out Y 11 = 775;
ISP_gamma_out Y 12 = 864;
ISP_gamma_out Y 13 = 929;
ISP_gamma_out Y 14 = 976;
ISP_gamma_out Y 15 = 1008;
ISP_gamma_out Y 16 = 1023;
gammaValue = 1/2.0;     % For displaying and comparing purposes required in the GUI,
					% if not applicable: set to 1

通过按下“Plot Gamuts”选项,参考和颜色校正线性色域在3D RGB图中可视化。为了区分色域,参考色域以90%透明显示,相机输入以50%透明显示。

../../../_images/image64.png

图 7.8‑4 The sRGB Gamut (90% Transparent) and the Color Corrected Gamut

原始和颜色校正后的图像(Gamma校正)可以在大图像窗口中查看。请注意,整个校准过程都在线性RGB空间中进行。颜色校正后应用Gamma校正。这样做的唯一目的是显示Gamma校正结果,以便更好地查看和保存输出图像。

校准完成后,将显示输出图形,显示白平衡与参考贴片的拟合程度。下图中显示了参考灰色贴片的值与目标校正后的灰色贴片的值的比较。

../../../_images/image651.png

图 7.8‑5 Output Figure Showing Gray Patch Comparison

此外,图 7.8‑6中显示了以CIELAB表示的颜色残差误差。

../../../_images/image661.png

图 7.8‑6 Output Figure Showing the Color Correction Residuals (CIELAB Color Space)

保存参数

在点击Calibrate选项后,计算出的颜色校正矩阵参数、白平衡增益以及可选的偏移值将显示在下图所示的单独输出窗口中。

../../../_images/image671.png

图 7.9‑1 Example Parameter Output

通过在输出窗口中按下**Save parameters (ASCII)**选项,可以将参数保存到文本文件中。稍后这个保存的文件将用于AWB工具,以及将矩阵值写入到X5 ISP寄存器中。

保存图像菜单

可以通过在Save Image菜单中选择Save Output Image菜单项来将颜色校正后的输出图像保存到文件,如图66所示。然后,这个图像文件可以用来与IMATEST或其他成像工具一起检查结果颜色。

../../../_images/image681.png

图 7.10‑1 Save Image

5.17.4.9. 自动白平衡工具

自动白平衡工具用于在传感器调校过程中计算自动白平衡(AWB)软件控制回路的参数。

自动白平衡原始图像拍摄

步骤 1) 将灰板的完整图像置于视场中。

步骤 2) 调整曝光设置。

步骤 3) 像素值应在80到150(8位)的范围内。

步骤 4) 使用灰板,在不同光源下(H/A/CWF/TL84/D50/D65/D75)以RAW格式拍摄图像。

使用自动白平衡工具

自动白平衡工具为主机软件中的AWB和自动颜色校正(ACC)控制回路提供参数。该控制回路基于高斯混合模型方法,该方法使用X5 ISP硬件根据白点区分的灰世界方法派生测量值。基于照明白点估计的照明分类在色度(主成分)域中执行。对于这种方法,需要几个特定于传感器的参数。因此,需要对每种要使用的传感器类型进行调校。传感器所需的输入数据是其光谱灵敏度曲线以及AWB/ACC中考虑的每种照明的颜色校正工具的校准输出。计算参数后,可以定义更多参数(tau1, tau2区域扩展用于灰世界白平衡补偿)。下图显示了AWB工具GUI。当AWB工具UI启动时,AWB V1校准过程将在A, F2(CWF), D65下工作。如果用户想使用AWB V2+校准,您可以忽略AWB V1校准。如果用户想使用更多色温的AWB V1校准,您可以通过点击Illumination选项继续添加色温。

../../../_images/image691.png

图 8.2‑1 AWB Tool GUI

(AWB V1)为正确的AWB操作选择光源

自动白平衡(AWB)工具提供了几个设置自动白平衡的选项。简要推荐了如何选择照明源的方法。有关照明源的概述,可以在Hunter Lab的“Equivalent White Light Sources and CIE Illuminations”,应用说明,2007年(http://www.hunterlab.com/appnotes/an05_05.pdf)中找到。

为了在光源之间实现良好的区分,高斯曲线不应有显著重叠。这反过来意味着色温明显不同的光源是好的候选者;因此,白炽灯照明(照明A)和日光(D65)将是首选。

当添加其他室内光源时,您应考虑您计划使用AWB的地理区域的典型光源类型。在欧洲,常见的光源是CIE F12(也称为TL83,Ultralume 30)和有时F11(TL84,Ultralume 40,SP41)。CIE F2在欧洲不可用。在美国和亚洲,主要使用CIE F2(冷白色荧光灯,CWF)。CIE F12和CIE F11很少使用。

CIE F2(CWF)具有与CIE F11相似的色温,但具有不同的光谱分布。当选择CIE F2作为光源并在CIE F11照明下拍摄图像时,白平衡可能会正常工作(取决于传感器的光谱灵敏度)。唯一的区别将是颜色再现的轻微降低,大多数用户不会注意到。

一个基本的设置,包含三种光源,应该能够很好地适用于室内实验室测试。但是,由于选择了一个室外光源和两个室内光源,从统计上看,AWB将更倾向于选择室内光源而不是室外光源。室内光源的影响大于室外光源的影响,特别是当测量的白点在锁定范围(参数tau1, tau2)外时。在室外使用时,这可能导致非最佳(太蓝)的颜色再现。如果检测到这种效果,我们建议将额外的D75照明纳入AWB配置文件列表作为第四种光源。然后,室外光源的统计权重增加。如果测量的白点在锁定范围外,室外光源的影响也会增加。

因此,对于美国和亚洲,我们建议使用A, CIE F2和D65(可选择扩展到D75),而对于欧洲则建议使用A, CIE F11, D65(可选择扩展到D75)。

(AWB V1)打开传感器光谱灵敏度

打开传感器光谱灵敏度会加载计算参数所需的传感器灵敏度曲线。

图 8.4‑1显示了File菜单中打开Open Sensor Spectral Sensitivities的选项。如果您没有Open Sensor Spectral Sensitivities,并且只想使用AWB V2+校准(AWB V2),用户可以忽略加载Sensor Spectral Sensitivities并继续执行以下步骤。

../../../_images/image70.png

图 8.4‑1 AWB Tool File Menu GUI

通过点击AWB V1 Calibration来运行AWB版本1。通过点击AWB V2+ Calibration来运行AWB版本2。

如果您使用AWB版本1,您可以通过打开Open Sensor Spectral Sensitivities选项加载曲线,然后点击AWB V1 Calibration。在保存校准数据之前应使用AWB V2+校准。

如果您使用AWB版本2,点击AWB V2+ Calibration。然后保存数据。

光谱响应曲线代表所需图像传感器模块对于红色、绿色和蓝色三种基色的光谱灵敏度。这样的曲线可以从逗号分隔的ASCII文本文件中加载。文本文件必须具有以下格式:

  • 第一列:包含光的波长,单位为纳米。

  • 第二至第四列:包含红色、绿色和蓝色的灵敏度值。

加载适当的文本文件后,会显示一个图表。图 8.4‑2显示了一个示例图表。

../../../_images/image711.png

图 8.4‑2 Spectral Response Curve of an Image Sensor

曲线的样本点应至少从380纳米提供到730纳米,以10纳米为步长。更细的粒度或更宽的限制将自动裁剪并转换为所需的采样范围。灵敏度值不需要单位,因为工具只需要相对值。内部将灵敏度值映射到[0..1]的范围。请注意,必须保留颜色通道灵敏度之间的关系。

这里显示了这个文本文件的示例内容:

380,0.26226,0.1608,0.31022
390,13.245,10.035,28.801
400,18.964,19.316,68.754
410,24.304,29.598,124.55
420,23.767,30.415,149.12
430,22.543,33.149,161.17
440,22.603,44.127,184.07
450,23.218,55.27,209.67
460,24.063,64.02,215.33
470,27.154,87.469,211.07
480,30.461,127.21,201.2
490,34.762,174.79,177.68
500,41.068,220.16,149.58
510,49.424,248.27,115.77
520,60.926,272.83,92.564
530,66.451,285.46,82.773
540,64.961,274.89,75.672
550,61.985,249.26,66.388
560,61.445,221.64,58.419
570,94.811,191.24,54.405
580,205.04,175.05,59.287
590,278.5,147.42,58.32
600,287.82,111.12,50.848
610,276.31,83.046,44.126
620,234.76,64.909,37.86
630,191.7,52.999,32.985
640,145.74,40.745,26.912
650,85.741,25.098,17.363
660,41.35,13.449,9.4641
670,17.856,6.8833,4.697
680,8.1439,3.7525,2.4365
690,5.8114,3.0677,1.9267
700,3.8089,2.1817,1.3354
710,2.1029,1.2448,0.74725
720,1.795,1.0481,0.62607
730,1.7775,1.038,0.62145

文本文件可以从传感器制造商提供的适当曲线中获得。如果这个曲线不是传感器数据表的一部分,那么必须单独从制造商那里订购。大多数传感器模块除了镜头系统外还包含一个红外滤光片。如果是这种情况,那么灵敏度曲线必须显示包括镜头和红外滤光片在内的传感器灵敏度。

(AWB V1)定义照明文件

需要通过按下图 8.5‑1所示的照明配置文件面板上的Illumination选项来定义照明光谱分布文件。

../../../_images/image721.png

图 8.5‑1 AWB Tool Illumination Profiles Panel

按下选项后可以定义一个照明源。在读取光谱分布文本文件后,工具需要知道当前照明是Outdoor 还是Indoor 配置文件。相应地选择室内或户外单选选项。然后,光谱分布将显示在适当的窗口中。

照明条件

AWB控制回路使用不同的照明条件下的多组颜色校正矩阵参数。这些照明的光谱分布必须提供给AWB工具以进行参数计算。AWB工具支持无限数量的不同照明。应选择这些照明,使其光谱分布和/或色温有显著差异。结合所选传感器的光谱响应曲线,AWB工具将在PCA域中计算并显示结果表示在工具的主窗口中。

显示的概率分布必须彼此不同。如果不是这样,则必须使用其他照明,直到PCA域中的概率分布不同。如果传感器的光谱响应不允许这一点,则需要减少照明数量。这是一个迭代过程。根据描述,推荐的照明数量是三到六个,具体取决于传感器的光谱响应。

测量照明或CIE照明

要使用的照明是在颜色校准过程中用来推导颜色校正矩阵系数的照明。如果颜色校准是在实验室环境中使用真实的光源完成的,那么这里必须提供这些光源的光谱分布。光源的光谱分布可以通过分光光度计进行测量。CIE光谱分布是户外光源的良好估计。

另一种进行颜色校准的方法是使用人造ColorChecker图像。这些图像可以通过使用ColorChecker合成器工具生成。在这种情况下,光源的光谱分布由CIE为某些标准光源提供的光谱分布给出。这些光谱分布与AWB工具一起在CIE照明文件夹中提供。

注意:为了获得高质量的校准结果,我们建议使用真实的日光(户外)并在拍摄图像时同时测量光谱分布。

照明文件格式

必须加载到AWB工具中的照明文件是ASCII文本文件,每个文件都包含一个照明的光谱分布。第一列包含光的波长,单位为纳米,第二列包含光源的相对辐射能量,作为一个任意缩放的数字,不需要单位。列之间用逗号分隔。必须至少指定380到730纳米波长范围内,以10纳米为步长的光源辐射能量。这里展示了一个示例:

380,0.56
390,134000
400,491000
410,538000
420,287000
430,1076000
440,1523000
450,644000
460,784000
470,873000
480,930000
490,960000
500,976000
510,1005000
520,1047000
530,1079000
540,1516000
550,1832000
560,1265000
570,1420000
580,1702000
590,1456000
600,1460000
610,1441000
620,1449000
630,1466000
640,1447000
650,1496000
660,1503000
670,1083000
680,829000
690,700000
700,575000
710,479000
720,382000
730,313000

(AWB V1)AWB V1校准

../../../_images/image731.jpeg

在加载了传感器的光谱灵敏度曲线和照明数据文件之后,您可以点击AWB V1 Calibration选项来启动计算过程。如果没有加载光谱灵敏度曲线或照明数据文件,工具将使用默认曲线代替。

模拟进度可以在应用程序命令窗口中跟踪。根据PC的处理能力,计算过程需要一些时间才能完成。

故障排除提示:如果在AWB工具的命令窗口中出现“内存不足”的消息,首先尝试关闭所有其他应用程序,然后重新启动AWB工具。如果这没有帮助,增加您的虚拟页面文件大小并重启,安装更多的主存储器到您的PC,或使用64位的Microsoft Windows操作系统。

完成计算后,结果中的传感器响应在PCA域中显示在GUI的主窗口中。现在,可以为区域分类定义另外两个参数。这些参数称为tau1和tau2。tau1和tau2参数的调整可以按照Adjustingtau1 and tau2 Values部分中描述的方式进行,并且结果可以存储到文件中。

(可选)继承CCM信息

如果您想要直接从颜色校准模块继承CCM(颜色校正矩阵)信息,就像从LSC模块直接继承LSC信息一样,如(可选)继承lsc信息章节中描述的内容,您可以选择如图71所示的Inherit ccm Info复选框。

Note:用于继承CCM信息的CCT(相关色温度)类型必须与用于继承LSC信息的类型相同。

../../../_images/image741.png

图 8.6‑1 Inherit CCM Information Check Box

在选择Inherit ccm Info复选框之后,点击AWB V1 Calibration选项,工具将直接使用CCM模块中的CCM参数数据,而不会提示用户输入ccm_para.txt文件。

保存校准数据

所有确定的校准数据都可以被保存。通过文件菜单中的Save Calibration Data选项,会创建一个ASCII文件以及一个.mat数据文件。ASCII文件可以用来将计算出的参数传输到运行AWB控制回路的主机软件中。如果需要将计算出的参数重新读取回AWB工具中,则需要使用.mat文件。

在保存校准数据之前,应当使用内嵌的Gain Region Modifier Tool(AWB V2+)

打开现有的校准数据

可以通过在文件菜单中选择Open Existing Calibration Data菜单项,将校准过程的存储结果重新加载回AWB工具中。如果稍后需要调整tau1和tau2参数,这将非常有用。在这种情况下,可以重新读取特定传感器的计算结果,而无需再次进行计算过程。

选择菜单项后,将file select对话框,从中可以选择一个结果文件。

(AWB V2)AWB V2+校准

增益区域修饰工具用于定义AWB控制回路的增益限制,并通过点击AWB工具GUI底部的AWB V2+ Calibration选项来调用。

../../../_images/image751.png

为AWB控制回路定义增益限制对于控制回路的功能是必需的,而AWB工具获得的其他参数主要用于自动颜色校正(ACC)。

为了获得适当调整的白平衡,控制回路尝试将白点正交投影到白点轨迹曲线上。该曲线由所选自然照明下的正确白点定义,如D65。这些白点是通过读取在灰度图表的特定照明下拍摄的图像来创建的。请注意,这些图像源自原始传感器图像,这些图像通过LSC工具进一步处理了黑电平和镜头遮光校正。LSC工具允许将校正后的图像写入图像文件。这些图像仍处于原生传感器颜色空间。通过点击Gain Region Modifier选项后显示的图 8.9‑1所示的GUI窗口读取这些图像。

../../../_images/image76.png

图 8.9‑1 Illumination Selection Window

Add new illumination white-points选项打开一个文件选择框,允许用户选择一个或多个图像文件。选定的图像文件必须为RGB格式。这些图像在内部用于分别计算R、G和B的平均值。每张图像产生一个RGB三元组,定义增益图中的一个点。

在计算白点轨迹曲线之前,用户必须选择要使用的照明点。

../../../_images/image771.png

图 8.9‑2 Illumination Selection Window with Selected Illuminations

根据上图,可以选择所有照明白点或白点的子集。当仅使用A.png、D50.png、D65.png等黑体和日光照明进行拟合时,可以获得良好的曲线拟合。为了获得良好的拟合,应使用从3000K到12000K的色温。像CWF或TL84这样的人工光源通常不适合曲线,并且会产生非常奇怪的曲线。但是,人工光源的白点后来用于手动优化增益多边形。

../../../_images/image781.png

为了避免LSC效应,“Crop Roi”用于选择*.png的ROI。

在选择所需的白点后,工具允许您定义增益多边形的起始点,如图 8.9‑3所示。

../../../_images/image791.png

图 8.9‑3 Initial Polygon Calculation Selection

../../../_images/image801.png

图 8.9‑4 Gain Diagram and Polygon Modifier

上图中,一个多边形定义了白点调整的投影目标,也称为裁剪。这是围绕白点轨迹曲线(绿色)的内部限制(黑色)。

另一个多边形(虚线橙色)定义了AWB控制回路将停止调整白平衡增益的增益区域,因为测量值表明图像传感器前方有一个单色目标。在这种情况下,对目标进行白平衡增益调整没有意义,因为这会产生灰色目标而不是彩色的。

如果使用初始多边形计算选择图中显示的默认值,它将创建一个增益图,多边形形状如上图所示。图表的形状还取决于所选择的照明。可能需要一些迭代才能得到一个有意义的图表。白点轨迹曲线(绿色)应该有类似显示的形状。它是由二次多项式导出的。

修改多边形形状

如前所述,多边形形状应根据AWB控制回路的需求进行调整。这应该对两个多边形都进行操作:内部多边形(黑色)定义了投影边界,外部多边形(虚线橙色)定义了中止区域。

通过点击增益图顶部的图标依次来完成多边形的修改:

  • 允许修改中止多边形

  • 允许修改投影(裁剪)多边形

  • 重新调用下图所示的对话框,允许重置多边形

  • 确认手动修改后的多边形设置

激活中止多边形的多边形修饰符后,将显示一个带有节点的虚线橙色线,如图 8.9‑5所示。

../../../_images/image811.png

图 8.9‑5 Polygon Modifier for Abortion Polygon Activated

这些节点可以通过将鼠标光标放在节点附近并单击所需的新位置来移动。当前节点由从鼠标光标开始到节点结束的虚线灰色线标记。如果节点没有移动,则选定的新位置无效。如果将节点移动到新位置会改变节点的顺序,可能会出现这种情况。

激活裁剪多边形的多边形修饰符将显示一条带有节点的黑色线。修改方式与中止多边形相同。

一次只能修改一个多边形。激活一个多边形将停用另一个多边形的修改。

调整更多软件参数

../../../_images/image82.jpeg

在增益图的底部列出了一些对软件控制回路功能重要的参数。这些参数的描述显示在以下表格 8.9‑1中。

Parameter Description
f_RgProjIndoor_Min Defines the minimum red divided by green gain for indoor light sources for projection polygon.
f_RgProjOutdoor_Min Defines the minimum red divided by green gain for outdoor conditions for projection polygon (dotted blue line). This parameter is responsible for limiting the gain correction in outdoor scenes when the color temperature of the illumination is very low.
f_RgProjMax Defines the upper boundary for the projection polygon. This is the limit for white balance correction of high color temperatures.
f_RgProjMaxSky Defines the upper boundary for the abortion polygon. Used for adjusting the reproduction of blue sky scenes. If the AWB measurement value is above this value, then the AWB does not adjust the gains anymore, so that the settings from previous frames will be used.

表格 8.9‑1 Gain Diagram Parameter Description

图 8.9‑4中的实心橙色线是对绿色线的近似,绿色线用于AWB控制软件中计算投影距离和方向。这条线在增益修饰符中显示,作为多边形调整的参考方向。

Gain Modifier的示例设置

图 8.9‑6是一个示例,展示了修改后多边形形状可能的样子。此示例基于Omnivision 5M传感器。如图中所示,在AWB控制回路中需要补偿的光源必须位于虚线橙色多边形内。

../../../_images/image83.jpeg

图 8.9‑6 Gain Polygon Modifier Example Setting

(可选)白点评估

白点评估功能是一个可选功能,可用于调整多边形ROI区域,以确保其质量。

../../../_images/image84.jpeg

图 8.9‑7 White Points Evaluate Check Box

执行白点评估的步骤如下:

步骤1) 选择图 8.9‑7所示的White Points Evaluate复选框。

步骤2) 选择一张未应用WB(白平衡)和CCM(颜色校正矩阵)的图像。

您可以通过点击第6.18节中描述的save image to file选项来获取此类图像。

步骤3) 点击AWB V2+ Calibration选项,继续AWB版本2的过程。

工具自动计算输入图像的白点。图 8.9‑8提供了评估结果的示例。

../../../_images/image851.png

图 8.9‑8 White Points Evaluation Example

调整tau1和tau2值

初始设置

图 8.10‑1所示的GUI的左下部分显示了照明的光谱分布函数。

../../../_images/image861.png

图 8.10‑1 Spectral Curves of Selected Illuminations

分布函数的显示分为室内和室外照明。通过Start Calibration选项启动参数计算后,可以为区域分类定义另外两个参数。这些参数称为tau1和tau2,必须通过在图 8.10‑2所示的对话框面板中插入适当的值来手动修改。

../../../_images/image87.jpeg

图 8.10‑2 Definition of tau1 and tau2 in Dialog

tau1的值必须总是小于tau2的值。这些值仅对室内照明有意义。

参数具有以下含义:

tau1:此参数与tau2一起使用,定义了一个过渡区域,其中颜色校正矩阵的插值更多地考虑附近的照明,而不是使用所有可用的照明以相同的权重。在tau1区域之外,所有照明矩阵被平等地用于当前矩阵的插值。tau1区域围绕tau2区域像一个环一样,如图 8.10‑3所示。

tau2:此参数定义了PCA域中照明分布中心周围的椭球区域的大小,其中AWB控制回路将直接使用相应的颜色校正矩阵,而不是使用所有照明矩阵的插值矩阵。

../../../_images/image88.png

图 8.10‑3 PCA Domain Example With tau Set to Different Values

应以这样的方式确定tau1和tau2的阈值,即为每种照明定义不相交的颜色配置文件区域。在GUI中修改阈值会立即通过在照明分布中心周围绘制椭球来显示。

tau1和tau2的值范围是0到1,其中tau1总是应小于tau2。在GUI中插入此范围和条件之外的值将导致不良结果。

如果区域变得太小,建议将tau1和tau2设置为1,以停用特定照明的区域分类;否则,后果可能会突然的颜色变化。

上图中使用的tau值在下图中显示,以演示如何为两种不同的照明定义这些值。

../../../_images/image89.png ../../../_images/image90.png

图 8.10‑4 Example of tau Values for Two Illuminations

使用tau值进行区域分类是AWB控制回路的附加功能。如果在一个定义的光源下使用,例如在实验室环境中,因为这种情况下,直接使用与该光源对应的颜色校正矩阵而不进行插值,这个功能可以改善颜色再现。这对于测量很有用,当要对特定传感器进行比较以与其他传感器进行比较时。在现实环境中,大多数时候没有单一的光源,或者光源与实验室中使用的照明不同。在这些情况下,如果将tau值全部设置为1,以便始终使用插值的颜色校正矩阵,颜色再现的结果可能会更好。

tau1和tau2值的建议是:

定义tau1,使得矩阵选择和插值之间的过渡区域大于内部区域,但不与不同照明的区域重叠。

使用接近tau1的tau2值,以保持一个较小的区域,在这个区域内只使用一个矩阵。

修改已保存校准文件的tau值

要更改已经校准过的数据的阈值,打开之前保存的校准文件(见打开现有的校准数据),并重新修改阈值。在您能够执行此操作之前,您必须加载在计算期间使用过的照明数据库(见(AWB V1)定义照明文件)。如果您不知道使用了哪个照明数据库,请在文本编辑器中打开校准数据文件,并查看前几行。使用的照明文件在那里列出。

请注意,更改tau值不会影响其他AWB参数。使用tau只是一个附加功能。

5.17.4.10. 噪声校准工具

噪声校准工具的目的是表征特定传感器模块的时间噪声行为。评估结果是一个噪声水平函数(NLL),它描述了像素强度的时间噪声标准偏差。可以从工具中导出一个文本文件,该文件可用于为X5 ISP中新的DPF模块编程NLL寄存器。

噪声校准原始图像拍摄

步骤 1) 在视场(FOV)中放置一块灰板。灰板的大小约为1.5米 x 1米。FOV 应该覆盖灰板的80%以上区域。

提到的灰板大小不是强制性的。如果灰板太小,噪声校准工具可以用来选择灰板的感兴趣区域(ROI)。

步骤 2) 将光源(D50/D65)放置在图表的左侧或右侧。光源表面与图表平行。

步骤 3) 保持自动曝光开启。改变光源的亮度以获得1倍曝光增益。

像素值应在BLC值到128(8位)的范围内。

步骤 4) 使用灰板拍摄20到50帧原始格式的图像。

步骤 5) 重复步骤3和步骤4,以获得2倍/4倍/8倍/16倍/32倍/64倍/128倍/256倍的曝光增益值中的任意两个。

校准工具仅支持两个原始数据输入的增益值。高光和低光之间的增益值应该有所区分。

在拍摄期间,照明需要从亮到暗的平滑过渡。

../../../_images/image911.png

图 9.1‑1 Noise Calibration Test Pattern

Note:推荐的是上述拍摄原始图像的方法。如果您没有光源设备和灰板,X5 Memo中为ISP校准描述的原始图像拍摄指南中的方法也是可行的。

使用噪声校准工具

噪声校准(NC)工具V1.00如图 9.2‑1所示。

../../../_images/image921.png

图 9.2‑1 Noise Calibration Tool V1.00 GUI

如果您想要从BLC模块继承宽度、高度、位深和黑电平偏移,您可以选择inherit blc info。但如果在NC模块之前没有启动BLC模块,则继承过程将使用默认值。

使用该工具,请执行以下步骤:

步骤 1) 加载图像序列。

  1. 可以加载两组图像:一组较亮系列用于拍摄高光部分,一组较暗系列用于拍摄低光部分;

  2. 拍摄的图像必须提供一系列图像(大约20-50张),这些图像是使用特殊的噪声测试图表完成的,并且在拍摄过程中没有相机移动或其他环境变化。

步骤 2) 选择感兴趣区域(ROI)

如果测试图表没有完全占据图像,则需要选择图表的区域。

步骤 3) 点击1. Evaluate Measures选项。

然后处理图像序列。这需要一些时间,具体取决于图像的大小。

../../../_images/image93.png

图 9.2‑2 Measures Being Evaluated

步骤 4) 选择直方图范围和分割点。

Capture Series中,选择要考虑的最低和最高像素值或两者,并定义高低系列之间的分割点。

../../../_images/image94.png

图 9.2‑3 Histogram and Split Point Selection

步骤 5) 点击2. Fit to model选项。

  1. 结果图表将显示在主窗口中。

../../../_images/image95.png

图 9.2‑4 Noise Level Function of an Image Sensor

  1. 重复步骤 4 微调拟合参数。

步骤 6) 保存校准数据。

  1. 校准结果将存储到文本文件中。

  2. 硬件编程的参数将打印在文本文件的最后一行。

可选:

a. 加载在X5 ISP管道末端使用的Gamma函数,以使噪声水平函数适应Gamma曲线。再次进行拟合[2. Fit to Model选项]。Gamma函数对噪声水平函数的影响程度可以通过滑块选择。

b. 如果图像的黑电平不为零,则定义图像的黑电平(Black level offsets)。

c. 为NLF曲线的拟合定义标准偏差的下限。

5.17.4.11. 色差校正工具

色差校正原始图像拍摄

步骤 1) 从图89至图91展示的三组测试图案中选择一个测试图案。

../../../_images/image96.png

图 10.1‑1 Test Pattern 1

../../../_images/image971.png

图 10.1‑2 Test Pattern 2

../../../_images/image98.png

图 10.1‑3 Test Pattern 3

步骤 2) 将测试图案放置在视场(Field of View)的中心位置。

步骤 3) 设置一个光源(D50/D65)。

步骤 4) 拍摄一张RAW格式的图像。

使用色差校正工具

色差校正(CAC)工具用于推导X5 ISP内部色差校正功能的所需参数。色差校正可以分别对红色和蓝色色平面应用,通过应用三阶多项式校正函数。因此,需要计算两组参数:一组用于红色色平面,另一组用于蓝色色平面。每组参数由三个值A、B、C组成,它们是多项式的系数,外加一个可选的图像中心偏移量。

CAC parameter estimation tool GUI如图 10.2‑1所示。

../../../_images/image99.png

图 10.2‑1 CAC Parameter Estimation Tool GUI

CAC工具中的Block Selection由七个选项组成,代表X5 ISP硬件的功能:

  • Image Input

  • LSC

  • CA Estimate

  • CAC

  • Demosaic and Filter

  • Color Correction

  • Gamma

Block Selection选项用于测试图像的预处理,以及在应用校正函数后查看校正结果。选项和菜单项在以下各节中描述。

在GUI的底部,无论选择哪个块,都会显示一个“Process Information”面板。该面板在图像处理期间处于活动状态,以显示有关当前计算过程状态的一些信息。Process选项用于启动图像处理。

../../../_images/image1001.png

菜单栏

../../../_images/image1011.jpeg

菜单栏位于GUI的顶部,就像典型的Windows程序一样。提供的菜单项包括:

Load Image

Load Settings

Save Settings

Info

加载图像

Load Image”菜单项用于将测试图像加载到工具中。图像必须包含原始的Bayer数据,并且可能有 .pgm 或 .raw 文件格式。根据文件格式,工具会提供不同的选项来指定。如果选择了 .raw 格式,用户必须在下图所示的“Image Dimensions”对话框中指定图像的尺寸。使用 .pgm 文件格式时不需要图像尺寸,因为 .pgm 文件包含一个头,该头指定了图像的尺寸。

../../../_images/image102.jpeg

图 10.3‑1 Image Dimensions Dialog

在 .pgm 或 .raw 文件格式的情况下,都会显示下图所示的“Bit Width”对话框。

../../../_images/image103.jpeg

图 10.3‑2 Bit Width Dialog

此对话框用于指定输入图像的位宽(每像素的位数)和所需的Process Bit Width。处理位宽影响色彩校正部分中所需的黑电平补偿值。

Note:图像必须正确聚焦,以便像差区域尽可能清晰。

加载设置

在各个部分可以选择多个处理参数。如果之前使用“Save Settings”菜单项存储过,可以通过使用“Load Settings”菜单项一次性将所有参数加载到工具中。

保存设置

包括CAC参数在内的所有处理参数可以存储到MATLAB文件(.mat)中,以便以后使用或存档。

块选择

图像输入部分

../../../_images/image1041.png

如果选择了Image Input部分,GUI将显示已加载的原始图像。如果尚未加载图像,原始图像预览窗口将显示为白色,如图 10.2‑1所示。

加载图像后,图像的文件名、宽度和高度将显示在图像上方。此外,还将显示用于内部处理的位宽。

LSC部分

镜头遮光校正(LSC)部分用于补偿测试图像中的镜头遮光。这是必需的,因为镜头遮光可能会影响CAC参数估计的结果。可以使用相应的CC(颜色校正)和LSC Tuning工具推导出测试图像的镜头遮光参数。然后,可以通过点击“Load parameters”选项并选择包含测试图像参数集的适当文本文件,将此LSC参数集加载到CAC工具中。参数集在GUI中显示为2D图形,其中颜色代表每个像素的乘法因子。要激活镜头遮光校正,需要勾选enable复选框,如下图所示。

../../../_images/image105.png

图 10.4‑1 LSC Section Display

请注意,支持三种镜头遮光参数集的实现:

  1. 单平面补偿(仅去暗角)

  2. 补偿三个RGB平面(X5 ISP版本<=12MP)

  3. 补偿四个Bayer平面(camerIC-3D/64MP)。

这些信息编码在LSC参数文本文件中。

色差估计部分

../../../_images/image1061.png

图 10.4‑2 CA Estimate Display

CA Estimate(Chromatic Aberration Estimation)部分是CAC工具的主要部分。它根据加载的测试图像执行CAC参数的计算。这种估计背后的假设是测试图像将只包含黑色和白色像素,因此在CA校正后颜色通道将彼此匹配。测试图像的正确白平衡对工具的工作非常重要。自动白平衡可以按照自动白平衡工具部分中描述的方式完成。这一节提供了影响估计过程的设置,这些设置在以下子部分中描述。

参数估计通过非线性迭代方法完成。由于这种方法的特点,计算出的参数之后需要检查其合理性。

复选框

../../../_images/image107.png

Chromatic Aberration Estimation复选框包括:

  • CA_Estimate(色差估计)

  • Enable Offset Search

  • Enable Number of Pixel Weight

  • Use for CAC

CA_Estimate - 启用或禁用色差估计过程。

Enable Offset Search - 指示是否应将色差视为无偏移(居中)或不是。如果选中,工具尝试仅计算偏移。注意:此功能在当前版本的CAC工具中被禁用。零中心点将适用于大多数镜头系统。

Enable Number of Pixel Weight - 启用加权,确保颜色误差在当前半径相同的情况下具有相同的权重,以便根据每个半径值的像素数量计算像差校正。

image-20240905222107795

Use for CAC - 如果选中此复选框,计算出的参数将传输到CAC部分,用于校正输出图像。

当启用了“CA_Estimate”(色差估计)并且“Use for CAC”(用于CAC)被选中时,色差估计会一次性运行完成。

初始参数

色差估计部分的初始参数区域如下图所示。

../../../_images/image109.jpeg

图 10.4‑3 Initial Parameters Area

初始参数用作色差校正函数估计的起点。如果已加载的测试图像存在参数值,则应在此输入;否则,应使用默认值。

**Note:**不要对初始系数参数使用零值,因为这将导致估计过程失败。

ratio k_xy 如果测试图像中的像素不是正方形的,那么在这种情况下需要这个比例。如果像素分辨率与图像的几何尺寸不相当,那么需要根据以下公式在这里指定比例:\(\text{kxy} = \frac{\text{h_size}}{\text{v_size} \times \text{aspect_ratio}}\) 如果传感器具有正方形像素,则应使用默认值1。
red parameters 这个字段应该包含红色色分的多项式系数A、B和C的估计值。
blue parameters 这个字段应该包含蓝色色分的多项式系数A、B和C的估计值。
center horizontal offset 这个字段应该包含从图像中心的水平色差函数的已知水平偏移量。水平偏移必须以像素为单位指定。
center vertical offset 这个字段应该包含从图像中心的垂直色差函数的已知垂直偏移量。垂直偏移必须以图像行为单位指定。

表格 10.4‑1 Parameter Description

迭代设置

该工具使用迭代方法来计算CAC(色差校正)参数。可以通过在文本字段中输入适当的值来将迭代次数限制为最大值。

Number of pre-iterations 第一步优化: 在没有偏移搜索的情况下进行参数搜索,但考虑了偏移的起始值。
Number of offset iterations 第二步优化: 不修改第一步的参数,但进行偏移搜索。这一步只有在启用了偏移搜索时才会执行。
Number of final iterations 第三步优化: 使用第二步中的偏移值,并进行最终的参数优化。

表格 10.4‑2 Iteration Settings Description

操作选项

../../../_images/image111.png

image-20240905222206600

最终结果:显示

../../../_images/image113.png

参数估计的结果在“Final Results:”部分显示。计算出的多项式系数和计算出的偏移量在此区域显示。此外,还显示了一些参数,这些参数是正确配置X5 ISP硬件所需的。这些参数包括:

  • x_norm_shift (x_ns)

  • x_norm_factor (x_nf)

  • y_norm_shift (y_ns)

  • y_norm_factor (y_nf)

CAC硬件的设计方式是,无论当前图像分辨率如何,从图像中心的最大距离始终被归一化为8位值。这是通过使用ISP_CAC X NORM和ISP_CAC Y NORM寄存器进行归一化的。这样做的原因是为了避免CAC硬件块的高门计数。

x_ns、y_ns、x_nf和y_nf的值在这里计算,需要被编译到相应的X5 ISP寄存器中。

如果结果仍然不够充分,可以通过点击“Copy”选项将计算出的参数复制到初始参数字段,以便进行另一次迭代运行。

CAC Section

工具中的色差校正(Chromatic Aberration Correction, CAC)部分用于对输出图像施加色差校正。

../../../_images/image114.png

图 10.4‑4 CAC Section GUI

色差估计(CA Estimate)部分负责计算色差的参数,然后这些参数会被应用到图像上。窗口顶部的“CAC_enable”复选框允许用户停用这一特性。

在显示区域的中间部分,通过绘制校正函数的图表来展示选定的红色和蓝色像素参数。该图表仅展示校正函数的水平分量,并已标准化,使得图像边缘的半径值为1。半径0代表图像的中心。

如果用户手动将校正参数输入到相应的文本框中,那么需要点击(Plot)选项来展示图表。

水平和垂直的限制值用于限制最大校正值,以适应硬件限制,这些限制通常与使用的行存储器量有关。

去马赛克和滤波器部分

X5 ISP中的色差校正特性作为去马赛克功能的集成部分实现,该功能负责对Bayer模式的颜色插值。CAC工具的这一部分用于指定测试图像的Bayer模式布局,并选择所需的滤波器功能。此外,这一部分还显示了插值测试图像的预览,如下图所示。

../../../_images/image115.png

图 10.4‑5 Demosaic and Filter GUI

../../../_images/image116.jpeg

通过激活图像预览左侧的相应Bayer模式复选框来选择Bayer模式。可以在预览图像上方的文本字段中定义颜色插值算法的边缘检测阈值。阈值的默认值为4。如果在这里定义了更高的值,则边缘检测算法检测到的边缘更少。较低的值会导致检测到更多的边缘。值255表示完全禁用边缘检测。

CAC硬件实现允许垂直校正向上/下±2像素。在减少色度滤波的情况下,可以实现最大偏移±3,甚至±4(寄存器ISP_CAC_CTRL)。

../../../_images/image117.png

Simulate 2 additional Line Buffers”复选框允许用户扩展垂直偏移。这允许将垂直向量裁剪设置为±3。在这种情况下不执行减少色度滤波。

../../../_images/image118.jpeg

滤波器块可以在预览图像下方配置。文本字段”Filter stage1 select, Sharpen Level”、”锐化级别”和”Denoise Level”在X5 ISP编程指南第二部分:特性控制文档中有描述。

滤波器由三个阶段组成:

  • 阶段1. 滤波器阶段1(值0…8),仅对色度(R-G,B-G)是一个3x3平均(模糊)滤波器

    • 0:最大模糊

    • 4:默认值,轻微模糊

    • 8:不做任何操作

  • 阶段2. 锐化(值0..10),仅亮度(G)

    • 0:不做任何操作

    • 1:轻微锐化

    • 10:最大锐化

  • 阶段3. 去噪(值1..10),亮度(G)和色度(R-G,B-G)

    • 0:不做任何操作

    • 1:轻微去噪(模糊)

    • 10:最大去噪

../../../_images/image119.jpeg

Lum_weight Off”复选框允许停用滤波器算法的一个特殊功能。这个功能有助于在暗区域比在亮区域更强烈地抑制噪声。由于后续处理链中的非线性Gamma校正,对比度和噪声在暗区域被强调,在亮区域被减弱。为了补偿这一点,纹理参数在与阈值比较之前,会根据5x5核心区域的平均亮度进行加权。

如果未选中”Filter_enable”复选框,则不执行任何滤波操作。

色彩校正部分

色彩校正部分如图 10.4‑6所示。

../../../_images/image120.png

图 10.4‑6 Color Correction GUI

为了成功计算CAC参数,测试图像需要有正确的白平衡;否则,工具中用于推导CAC参数的非线性优化函数可能无法收敛。因此,需要在这里指定正确的白平衡(WB)增益值。另外,也可以使用自动白平衡,这是工具中实现的简单灰度世界方法,用于推导WB增益值。灰度世界方法在这种情况下是完全足够的,因为使用的CAC测试图表是黑白的。只需在WB增益编辑字段下方勾选Auto White-Balance复选框即可。也可以插入正确的色彩校正矩阵(X-Talk Matrix)(这是可选的 - 它不影响参数估计过程,只影响最终图像输出)。这些参数需要通过CC工具针对生成CAC测试图像时使用的相同照明条件来推导。参数可以直接输入,也可以从CC工具生成的ASCII文本文件中加载。点击Load ASCII file选项来加载ASCII文本文件。

使用的传感器的黑电平值在色彩校正部分指定。黑电平的绝对值取决于在图像加载时在位宽对话框中选择的每像素分辨率。位宽选项是每像素10位或12位。

例如:

对于SMIA相机,10位图像的黑电平被确定为64十进制(8位图像为16十进制)。如果该图像以10位的内部处理位宽加载,黑电平需要设置为64。否则,如果选择了12位的处理位宽,则黑电平需要设置为256。

要激活黑电平校正,需要勾选ISP_bls_enable复选框,并在相应的文本字段black_value_Ablack_value_D中输入值。字母A到D对应于Bayer模式的颜色。如图 10.4‑7所示,有四种配置可能。Y

../../../_images/image121.png

图 10.4‑7 Bayer Pattern Color Configurations

也可以指定全局增益值。使用是可选的,并且不影响CAC参数估计。默认的全局增益值为1。

Gamma校正部分

在RGB处理流水线的末端,可以应用Gamma校正。X5 ISP中的Gamma校正基于真实Gamma曲线的分段线性近似。通过勾选相应的复选框,可以改变曲线的分割方式,从等距切换到对数。通常,标准Gamma曲线使用对数轴。只有在要应用特殊曲线时,切换到等距轴才有意义。

工具可以通过在”Fill table with gamma”文本字段中输入所需的Gamma值,然后点击”Generate “选项来生成Gamma曲线的采样点的输出值。这将用计算出的值填充采样点的文本字段,并且相应的曲线将在对应的图表中绘制出来。近似曲线用蓝色绘制,而真实Gamma曲线用红色绘制。

可以通过在采样点的文本字段中输入值或通过加载包含这些值的文本文件来生成特殊曲线。加载文本文件时,需要点击”Load ASCII file”选项。

Gamma输出值始终基于每像素10位,这是在X5 ISP硬件中实现的。

需要通过勾选gamma_out_enable复选框来激活Gamma校正功能。否则,输出图像将不应用Gamma校正。

sRGB颜色空间的默认Curve校正值大约是Gamma 2.2。指定的Gamma值不影响CAC估计/校正的质量。

色彩处理控制

处理测试图像后,结果图像会显示出来。在下面图 10.5‑1显示的Color Processing Control窗口中,展示了色彩处理功能,这些功能允许修改对比度、亮度、饱和度和色调。

../../../_images/image122.jpeg

图 10.5‑1 Color Processing Control Window

这是一个对结果图像进行后处理的步骤,与之前的处理步骤无关。这个窗口的主要特点是可以通过按下Save Image选项将结果图像保存到文件中。这个选项允许保存处理后的图像以供进一步测量。

处理后图像显示

处理后的结果图像会在一个单独的窗口中显示,如图 10.6‑1所示。

../../../_images/image123.png

图 10.6‑1 Processed Image Display

根据工具部分的设置,所选的处理步骤将应用于图像。图像窗口允许根据MATLAB函数imshow进行缩放、平移和拾取像素值。

图像边缘显示了一些拉链状伪影。这些与CAC工具的边缘处理有关,它不对可见范围外的边缘像素做任何假设或估计。因此,可以看到一些伪影,这些伪影与CAC参数的处理无关。在X5 ISP硬件中,边缘像素的处理方式不同,因此边缘像素不会显示这些伪影。

测试图像

色差在只包含白色和黑色物体的图像中最容易观察到。在这些物体的边缘,可以看到色差。推荐的色差测试图案如图 10.7‑1所示。

../../../_images/image124.png

图 10.7‑1 Recommended Test Pattern for Chromatic Aberration

图像中的边缘越多,对参数的计算越有利。

尽管以图 10.7‑2中所示的替代图案没有第一个图案那么多的边缘,但它们也可以使用。

../../../_images/image125.png ../../../_images/image126.png

图 10.7‑2 Alternate Test Patterns for Chromatic Aberration

图像应该完美聚焦。我们建议使用一个大于39英寸×27英寸的测试图表,从大约39英寸的距离拍摄。提供了Microsoft Visio文件和测试图案的高分辨率TIFF文件。

5.17.4.12. 默认校准参数文件生成XML

Defect Pixel色彩校正

DPCC(Defect Pixel Color Correction,缺陷像素色彩校正)的校准数据提供在发布包中包含的dpcc_para.txt文件中。

../../../_images/image127.png

自动曝光校准

自动曝光的校准数据提供在发布包中包含的aec_para.mk_para.txt文件中。

aec_para.m

../../../_images/image128.png

K因子与传感器对光的敏感度有关,并在k_para.txt文件中定义。

K因子与相机的ISO不同。ISO更像是传感器增益;它会根据光线变化,但K因子是一个固定的值,可以调整。K因子与传感器增益和曝光时间一起考虑,以确定场景是室内还是室外。

k_para.txt

../../../_images/image129.png

HDR/Native HDR

原生HDR参数由传感器供应商提供。

HDR和原生HDR的校准数据提供在发布包中包含的hdr_para.txt文件中。

% HDR参数示例

../../../_images/image130.png

../../../_images/image131.png

光响应线性

光响应线性的校准数据提供在发布包中包含的degamma_para.txt文件中。

../../../_images/image132.png

大多数传感器具有良好的线性,因此可以使用degamma_para.txt文件提供默认参数。然而,如果传感器的线性不佳,可以使用传感器供应商提供的替代degamma参数。

5.17.4.13. 补充工具

色彩校正合成器工具

色彩校正合成器工具用于生成ColorChecker图表或ColorCheckerSG图表的人工地景图像。如果实验室条件下无法拍摄真实图像,这些地景图像将作为色彩校准工具的输入。

色彩校正合成器工具介绍

X5 ISP的自动白平衡(AWB)控制循环需要在X5 ISP控制软件中定义一组不同的色彩配置文件。这些色彩配置文件是通过在不同照明条件下拍摄ColorChecker目标来获得的。然后,色彩校准工具用于从这些图像计算X5 ISP硬件所需的值。

如果实验室环境中没有所需的照明条件,那么可以使用色彩校正合成器(CCSynthesizer)工具为特定图像传感器生成在可选择照明下的人工地景图像。在运行CCSynthesizer之前,需要将所需图像传感器的光谱响应曲线加载到CCSynthesizer中。

图 12.1‑1所示的CCSynthesizer GUI允许用户选择一种或多种照明并生成图像。

../../../_images/image133.png

图 12.1‑1 Color Checker Synthesizer Tool GUI

该工具为每种选定的照明创建一个单独的图像文件。图像文件的输出格式为.png。所使用的照明的光谱定义是根据CIE(国际照明委员会)的规范。

加载传感器光谱菜单

在工具生成图像文件之前,需要加载传感器的灵敏度曲线。这条曲线代表了所需图像传感器对三种基本颜色:红色、绿色和蓝色的光谱灵敏度。图 12.1‑2展示了这种曲线的一个示例。

../../../_images/image134.png

图 12.1‑2 Spectral Response Curve of an Image Sensor

所需图像传感器的光谱响应曲线可以从文本文件中加载。

文本文件必须具有以下格式:

|
Column 1: |
this column contains the wavelength of the light in nanometers | |:——————-: |:————————————————————————–: | |
Column 2: |
red sensitivity values | |
Column 3: |
green sensitivity values | |
Column 4: |
blue sensitivity values |

列之间用逗号分隔。曲线的采样点应该是从380纳米到730纳米,以10纳米为步长。灵敏度值不需要单位,因为工具只需要相对值。在内部,灵敏度值被映射到[0..1]的范围内。

下面展示了一个光谱响应曲线文本文件的示例:

380,0.26226,0.1608,0.31022
390,13.245,10.035,28.801
400,18.964,19.316,68.754
410,24.304,29.598,124.55
420,23.767,30.415,149.12
430,22.543,33.149,161.17
440,22.603,44.127,184.07
450,23.218,55.27,209.67
460,24.063,64.02,215.33
470,27.154,87.469,211.07
480,30.461,127.21,201.2
490,34.762,174.79,177.68
500,41.068,220.16,149.58
510,49.424,248.27,115.77
520,60.926,272.83,92.564
530,66.451,285.46,82.773
540,64.961,274.89,75.672
550,61.985,249.26,66.388
560,61.445,221.64,58.419
570,94.811,191.24,54.405
580,205.04,175.05,59.287
590,278.5,147.42,58.32
600,287.82,111.12,50.848
610,276.31,83.046,44.126
620,234.76,64.909,37.86
630,191.7,52.999,32.985
640,145.74,40.745,26.912
650,85.741,25.098,17.363
660,41.35,13.449,9.4641
670,17.856,6.8833,4.697
680,8.1439,3.7525,2.4365
690,5.8114,3.0677,1.9267
700,3.8089,2.1817,1.3354
710,2.1029,1.2448,0.74725
720,1.795,1.0481,0.62607
730,1.7775,1.038,0.62145

合成选项

../../../_images/image135.png

在选择所需的照明条件和ColorChecker类型之后,需要点击Synthesize。然后会打开一个窗口,用于选择一个文件夹,以指定生成的图像应存储的位置,如下图所示。

../../../_images/image136.png

图 12.1‑3 Folder Selection Window to Save the Color Checker Image

图像的文件名将根据所选的照明和ColorChecker类型自动创建。此外,所选照明的光谱曲线将作为参考显示出来,如下图所示。

../../../_images/image137.png

图 12.1‑4 Spectral Curves of Selected Illuminations

这些光谱曲线是内置的,无法加载。它们符合CIE定义的光谱曲线标准。

查看色彩校正器菜单

View Color Checker”菜单项允许查看生成的图像。示例输出显示在下图中。

../../../_images/image138.png

图 12.1‑5 Generated Color Checker Image

图像校正工具

图像校正工具用于纠正扭曲的图像。这个工具的典型用例是对在45°/0°对齐下拍摄的色彩校正器图像进行校正,以便在IMATEST中进行进一步分析。

../../../_images/image139.png

要校正一个图像,请执行以下步骤:

点击”Yes “选项。

../../../_images/image140.png

选择从色彩校正器拍摄的图像。

../../../_images/image141.png

使用鼠标右键点击色彩校正器的四个角落:

../../../_images/image142.png

校正后的图像将会显示。

../../../_images/image143.png

如果结果满意,请保存图像;否则,按取消。

../../../_images/image144.png

如果你想处理另一张图像,请按**”Yes”**。工具会记住读取和写入的路径。

XML生成器

要运行XML生成器,首先必须生成校准数据以作为XML生成器的输入。然后,必须将生成的校准参数复制到预定义的校准参数目录中。

校准参数有两种生成方式:使用校准工具和使用发布包中提供的默认文件。

下表指定了获取校准数据的方法和校准参数文件的位置。

Calibration Data Generation Method or Parameter File Calibration Parameter File Location
Auto White Balance Calibration Tools ///AWB/
Black Level Correction Calibration Tools ///BlackLevel/
Chromatic Aberration Calibration Tools ///ChromaticAberration/
Color Calibration Calibration Tools ///ColorReproduction/
Defect Pixel Color Correction dpcc_para.txt ///DefectPixel/
Auto Exposure Calibration aec_para.m; k_para.txt ///ExposureCalibration/
HDR hdr_para.txt ///HDR/
Lens Shade Correction Calibration Tools ///LensShading/
Noise Calibration Calibration Tools ///Noise/
Photo Response Linearity degamma_para.txt ///PhotoResponseLinearity/

表格 12.3‑1 Calibration Data for XML Generation

IP version BLC LSC CCM AWB NR CAC
isp pico
isp nano
others

表格 12.3‑2 Modules corresponding to different IP versions

手动生成XML文件

在生成所有校准数据后,对于每个校准参数,按照以下步骤为每种分辨率创建单独的XML文件:

  1. 使用传感器名称创建文件夹(例如,/OV2775)

  2. 用镜头名称创建子文件夹(例如,/8M)

  3. 用样本名称创建子文件夹(例如,/01)

  4. 为每个校准参数创建子文件夹(见上表)

  5. 将校准参数文件复制到相应的参数文件夹中。

例如: 对于每个<分辨率>:

将所有校准参数文件复制到相应的文件夹后,通过点击主窗口上的XML生成器选项来运行XML生成器。这将在文件夹/out_<传感器>中生成XML文件。 步骤1) 通过点击浏览…选项选择要转换为XML文件的数据位置。 步骤2) 选择传感器:例如,OV2775 步骤3) 选择镜头:例如,8M 步骤4) 选择数据:例如,01, 02, 03;这意味着校准样本,01 必须包含完整的校准数据(第一轮校准数据)。其他样本可能包含几个部分,你可以选择重新校准。 步骤5) 输入分辨率信息:宽度和高度 步骤6) 输入创建者信息。 步骤7) 点击应用以生成XML文件,输出到<传感器>/<镜头>/XML。

<sensor>  ---<lens>
--------<sample>
------------<AWB>
--------------------<AWB parameters>.txt
<BlackLevel>
--------------------<BLS parameters>.txt
...

-1928x1088
|--OV2775
|--8M
|--01
|--AWB
awb_para.mat awb_para.txt
|--BlackLevel
bls_para.txt
|--ChromaticAberration
cac_estimate_params.orig cac_estimate_params.txt
|--ColorReproduction |--A
|--cc_para_100.txt |--D50
|--cc_para_100.txt |--D65
|--cc_para_100.txt |--F11
|--cc_para_100.txt |--F2
|--cc_para_100.txt |--H
|--cc_para_100.txt |--DefectPixel
dpcc_para.txt
|--ExposureCalibration aec_para.m
k_para.txt
|--HDR
hdr_para.txt
|--LensShading |--A
|--lsc_para_100.txt |--D50
|-lsc_para_100.txt |--D65
|--lsc_para_100.txt |--F11
|--lsc_para_100.txt |--F2
|--lsc_para_100.txt |--Noise
dpf_para.txt
|--PhotoResponseLinearity
degamma_para.txt

在所有校准参数文件都被复制到它们相应的文件夹之后,通过点击主窗口上的XML Generator选项来运行XML生成器。这将在 /out_<Sensor> 文件夹中生成XML文件。

../../../_images/image145.png

图 12.3‑1 XML Generator

步骤 1) 通过点击Data Location选项选择要转换为XML文件的数据位置。

步骤 2) 选择Sensor:例如,OV2775。

步骤 3) 选择Lens:例如,8M。

步骤 4) 选择Data:例如,01, 02, 03;这意味着校准样本,01 必须包含完整的校准数据(第一轮校准数据)。其他样本可能包含几个部分,你可以选择重新校准。

步骤 5) 输入Resolution信息:宽度和高度。

步骤 6) 输入Creator信息。

步骤 7) 点击Apply以生成XML文件,这些文件将输出到<Sensor>/<Lens>/XML文件夹中。

(可选)自动生成XML文件

要自动生成一个XML文件,你需要执行所有模块,并特别留意CCT(Color Checker Tool,色彩校正器工具)的类型。按照以下步骤自动生成XML文件:

步骤 1) 确定根目录

通过点击Browse选项选择要转换为XML文件的数据位置。

步骤 2) 点击Auto Generate选项。

如果某个模块的校准数据缺失,工具将会在XML文件中写入默认值。