2.3 Simatest ISP/摄像机模拟器示例

发布时间:2025年2月10日

本文以小型数码相机为例,说明 Simatest 如何用于相机系统建模和测量,尤其是如何用于图像信号处理 (ISP)。与 ISP/Camera Simulator 介绍中的完整说明和参考文献相比,本文的设计更实用、更易读。

介绍

Simatest 可以建模和测量图像信号处理 (ISP) 的效果,

  1. Raw Camera image (原始相机图像) — 数码相机的原始输出(去马赛克或未去马赛克),包括镜头模糊和图像传感器噪声。在这种情况下,通常使用测试卡图像,但也可以使用任何图像。
  2. 模拟(测试图卡)图像,需要对其进行模糊处理以匹配原始摄像机图像的 MTF (SFR),通常使用简单的高斯或艾里斑滤波器。还必须包括下述模型中的图像传感器噪声。
  3. 镜头设计程序退化的模拟图像。这样就能在指定和制造硬件之前对相机进行 “软原型”。 需要图像传感器噪声(如下所述)。完整的 ISP 链可应用于任何来源的图像。

示例使用的相机是 Panasonic Lumix LX5,这是一款较旧的 (2010) 10.1 MP 紧凑型数码相机,具有 2.14 μm 像素间距和高质量的 Leica 品牌变焦镜头。按照 2025 年的标准,它的图像处理很简单–它没有进行计算成像或人工智能,最重要的是,它有raw输出,可以在去马赛克或不去马赛克的情况下进行处理。我们将展示如何

  • 使用灰度测试卡的原始图像对图像传感器噪声进行建模。
  • 使用简单的高斯或艾里斑滤波器对相机空间域响应和 MTF (SFR) 进行建模。
  • 使用相机模型可以显示相机性能如何随曝光指数 (EI;广为人知的 ISO 感光度) 而变化,其中增加 EI 等同于降低照明度。

◈ 对图像传感器噪声进行建模

模拟数码相机性能的一个关键步骤(也许是最重要的步骤)是对图像传感器噪声进行建模,该噪声由来自多个来源的暗噪声和光子(或电子)散粒噪声组成。Simatest 模型源自对灰度测试图表的原始图像的测量,最好来自透射测试图表,其色调范围比反射图表大得多。

正确表征图像传感器的噪声后,Simatest 可用于预测各种相机配置(镜头、图像处理等)的相机性能。

图像传感器噪声也在 Simatest 说明和参考以及颜色/色调/eSFR ISO 噪声测量中进行了描述。

对于线性(非 HDR)图像传感器,噪声可以从信号的数字数(像素级 DN )+ 图像传感器的噪声中得出。

DN = DNmeas– DNoff : DNoff是未去马赛克图像文件中经常包含的偏移量。

估计DNoff,它经常出现在未去马赛克的原始文件中,需要一些小心。它可以根据 EXIF 元数据或测量测试图表图像最暗区域中的信号来估计。

对于暗噪声功率,Nd2 

预期噪声电压= VN = (Nd2 + kNDN )1/2 = (Nd2 + kN (DNmeas– DNoff))1/2— 或 — 

预期噪声功率 =PN = VN2 = Nd2 + kN(DNmeas– DNoff) 用于线性传感器

该模型是 EMVA 1288 线性传感器标准第 2.4 节中噪声模型的变体。

◈ 测量影像传感器噪声

Nd2kN是 Simatest 中图像传感器噪声模型的关键参数。必须根据原始 (未去马赛克和未处理) 图像仔细进行测量。

噪声建模的步骤

  1. 获取灰度测试图表的图像,最好是专为测量动态范围而设计的透射卡
  2. 以 Raw 格式存储图像。
  3. 将原始图像读入 Color/Tone Interactive 中,而无需去马赛克。对于商业 Raw 文件,建议使用 Bayer RAW 16 位线性预设。(Color Tone Auto 也有效,但不太灵活。转换后的图像将另存为 TIFF。详细信息在Color/Tone或eSFR ISO 噪声中给出。
  4. 由于未去马赛克的图像是单色的,因此将显示“标准单色还是 Bayer RAW?”提示框。选择适当的像素颜色映射(Lumix LX5的 R1C2(GR/BG)中的红色)。(如果图像包含可识别的颜色,您可以在 Rawview 中打开它以查找颜色映射。然后选择 (Analyze image as) Bayer RAW
  5. 估计偏移量,DNoff和饱和度级别,然后使用颜色/Color/Tone/eSFR ISO 噪声中详述的方法,然后将其输入到颜色/色调设置窗口(其中部分显示在右侧)。这些值通常可以在 EXIF 元数据中找到(在Raw图像中,但不能在JPEG中),但每个制造商的名称都不同。DNoff,始终小于最低色块级别,但可以大于最低单个像素级别。如果输入的值太大,则较暗色块的响应将被截断(DN 将为 0)。图 10-12 显示噪声和SNR与像素级别的函数关系,是最有趣的。这些绘图仅对Raw图像有意义。
    幸运的是,我们发现该模型对偏移估计相对不敏感。对于Lumix LX5,偏移量为128,饱和度为4095。
  6. 选择 Display 10(Noise vs pisel)。噪声分析或任何将噪声或 SNR 显示为输入像素级别函数的图 (10-12)。这将运行一个 Levenberg-Marquardt 优化器,该优化器找到Nd2kN与数据最匹配。图 10(噪声与像素 (dB)))如下所示。我们没有使用 SNR 图 11 或 12,因为它们对偏移 + 杂散光敏感,这可能很难量化。
测量和拟合噪声与输入像素级的关系 LX5(2.14 μm 像素)

输入Simatest的关键结果显示在左下角:噪声 = 0.01143 和暗噪声 = 0.00067。7345 个电子 (e-) 的阱容量与 EOS-6D 的 33882 像素阱容量相比很有趣,在 Simatest 说明页面中讨论过,后者具有更大的 6.5 μm 像素。

另一个重要的结果是 RGB = 0.549 1.000 0.537,它表示中间灰色块的颜色,标准化为 1。由于白炽光源和传感器的灵敏度,图像(缩略图显示在左侧,没有颜色校正)具有绿色调。

暗噪声实际上是几个独立于信号的噪声源的组合,如 OnSemi 应用说明 AND9189/D 中所述。电子 (Johnson) 噪声具有很强的温度依赖性。它与 (4kT )1/2成正比.Dari 电流噪声随曝光时间的增加而增加。

LX5 的图 2(信噪比与输入密度),如右图所示,与OnSemi 应用说明中的光子传输曲线,其中 S/N ≅噪声(电子 (e-))和阱容量 = {S/N)2max= 7345 的。S/N 图中的峰值显然是由噪声引起的,很可能是图表上的污垢斑点。左侧的平坦区域(暗信号和暗 SNR)会受到杂散光和偏移设置中可能的不确定性的影响。

我们希望在将来的版本中向噪声模型添加更多细节。我们还将移动噪声计算,以便结果在 CSV 和 JSON 输出中可用。而且(一种传感器建模的圣杯),我们希望模拟多区域 HDR 传感器。

模拟图像传感器噪声

光子散粒噪声、暗噪声和 RGB 平衡的测量参数可以输入到图像的 Simatest 模型中。

  • 打开 Simatest 并读取由 Imatest Test Charts 程序创建的理想测试图表图像文件。我们的示例使用两个图表。
  • 打开 Simatest 设置窗口,然后输入以下设置以复制我们刚刚测量的(未去马赛克的)原始图像。
    Gamma Targ 1,滤波器 gaus 0.75,RGB 多 0.55 1 0.53,拜耳 grbg,噪声 0.0114 1 1 0.00067。
    单击【OK】设置完成后。
  • 我们建议选中 Settings (设置) 窗口右下角 OK (确定) 旁边的 Auto update (自动更新)。这会导致在按下 OK 关闭 Settings 窗口时更新计算。如果尚未选中 Auto update (自动更新),请按主窗口中的 Update calculations (更新计算)。生成的图像将是 Bayer 原始图像。
  • 要获取与相机具有相同偏移量和最大值(LX5 为 128 和 4095)的图像,请按 Save processed image 将图像保存在命名文件中。
  • “Color/Tone Interactive”中打开图像,并选中 36 色块动态范围测试卡。因为未去马赛克的图像文件是单色的,所以您将获得如下所示的窗口。键设置用圆圈括起来。

单色还是拜耳原色?打开单色文件的窗口
  • 根据需要选择 ROI 或确认 ROI 选择。结果将出现。
模拟噪声与输入像素电平的关系 LX5(2.14 μm 像素)

模拟噪声与测得的噪声(上图)几乎相同,但由于最小 x 轴值不同,因此绘图看起来略有不同:4×10-3测量值与 7×10-4对于模拟,由于没有遮蔽眩光(杂散光;眩光),因此会降低。遮蔽眩光可以通过 Fog ISP 处理块添加。

建模和测量图像清晰度

下一步是测量和建模图像清晰度(SFR 或 MTF)。由于我们没有来自镜头设计程序的降级图像,因此我们需要使用高斯或艾里斑滤波器通过试错来估计镜头模糊。一旦我们有了一个好的原始图像模型,我们就可以自由地尝试任何调整或增强。

由于仅需要原始图像来查找杂色模型,因此我们使用带有颜色 24 位 sRGB 预设的 LibRaw 对原始图像进行反马赛克(转换)。生成的曲线是未锐化图像的典型曲线。

Lumix LX5 的测量边缘/MTF 图,去马赛克为 24 位 sRGB。关键参数是 10-90% 上升和 MTF50。

模拟图像清晰度

现在我们运行 Simatest,使用 Imatest Test Charts 模块生成的 36 块图卡的去马赛克、最低限度处理的输入图像,该图像具有倾斜边缘。

将 LX5 模拟与测量匹配的模拟窗口:按键设置:滤波器 gaus 0.75

重复以下步骤,直到测量的 Edge/MTF 结果(如上图)与模拟的 Edge/MTF 结果完全吻合。

将 Filter 设置移动到 ISP Blocks 的第 3 行。
  • 单击 Simatest 设置(Simatest 窗口的左上角)。
  • 滤波器设置:我们尝试了高斯和艾里斑滤镜。高斯滤镜效果稍好,但并不完美。我们对滑块进行了多次调整,直到最后确定 sigma = 0.75(像素)。

注意,Simatest 设置需要两个步骤:(1) 将滑块(或其他调整)设置为所需值;(2) 按设置下拉菜单将设置复制到 ISP 块中选定的行,如右侧的红色箭头所示。

  • 单击 OK 返回 Simatest 主窗口。
  • 单击 Update Calculations(更新计算)。
  • (可选)您可以显示并排视图,输入图像在左侧,处理后的图像在右侧,如上所示。虽然这个观点偶尔很有趣,但我们通常会跳过它。
  • 单击 Simatest 窗口底部附近的 Rescharts(浅绿色区域的左侧)。
  • 确保 1.为图表选择 SFR,然后单击 Analyze image(分析图像)。
  • 选择区域(第一次尝试)并根据需要进行微调,或者按 Yes, Express 模式确认保存的选择(用于后续尝试)。
  • 如果选择了 Edge/MTF 图,则会显示模拟的 Edge 和 MTF。Rescharts 和 Color/Tone 模块中还提供了许多其他绘图。
LX5 的模拟边缘/MTF 图。结果与上面的测量图非常接近。
主要结果 — 10-90% 上升距离、MTF50、信息容量 C4C
max——都在几个百分点以内。

匹配并不完美,MTF 的形状有些偏差,但对于测试 ISP 来说已经足够好了。

模拟相机 JPEG 图像

既然我们已经模拟了图像传感器的噪点和经过去马赛克处理的图像(来自 LX5)的清晰度,那么我们就可以着手进行更具挑战性的工作:模拟 JPEG 图像。

除了去马赛克的原始图像之外,相机 JPEG 通常还有几个额外的图像处理步骤。

  • 色调响应曲线 — 可以是简单的 Gamma 编码(接近为色彩空间指定的 Gamma,但有时略大一些,以使图像看起来更活泼)。
  • 色彩校正(包括白平衡) — 通常由 3×3 色彩校正矩阵 (CCM) 完成,但在本例中,我们使用简单的“灰度世界”白平衡,这太简单了,无法处理现实世界的挑战。
  • 锐化 — 大多数相机都使用标准锐化(而不是 USM),因为它更快。
  • 去噪 — 通常使用双边滤波器,这种滤波器可以保持边缘锐利,但会模糊(平滑)图像的其他部分。双边滤波器是非均匀和非线性的。它们在消费类相机的 JPEG 图像中几乎普遍存在。
  • 请注意,大多数消费类相机中的高质量 JPEG 图像压缩对图像质量的影响很小。

下面是 LX5 在 ISO 100 时拍摄的 JPEG 测量图像(曝光图像)。

测得的 LX5 JPEG 边缘/MTF 响应

第二个图是 Edge noise(边缘噪声),用于计算图像信息量度。边缘噪音是边缘和信息容量噪音显示的下部图。

测得的 LX5 JPEG 边缘噪声

为了模拟这种噪点,我们锐化了图像,并使用了 MATLAB 双边滤波器。以下是设置。

JPEG 图像的最模拟设置

以下是迭代过程的简要介绍。

模拟的 LX5 JPEG 边缘/MTF 响应
结果与测量图像相似,但接近fNYQ,其中 MTF 更高

一些注意事项

  • 使用了与先前模拟相同的输入图像。使用中央斜边用于获得 MTF 结果。
  • 选择半径 = 2 和数量 = 1.4 的标准锐化,以便与测量的 JPEG 图像很好地匹配。锐化和双侧滤镜设置之间存在一些交互作用。为了保持较大的过冲和较小的欠冲之间的不对称性,在恢复编码伽马值(≅0.45)后才进行锐化。
  • 使用了 MATLAB imbilatfilt 滤波器。由于其文档并不十分清楚,我们不得不进行大量的试错来确定设置。我们选择了锐化度 = 0.0025,空间 sigma = 0.7,邻域面积 = 5(必须是奇数整数)。随着锐化度的增加,远离峰值的噪音似乎有所减少。。
这些结果表明 Simatest ISP 仿真与测量结果非常吻合(尽管不完全一致)。由于我们不知道 LX5 中双边滤波器的特性,因此我们正确地猜测它可以由 MATLAB imbilatfilt 近似计算。

总结

以 Panasonic Lumix LX5 为例,我们展示了如何进行测量、建模和仿真

  • 图像传感器噪声,可以从RAW(未去马赛克)图像中测量
  • 经过最低限度处理的 RGB 图像(从 Raw 转换而来)
  • JPEG 图像(包括锐化和双边滤波)

这里介绍的技术可用于

  • 从原始图像转换而来的微处理图像。这些图像不需要模拟传感器噪点或镜头模糊,因为它们已隐含在图像中。
  • 模拟图像,尤其是理想的测试图图像。需要传感器噪点和模糊模型。
  • 镜头设计程序模糊模拟图像。需要传感器噪声模型。

这些情况在开头附近的框图中进行了说明。

可以模拟许多图像处理模块。我们将重点放在影响 MTF、SFR、噪点、信息度量和色彩精度的模块上。2025 年的早期版本只是一个开端。我们希望添加更多客户认为有用的图像处理模块。

联系我们:

关于更多测试方案,可以在下方评论区留言或直接联系我们:marketing@colorspace.com.cn或拨打电话400-886-3881!分享您的看法或提出您的问题!也欢迎点击表单填写您的需求。轻松一赞👍,快乐无限!喜欢就点个赞吧!

关注【正印科技】公众号了解更多行业动态

Was this helpful?

0 / 0

http://xzh.i3geek.com
发表回复 0