ISP模块解释1

ISP图像信号处理

引言

凡是在图像领域工作的人,都会经常听到ISP (Image Signal Process, 图像信号处理),知道ISP对图像质量非常重要。比如华为和小米竞争手机拍照和录像效果,主要的竞争领域就是ISP;做AI (Artificial Intelligence, 人工智能) 的人也知道,如果ISP不给力,后续的AI处理效果会受到影响。
ISP在图像的位置

Sensor的问题以及ISP的处理原理 镜头和Sensor的物理缺陷(不完美)导致以下问题,需要ISP模块去补偿。

问题一:Sensor有漏电流。

由于Sensor漏电流存在,刚把镜头放入一个全黑的环境,Sensor输出的原始数据不为0;而我们希望全黑时原始数据为0.
处理模块名称:BLC(BlackLevel Correction)------黑电平校正
处理原理:我们需要找到一个矫正值,所有像素值都减去这个值,就得到一个矫正成功的结果。一般情况下,sensor的传感器周边,还有一小部分区域是有感光器的,但是没有光透射进来。可以把这部分的传感器的信号作为矫正值,从可感光部分的信号中减去,就可获得校正后信号。
处理流程:在运行时调整,不需要依赖人工矫正。
处理效果:处理方案成熟。

问题二:通过镜头到达Sensor中间的光多于到达Sensor的边缘的光,即光学系统中的渐晕。

这是由于随着视场角慢慢增大,能够通过照相机镜头的斜光束将慢慢减少。导致Senor捕获的图像中间亮度高,周围边缘亮度低。
处理模块名称:LSC(Lens Shade Correction)------镜头阴影校正
处理原理:首先检测出图像中间亮度比较均匀的部分,认为这部分不需要矫正,然后以此为中心,计算出周围区域需要补偿的因子(增益)。实际项目中,可以把镜头对准白色物体,检查图像四周是否有暗角。
处理流程:在运行前依赖人工矫正。
处理效果:处理方案成熟。

问题三:Senor上有的像素点的输出有坏点。

由于Sensor是物理器件,有坏点是难以避免的;而且使用时间长了坏点会越来越多。通过在全黑环境下观察输出的彩点和亮点,或在白色物体下观察输出的彩点和黑点,就可以看到无规律的散落在各处的坏点。
处理模块名称:BPC(Bad Point Correction)------坏点校正 也叫Defect Pixel Correction(DPC)
处理原理:
第一步:检测坏点。在RGB域上做5x5的评估,如果某个点和周围的点偏离度超过阈值的点为坏点。为了防止误判,还需要更复杂的逻辑,如连续评估N帧。
第二步:纠正坏点。对找到的坏点做中值滤波,替换原来的值即可。
处理流程:在运行时调整,不需要依赖人工矫正。 处理效果:NA。

问题四:Cmos的Sensor采用了Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)。

按道理sensor输出的是RGB的raw data,每个像素点都感知RGB 3个分量的数字这样最准确。但是这样需要3套感光板,而且RGB的3套数据还需要时间同步和对齐,这样成本高,难度大。 所以,我们通常采用一个叫Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)的滤光板,放在一个感光板上。
如下图是一个8x8的分辨率的感光面板,图(a)中彩色部分是Bayer色彩滤波阵列,RGB三种颜色间隔排列。这样一次拍照就产生图(b)的RGB三幅图片,图片中彩色的是有感光数值的,白色空白是没有感光数值的点。我们需要通过Demosaic(颜色插值)的方法,把白色的像素点的值给补上。 图(b)绿色的像素点数目是红色或蓝色的2倍,是因为人类对绿色更敏感。Bayer图像阵列
注:Bayer色彩滤波阵列并不是唯一选择,它只是方案之一,由柯达公司科学家Bayer发明。华为P30pro夜间拍摄牛逼,用到了RYYB的滤镜阵列设计,RYYB就是将两个绿色像素(G)换成黄色像素(Y)替代, Y(红色和绿色组合)。
处理模块名称:Demosaic------颜色插值
处理原理:在补充图(b)中白色像素点的数值时,我们可以认为每个白色像素点的值,和他附近的同色点的值相近。所以,最简单的方法是内插法。Demosaic方法
Demasic方法2

处理流程:在运行时调整,不需要依赖人工矫正。 处理效果:较成熟。下图左侧是Demosaic前的,右图是Demosaic后的。

问题五:Senor获取的图像中有大量噪声。

Senor的感光器件包含模拟部分,所以信号中的噪声很难避免,ADC器件本身也会引入噪声。另外,当光线较暗时,整个系统需要将信号放大,这样噪声也跟着放大。 我们在看没有经过降噪处理的图片时,会感觉到图片上浮了一层彩色雪花点。
处理模块名称:Bayer Denoise-----去除噪声 处理原理:对图像进行降噪处理的传统方法有均值滤波、高斯滤波,本质是低通滤波器。
普通的高斯滤波只考虑像素的空间距离关系,这样会导致滤波后图像变得模糊,为了避免图像变模糊,就需要保持图像的边缘,这时,就还要考虑相邻像素和本像素的相似程度,对于相似度高的像素给予更高的权重,我们称这种滤波为双边滤波。
处理流程:部分参数可提前调校(tuning),如调整滤波强弱。
处理效果:比较成熟。

问题六:Senor获取的图像容易受到光源颜色的影响。

人类的视觉系统有一定的颜色恒常性特点,不会受到光源颜色的影响。实际生活中,不论是晴天、阴天、室内白炽灯或日光灯下,人们所看到的白色物体总是是白色的,这就是视觉修正的结果。人脑对物体的颜色有一定先验知识,可识别物体并且更正这种色差。
但是Sensor不具备这样的特点,比如一张白纸,在不同光线下,Sensor输出的是不同颜色,在低色温下偏黄,在高色温下偏蓝。如白炽灯照明下拍出的照片易偏黄;而在户外日光充足则拍摄出来景物也会偏蓝。
我们就需要,让不同色温光线条件下白色物体,Sensor的输出都转换为更接近白色。
处理模块名称:AWB(Automatic White Balance)------自动白平衡
处理原理:比较常用的WEB算法有灰度世界、完美反射法等。 灰度世界(Gray World)算法基于一个假设:平均来讲,世界是灰色的。所以,白平衡就是调整R/B增益,达到R、G、B 相等。
白平衡有3个步骤:
(1)检测色温,如果手工调节,就知道图像中什么位置是白色物体了,色温容易检测;如果是自动调节,就需要估计出(猜出)图像中的白色位置,这是最重要的一环; 实际计算中为了实时操作,减少计算量,通常选取某个特定区域(如图像中央)像素进行计算。但若图像颜色较为单一或选定区域正好落入大的色块(红光下的白墙),以上算法求得的色温会非常不准确。为此,必须根据一定的约束条件,挑选出白色像素来计算色差。
(2)计算增益,计算R和B要调整的增益;调整增益将Cb和Cr调整到0 (或接近0)的两个系数,即R=G=B。
(3)色温矫正,根据增益调整整幅图片的色温。 处理流程:自动校正。
处理效果:现阶段大多数的数码相机、拍照手机的白平衡的功能都已相当准确。
白平衡对色彩效果影响很大,一个好的算法能够使色彩效果更逼真,也可以利用白平衡达到艺术效果。
白平衡效果

问题七:Senor滤光板处各颜色块之间的颜色渗透带来的颜色误差。

所以,Sensor图像传感器获取的图像,与人们期望的颜色有距离,必须矫正。
AWB已经将白色校准了,CCM就是用来校准除白色以外其他颜色的准确度的,
处理模块名称:CCM(Color Correction Matrix)------颜色校正
处理原理:一般颜色校正的过程是首先利用该图像传感器拍摄到的图像与标准图像相比较,以此来计算得到一个校正矩阵,一般情况下,对颜色进行校正的过程,都会伴随有对颜色饱和度的调整。颜色的饱和度是指色彩的纯度,某色彩的纯度越高,则其表现的就越鲜明;纯度越低,表现的则比较黯淡。
用一个3X3的CCM矩阵来校准, 其中每一列系数r1+g1+b1等于一个恒定值1。Ccm矫正最终结果可以通过拍摄24色卡图片然后用imatest(一款专业的图像分析软件,具有强大的图像分析和处理功能)分析来做分析参考 处理流程:依赖手工校正。
处理效果:大家可以看到,右侧的24色卡图片是经过颜色校正的,色彩艳丽了很多。

问题八:人眼对暗部细节比Sensor敏感。

人眼不同于摄像机,接收光子来感知光线。比如:在一间小黑屋中每增加一盏灯,摄像机都能线性增加亮度。但是人眼在黑暗时增加一盏灯时感受明显,往后随着灯的个数增长人眼并不会有明显感受。如果将实验做成图表,如下图所示,蓝色为人眼,紫色为摄像机。
gamma曲线
处理模块名称:RGB Gamma------Gamma校正
处理原理:Gamma编码后的图像相比于线性编码的图像,明显有更多的暗部色阶。Gamma编码刚好满足了人眼对暗部细节敏感的特性。即人眼是按照gamma < 1的曲线对输入图像进行处理的(公式f(I)=I^gamma,I为原图像素值)。
现在常用的伽马校正是利用查表法来实现的,即首先根据一个伽马值,将不同亮度范围的理想输出值在查找表中设定好,在处理图像的时候,只需要根据输入的亮度,既可以得到其理想的输出值。 处理流程:可手工校正Gamma参数。

问题九:Senor的输出的Raw data是RGB,但是有的处理在YUV上更方便,且YUV存储和传输时更省带宽。

在YUV 色彩空间上进行彩色噪声去除、 边缘增强等更方便。
处理模块名称:RGBToYUV------色彩空间转换
处理原理:YUV 是一种基本色彩空间, 人眼对亮度Y改变的敏感性远比对色彩变化大很多, 因此, 对于人眼而言, 亮度分量Y 要比色度分量U、V 重要得多。所以,只有YUV444格式的YUV数据的比例是1:1:1,其他各种格式,如YUV422,YUV420等格式,UV的数据量都小于Y,达到节省存储空间和传输带宽的目的。YUV数据的概念就是这样简单。(在编程时查一下文档,再搞清楚内存排布即可)
第二,RGB和YUV转换有固定的公式。 另外, 在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。
YCbCr与RGB的相互转换:   
Y=0.299R+0.587G+0.114B   
Cb=0.564(B-Y)   
Cr=0.713(R-Y)  
R=Y+1.402Cr  
G=Y-0.344Cb-0.714Cr  
B=Y+1.772Cb
处理流程:实时计算,不需要提前调校。
处理效果:人眼看不出图像质量变化。

问题十:Senor一定曝光量下较暗部分或较亮部分的细节显示不充分。

自然界的中光强度很宽,而人眼对高亮,极暗环境的细节分辨能力相对较窄,而摄像头记录的范围更窄,真正的HDR技术就是记录视觉范围内高亮、极暗环境的中的细节分辨率。
为保证人眼看到的世界和显示器或者摄像头采集的图像的亮度范围相差无几,甚至更好,需要通过tone mapping,将暗处和亮出细节再现。这是一种纯粹为了视觉感受而进行的处理,并非真正的HDR。也有人称为WDR(Wide Dynamic Range)。
WDR

Reference

知乎-5分钟理解相机ISP (图像信号处理)

posted @   理想是书店店长  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示