When Color Constancy Goes Wrong:
Correcting Improperly White-Balanced Images
阅读札记
Correcting Improperly White-Balanced Images
阅读札记
论文发表于2019年的CVPR。
Abstract
本文方法主要解决校正白平衡不当的图像问题。校正白平衡不当问题真正难点不在于确定正确的白平衡是什么,而在于以下事实:相机内白平衡过程之后是几个相机特定的非线性颜色处理,这使得在后处理中校正图像的颜色具有挑战性。本文方法基于超过65,000张不正确白平衡图像及其相应的正确白平衡图像的数据集,引入k-近邻策略,实现计算非线性颜色映射函数来校正图像的颜色。
Introduction
当白平衡(WB)不正确时会导致图像偏蓝/偏红,这对图片的观赏性以及对视觉算法的性能都存在不利影响。拍照时人们希望图像能正确地进行白平衡。前人工作主要在于确定正确WB是什么,然而该解决方案并不有效,并且没有在相机内处理管道的完整上下文中考虑WB。
从传感器raw-RGB到sRGB的相机内颜色处理的简单模型可以表示为:
I s R G B I_{sRGB} IsRGB:3×N矩阵,包含sRGB空间中的图像值
I r a w I_{raw} Iraw:3×N矩阵,包含raw-RGB空间中的图像值
N N N:总像素数
D D D:3×3的WB对角矩阵
T T T:3×3 线性变换,它从白平衡raw-RGB映射到与设备无关的色彩空间,例如CIE-XYZ
f ( ⋅ ) f(·) f(⋅):非线性函数,它复合了各种操作,包括颜色增强、色调处理和最终的sRGB伽马编码。(相机型号或相机设置不同, f ( ⋅ ) f(·) f(⋅)不同。)
从等式可以看出,由于WB在处理链的早期应用,因此尝试使用对角矩阵对其进行校正是行不通的。
Method
算法框架图
1、数据集生成
本文的训练图像是从两个共开可用的照度估计数据集生成:NUS数据集和Gehler数据集,从这些数据集中生成了62,535张图像。
∙ ∙ ∙使用不同WB预设来将raw-RGB图像渲染为sRGB图像。单个raw-RGB图像可以渲染为超过25个sRGB图像。这些图像构成了训练图像 { I t ( 1 ) , … , I t ( n ) } \{I_t^{(1) },…,I_t^{(n) }\} {
It(1),…,It(n)}。
∙ ∙ ∙手动从颜色再现图的中灰度块中选择“ground truth”白色,然后应用与相机相关的渲染生成正确的目标图像 I g t I_{gt} Igt。
2、颜色校正变换
通过最小化以下等式来计算颜色校正矩阵 M ( i ) M^{(i)} M(i),它将 I t ( i ) I_t^{(i)} It(i)映射到 I g t ( i ) I_{gt}^{(i)} Igt(i):
I t ( i ) I_t^{(i)} It(i):3×N矩阵,WB不正确的图像
I g t ( i ) I_{gt}^{(i)} Igt(i):3×N矩阵,WB正确的参照图像
‖ ⋅ ‖ F ‖·‖_F ‖⋅‖F:F范数
Φ Φ Φ: [ R , G , B ] T → [ R , G , B , R G , R B , G B , R 2 , G 2 , B 2 , R G B , 1 ] T [R,G,B]^T→[R,G,B,RG,RB,GB,R^2,G^2,B^2,RGB,1]^T [R,G,B]T→[R,G,B,RG,RB,GB,R2,G2,B2,RGB,1]T,将sRGB三元组投射到高维空间的内核函数。
M ( i ) M^{(i)} M(i):3×11矩阵。
3、图像搜索
颜色校正矩阵与图像的颜色分布有关,因此寻找相似图像的标准是基于颜色分布的。受前人工作启发,本文从对数色度空间构建了一个RGB-uv直方图,该直方图由以下等式描述的函数 h ( I ) h(I) h(I)生成:
i i i: i = { 1 , … , N } i=\{1,…,N\} i={
1,…,N}
C C C: C ∈ { 1 , 2 , 3 } C∈\{1,2,3\} C∈{
1,2,3},代表直方图中的每个颜色通道
ε ε ε:直方图bin的宽度。
⭐在归一化后取平方根会增加投影直方图特征的判别能力。
用降维来提取表示每个RGB-uv直方图的紧凑特征。线性变换足以将向量化直方图 v e c ( h ( I ) ) ∈ R ( m × m × 3 ) vec(h(I))∈R^{(m×m×3)} vec(h(I))∈R(m×m×3)映射到新的低维空间。主成分分析 (PCA) 特征向量计算如下:
v ( I ) v(I) v(I): v ( I ) ∈ R c v(I)∈R^c v(I)∈Rc是包含c个主成分(PC)系数的PCA特征向量
W W W: W = [ w 1 , w 2 , … , w c ] W=[w_1,w_2,…,w_c] W=[w1,w2,…,wc], w ∈ R ( m × m × 3 ) w∈R^{(m×m×3)} w∈R(m×m×3)是奇异值分解计算出的PC系数矩阵
b b b: b ∈ R ( m × m × 3 ) b∈R^{(m×m×3)} b∈R(m×m×3),是均值直方图向量。
⭐每个训练图像 I t ( i ) I_t^{(i)} It(i)可以由少量PC系数 v ( I t ( i ) ) v(I_t^{(i)}) v(It(i))。输入图像最终由 v ( I i n ) v(I_{in}) v(Iin)表示。下图是基于相应PCA特征向量的训练图像可视化。
4、最终颜色校正
给定一个输入图像,计算其PCA特征,并根据k-近邻策略在训练集中搜索具有相似特征的图像,得到k个相似图像对应的颜色校正矩阵M_s,最终校正矩阵M为M_s的加权线性组合,如下所示:
α α α:为径向基函数的加权向量:
σ σ σ:径向衰减因子
d d d:一个向量,包含给定输入特征和相似的k个训练特征之间的L2距离
最后,校正后的图像 I c o r r I_{corr} Icorr由以下等式产生:
Experiment
1、定量结果
评估方法:
(i)均方误差(MSE)
(ii)平均角度误差(MAE)
(iii)∆E
2、定性结果
Conclusion
校正由具有错误WB设置的相机渲染的sRGB图像具有挑战性,本文提出了一种数据驱动的方法来纠正不正确的白平衡图像。,通过大量实验表明本文方法校正效果显著,且只需要少于24 MB的内存空间和少于1.5秒的时间即可校正全分辨率图像。此外,本文方法可以很好地推广到不包含在我们训练集中的图像。但本文方法在某些类型的输入上确实失败了,这些通常是具有大量饱和色彩的强烈偏色的图像,如图所示: