其他分享
首页 > 其他分享> > 颜色校正CCM

颜色校正CCM

作者:互联网

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


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

1.1 CCM是什么

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

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

图 1 ISP示例

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

1.2 CCM出现的原因

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

图2 CCM之前和之后对比图

2 CCM的算法设计

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

图 3 空间转换示意图

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

 

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

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

sRGB_{linearity} = (sRGB_{nonlinearity})^{\gamma}

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

XYZ_{m*n} = sRGB_{m*n} * (M_{n*n}^{1})^{-1}

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

sensorRGB_{m*n}*M_{n*n}^{2}=XYZ_{m*n},

其中,m是色块的大小,如果取24色卡,则m=24,n为每个色块的平均颜色值,n=3,显然m>n,这是过定问题,可得,M_{n*n}^{2}=(sensorRGB^{T}*sensorRGB)^{-1}*(sensorRGB^{T}*XYZ)

求得,

M=M^{2}*M^{1}

总结:

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

 

2.2 3D-LUT

三个步骤。

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

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

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

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

q=\omega_{0}*p0+\omega_{1}*p1+\omega_{2}*p2+\omega_{3}*p3,

其中, \omega_{i} = \frac{s_{i}}{\sum_{0}^{3}{s_{i}}} 表示权值, s_{i} 为各个顶点与输入点的距离。这只是一种加权方式,还有很多种。

图 5 四面体插值示意图

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

总结:

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

 

3 注意事项

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

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

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

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

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

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

 

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

标签:校正,颜色,XYZ,CCM,算法,sRGB,空间,转换
来源: https://blog.csdn.net/xiaoshuying/article/details/88842503