为什么选择3*11矩阵,作者在 补充材料 有说到各个kernel function的表现
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.
这两篇论文可以读一下
然后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中, 想转换为其他色温,只需要乘上对应的颜色转换矩阵即可。
但是存在一个缺点,就是多项式方法 对于 不同亮度的图像得到的转换矩阵是不同的,这时如果训练的时候使用的图像亮度 和 预测的时候不同,可能会出现颜色偏差,效果不好。
如下图:
这样的多项式求得的矩阵 有更好的亮度保持性。
文章作者有证明。
这篇文章主要是在找24 color checker的ground truth。
这个目的的用处感觉不是很大,一般不都是sRGB 或者其他色域的标准值 作为groundtruth吗?
为什么还要根据数据集找到一个相机的groundtruth.
一般使用的时候也是已知 ground truth(自己的目标颜色,或者产品经理想要的效果), 然后通过最小二乘法求CCM即可。
不过还是说下
本文的几个概念:
在某些光源下,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 插值得到 最终的结果