目录

最小二乘法介绍

带约束条件的最小二乘法

计算法获取AB矩阵

实拍法获取B矩阵

完全实拍获取AB矩阵

总结


在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。

带约束条件的最小二乘法

所以,在求解的过程中需要加入约束条件。其推导过程如下(由于敲公式太费劲了,用手写的)。

这样就可以算出M矩阵,必然能够保证M矩阵的行和为1。

计算法获取AB矩阵

下面再介绍如何得到A矩阵和B矩阵,A矩阵我们当作是目标值,这个可以是CIE1931标准观察者空间得到RGB值,这个值和设备不相关了,对指定光源下,可以计算出其值

∫ρ (λ) *R(λ)*stdxyz(λ)

该值是在XYZ空间,且还没做白平衡,所以需要使用色适应计算caMat,可以使用Branford或者CAT02计算,然后再转到sRGB色域或者P3色域,这样就能得到A矩阵。

而B矩阵是和camera相关的,如果能有相机的相应曲线,那么可以使用同样的方法,计算其值,

∫ρ (λ) *R(λ)*S (λ)

同样的,然后做白平衡,即可得到B矩阵。

那么整个计算流程如下图

实拍法获取B矩阵

当然,有时,我们没法知道sensor的响应曲线,那么,可以采用实拍的数据,不过这样需要测环境光源曲线,要保证A矩阵里使用相同的光源曲线。

那整个流程如下:

完全实拍获取AB矩阵

如果有竞品手机,可以在相同光源下,同时用两台手机对色卡进行拍照,从而获取到AB矩阵。整体流程如下:

需保证照片的色域是相同的,不能一个sRGB,一个P3 AWB对齐;亮度对齐,饱和度对齐,都是竞品手机向调试手机对齐,AWB对齐是为了让得到的CCM不会带有倾向,不影响AWB,亮度对齐是为了,计算CCM时无亮度影响,更多的考虑颜色, 二次计算和饱和度对齐是为了色度优先,尽可能保证色相准确性,牺牲饱和度。

总结

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

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

最小二乘法计算CCM相关推荐

  1. 【LINGO】最小二乘法计算产品属性的效用函数

    目录 最小二乘法计算产品属性的效用函数 最小二乘法计算产品属性的效用函数 MODEL: TITLE 最小二乘法计算产品属性的效用函数; SETS:PRICE /H, M, L/ : P; SAFETY ...

  2. 线性回归最小二乘法计算步骤以及sklearn参数介绍

    介绍 线性回归是特征与标签之间建立一个关系来描绘特征和标签之间的关系. 预测函数的本质就是我们构建的模型,而构造的函数核心就是找出模型的参数向量w 最小二乘法(解析解)求解W 通过已知的MSE损失函数 ...

  3. 最小二乘法计算一组数据的斜率(线性回归、趋势计算)

    def compute_trend(*y):"""计算数据的趋势(线性回归求斜率,最小二乘法),https://blog.csdn.net/qq_45607873/art ...

  4. [贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心

  5. 最小二乘法在ISP CCM标定中的简介

    一.基础知识 假设我们有16幅名人脸部灰度图像,我们是否可以找到16幅脸部图像的线性组合,使得其线性组合最接近于目标脸部图像呢? 名人库 我们知道灰度图像可以用矩阵表示.假设有如下灰度图. 我们可以用 ...

  6. 【ISP】浅析CCM

       对于正常人而言,睁开眼的一刹那,便能看到五彩斑斓的世界.各种形形色色的物体不断映入我们的眼帘,刷新着我们对这个世界的感知.在遇到美好的场景后,我们通常也会以文字.图画.照片或者视频等方式将其记录 ...

  7. matlab基础入门之教你如何实现最小二乘法(附MATLAB代码)

    今天博主主要是从如何使用MATLAB实现最小二乘法,首先给出今天重点使用的两个函数. p=polyfit(x,y,n):最小二乘法计算拟合多项式系数.x,y为拟合数据向量,要求维度相同,n为拟合多项式 ...

  8. [机器学习-原理及实现篇]线性回归-最小二乘法

    线性回归到底要干什么,顾名思义很简单,即在已有数据集上通过构建一个线性的模型来拟合该数据集特征向量的各个分量之间的关系,对于需要预测结果的新数据,我们利用已经拟合好的线性模型来预测其结果.关于线性回归 ...

  9. 线性最小二乘法(附MATLAB代码)

    本文部分转载自优化算法交流地的文字,转载仅作学习使用. 用n次多项式拟合给定数据. 注意:对于非线性曲线,例如指数曲线\(y=a_{1}e^{a_{2}x}\),拟合前需做变量代换,化为对\(a_1, ...

  10. PFC电源设计与电感设计计算学习笔记

    PFC电源设计与电感设计计算 更新于2018-11-30 课程概览 常见PFC电路和特点1 常见PFC电路和特点1 CRM PFC电路设计计算 CCM PFC电路设计计算 CCM Interleave ...

最新文章

  1. matlab与acess连接问题
  2. qa 芯片测试_智能硬件产品的测试经验总结
  3. 还在“葛优躺”?伤腰还容易脊椎变形!
  4. android切换到上个页面,Android 返回上一个界面刷新数据
  5. 配置redis三主三从
  6. 成功的秘诀是什么_学习编码的10个成功秘诀
  7. 【Redis】三、Redis安装及简单示例
  8. 智能问答机器人python_帮帮智能问答机器人中TaskBot任务对话算法实践
  9. 为什么打印机打印照片模糊_家用喷墨打印机打印照片不清楚怎么办 是什么原因?...
  10. android studio拼音转汉字,汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快
  11. 外网访问计算机远程桌面掉线,[转载]远程桌面一连就经常掉线的解决方法
  12. Win10 Edge浏览器假死解决方案
  13. QA:filter-自适应均衡器
  14. Mysql主从备份数据库服务器搭建
  15. StrStrI 与 strstr
  16. selenium模拟浏览器解决反监测,获取cookies解决登录问题
  17. 计算机如何修改任务管理器,win7如何更改任务管理器快捷键_win7更改任务管理器快捷键的教程...
  18. [原创]关于搭建企业级应用的AJAX框架
  19. 序文 【IT圈是个什么玩意儿 1 】
  20. 计算机考试打字多快才有用,书记员考试打字诀窍(提高速度)

热门文章

  1. 91位图和bigemap哪个好用
  2. 上海大华条码称代码_大华条码秤设置方法
  3. 基于springboot汽车租赁系统
  4. python ocr识别身份证_如何使用Tesseract训练基于Python的OCR以使用不同的国家身份证?...
  5. 交换机基本原理与配置(包含ensp交换机配置命令)
  6. html+js实现分页功能
  7. 基于Java毕业设计幼儿园教育管理信息系统演示2021源码+系统+mysql+lw文档+部署软件
  8. PySide6精简教程
  9. ipad一直卡在白苹果_近万字多图带你玩转iPad——iPad指南
  10. 阿里巴巴分布式调度引擎tbschedule实战三tbschedule的调度原理