为什么选择3*11矩阵,作者在 补充材料 有说到各个kernel function的表现
下图说明 3*11表现较好
Graham D Finlayson, Michal Mackiewicz, and Anya Hurlbert. Color correction using root-polynomial regression.IEEE Transactions on Image Processing, 24(5):1460–1470,2015.
和 Guowei Hong, M Ronnier Luo, and Peter A Rhodes. A study of digital camera colorimetric characterisation based on polynomial modelling. Color Research & Application,26(1):76–84, 2001.
这两篇论文可以读一下
借鉴ccc, ffcc 的特征提取方法
然后PCA特征降维作为图像特征。
根据图像特征搜索 k个最近邻图像和找到对应的颜色转换矩阵, 然后插值得到最终的颜色转换矩阵
该数据增强操作可以生成一个场景在各种色温下的图像。
1) 首先生成训练数据集: 1797个正确白平衡的sRGB 图像,每个图像对应两个风格(Camera Standard and Adobe Standard),每个风格包含 5个不同色温的图像, 因此每个正确的sRGB 伴随 10个其他色温图像。
2)颜色映射矩阵: 每个正确的sRGB 转换到 10个其他色温图像 对应的矩阵。本文使用的是 3*9矩阵.
3)计算特征: 计算正确白平衡的sRGB图像的 特征,同上。至此数据库所需要的数据计算完毕
4)predict:
input 一个正确sRGB图像,计算特征。 然后找到数据库中特征最相近的K个图像,根据距离计算weight, 然后插值得到最后的10个转换矩阵,生成其他10个色温类型的图像。
原理可以用下图概况:
同样利用颜色转换矩阵,但是没有训练集和K近邻插值。
目的是这样的:生成不同色温的图像,使之和isp输出的一致。
在jpg中嵌入 若干个色温的转换矩阵, 然后通过色温插值可以得到任意色温的图像。
原理框图如下:
一个色温x的sRGB图像,以及x_tiny版本
若干个色温y_i 的 sRGB图像 tiny版本:y_tiny_i
x_tiny 到 y_tiny_i的映射矩阵求出,文中用的是3*24的矩阵。
矩阵嵌入到jpg的metedata中, 想转换为其他色温,只需要乘上对应的颜色转换矩阵即可。
但是存在一个缺点,就是多项式方法 对于 不同亮度的图像得到的转换矩阵是不同的,这时如果训练的时候使用的图像亮度 和 预测的时候不同,可能会出现颜色偏差,效果不好。
如下图:
这样的多项式求得的矩阵 有更好的亮度保持性。
文章作者有证明。
结果表明:RPCC有很好的表现
这篇文章主要是在找24 color checker的ground truth。
这个目的的用处感觉不是很大,一般不都是sRGB 或者其他色域的标准值 作为groundtruth吗?
为什么还要根据数据集找到一个相机的groundtruth.
一般使用的时候也是已知 ground truth(自己的目标颜色,或者产品经理想要的效果), 然后通过最小二乘法求CCM即可。
不过还是说下
本文的几个概念:
diagonal matrix 没有 full matrix对 24 color 校正的好。
这肯定啦
在某些光源下,diagonal matrix 和 full matrix 的表现差不多(对于24 color的校正,不只是gray color), 如下图:
在daylight 6000K左右光源下, diagonal matrix 的校正效果接近 full matrix。
1)然后现有数据集一般都是只标灰块,没有24色的 gt, 因此作者想得到白平衡数据集中的24 color的gt, 如何得到呢?
还是找出6000k daylight 色温附近的图像,利用 diagonal matrix标定,得到24color作为gt.
主要框架如下稍微复杂:但原理很简单,就是找出 daylight 图像,标定,得到 gt.
以上就是为白平衡数据集 找到24色 的gt.
2)然后利用这个gt 优化得到 full ccm. 采用的方法是 Intensity independent rgb-to-xyz color camera calibaretion(AIC,2012), 说是比最小二乘方法应该好一些。
效果确实比 diagonal matrix好,看下图。
上面的标定或者最小二乘方法求CCM是有24色卡的情况,平时拍图没有色卡。awb自动白平衡,那么有没有自动ccm呢?
本文提出的这个观点比较新颖,自动ccm,是否有用呢,现代 ISP中肯定包括awb, 但是没有自动ccm。 自动白平衡->自动ccm.在一般手机isp中,标定若干特定cct下的ccm, awb算出当前cct, 插值得到ccm.
作者将两个自动白平衡方法 改造为 自动求full matrix来达到更好的白平衡。就是Bayesian method [24, 31] and
the Corrected-Moments method[14]
看懂这个论文首先要理解一般手机里面的isp
camera-raw(受光源影响)-> wb -> camera-XYZ -> ccm -> linear sRGB
其中wb 是不能完全去除光源的影响的,只能去除灰色块的光源的影响。
此外手机里的ccm 是 cameraXYZ -> XYZ -> sRGB 两个转换矩阵的结果。 论文中的ccm一般指 cameraXYZ -> XYZ
本文提出的方法描述的过程是
camera-raw(受光源影响)-> wb -> camera-XYZ -> ccm -> XYZ的过程。
其中 diagonal wb 得不到标准camera-XYZ, 造成 camera-XYZ 转换为 XYZ的 颜色转换矩阵 不是固定的。
理论上应该是固定的,camera-XYZ 到 XYZ。 但是由于只通过diagonal wb并不能很好的转换camera-raw到camera-XYZ。 除了灰块外的颜色都会受到光源的影响,因此需要标定不同的ccm, 现在手机isp中一般会预先标定多个色温的ccm, 然后online插值得到,文中说只预先标定2个不太准确。。。
通过diagonal wb 和 通过 full matrix 效果肯定是不同的,可以参考上一篇论文介绍,Beyond White: Ground Truth Colors for Color Constancy Correction
所以说如果使用full matrix做 color constancy, 各色温下的ccm其实是固定的了。
先标定若干个色温下的ccm
然后online计算的色温下的ccm通过 插值得到。
说是可以提高XYZ的精度, 其实就是把 ccm变换 交换位置,并不能提高精度。
图像效果对比,可以看出 method2相比method1没有提高太多精度,method1采用3各预先标定的ccm, 如果isp中采用更多,可以预计应该不会有太多差异。
一些实验的指标:
混光情况下的 awb
1)M 通过 small image提前计算好(计算开销小)
2)M应用在 SR 图像上得到 各种色温大图
3)大图下采样可以得到小图,小图输入网络得到weight
4)放大weight, 在大图上weight 插值得到 最终的结果
上一篇:白炭黑硅膏制作指南解析工艺与用途