ISP图像调试----CCM

本文探讨了在图像处理中,由于传感器差异和AWB模块影响,如何通过CCM(色彩补偿矩阵)在RGB域进行校正。文章详细解释了CCM的工作原理,并介绍了转盘调试法和使用24色卡进行色彩校准的方法。

1.1 背景
由于不同厂家sensor的RGB响应曲线与人眼不同,且图像经过ISP Pipeline中AWB模块处理后存在偏差,因此需要在RGB域进行颜色校正以还原人眼感知效果,CCM模块在ISP Pipeline中位置如图所示:
在这里插入图片描述

1.2 CCM含义
如下是CCM的公式,其中[R,G,B]表示上一个模块即demosaic模块对图像进行插值后每个像素的RGB值; [R’ G’ B’]表示经过CCM模块后每个像素的RGB值;由公式1.2可以看出C11、C21和C31分别决定经过CCM后每个像素红色通道的饱和度、红通道中绿色的比例和红通道中蓝色的比例;C12、C22和C32分别决定经过CCM后每个像素绿色通道中红色的比例、绿色的饱和度和绿色通道中蓝色的比例;C13、C23和C33分别决定经过CCM后每个像素蓝色通道中红色的比例、蓝色通道中绿色的比例和蓝色通道的饱和度。
在这里插入图片描述

2.1 转盘调试法
在这里插入图片描述
在这里插入图片描述

2.2 24色卡RGB值在这里插入图片描述在这里插入图片描述

3、经验

以在调试中经常遇到的问题为例加以说明,当遇到蓝色偏紫的问题时,可以减少蓝色通道中的红色分量比例(即C13),为了满足式1.3,同时增加红色的饱和度(即C11);当绿色偏黄时,可以减少绿色中的红分量比例(即C12),为了满足式1.3,同时增加红色的饱和度(即C11);当红色偏橙时,可以减少红色中的绿色分量比例(C21),为了满足式1.3,同时增加绿色的饱和度(C22),或者增加红色中的蓝色分量比例(C31),为了满足式1.3,同时减小蓝色的饱和度(C23),当红色偏蓝时反之。三原色的色彩偏差调好后,便可根据具体问题继续微调,肤色偏黄,增加绿色中的蓝分量比例(C32);肤色偏红,增加蓝色中的红色分量比例(C13);黄色偏红,增加蓝色中的红分量比例(C13),或者减少蓝色中的绿色分量的比例(C23),黄色偏绿反之。

### CCM调试方法与技巧 CCM(色彩校正矩阵)用于调整图像的颜色准确性,使捕获到的颜色更接近真实场景中的颜色。为了实现这一目标,需要精确计算并优化CCM矩阵中的九个系数。 #### 数据采集准备 确保测试环境光线稳定均匀,使用标准色卡作为拍摄对象可以提供可靠的参考数据[^1]。这有助于后续分析过程中减少外部因素干扰带来的误差。 #### 初始参数设定 基于设备制造商提供的默认值或者先前经验设置初始CCM矩阵,在此基础上进行微调能够加快收敛速度并提高最终效果的质量。 #### 迭代优化算法应用 采用最小二乘法或其他合适的数学模型来迭代求解最优解。每次更新后都需重新评估当前配置下输出图片质量的变化情况直至满足预设精度要求为止。 ```python import numpy as np def least_squares_ccm(known_colors, measured_colors): """ 使用最小二乘法计算CCM矩阵 参数: known_colors (numpy.ndarray): 已知的标准RGB颜色数组 measured_colors (numpy.ndarray): 测量得到的RGB颜色数组 返回: ccm_matrix (numpy.ndarray): 计算得出的最佳CCM转换矩阵 """ A = np.hstack((measured_colors.T, np.ones((3, 1)))) B = known_colors.T X, _, _, _ = np.linalg.lstsq(A.T @ A, A.T @ B, rcond=None) ccm_matrix = X[:9].reshape((3, 3)) return ccm_matrix ``` #### 结果验证流程 完成初步调试之后,应当利用更多样化的样本集进行全面检验,确认不同光照条件下都能保持良好的表现一致性;同时也要关注特殊色调区域如肤色再现能力等方面的表现特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值