找回密码
 立即注册
查看: 258|回复: 0

相机杂谈——图像处理器ISP

[复制链接]
发表于 2022-10-6 18:21 | 显示全部楼层 |阅读模式
我们从镜头收集的光线落到感光记录系统中,经过传感器的处理,我们得到了初步的原始图,即RAW图。但是这种类型的图像远远达不到我们所希望的状态,所以我们需要对这些图像进行进一步处理,同时,我们也需要利用一些“控制”方法来物理条件成像的外在条件,这一系列功能的实现都是在图像处理器中所完成的。图像处理器,英文名称是Image Signal Processor,简写是我们经常听说的ISP
为了从图像传感器提供的原始数据中获得可用的图像,一般至少执行以下步骤:

  • 黑电平校正Black level correction
为了消除图像数据中存在的任何偏移,需要进行黑电平校正。图像传感器像素中的暗电流将产生具有取决于曝光时间和温度的电平的信号,所以必须从数据中减去此黑色的级别。然而,由于图像数据是由从零到ADC设置的最大允许值的数字表示的,因此接近零的信号有可能抑制噪声,从而导致对平均信号和噪声的错误估计。因此,通常会将固定的黑色级别添加到传感器输出的图像值中。如果不从数据中减去此黑色级别,则会引入信号级别相关的颜色错误。这如下图所示,在应用颜色校正矩阵之前,我们可以比较下使用和不使用黑色级别减法的图像,左边是使用的情况,右边是没有使用的情况。除此之外,图像数据中存在偏移会使整个图像看起来“模糊”。为了找到对暗信号的可靠估计,在传感器阵列的外围添加了遮光像素。暗信号可以通过读取来自这些像素的信号以及来自有源阵列(传感器暴露于光的部分)的信号来获得,从而确保曝光时间和温度等于或接近成像像素的时间和温度。



  • 白平衡White balancing
人类的视觉系统在非常广泛的光照下有着显著的辨别颜色的能力。这就是所谓的颜色恒常性。由于相机试图模拟人类视觉,它还必须能够通过执行白平衡来解释这种行为。白平衡的实际操作很简单:它只是将每个单独的颜色通道乘以一个固定值,即白平衡增益。然而,确定每个颜色通道的增益值绝非易事,并且存在许多算法来执行此任务。最简单的算法是灰色世界算法,这基本上假设场景中的平均图像值为灰色,通过计算图像的平均红、绿和蓝值,然后计算每个颜色通道的平均绿值与平均红、蓝值的比率,可以找到各个白平衡增益。这导致绿色通道的白平衡增益值为1。选择此选项的原因是大多数亮度信息被认为是由绿色通道携带的,所以这种定义将导致对整体图像级别的修改最少,下图显示了关闭和打开白平衡的图像:



  • 颜色插值Color interpolation
由于每个像素仅包含一种颜色的信息(Bayer模式为红色、绿色或蓝色),因此必须计算每个像素的缺失颜色。这是通过插值实现的,其中使用来自相邻像素的信息来查找缺少的值。最简单的插值类型之一是双线性插值,其中使用周围像素颜色值的平均值来查找特定像素的缺失信息。我们来看一张示意图:


这里面的插值点计算方式为:




当然,颜色插值算法可能会产生多种伪影。在实际操作中还需要根据图像局部对比度来建立插值方向,以找到最合适的自适应算法。

  • 颜色校正Color correction
图像传感器的光谱灵敏度偏离了人类视觉。因此,直接从传感器输出的图像不会显示正确的颜色,需要进行多种颜色校正。执行此校正的简单方法是将传感器RGB(红色/绿色/蓝色)值乘以3×3颜色校正矩阵(CCM)。但这样做事默认图像传感器光谱灵敏度与相应的人体灵敏度之间存在线性关系。而实际上,不可能在人类视觉系统的颜色视觉和相机之间获得完美线性关系,所以我们必须建立非线性矩阵,下图为没有使用颜色校正和使用了颜色校正的图像:



  • 伽马曲线应用Gamma curve application
由于早期CRT显示器的输出亮度和输入电压存在非线性关系,具体就是近似2.2次幂的关系,导致显示器的亮度要比计算机上存储的亮度要低,所以我们利用伽马曲线进行校正,即:


尽管说这种显示器已经被淘汰了,但是伽马校正的作用依然很大,因为人眼对于较暗的亮度值比较敏感,对于较亮的亮度值则不太敏感,我们只能用一个8位二进制(可以表达0~255的整数)来存储亮度值,伽马校正可以提高暗部亮度的存储精度,尽可能保留了暗部细节。
除了上述提到的步骤,现代ISP通常包括以下处理步骤:坏点校正Defective pixel correction,噪声过滤Noise filtering,锐化Sharpening,色调映射Tone mapping,调整大小Resizing,压缩Compression等,这里就不一一展开说明了。
为了获得曝光良好且具有正确白平衡和焦距的图像,ISP还需要结合以下控制算法:

  • 自动曝光 Auto exposure
  • 自动白平衡 Auto white balance
  • 自动调焦 Auto focus
这些算法被统称为3A算法。自动曝光算法跟踪场景中的灯光级别,并控制曝光时间、增益和光圈,以便保持适当的曝光级别。自动白平衡算法收集场景颜色的统计信息,该数据用于估计适当的白点,理想情况下,白点应与照明场景的光源颜色相对应。如果相机配备了自动对焦镜头,这是由算法控制的,这些算法分析图像的清晰度,并在连续的帧中收集统计数据,并用于决定镜头应该朝哪个方向移动,以及何时找到最佳焦距,以便将镜头停在正确的位置。这三种控制算法我在回答里有较为详细的描述,见下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 23:25 , Processed in 0.090433 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表