ISP流程简介

下面部分转自 有三AI :::tips ISP是Image Signal Processor的缩写,全称是影像处理器。在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照、录像的第一步处理流程。
ISP芯片的主要作用就是对传感器输入的信号进行运算处理,最终得出经过线性纠正、噪点去除、坏点修补、颜色插值、白平衡校正、曝光校正等处理后的结果。ISP芯片能够在很大程度上决定手机相机最终的成像质量,通常它对图像质量的改善空间可达10%-15%。
一般来说各个厂家ISP整体线程流会集成各种3A算法、降噪等算法,isp pipeline大同小异,一般的pipeline流程如下:
ISP PipeLine 以及 3A算法初步了解 - 图1
其根据处理节点的不同分为RAW域、YUV域、RGB域。其中isp pipeline最关键的是3A算法,即AE、AF、AWB,但从上述图发现没有AE和AF?实际上这两个算法在raw图施加到pipeline上时候已经提前调试好了,因为只有AE曝光稳定,AF对焦准确,对于Raw域和YUV域进行的图像处理才有意义,否则都没有稳定的光电感应和准确对焦,何来更高的图像质量?
摄像头相关的技术指标概述:
摄像头成像是一门涉及工业制造、软硬件结合的科学,故对于摄像头硬件有一套相应的硬件指标,各个大厂都不相同,但按照类别可以分类如下:
Lens主要指标:
解析度(Resolution)、视场角(Fov)、焦距(Focus length)、聚焦能力(Focusing Range)、光圈系数、失真(Restortion)。
Sensor的技术指标:
可见衡量sensor性能的指标很多,每一项的选型都对摄像头成像产生很大的影响,同时各个指标之间又是相互制衡的关系,所以各个大厂在对摄像头选型时候一般会根据产品定位去做选型,会考虑性价比。
Camera模组主要性能参数:
1、视觉分辨率(Visual Resolution)
2、色彩还原(Color)
3、白平衡(White Balance)
4、灰阶(Gray Scale)
5、成像均衡性(Imaging Uniformity)
6、曝光亮度差(Exposure)
7、缺陷像素(Defect pixels)
8、畸变(Tv Distortion)
9、对角线视场角(Maximum Angle of field of View)
10、帧率(Frame Rate)
各个Camera厂商会根据摄像头成像效果进行一套评估,即客观测试标准书,测试涉及光源、拍摄对象、评测算法。光源包括CIE标准光源,涉及D65、D50、荧光、A光、H光;拍摄对象包括ISO 1000图卡、24色卡、灰阶卡等;评测算法一般通过评测软件计算,如imatest、DXO评测软件等。 ::: 以上只是简单了解了一下IPS流程中会涉及到的概念,具体需要的时候再详细理解。
然后就去OpenISP这边学习了解了一下,具体的流程参考下图:
image.png

ISP-坏点校正 (DPC)

一、出现原因

1.感光元件芯片自身工艺技术瑕疵造成以及长期使用造成的瑕疵; 2.光线采集存在缺陷;

二、坏点分类

1.hot pixel: 固定保持较高的像素值,一般呈现为画面高亮的点; 2.dead pixel: 固定保持较低的像素值,一般在画面中呈现为暗点; 3.noise pixel:信号强度随光照呈现的变化规律不符合正常的变化规律;

三、矫正方法

1.静态矫正:通常由sensor厂商在生产后进行标定,把所有坏点的坐标位置记录下来,然后矫正的时候直接通过查表得方式找到坏点进行矫正。(此种方法无法适应因长期使用造成的后期瑕疵情况) 2.动态矫正:就是在ISP算法中通过特殊得算法判断一个点是否为坏点,如果是坏点就行行矫正,否则原样输出;

这里动态矫正的方法我看了一下PINTO 和中值滤波 两种方法,主要思想都是通过像素点的异常亮度 或是 突出的梯度值来寻找,但各有各的缺点,
PINTO的主要思想就是 坏点变化肯定不均匀,就看坏点与周围像素点的差异值,如果均小于或大于周围八个点则和阈值比较,然后均值替换处理,缺点是对边缘效果不好,但我感觉无伤大雅

中值滤波就是看梯度,但是嘛,梯度这个东西计算量还是比较大的,但是大多数或者效果好多少这个我不清楚,需要实验证明,还有就是可不可以尝试这种方式:就是边缘部分用梯度,其余中间用PINTO这种混合的方式?
主要参考自:https://blog.csdn.net/qq_41939460/article/details/124653370

ISP-黑电平补偿 (BLC)

黑色的最小值。Sensor感光全零数据时,对应Sensor输出的最小信号值。

形成原因

1,sensor将模拟信号转换到数字信号时,由于转换精度限制无法将电压值很小的一部分给区分开来,故需要加上一个值来保证图像暗部细节。
2, 电流噪声的干扰,只要sensor工作必然存在电流噪声干扰。这样即使全黑环境,sensor输出依然有信号强度,量化后必然不为零。

矫正位置

由于BLC的存在,使图像信号不是线性数据,故其矫正一般放在ISP的最前端,即sensor输出数据后,直接进行矫正,以使后续数据为线性数据。

矫正方法

在Bayer数据域进行。以8bit数据为例,sensor输出数据范围为[blc,255],实际表示的亮度范围为[0,255-blc]。而8bit数据最终输出的亮度范围为[0,255].
这其实就有两种矫正方法:
1,将blc减掉后,直接乘一个系数使其数据范围达到[0,255],即
Out=gain*(In-blc)
2,直接减掉blc,不乘系数,利用后续的gamma等其他提升亮度的方法,使最终图像输出范围达到[0,255]

镜头阴影校正 (LSC)

image.png
Lens Shading指画面四角由于入射光线不足形成的暗角,同时,由于不同频率的光折射率差别,导致 color shading。因此需要镜头阴影校正(Lens Shading Correction)。lens shading分为两种 luma shading( 亮度阴影)和 color shading (色彩偏差)。
处理方式:

  1. 找到RGB三通道的圆心(一般选择为同一个点)
  2. 以同心圆的形状将画面的中心和画面的边缘的三通道乘以不同的增益

image.png
image.png

抗混叠噪声滤波器 (ANF)

(这个完全不明白意义,挖个坑在这吧,hhh)
抗混叠滤波器(英语:Anti-aliasing filter,缩写AAF)是一种放在信号采样器之前的滤波器,用来在一个重点波段上限制信号的带宽,以求大致或完全地满足采样定理。此定理表示,当在奈奎斯特频率之上的频率功率为零时,从其信号的采样可实现无模糊重建。现实中的抗混叠滤波器会在带宽与混叠之间取舍。可实现的抗混叠滤波器一般允许出现一些混叠,或者减弱一些靠近奈奎斯特极限的频内频率。因此,许多实用的系统采样会高出实际的需求,以保证所有的重点频率都可重建,这种实践的方式称为过采样

自动白平衡增益控制 (AWB)

目的:移除由于光源亮度带来的的偏色来还原色彩
出现原因:
1.光源环境的色温变化。
不同色温情况下,同一物体的反射光谱会不一样,从而导致物体在不同色温的光源照射下呈现的颜色不同
2. 拍摄器材(如COMS SENSOR)本身所固有的色彩通道增益的偏差
人眼具有颜色恒常性,可以不管照明光的光谱成分如何变化,人通常能像在白光下一样来分辨物体颜色,而camera等图像采集设备是不具备该特性的。
常用算法:
全局白平衡法
其认为对于所拍摄的全部图像的RGB三色分量的统计平均值应该近似相等或者其UV分量的统计平均值应近似为零,全部区域的UV分量的统计平均值作为白平衡校准的依据。
局部白平衡法
视觉搜索拍摄图像的最亮区域为白色区域,该区域的RGB三色分量的统计平均值应该近似相等或者其UV分量的统计平均值应该近似为零,以该区域的UV分量的统计平均值作为白平衡校准的依据。
局限性
当环境过量或者过暗时,全局白平衡算法几乎完全失效,而当所拍摄的图像中无白色存在时,局部白平衡算法得到的数值是失实的。

滤色器阵列插值 (CFA)

CFA
在彩色光电摄影中,可以通过分光,使用三个传感器分别捕获红,绿,蓝三个通道的颜色分量。但为了降低成本,绝大部分成像系统中采用单芯片CMOS,CCD传感器结合彩色滤镜阵列(color filter array,CFA) 的方式捕获彩色图像,虽然牺牲了物理分辨率,但简化了结构,降低了价格。做法是在每个感光像素的上面覆盖一个语物理像素相同面积大小,但分别只让红,绿,蓝光线透过的滤镜。如图1所示是Bryce Bayer与1976年发明并注册专利的Bayer格式彩色滤镜阵列,被广泛运用于现代数码相机,摄像机和手机摄像头中。

image.png

伽马校正 (GC)

有关于 Gamma 矫正存在的原因大概有下面几种说法:
1.由于古早时期的 CRT 显示器的显示亮度和电压并不是呈线性的关系,所以需要一个非线性的电压->亮度的映射公式,呈 2.2(实际上是 1.8~2.5 之间) 倍左右的指数关系。
2.人眼对于自然光线的亮度增长不是线性关系,而是和亮度的增长率呈现线性关系,人眼感知亮度->物理亮度映射是约为 2.2(实际上是 1.8~2.5 之间) 左右的指数关系。
3.由于人眼对亮度主观感受并不是呈现线性关系,人眼对暗部感受更加明显,在 8bit 的颜色存储系统中我们希望更多的存储暗部信息,亮部信息可以删减一点。

我的理解是:2是目前最主要的原因,然后次要的是3,但是要对3修改一下,比如HRD 和 生动的高对比度图像,就是不同的成像风格,这个矫正的曲线可以因人而异。

色彩校正矩阵 (CCM)

色彩空间转换 (CSC)

CSC: Color Space Convert, 色彩空间转换,rgb2yuv或yuv2rgb
在isp中,一般是rgb2yuv,转成yuv有2个目的:
1)进行锐化,降噪等操作
2)便于编码

亮度和色度噪声滤波器 (NF)、
边缘增强 (EE)、
伪色抑制 (FCS)、
色调/饱和度/控制(HSC)
亮度/对比度控制(BCC)

ISP中涉及到的颜色空间域,以及相应的处理

image.png

Bayer Domain

RGB Domain

YUV Domain

ISP中的3A算法是指?

ISP中的AWB(和实验室我们研究的有什么区别?)

前面有简单的介绍,ISP中的AWB算法主要是统计一个全局的平均值,但是实际上这种可能不准,而且在暗弱光场景下就容易失效,我们实验室研究的纯色场景下的AWB算法根据角度误差来做的训练。

ISP中的AE(我们的曝光评估算法是否可以用上?目前的深度学习AE算法流程)

曝光由光圈、曝光时间、ISO三者共同决定。
对于手机以及其他电子产品使用的微型摄像头,光圈大小是固定的,所以手机拍照的曝光由曝光时间和增益(ISO)来控制。
自动曝光就是 自动调节曝光时间、光圈、ISO进行曝光,使得所摄物体亮度正常。
自动曝光的标准:
物体的亮度与色彩是由物体对光线的反射率来决定的。例如纯黑色的反射率是0,纯白色的反射率是100%,处于中间的灰度的反射率是18%,这就是18%中间灰度。
相机在各种场景下无法识别物体的反射率,于是统一将图像整体平均亮度设置为中性灰的亮度。该方法基于 科学家认为自然界的平均反射率是18% 这一理论。当然,这个理论不是万能的,雪景的亮度肯定大于18%,白增黑减。18%的灰色可以在sRGB空间中近似地用值R,G,B = 118,118,118表示
自动曝光的算法:
1、 均值法AE
Input = 255 x (Output/255)gamma
Output是我们期望的曝光输出值,也就是18%灰的曝光强度,Gamma一般都是2.2。在灰度卡上以0~255为计算区域的话,那么18%灰的Ouput就是122,Input就是50。也就是测光区域的实际曝光强度应该为50。

2、 N段式统计法
调节ISO最主要的副作用就是会同时增强噪点,如果把暗光下的图片放大多倍,噪点就会非常明显;通常是优先调节曝光时间,但是曝光时间也有个上限,必须要在33ms内完成才能保证每秒30fps的预览帧率。
N段指的就是ISO的不同段,优先保证ISO较小的情况下调节曝光时间,当曝光时间到极大值仍不能满足时再将ISO调大一级再重新调整曝光时间。
image.png
3、 平均亮度法
对图像所有像素亮度求平均值,通过不断调整曝光参数最终达到目标亮度。
1) 对当前图像进行亮度统计
2) 根据当前图像亮度确定曝光值
3) 计算新的曝光参数,曝光时间、光圈、增益
4) 将新的曝光参数应用到相机
5) 重复1-4,计算出一个目标亮度。

曝光原理
Global Shutter
1、整幅场景通过同一时间曝光实现的,senor所有像素点同时收集光线,同时曝光
2、曝光开始,sensor收集光线,曝光结束,光线电路被切断,sensor读出一整副图片
3、CCD就是Global Shutter,所有元素同时曝光
Rolling Shutter
1、 sensor逐行曝光,曝光开始,sensor扫描逐行曝光,像素点都被曝光
2、 所有的曝光快速完成,不同行曝光时间不同

image.png
image.png
————————————————
版权声明:本文为CSDN博主「小郭是小可爱」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38360181/article/details/118930485