ISP 相机管线回顾

本文由Understanding the In-Camera Rendering Pipeline and the role of AI/Deep Learning整理而来


色彩

光谱功率分布

光谱功率分布(Spectral Power Distribution,SPD)是指光源在整个电磁波谱范围内的功率分布。这种分布显示了光源在不同波长下发出的光的功率

ISP

ISP管线基本组成部分

传感器

绝大部分的传感器都是互补式金属氧化物半导体 (CMOS)

  • 近红外滤光片(NIR)
    在传感器前面通常会放置一个近红外滤光片(有时称为“热镜”)。这是因为红色滤光片往往对近红外光有响应,为了避免这种干扰,需要滤除近红外光。
  • Color Filter Array
    由红、绿、蓝三种颜色滤光片按特定模式排列。这个阵列覆盖在传感器上,使得每个像素只接收到特定波长的光。
  • 微透镜(Micro-lenses)
    覆盖在传感器上的微透镜,帮助增加光的收集效率,使更多的光子能够被光电二极管捕捉。
  • 颜色滤光片和传感器
    光线经过近红外滤光片后,再穿过颜色滤光片(红、绿、蓝),最终到达传感器的光电二极管。每个颜色滤光片只允许特定颜色的光通过,传感器记录下这些光的强度。
  • 光电二极管(Photodiode)
    光电二极管接收到光子后,会强迫电子运动,这与太阳能电池的设计类似。光电二极管将光信号转化为电信号。

黑电平矫正

黑电平矫正(Black Level Correction,BLC)是一种图像处理技术,用于校正数码相机或图像传感器的黑电平偏移,确保图像中黑色区域被正确地显示为黑色,而不是带有不必要的亮度或色偏。

黑电平是图像传感器在没有光线照射时输出的电压信号。在理想情况下,这个信号应该是零,但由于传感器和电子电路的噪声、偏置电压等因素,实际的黑电平往往不是零。

矫正过程

  1. 暗帧采集:在没有光线的条件下(例如,遮挡镜头或关闭快门),采集一帧图像,这个图像称为暗帧。暗帧记录了传感器的黑电平。
  2. 计算黑电平:通过对暗帧的像素值进行平均,计算出黑电平的值。这个值代表了传感器在无光条件下的电信号水平。
  3. 应用矫正:在实际拍摄图像时,从每个像素的值中减去计算出的黑电平值,以校正黑电平偏移。这样,图像中本应为黑色的区域在校正后会显示为真正的黑色。

Flat Field Correction 平场校正

原因:即使传感器上落下的光是均匀的,原始RGB图像中的光照可能看起来不均匀。这种不均匀性可能是由于镜头的瑕疵、传感器在相机中的位置等原因造成的。图中左上方的示意图展示了一个均匀光照下的传感器输出,它呈现出中心亮、四周暗的现象,这种现象通常称为“渐晕效应”(vignetting)。

矫正过程:
中间的图示展示了校正过程中应用的校正增益图。这个增益图是根据传感器的响应特性计算出来的,用于补偿光照不均匀的区域。
增益图的值会根据传感器各个位置的响应来调整,使得最终图像中的每个像素点都能正确地反映实际光照情况。

去马赛克 demosaicing

  1. 简单邻域平均

  2. Edge Aware

去噪 Noise Reduction

信号处理过程

  1. 光照(Irradiance):光照通过镜头到达传感器像素。
  2. 光子收集(Photon Collection):光子被传感器收集,光子数量受像素尺寸、光圈和曝光时间的影响。
  3. 量子效率(Quantum Efficiency,η(λ)):传感器将光子转化为电子,量子效率表示这种转换的效率。不同波长的光具有不同的量子效率。
  4. 暗电流(Dark Current):在没有光照的情况下,传感器仍然会生成一些电子,这称为暗电流。
  5. 暗噪声(Dark Noise):暗电流产生的噪声。这些噪声在电子层面上叠加到信号中。
  6. 传感器增益(Sensor Gain,g):电子信号经过放大器放大,放大器的增益因子会放大信号,同时也会放大噪声。
  7. 模拟-数字转换器(ADC):将模拟信号转换为数字信号。
  8. 量化噪声(Quantization Noise):在模拟到数字转换过程中引入的噪声。这是由于信号量化导致的误差。

噪声来源

  1. 光子噪声:光的特性造成的,服从泊松分布
  2. 电子噪声:成像传感器造成的,包含暗电流和暗噪声,服从正态分布

增益因子的影响

放大信号的同时,也会放大噪声

处理方式

模糊处理(Blurring)

  • 对输入图像III进行模糊处理,得到模糊图像B(I)B(I)B(I)。
  • 模糊处理可以减少图像中的噪声,但同时也会使边缘模糊。

高通滤波(High Pass Filter)

  • 计算原始图像与模糊图像之间的差值,即 ∣I−B(I)∣|I - B(I)|∣I−B(I)∣,这相当于一个高通滤波器。
  • 高通滤波器保留了图像中的高频成分(如边缘和细节),而去除了低频成分(如平坦区域)。

阈值处理(Thresholding)

  • 将高通滤波结果与一个阈值 TTT 进行比较,得到一个二值掩码:

    IB(I)>T∣I−B(I)∣ > T

  • 这个掩码用于区分图像中的内容和噪声。高响应区域被认为是图像内容,而低响应区域被认为是噪声

结合(Combine)

  • 将掩码应用于原始图像和模糊图像:
  • 对于高响应区域,保留原始图像中的内容(甚至可以增强这些内容)。
  • 对于低响应区域,保留模糊处理后的结果(即噪声减少的结果)。
  • 这样可以在去除噪声的同时,保留图像的细节和边缘

白平衡 & 色彩空间转换

  1. 白平衡校正

    • 原始RGB值(raw-RGB values)需要首先进行白平衡校正,以确保在不同光照条件下颜色显示的准确性。
    • 白平衡校正通过一个3x3对角矩阵来实现。这个矩阵调整每个颜色通道的增益,使得图像的白色区域看起来真实的白色。这意味着每个颜色通道(R、G、B)的值会根据相应的系数进行缩放。

    白平衡矩阵的应用

    [ \begin{bmatrix} R_{wb} \ G_{wb} \ B_{wb} \end{bmatrix} = \begin{bmatrix} k_r & 0 & 0 \ 0 & k_g & 0 \ 0 & 0 & k_b \end{bmatrix} \begin{bmatrix} R \ G \ B \end{bmatrix} ]

    其中,( k_r )、( k_g ) 和 ( k_b ) 是白平衡系数。

结果
应用白平衡后,得到经过白平衡处理的raw-RGB值(white-balance raw-RGB),这些值更准确地反映了场景的真实颜色。

  1. 颜色空间转换

    • 将经过白平衡校正的raw-RGB值转换为CIE XYZ颜色空间。这一步是通过一个3x3的全矩阵(或多项式函数)来实现的,这个矩阵将RGB值映射到XYZ值。
    • 这个矩阵的系数是根据传感器的光谱响应特性和目标颜色空间(CIE XYZ)的转换关系预先确定的。

    颜色空间转换矩阵的应用

    [ \begin{bmatrix} X \ Y \ Z \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \ a_{21} & a_{22} & a_{23} \ a_{31} & a_{32} & a_{33} \end{bmatrix} \begin{bmatrix} R_{wb} \ G_{wb} \ B_{wb} \end{bmatrix} ]

结果
最终得到映射到CIE XYZ颜色空间的白平衡raw-RGB值(WB-raw-RGB mapped to CIE XYZ)。这些值在设备无关的颜色空间中准确地表示了场景的颜色。

Gray World

White Patch

AI ISP


ISP 相机管线回顾
https://dreamerland.cn/2024/07/24/图像修复/ISP/
作者
Silva31
发布于
2024年7月24日
许可协议