摄像头自动曝光,自动对焦,自动白平衡,ISP,图像处理及色彩模型,色彩空间


参考链接:

1.凹凸思 https://www.zhihu.com/people/jiao-tao-52

2.纸上浅谈 https://glumes.com/post/ffmpeg/understand-yuv-format/

1.名词解释

  • 相对视见率 :相对视见率是指某波长光的视见率与555nm黄绿光的视见率的比值。人眼对不同波长的光的相对视见率不同。

  • 立体角:立体角的单位为立体弧度(cubic radian,cu.rd),一个立体弧度为半径1 米的球面上1 平方米面积所张的立体角。

  • 光通量(Φ):指人眼所能感觉到的辐射功率,它等于单位时间内某一波段的辐射能量和该波段的相对视见率的乘积。单位:流明。

    • 即,单位时间内某一波段的辐射能量和该波段的相对视见率的乘积等于光通量。
    • 由于人眼对不同波长的光的相对视见率不同,所以不同波长的光的辐射功率相等时,其光通量并不等 [2] 。
    • 1流明定义,是频率540X10ˇ12HZ,波长0.555微米的光,辐通量为(1/683)瓦特的单色辐射的光通量
  • 发光强度(光强cd):在给定方向上的单位立体角发出的光通量.单位为坎德拉(cd),光通量单位为流明(lm),立体角单位为sr,故1cd=1 lm/sr。

  • 亮度(辉度Lv):指发光体光强与人眼所“见到”的光源面积之比,定义为该光源单位的亮度,即单位投影面积上的发光强度.单位:坎德拉/平方米(cd/m^2)

  • 感光度(ISO):是衡量底片对于光的灵敏程度的量.

    • a. 胶片相机的感光度:是胶片对光线的化学反应速度,也是制造胶片行业中感光速度的标准。
      b. 数码相机的感光度:是一种类似于胶卷感光度的一种指标,实际上,数码相机的ISO是通过调整感光元件的灵敏度或者合并感光点来实现的,也就是说是通过提升感光器件的光线敏感度或者合并几个相邻的感光点来达到提升ISO的目的。(简单的说:感光度就是传感器的对光的敏感程度。)感光度越高,对光的敏感度越高,曝光值也会越高。
      c. 感光度的参数和表述:感光度一般使用前缀ISO+参数的方式来表述感光度的数值如:感光度 100可以写成ISO100
      d. 感光度常用的数值:ISO50、 ISO100 、ISO 200、ISO400、ISO800、ISO1600、ISO3200、ISO6400 (在光圈快门相同的情况下,感光度每增加一倍,曝光量便会增加一倍。)
  • 曝光量

    • 在这里插入图片描述
    • ①AV是孔径值: AV = 2 * log2 (F number) ,F number是镜头的光圈F值,如F5.6,F值就是5.6。
    • ②TV是时间值: TV = - log2 (exposure time) ,exposure time是曝光时间单位是秒sec。
    • ③BV是被摄景物的亮度: BV =log2(B/0.3K) , B是景物亮度单位是Cd/cm2。 LV=BV+5。
    • ④SV是感光材料的感光度值: SV = log2(0.3S), ISO100的S值就是100.
    • ⑤EV是曝光量: 则曝光公式为:
      • 在这里插入图片描述

2.1 AE(Auto Exposure)自动曝光

2.1.1 AE算法思想和曝光量公式

(1)AE的基本概念:Auto Exposure即自动曝光,是相机根据外界光线的强弱自动调整曝光量和增益,防止曝光过度或者不足的一种机制。

在这里插入图片描述

可见,一般是再YUV色彩模型下,自动曝光AE模块的输入为当前影像的亮度值Y,输出为sensor的曝光时间和增益,isp增益和镜头光圈(如果镜头光圈可调)。当AE algorithm得到当前帧的亮度后,便会与target Y做比较,然后计算出下一次需要调整的参数,以便让影像的亮度越来越接近target Y,如下所示(target并非一个固定值,而是一个range)。

如果我们强制改变camera sensor的曝光判断标准,获得用户想要的效果:

  • 通常的做法就是改变Y值均值的预期值,使得sensor在自动曝光时以新的Y预期值为目标,自动调整Exptime 和AG。

在这里插入图片描述
(2)影响曝光的因素:
AE算法的要求是“快,准,稳”。即要很快的能收敛到target附近,而且亮度要准确,收敛过程要平滑,收敛完成后要稳定。

影响AE算法的因素:图片亮度的统计,AE target,AE table,收敛速度控制。

实际操作中调节的因素有:

  • 调节曝光时间;
  • 调节光圈大小;
  • 调节Sensor的ISO感光度

(3)AE控制模块:

在这里插入图片描述

(4)调节曝光的方法步骤和算法:

A.读入现在设定值所得到的亮度值;

B.经过AE weight table后得到我们想要计算的亮度;

C.将得到的计算值,趋近我们的期望值(如:135);

D.计算出一组新的设定值;

E.重复以上动作,直到亮度值在我们的期望值收敛范围内(Example : 131~139)。

在这里插入图片描述

(5)曝光时间的控制:

因为Sensor本身并没有时间的概念,它是通过pixel clock数和pixel clock的频率来表示sensor曝光时间的。为了得到简便的表达方式,就用曝光行数表示曝光时间了。曝光行数=pixel clock数/每条line的pixel数。 只需要知道sensor的pixel clock频率和每行的pixel数(有效pixel+dummy pixel),便可以计算出任何曝光时间,sensor需要曝光多少行。

(6)sensor曝光过程:

​ 如下图过程可见,曝光是逐个像素从上往下进行的,当读到图中红色块时就说上面的五行已经曝光完成了,也说明sensor的曝光时间是5条lines。
在这里插入图片描述

(7) AE table:

在这里插入图片描述不同的曝光时间和ISO组合方式,表和图示如下:
在这里插入图片描述

(8)AE 收敛

在这里插入图片描述
et是曝光时间;agc指sensor的感光度sensorgain即sensor的ISO值;iris是光圈值的大小。

收敛的概念就是无限趋近。

(9)AE中的问题:flicker,过曝、曝光不足、AE peak、AE震荡等。

Flicker:

现象:图像因为sensor曝光时间不是光源频率的整数倍导致图像上出现Banding即明暗相间的条纹。

产生原因:

曝光时间小于1/100秒,且曝光时间处于波峰时,图片亮度比较亮曝光时间小于1/100秒,且曝光时间处于波谷时,图片亮度比较暗

从能量的角度看,就是当sensor逐像素吸收外界能量成像时,外界能量有时大有时小,像素就有的亮有的暗。因此产生flicker现象。

解决办法:

所以只有曝光时间=光源周期的整数倍的时候,保证每个像素吸收的光能是稳定的。

才可以避免flicker。国内市电,50HZ.

在这里插入图片描述

AE Peaking:AE的峰值,图像亮度平稳时,突然出现亮度高的画面。

AE震荡:图像亮度忽明忽暗。

2.1.2 测光模式

①平均测光,取画面亮度均值作为曝光依据,画面主体、背景亮度差异大时,容易造成曝光过度或者曝光不足的现象。

在这里插入图片描述
②中央点测光(Spot Metering),仅测量中央很小范围内景物的亮度作为自动曝光依据,

在这里插入图片描述
③多点测光(Multi-Spot Metering):简单理解为点测光+记忆装置,拍摄时使被摄体中不同的部位,先后位于取景视场中心进行点测光,照相机内的电子线路将每次的结果记忆下来,并按各点的平均值进行曝光。可兼顾画面不同部分的亮度,精度高,操作麻烦。多点测光适合于拍摄风景、人像等静止不动的物体,不适合拍摄动体

④中央重点测光,是平均测光与点测光方式的折衷形式,中央部分亮度权重较高,边缘权重较低 能同时兼顾被摄主体和四周景物的亮度,因此对被摄主体的测光精度较高,尤其适合于拍摄带风景的人物照片。但对于亮度不均匀或反差太大的场合,容易造成曝光过度或者曝光不足的现象。

⑤局部测光:佳能首创,中央重点加权平均测光和点测光方式的折中,测光区域较点测光大。

在这里插入图片描述
⑥分区式测光(Multi-Pattern Metering),又称多幅面测光、多模式测光或区域分割式测光,主要原理是将画面分成几个区,先测取每个区的亮度,然后经过综合计算,从而决定每个区域的测光加权比重,给出一个能兼顾各区的曝光值。从理论上讲,分区式测光方式都具有自动逆光补偿能力。

在这里插入图片描述

2.1 GAMMA 算法

参考:https://blog.csdn.net/ghostyu/article/details/7912880

在多数数码相机和拍照手机上都可以看到曝光级别设定的功能,如前所述,这种设定实际上是在自动曝光的基础上给用户提供一定的曝光控制能力,强制改变camera sensor的曝光判断标准,获得用户想要的效果。通常的做法就是改变Y值均值的预期值,使得sensor在自动曝光时以新的Y预期值为目标,自动调整Exptime 和AG。

曝光的均值正确了,不代表整体图像的亮度分布就和人眼所看到的保持一致了。事实上,人眼对亮度的响应并不是一个线性的比例关系,而各种涉及到光电转换的设备的输入输出特性曲线一般也是非线性的,对于sensor来说,其响应倒是接近为线性关系,所以为了在各种设备上正确输出符合人眼对亮度的响应的图像,就需要进行校正。幂函数的指数的倒数就是通常所说的 gamma 值。

在这里插入图片描述

Gamma校正的原意是针对CRT显示器的,由于CRT显示器是通过电子束撞击荧光屏产生亮光来实现图像的显示。但是由于电子束的能量与产生的亮光的大小不成正比,而需要通过Gamma校正来使两者对应起来。但在图像质量调整中Gamma校正失去的原来的意义。它能起到的作用很多,它几乎可以影响到图像质量调整的各个方面。在图像质量调整中,Gamma校正的一个重要作用是体现细节,增强对比度。由于人眼对于高亮度的差别感觉不明显,而对低亮度的细小差别感觉较为明显,因此,Gamma校正通过将低亮度部分的差距拉大,而造成低亮度部分的细节能够被人眼明显的感觉出来,而图像的细节部分基本上都是纯在于低亮度部分的。

一般来说Gamma曲线是一条向上凸的指数曲线。横坐标表示输入数据,纵坐标表示输出数据。经过Gamma校正后,图像数据就会依据曲线上点的横坐标和纵坐标,把输入的图像数据校正成输出的图像数据。举例来说,假设曲线上有一个点的坐标是(100,120),那么输入图像数据中所有值为100的数据,在输出图像数据中都会变成120。一般的理解,认为Gamma校正能够提高亮度,其实这样理解并不完全对。也就是说Gamma校正并不能提高图像的整体亮度。它的作用就是将Sensor送过来的原始数据进行非线性调整为另外一组数据。因为在低值部分的Gamma曲线的斜率超过1,那么校正后的数据,在低值部分的差距会被拉大,而在高值部分的斜率小于1,那么高值部分的数据之间的差距会变小。这样的图像数据,处于低值的细节部分会被提升的更明显,而高值部分的由于人眼感觉本来就不会很明显,因此也不会造成图像细节的损失。

通常对于Window 的输出显示系统,gamma值为2.2,而对于苹果的输出显示系统和打印系统来说,gamma值为1.8。由于指数运算需要消耗大量的CPU时间,所以实际的做法,往往是将gamma曲线用比如12段线段进行拟合。这样只需要保存13个点的数据,用线性变换或查表的方式进行gamma校正。要调整gamma校正实际上也就是调整这13个点的数值。

对比度的调整在一定程度上说,其实也就是对gamma曲线的调整,增大对比度就是提Gamma 值。对于图像处理来说,也有在硬件 gamma 校正后,单独由软件再进行一次类的幂函数变换来调整对比度。

2.2 AF(Auto Focus) 自动对焦

2.2.1 光学原理

​ 透镜成像:成像点不一定落在焦平面上面,需要通过调整镜头,使成像点落在焦平面上面,使sensor清晰成像,这个过程就是聚焦过程。

在这里插入图片描述
2.2.2 AF 基本方法

在这里插入图片描述

(1)Lens-motion-type AF移动镜头:根据图像的清晰度(一般为边缘信息)或者物距信息,通过AF算法判断对焦情况,从而计算镜头的移动方向和大小,然后驱动电路使镜头移动来改变聚焦位置。

(2)Lens-modification-type AF改变焦距:通过liquid lens或者solid-state electro-optical devices这些可变焦的器件来改变镜头的焦长。

(3)Extended depth of field AF (EDOF)全焦技术:通过光学和数字信号处理技术集合,对光学信息编码,再用计算机信息处理技术解码,使得景深得到扩展,从而实现无运动部件的AF功能。

(4)手机摄像头多使用AF是VCM驱动镜头前后移动的方案。通过给线圈通电流,在永磁体的作用下,使镜头前后移动,同时前后两个弹簧片控制移动位置。

在这里插入图片描述
2.2.3 摄像头中AF系统示意图

在这里插入图片描述
这里的AF算法的信息基础有被动式和主动式两类。

采用对比度法,手机摄像头的AF系统架构图如下:

在这里插入图片描述
2.2.4 AF 算法流程

在这里插入图片描述

在这里插入图片描述
2.2.5 AF算法中信息收集方法

基于镜头与被摄目标之间距离测量的测距方法。

A、三角测量法:由电路控制可动反光镜的转动,当透射光影和反射光影的重合时可以计算距离。

B、红外线测距法:由照相机主动发射红外线作为测距光源,并用红外发光二极管的转动代替可动反光镜的转动。需要一个获得当前照片对比度的设备来量测

超声波测距法:该方法是根据超声波在摄像机和被摄物之间传播的时间进行测距的激光测距法:基于调焦屏上成像清晰的聚焦检测方法。

A、对比度法 :手机上通过获得照片的Focus Value (Edge)来判断当前位置的清晰度,通过检测影像的轮廓边缘实现自动调焦的。

B、相位法PDAF。该方法是通过检测像的偏移量实现自动调焦的。

2.2.6 AF算法中图像清晰度评价方法

(1)常用的图像清晰度评价方法:

A、图像统计:

  • 灰度熵法(灵敏度不高) ;

在这里插入图片描述
pi是图像中灰度值为i的像素出现的概率,L为灰度级总数

  • 灰度方差法 – SMD filter ;
  • 直方图法。

B、图像边缘检测:

Laplacian算子(中心算子);
Sobel算子(highpass filter) (有一个水平方向算子,一个垂直方向算子,取最大值);
Robert算子(一个左上右下对角线算子,一个右上左下对角线算子) ;
Prewitt算子(有一个水平方向算子,一个垂直方向算子,取最大值)

C、空间域特征 :tenengrad filter(能量梯度函数)。

(2)函数举例

能量梯度函数:

在这里插入图片描述
Laplace算子:

在这里插入图片描述
模数偏差总和SMD(sum-modulus-difference)算 子:

在这里插入图片描述
2.2.7 AF算法中找最佳对焦点的方法

曲线拟合

在这里插入图片描述
(1)测得局部最大值peak点(FV):计算当前Step对应的FV值,判断当前FV值是不是在此前连续记录的四个step点FV值中的最大值,是最大值的话,就再判断它是否大于next Step点的FV值。用此方法判断极大值点,若有噪声造成step-FV曲线的微小波动,则通过各波动区域的极大值点对比,以最大值作为局部的MAX点。

(2)拟合曲线获取最佳对焦位置:因为step并不连续,测得Peak点的可能并不是真正最佳的对焦点,此时可通过poly fit曲线拟合的方法来找peak点。对于step-FV曲线采用

y=ax^2+bx+c

​ 就可以近似拟合,采用max point点和前、后相邻两个点,共三个点采用最小二乘法拟合抛物线。将抛物线的顶点最为最佳对焦点,反馈给VCM控制电路来驱动Lens移动到最佳对焦位置。

AF Table
根据不同距离处物体在sensor上成像的边缘信息即FV(Focus Value)值,绘制多条step-FV曲线。图中虚线表示每个物距处,图像认为清晰时可接受的最小FV值,虚线以上FV对应景深范围内物体成像信息。

在这里插入图片描述
根据上图绘制对应的step-DOF(Depth Of Field)曲线

在这里插入图片描述
连续对焦
连续对焦:连续对焦中并不是找到焦点就停止,而是根据场景的变化不停的找最佳对焦位置,这样就需要判断镜头移动方向,这里也是主要使用爬山算法。不同颜色格式对焦
在这里插入图片描述
在这里插入图片描述

2.3 AWB(Auto White Balance) 自动白平衡

1 色温
https://blog.csdn.net/lx123010/article/details/108538411
色温的定义:将黑体从绝对零度开始加温,温度每升高一度称为1开氏度(用字母K来表示),当温度升高到一定程度时候,黑体便辐射出可见光,其光谱成份以及给人的感觉也会着温度的不断升高发生相应的变化。于是,就把黑体辐射一定色光的温度定为发射相同色光光源的色温。

    常见光源色温:
    光源                                              色温(K)
    钨丝灯(白炽灯)                    2500-3200k
    碳棒灯                                          4000-5500k
    荧光灯(日光灯,节能灯)   4500-6500k
    氙灯                                               5600 k
    炭精灯                                          5500~6500k
    日光平均                                      5400k
    有云天气下的日光                     6500-7000k
    阴天日光                                      12000-18000k

随着色温的升高,光源的颜色由暖色向冷色过渡,光源中的能量分布也由红光端向蓝光端偏移。

值得注意的是,实际光源的光谱分布各不相同,而色温只是代表了能量的偏重程度,并不反映具体的光谱分布,所以即使相同色温的光源,也可能引起不同的色彩反应。

人眼及大脑对色温有一定的生理和心理的自适应性,所以看到的颜色受色温偏移的影响较小,而camera的sersor没有这种能力,所以拍出来的照片不经过白平衡处理的话,和人眼看到的颜色会有较大的偏差(虽然在这种情况下人眼看到色彩的和白光下真实的色彩也有偏差)。

太阳光色温随天气和时间变化的原因,与不同频率光的折射率有关:

波长长的光线,折射率小,透射能力强,波长短的光线,折射率大,容易被散射,折射率低,这也就是为什么交通灯用红色,防雾灯通常是黄色,天空为什么是蓝色的等等现象的原因。

知道了这一点,太阳光色温变化的规律和原因也就可以理解和分析了,留给大家自己思考。

2 色温变化时的色彩校正

所以从理论上可以看出,随着色温的升高,要对色温进行较正,否则,物体在这样的光线条件下所表现出来的颜色就会偏离其正常的颜色,因此需要降低sensor对红色的增益,增加sersor对蓝光的增益。同时在调整参数时一定程度上要考虑到整体亮度的要保持大致的不变,即以YUV来衡量时,Y值要基本保持不变,理论上认为可以参考RGB->YUV变换公式中,RGB三分量对Y值的贡献,从而确定RGAIN和BGAIN的变化的比例关系。但实际情况比这还要复杂一些,要考虑到不同sensor对R,B的感光的交叉影响和非线性,所以最佳值可能和理论值会有一些偏差。

2.3.1 什么是AWB

不同色温环境下,通过ISP的算法调整,抵消色温引起的偏色,使得拍出来的成像效果接近人眼视觉习惯.

2.3.2 为什么要做AWB

因为camera和人眼存在差异.

对人眼,是主观的,本质上白色的物体,不同色温,反射光线颜色是不一样的,但是经过我们的视觉系统的校正后还是白色的.对于camera,是客观的,不同色温,反射光线颜色不一致,直接成像就会出现和人眼不一样的效果,也就是色偏.所以需要AWB,这个AWB就是类似于经过我们的视觉系统校正.

3 自动白平衡原理

原理:

自动白平衡是基于假设场景的色彩的平均值落在一个特定的范围内,如果测量得到结果偏离该范围,则调整对应参数,校正直到其均值落入指定范围。该处理过程可能基于YUV空间,也可能基于RGB空间来进行。对于Sensor来说,通常的处理方式是通过校正R/B增益,使得UV值落在一个指定的范围内。从而实现自动白平衡。

特殊情况的处理

在自动白平衡中,容易遇到的问题是,如果拍摄的场景,排除光线色温的影响,其本身颜色就是偏离平均颜色值的,比如大面积的偏向某种颜色的图案如:草地,红旗,蓝天等等,这时候,强制白平衡将其平均颜色调整到灰色附近,图像颜色就会严重失真。

因此,通常的做法是:在处理自动白平衡时,除了做为目标结果的预期颜色范围外,另外再设置一对源图像的颜色范围阙值,如果未经处理的图像其颜色均值超出了该阙值的话,根本就不对其做自动白平衡处理。由此保证了上述特殊情况的正确处理。

可见,这两对阙值的确定对于自动白平衡的效果起着关键性的作用。

一个实际应用的例子

            色温                  RGAIN         GGAIN         BGAIN
    阴天  7500k          0XCD              0x85            0x80
    日光  6500k           0xA3             0x80            0x88
    荧光灯 5000k       0xA5              0x80           0x88
    钨丝灯  2800k      0x80               0x81            0xA4

    可以看到随着色温的升高,其变化规律基本符合上节中的理论分析。

调试和验证

具体参数的调整,应该在灯箱环境下,使用各种已知色温的标准光源对标准色卡拍摄,在Pc机上由取色工具测量得到其与标准色板的RGB分量上的色彩偏差,相应的调整各分量增益的比例关系。为了更精确的得到结果,曝光量增益的设置在此之前应该相对准确的校正过。

2.3.3 AWB算法有那些

1.最大亮度法

2.灰度世界法

3.色域界限法

4.图框区域分割法

5.光源预测法

6.完美反射法

7.动态阈值法

8.模糊逻辑法

颜色相关特效处理

5.1 grayscale (灰阶)

灰阶图的效果就是将彩色图片转换为黑白图片。

理论上,在YUV空间,将UV分量丢弃,只保留Y分量,这样就可以得到黑白图像,这也是彩色电式机信号能兼容黑白电视机的原理。如下图理论上Y值一样的颜色(右边是用acdsee转成灰度图的效果),在grayscale模式下看应该是一样的颜色。

算法上的操作,理论上应该把UV值改成灰色对应数值(128)就可以了。不过根据软件算法和硬件结构的不同,具体代码也会有不同。

5.2 sepia / sepiagreen / sepiablue

所谓的复古(绿,蓝)就是在灰阶的基础上,对UV值额外再做了一个offset,将灰度图转换成某种颜色的梯度图。理论上为了获得蓝色效果,应该增加蓝色差信号,减小红色差信号。即增大U,减小V。

5.3 negative

所谓负片效果,就是将图像的颜色反转,看起来就像是在看胶片底片时的效果。这从理论上也很容易理解和处理,就是在RGB空间,取其补色,具体的操作就是用255分别减去RGB得到新的RGB值。通常会在ISP中实现该功能。

5.4 小结

理解了原理,要做出其它颜色变换方面的效果就很容易了。
基本上,在颜色校正和处理方面,需要考虑的相关参数大致包括:

自动WB上下限,自动白平衡时的目标范围,RGB gain, UV gain, UV offset, color correction.有些还会有saturation 和 hue相关的设置。

从sensor或ISP硬件处理的流程上说,通常方向是先做RGB gain,再做color correction,最后做YUV空间的处理。所以调整效果的时候,为了减少参数之间的相互影响,基本上也可以按这个顺序来调整参数。

2.4 ISP(Image Signal Process)

通常的ISP data patch:

在这里插入图片描述
(1)BLC(Black Level Correction)/ Black Level Compensate (OBC) :黑电平校正。所谓黑电平就是在DNP下,将曝光时间和增益都调到最小时拍摄图片的亮度值,理想情况下应该是0,但是实际中因为sensor暗电流作用,全黑像素值大于0。(这一个值,在后面可能会受到AWBGain,CCM,Gamma的影响)。

(2)DPC/BPD(Defect Pixel Correction/Bad Pixel Detect):坏点校正/坏点检测。相机中成像坏点一般是白色或者黑色的点,和周围像素点的差异明显。

(3)FPN(Fix Pattern Noise):固定模式噪声。由于CMOS每个感光二极体旁都搭配一个ADC 放大器,如果以百万像素计,那么就需要百万个以上的 ADC 放大器,但是每个像素结构中的光电二极管的尺寸、掺杂浓度、生产过程中的沾污以及MOS场效应管的参数的偏差等都会造成像素输出信号的变化。对于给定的单个像素它是固定的。通常消除固定模式噪声采用“双采样降噪”方法,这是CMOS 感光器件特有的一种降噪方式。在光线较暗的环境下使用时,画面会有明显的噪声,这时通过对景物进行两次不同曝光率和敏感度的采样,然后将两次采样的结果进行综合处理,就可以有效解决低照度下的图像噪声问题。

在这里插入图片描述
(4)LSC(Lens Shading Correction)/Color Shading :阴影校正。Lens Shading是由于镜片从边缘到中心对入射光线的反射程度不同,造成拍摄均匀亮度的画面,图像从中心到边缘亮度不均匀逐渐变暗。Color Shading是由于Lens从中心到边缘,其R、G、B变暗的速率不一样,总体表现就是Gb/Gr像素值差异较大,两个像素之间有细微纹理。找出shading的distribution,然后用最小的模型来建模将其导入

在这里插入图片描述
Correction原理:

在这里插入图片描述
找到中心点后,以中心点为原心,向周围以圆为单位补Gain,离中心点越远,补的越大

(5)Flare offset:光学上称Flare也叫stray light,耀斑补偿。镜片的表面反射或镜筒、反光镜组的内面所引起的反射光,到达底面后造成画面整体或一部份产生了雾蒙,降低了图像的鲜锐度。镜片的镀膜及内面防反射处理的加强,固然可以大幅度地减少光斑,但被摄体的状况并不相同,不可能完全消除。

在这里插入图片描述
(6)AE(Auto Exposure):自动曝光。

(7)AF(Auto Focus):自动对焦。

(8)AWB(Auto White Balance ):自动白平衡。解决环境光不同色温导致整幅图片偏色的情况。

(9)DM(Demosaicing/Color Filter Array Interpolation/CFA插值):CMOS Sensor出来的RawData是Bayer格式的图像,每个像素只有一个通道的信息。DM是将Bayer格式的图像恢复成每个像素用RGB三通道表示的方式。DM的主要依据是图像在平滑的局部区域,各分量的ratio是相等的。插值算法的好坏会影响图片的细节,如摩尔纹。

在这里插入图片描述
(10)CCM(Color Correction Matrix/ DSC color calibration):颜色校正矩阵。拍摄color checker24色板,将相机拍摄图片值与色板标准值之间进行对比(RGB颜色空间),得出一组能将拍摄值校正到最接近标准值的3x3矩阵。通过这个矩阵对所有相机拍摄的图片进行颜色校正。

(11)NR(Noise Reduction/Denoise):去噪。采用特定的LPF(Low Pass Filter)对图片进行滤波,滤除图像的噪声成分,而Bilateral filtering即双边滤波器,它是一种保护边缘的平滑滤波器,这样既可以滤除噪声,edge又可以保留下来。

在这里插入图片描述
(12)EE(Edge Enhancement/Edge Sharpening):锐化,边缘增强。通过滤波器获取图像的高频分量,按照一定的比例将高频部分和原图进行加权求和获取锐化后的图像。

在这里插入图片描述
(13)DRC/HDR(Dynamic Range Compression/ High-Dynamic Range):宽动态。高动态图像的拍摄出来的结果通常会有,亮部太亮,暗部太暗的问题。DRC是调整图像暗部亮度使之变亮,调整亮部亮度使之变暗,而且保持图像的对比度。

(14)PCA/VDE:Hue,Saturation,Contrast,Brightness调试。单独针对Hue,Saturation,Contrast,Brightness各图像分量进行调节。

(15)Histogram:直方图均衡化。重新分布图片的亮度。使图片的亮度分布更加均匀。

(16)FlashLight Control:闪光灯控制

(17)Cross talk:Optical cross-talk是当主光线进光角度过大,导致光线不能有效地进入本像素的Microlens内,而是进入相邻像素单元或其他无效区域内的现象。

在这里插入图片描述
Electric cross-talk:相邻单元之间的光生少数载流子通过衬底扩散和漏电相互影响造成相邻单元的现象。

在这里插入图片描述

上述原因导致结果都是图像在对角线上相邻两个像素的Gr和Gb value差异较大而产生不平滑的纹理状。

(18)Gradation Control(GDC):可能是对图像数据精度进行的操作

(19)Scaler:对图像进行缩放,缩放的过程中采样和插值直接影响图像的细节质量。

(20)Adaptive tone scale:(这个没有办法处理多种场景)进来的影像,根据histogram,可以调节,让其明暗亮度的曲线比较好看。因此,它最重要的就是histogram equalization,其关键是在哪个domain去做。目前我们的做法应该是在L*做histogram,但只做edge的histogram,这样就ok了。

(21)Dynamic Range Compression:就是把暗的地方变亮一些,亮的地方变暗一些。AE的主要目的是避免亮度饱和的pixels,其余exposure的pixel可以通过DRC校准回来。

(22)gamma:所谓伽玛校正就是对图像的伽玛曲线进行编辑,以对图像进行非线性色调编辑的方法,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果。计算机绘图领域惯以此屏幕输出电压与对应亮度的转换关系曲线,称为伽玛曲线(Gamma Curve)

在这里插入图片描述

3.0 色彩感应及校正

参考:https://blog.csdn.net/ghostyu/article/details/7912846

1 原理

人眼对色彩的识别,是基于人眼对光线存在三种不同的感应单元,不同的感应单元对不同波段的光有不同的响应曲线的原理,通过大脑的合成得到色彩的感知。 一般来说,我们可以通俗的用RGB三基色的概念来理解颜色的分解和合成。

我们来看下以下是正常的RGB光谱
在这里插入图片描述

理论上,如果人眼和sensor对光谱的色光的响应,在光谱上的体现如下的话,基本上对三色光的响应,相互之间不会发生影响,没有所谓的交叉效应。

但是,实际情况并没有如此理想,下图表示了人眼的三色感应系统对光谱的响应情况。可见RGB的响应并不是完全独立的。

在这里插入图片描述

下图则表示了某Kodak相机光谱的响应。可见其与人眼的响应曲线有较大的区别。
在这里插入图片描述

2 对sensor的色彩感应的校正

既然我们已经看到sensor对光谱的响应,在RGB各分量上与人眼对光谱的响应通常是有偏差的,当然就需要对其进行校正。不光是在交叉效应上,同样对色彩各分量的响应强度也需要校正。通常的做法是通过一个色彩校正矩阵对颜色进行一次校正。

在这里插入图片描述

该色彩校正的运算通常是由sensor模块集成或后端的ISP完成,软件通过修改相关寄存器得到正确的校正结果。值得注意的一点是,由于RGB -> YUV的转换也是通过一个3*3的变换矩阵来实现的,所以有时候这两个矩阵在ISP处理的过程中会合并在一起,通过一次矩阵运算操作完成色彩的校正和颜色空间的转换。

3. 色彩模型

参考:https://blog.csdn.net/lx123010/article/details/108538411

实际上颜色的描述是非常复杂的,比如RGB三基色加光系统就不能涵盖所有可能的颜色,出于各种色彩表达,以及色彩变换和软硬件应用的需求,存在各种各样的颜色模型及色彩空间的表达方式。这些颜色模型,根据不同的划分标准,可以按不同的原则划分为不同的类别。

名词解释:

1、色彩模型:用于表达色彩空间的方法。(wiki:用一定规则来描述(排列)颜色的方法)
2、色彩空间:实际的各种颜色的集合。
3、色域:对象可表示的色彩范围(色彩空间的子集)。(wiki:色域只是指某个对象能表示色彩范围,而不同色彩空间的色域大多是根据色彩空间设计者的具体需求和应用场景,人为决定的。)

可以一句话举例: 我们使用RGB色彩模型,在一定色彩排布规则下,我们使用Adobe RGB色彩空间,但是我们的显示器的色域无法完全覆盖色彩空间,但是显示器的色域还是超出了人类可见色域。

3.1 色彩模型,色彩空间,色域

在一个色彩模型下可以有不同的色彩空间,它们根据排列的条件的不同会有不同的色域(所能表示色彩的范围)和含义,色彩模型只有具体到一种色彩空间上才有实用性。

色域只是指某个对象能表示色彩范围,而不同色彩空间的色域大多是根据色彩空间设计者的具体需求和应用场景,人为决定的。

比如某显示器能显示的色彩范围是 xxx ,就可以设计一个刚好包含包含这个范围的色彩空间。比如用于数字电影的 ACES 系统的色域完全包括并超出了人类可见色域:

在这里插入图片描述

色彩空间和色彩模型是容易混淆的概念,色彩模型是把色彩按规则排列的模型,而色彩空间是其在一定条件下排列的结果,在一个色彩模型下可以有不同的色彩空间,它们根据排列的条件的不同会有不同的色域(所能表示色彩的范围)和含义,色彩模型只有具体到一种色彩空间上才有实用性。Adobe RGB、sRGB、Apple RGB 就是同在 RGB 色彩模型下的不同色彩空间。

3.1.1 匹配任意可见光所需的三原色光比例曲线

对于sensor来说,我们经常接触到的色彩空间的概念,主要是RGB , YUV这两种(实际上,这两种体系包含了许多种不同的颜色表达方式和模型,如sRGB, Adobe RGB, YUV422, YUV420 …), RGB如前所述就是按三基色加光系统的原理来描述颜色,而YUV则是按照 亮度,色差的原理来描述颜色。

3.2 常见色彩模型

1.RGB

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.YUV,YCbCr,YIQ

​ YUV 是一种目的为把颜色的视觉亮度分离来建立的色彩空间,Y (Luminance) 代表颜色的视觉亮度,U、V 则是剩余的色彩分量。
​ 与 HSB、HSL 的亮度或明度不同,视觉亮度代表的是颜色在人实际感受的亮度,之所以不同是因为不同色相的颜色的视觉亮度是不同的,比如纯绿色和纯蓝色,HSB 和 HSL 的模型里他们的亮度是一致的,但是在人眼中纯绿色明显要亮很多。

​ 一般的 YUV 模型中红绿蓝的视觉亮度比是:0.299:0.587:0.114

​ YUV 模型是在 1938 年法国工程师 Georges Valensi 为彩色电视制定的模型,为的是在彩色电视信号传输中用 Y 视觉亮度通道能与黑白电视共用一个信号通道,达到既向下兼容黑白电视信号,又节约信号带宽的目的。
YCbCr 通常被当做 YUV 的另一种形式,相比 YUV, Cb 和 Cr 通道分别更向红、蓝偏移,而且通常进行压缩。YCbCr 常用在图像压缩领域,JPEG 图片内部的色彩空间就使用 YCbCr 模型。

​ YIQ 是另一种视觉亮度拆分模型,与 YUV 很相似,是 NTSC 彩色电视的标准,国内不太常见,因为国内用的是 PAL 标准,PAL 标准使用的是 YUV

在这里插入图片描述

3.CMY,CMYK

​ 印刷色彩模式。C是青色Cyan、M是品红色Magenta、Y是黄色 Yellow,而K是Black最后一个字母。印刷色大多是根据这CMY三种颜色的油墨按照不同比例调出的。

​ CMY 是与 RGB 相对应的颜色,青、洋红、黄分别是红、绿、蓝的补色,也就是说颜色中青色成分越多代表红色成分越少,洋红、黄与蓝、绿也是这个关系,CMY 实际上相相当于在 RGB 都为 100% 的基础上减少颜色,比如 20%的 C 相当于 100% – 20% 的蓝。这就是根据反射光的减色原理制度的模型,用于颜料。

​ 在现实中由于颜料的纯度达不到理想的纯度,所以用 CMY 混合无色彩的灰、黑是很困难的,所以就增加了一个专门的黑色通道:K,(之所以不用 B (Black)来表示黑是为了不与蓝色(Bule)混淆),印刷界使用的色彩模型就 CMYK,所以它又被称为 印刷四分色模型。

在这里插入图片描述
4.HSB/HSV,HSL

在这里插入图片描述
HSB 与 HSL 是很相似的 2 个色彩空间,都是把色相与饱和度、亮度分离,不同的是 HSB 和 HSL 对亮度、饱和度拆分不同, HSB 的 B 明度(Brightness)是从黑色到色相颜色,而 HSL 的 L 亮度(Lightness)是从最暗到色相颜色再到白色,这意味着 HSL 取最大亮度时不管饱和度和色相如何都是白色,而 HSB 最大明度时是色相颜色,要达到白色还需要饱和度最小。

也就是说 HSB 的饱和度代表颜色远离白的程度,明度代表颜色远离黑的程度。而 HSL 的饱和度是颜色远离灰色的程度,亮度则代表了颜色在最暗到最亮之间的位置。
HSB 和 HSL 那种更方便一直是一场争论,PhotoShop 中拾色器使用的是 HSL 模型,而“色相\饱和度”命令用的是 HSB 模型,在 W3C 制定的网页标准中支持了 HSL 。

另外,HSL 实际上视觉亮度分布也很不均匀(同亮度值的颜色看起来实际亮度可能相差很大),所以有 HUSL 等对 HSL 改进的模型,它们视觉亮度分布更加均衡,对人类选择色彩更加直观(同亮度值颜色看起来亮度更加相等),不过由于计算更加复杂,并没有被广泛使用。

HWBphotaYCCLab

3.3 色彩空间

RGB模型色彩空间:

sRGB

Adobe RGB

Apple RGB

Prophoto RGB

ScRGB

CMYK模型色彩空间

Japan color 2001coated

US web coated(SWOP)

4. 图像格式及转换

4.1 常见图像格式

在这里插入图片描述 https://zh.wikipedia.org/wiki/图形文件格式比较

4.2 RGB,YUV颜色编码

4.2.1 RGB颜色编码

​ RGB 三个字母分别代表了 红(Red)、绿(Green)、蓝(Blue),这三种颜色称为 三原色,将它们以不同的比例相加,可以产生多种多样的颜色。

​ 在图像显示中,一张 1280 * 720 大小的图片,就代表着它有 1280 * 720 个像素点。其中每一个像素点的颜色显示都采用 RGB 编码方法,将 RGB 分别取不同的值,就会展示不同的颜色。

在这里插入图片描述

​ RGB 图像中,每个像素点都有红、绿、蓝三个原色,其中每种原色都占用 8 bit,也就是一个字节,那么一个像素点也就占用 24 bit,也就是三个字节。一张 1280 * 720 大小的图片,就占用 1280 * 720 * 3 / 1024 / 1024 = 2.63 MB 存储空间。

4.2.2 YUV 颜色编码

​ YUV 颜色编码采用的是 明亮度 和 色度 来指定像素的颜色。其中,Y 表示明亮度(Luminance、Luma),而 U 和 V 表示色度(Chrominance、Chroma)。而色度又定义了颜色的两个方面:色调和饱和度。使用 YUV 颜色编码表示一幅图像,它应该下面这样的:

在这里插入图片描述
​ 和 RGB 表示图像类似,每个像素点都包含 Y、U、V 分量。但是它的 Y 和 UV 分量是可以分离的,如果没有 UV 分量一样可以显示完整的图像,只不过是黑白的。

​ 对于 YUV 图像来说,并不是每个像素点都需要包含了 Y、U、V 三个分量,根据不同的采样格式,可以每个 Y 分量都对应自己的 UV 分量,也可以几个 Y 分量共用 UV 分量。

4.3 RGB 到YUV转换

​ 对于图像显示器来说,它是通过 RGB 模型来显示图像的,而在传输图像数据时又是使用 YUV 模型,这是因为 YUV 模型可以节省带宽。因此就需要采集图像时将 RGB 模型转换到 YUV 模型,显示时再将 YUV 模型转换为 RGB 模型。

RGB <-> YUV的转换

不比其它颜色空间的转换有一个标准的转换公式,因为YUV在很大程度上是与硬件相关的,所以RGB与YUV的转换公式通常会多个版本,略有不同。

常见的公式如下:
Y=0.30R+0.59G+0.11B
U=0.493(B-Y) = -0.15R-0.29G+0.44B
V=0.877(R-Y) = 0.62R-0.52G-0.10B

但是这样获得的YUV值存在着负值以及取值范围上下限之差不为255等等问题,不利于计算机处理,所以根据不同的理解和需求,通常在软件处理中会用到各种不同的变形的公式,比如实际上我们可能采用YCrCb模型,这里就不列举了。

体现在Sensor上,我们也会发现有些Sensor可以设置YUV的输出取值范围。原因就在于此。

从公式中,我们关键要理解的一点是,UV 信号实际上就是蓝色差信号和红色差信号,进而言之,实际上一定程度上间接的代表了蓝色和红色的强度,理解这一点对于我们理解各种颜色变换处理的过程会有很大的帮助。

​ RGB 到 YUV 的转换,就是将图像所有像素点的 R、G、B 分量转换到 Y、U、V 分量。

有如下公式进行转换:

在这里插入图片描述

​ 此时的转换结束后,每个像素点都有完整的 Y、U、V 分量。而之前提到 Y 和 UV 分量是可以分离的,接下来通过不同的采样方式,可以将图像的 Y、U、V 分量重新组合。

  • 13
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值