颜色校正CCM

概要:1 CCM定义及出现的原因;2 CCM的算法设计;3 注意事项


1. CCM是什么以及出现的原因

1.1 CCM是什么

Color Correction Matrix (CCM)是一个由至少俩矩阵合在一起的矩阵。

如图1所示一般的ISP流程,在去马赛克过后就进行了CCM。之后再进行Gamma校正。

颜色校正CCM_第1张图片

图 1 ISP示例

Gamma之后ISP中的空间就变成了非线性sRGB空间了。但必须在这之前进行sensor_RGB空间XYZ空间的转换再到线性sRGB空间的转换。

1.2 CCM出现的原因

是因为颜色空间的转换。如图2所示是CCM之前和之后的对比图。可以明显看出差别。

颜色校正CCM_第2张图片

图2 CCM之前和之后对比图

2 CCM的算法设计

图3可知,由sensor_RGB空间分别经过  和  以及 校正完成。其中,sensorRGB空间我们称之为“源色彩空间",非线性sRGB空间称之为“目标颜色空间”,目前,我们能够得到源色彩空间的“不饱和图”对应的24色色快,也有非线性sRGB空间的“饱和图”对应的24色色快,而  和  的数值是已知的,那么,只需要将非线性sRGB空间的图片经过反  校正然后再转换到XYZ空间,那时就可以和sensorRGB数值联立从而求得矩阵  ,继而求得  。

颜色校正CCM_第3张图片

图 3 空间转换示意图

具体算法大致分两类:模型法和经验法。模型法是希望通过设备呈色机理进行研究,因为用的少,在此不作介绍。经验法是一种“暴力”法,直接通过输入和输出期望得到一个映射,本文将介绍两个典型算法,多项式拟合和三维查找表(3D-LUT)法。

 

2.1 多项式拟合(最小二乘)

首先对非线性sRGB做反Gamma校正得到线性sRGB,

 = 

之后,将线性sRGB转换至XYZ空间,

 =  * 

这时我们可以得到如下式,

其中,m是色块的大小,如果取24色卡,则m=24,n为每个色块的平均颜色值,n=3,显然m>n,这是过定问题,可得,

求得,

总结:

这种算法是ISP中最常用到的拟合方法,简单有效。但毕竟是非线性映射的线性模拟,所以误差在所难免。

 

2.2 3D-LUT

三个步骤。

分割:把源空间按照一定的采样间隔划分成栅格,如图4所示,

颜色校正CCM_第4张图片

图 4 RGB空间和Lab(权且当作XYZ)空间的分割示意图

重构:建立源空间和目标空间之间的联系;

重构的质量跟重构采取的映射,插值算法有关。从映射的角度来说,从sensor_RGB转到XYZ空间是一种非线性映射,所以需要找非线映射的函数,可想而知,神经网络的效果会很好,历史文章证明了BP算法在转换中的有效性,CNN显然也可以作用在此处。从插值算法的角度来说,比如四面体插值,如图5所示,源空间四个点为p0,p1,p2,p3,目标空间的对应值分别是q0,q1,q2,q3,如果输入点为p,则对应的输出值q为:

其中,  =  表示权值,  为各个顶点与输入点的距离。这只是一种加权方式,还有很多种。

颜色校正CCM_第5张图片

图 5 四面体插值示意图

建表:将源空间数据和目标空间数据按照次序放入表中,形成查找表;

总结:

查找表用途广泛,精度也很高,但是因为占用内存太多被弃之不用。

 

3 注意事项

  • 为什么实际ISP中一个光源需要一个CCM

因为在sensorRGB空间转换到XYZ空间的时候,不同光源下组成的sensorRGB不一样,所以转换矩阵会很不一样。

  • CCM只是改变饱和度吗

不是。也改变了彩色色差。严格来说,学术领域研究的Color Constancy和AWB并不能划等号,我更偏向于认为Color Constancy=AWB+CCM。

  • CCM出现的最本质原因是什么

是因为相机的感光曲线和人类并不相同,  矩阵其实是在弥补CIE1931RGB系统光谱三刺激值坐标轴的负数部分。

  • CCM还有什么作用

可以调节颜色风格。只需要修改一些参数即可,具体可实际摸索,很简单。

  • CCM缺陷在哪里,需要注意什么

会增强彩色噪声,所以低照度下的CCM是个问题。

  • CCM和AWB的评价空间为何不同

CCM在Lab空间进行评测。我认为,AWB不在Lab评测的原因在于AWB很多算法只能估计得到色度值(r,g),所以没有办法转换到Lab.

 

https://zhuanlan.zhihu.com/p/34562544?edition=yidianzixun&utm_source=yidianzixun&yidian_docid=0IY7xYSG

你可能感兴趣的:(图像处理与机器视觉)