【无标题】

目录
最小二乘法介绍

    带约束条件的最小二乘法

    计算法获取AB矩阵

    实拍法获取B矩阵       

    完全实拍获取AB矩阵

    总结

1.最小二乘法介绍
在ISP通路里,有个CCM(Color Correction Matrix)模块,这个模块就是个3x3的矩阵,其目的就是将与设备相关的颜色空间,转到和设备无关的颜色空间。
这个模块可以用最小二乘法计算得到,先介绍下最小二乘法。
在这里插入图片描述
其中,我们规定其中B为3xN的矩阵,A为3xN的矩阵,M为3x3矩阵。可以认为M为CCM矩阵,A为目标色卡RGB或XYZ值,B为camera的RGB值,N为色卡的数目,一般为24色卡或者SG色卡,由于CCM矩阵是3x3矩阵,所以,一般用24色卡即可。

    要想计算出M,则有

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可得
在这里插入图片描述
当然,ISP里的CCM模块,不仅仅是一个3x3矩阵,实际上,为了保证经过CCM之后,AWB的白点不变,即保证白还是白的,需要满足另一个条件,那就是必须保证CCM矩阵的行和为1。而用上面的公式得到的M并不会保证3x3的矩阵行和为1。
2.带约束条件的最小二乘法
所以,在求解的过程中需要加入约束条件。其推导过程如下
在这里插入图片描述

在这里插入图片描述
这样就可以算出M矩阵,必然能够保证M矩阵的行和为1。
3.计算法获取AB矩阵
下面再介绍如何得到A矩阵和B矩阵,A矩阵我们当作是目标值,这个可以是CIE1931标准观察者空间得到RGB值,这个值和设备不相关了,对指定光源下,可以计算出其值
在这里插入图片描述
该值是在XYZ空间,且还没做白平衡,所以需要使用色适应计算caMat,可以使用Branford或者CAT02计算,然后再转到sRGB色域或者P3色域,这样就能得到A矩阵。

而B矩阵是和camera相关的,如果能有相机的相应曲线,那么可以使用同样的方法,计算其值,
在这里插入图片描述
同样的,然后做白平衡,即可得到B矩阵。

那么整个计算流程如下图
在这里插入图片描述
4.实拍法获取B矩阵
当然,有时,我们没法知道sensor的响应曲线,那么,可以采用实拍的数据,不过这样需要测环境光源曲线,要保证A矩阵里使用相同的光源曲线。

    那整个流程如下:

在这里插入图片描述
5.完全实拍获取AB矩阵
如果有竞品手机,可以在相同光源下,同时用两台手机对色卡进行拍照,从而获取到AB矩阵。整体流程如下:
在这里插入图片描述
需保证照片的色域是相同的,不能一个sRGB,一个P3 AWB对齐;亮度对齐,饱和度对齐,都是竞品手机向调试手机对齐,AWB对齐是为了让得到的CCM不会带有倾向,不影响AWB,亮度对齐是为了,计算CCM时无亮度影响,更多的考虑颜色, 二次计算和饱和度对齐是为了色度优先,尽可能保证色相准确性,牺牲饱和度。

    6.总结
    这个过程是计算指定光源下的CCM矩阵,实际中,不同光源对应的CCM不同,所以需要计算出多种光源下的CCM矩阵,比方说,D65,LED5000K,TL84,AH等光源下,然后通过AWB计算出的白点色温,根据色温大小或者光源类型,选择对应的CCM矩阵,中间可以采用插值的方式,得到最终使用的CCM阵,只要不选错CCM,效果基本上不会差。 

    当然,由于CCM是3x3矩阵,是线性的,而sensor的响应曲线到人眼标准观察者空间是非线性的,所以,一般不能保证每个颜色都是准确的,也就是用对应的CCM矩阵算出各个色块的色差,某些色块的色差会比较大,还需要后处理模块来进行二次修正。

————————————————
原文链接:https://blog.csdn.net/zhognsc08/article/details/123603902
o/flowchart.js/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值