本文介绍了ISP(图像处理器)的色彩相关模块,分别是白平衡模块和色彩矫正矩阵模块。
01
背景介绍
上图显示了白平衡模块和色彩校正矩阵模块在ISP pipeline中的位置。
色温是指黑体从绝对零度开始加热所呈现的颜色,计量单位为“K”(开尔文),低色温偏黄色,如落日的余晖;高色温偏蓝色,如阴雨的天空。
色温在生活场景中也有着广泛的应用,例如冷色调在6500K-9000K左右,通常在办公场景中使用,渲染出冷静、严肃的氛围;暖色调在2000K-3500K左右,通常在家庭场景中使用,营造出舒适、温馨的氛围。

人眼感知色彩是由眼睛和大脑共同处理后的结果,确切来说这个过程是十分复杂的,人类并没有完全掌握。
在人类视觉系统长期的进化过程中,产生了色彩恒常性,它的特点是人类对物体的色彩感知不受光源影响。如图中偏色的草莓和裙子,人类可以很轻易地去除偏色的光源,分辨出物体的具体颜色。
02
自动白平衡
为了解决光源色温对相机成像的影响,让ISP具有人眼类似的色彩恒常性的模块称之为白平衡模块,解决图像色彩失衡的问题。
最开始的白平衡模块的处理方式是手动白平衡,需要人们在相机中按下WB键,手动选择目前拍照的色温环境,通过相机内置的增益来进行白平衡处理。
自动白平衡(Auto White Balance)是目前应用最广泛的白平衡运作模式,它在工业界和学术界的处理方式是不同的。在工业界主要是采取色温标定的方式,首先在不同的光源下拍摄白卡,采集数据。

然后,将采集好的数据标定成上图类似的色温曲线,拍摄照片时图片数据会落在曲线附近的不同位置,进而得到不同的增益值。
在学术界自动白平衡主要分为两种,分别是基于统计的方法和基于学习的方法,如上图所示。基于统计的方法优点是简单、快速,但缺点是对于一些特定的场景可能会失效。基于学习的方法优点是能够处理一些复杂的场景,缺点是评估和训练的时间较长。

对于基于统计(假设)有三大方法,分别是灰度世界法、完美反射法和动态阈值法。灰度世界法的假设前提是RGB三个分量的平均值趋于统一灰度值;完美反射法的假设前提是图像中最亮的点是白点;动态阈值法的前提是设定动态的阈值去寻找图像中最亮的点。
目前白平衡也存在着一些难以解决的问题,例如上图中草地,在光源估计时很容易估计成绿色的光源从而导致错误的校正。

针对上述问题在工业界一般采取特殊的标定的方式,学术界可以用深度学习的方法让网络去学习图片的特征。除了这个问题以外还有很多的场景难以处理,例如多光源的情况也给白平衡模块带来了极大的挑战。
随着深度学习的兴起,白平衡也逐渐在这个领域有了进一步的发展,下面介绍的是2020年的TIP,题目是“Bag of Color Features for Color Constancy”。论文主要提出的思想是浅层的网络足够估计光源信息,关注局部信息来轻量化网络。
网络主要由三部分组成:特征提取块、特征包块和照度估计快。

特征提取块用于提取特征信息,由两个卷积层和两个下采样层组成,特征包块进一步提取特征信息
照度估计块用于估计照度信息,由全连接层和softmax函数构成。整体网络结构如图所示。

对于网络结构作者提出了两个变体,分别是在特征提取块和特征包块后加入Attention layer。
实验结果为不同method下参数和效果的对比,红框标注出来的为最优的结果,作者也是采取这个method来确定该篇论文的网络结构。
上图展示了注意力机制可视化。

上表展示了消融实验结果和参数对比结果。

多种方法对比的实验结果,从表中可以看到深度学习的白平衡效果要远好于传统算法。
03
色彩校正矩阵
颜色校正矩阵(CCM)通过将相机拍摄图片值与色板标准值之间进行对比,得出一组能将拍摄值校正到最接近标准值的3x3矩阵。通过这个矩阵对所有相机拍摄的图片进行颜色校正。

从图中可以看到,人眼视网膜上有三种锥细胞(cone)用于感受蓝、绿、红三种频率的色光,一种杆细胞(rod)只在低照度条件下感应亮度信息,不能分辨颜色和细节。
已知三种锥细胞的总个数大约600~800万,分布比例大约是1:16:32,杆细胞的总数大约是1200万。人眼的三种锥细胞对不同波长的电磁波的响应是有明显区别的,研究发现,人眼的红、绿、蓝三种锥细胞光谱响应曲线的峰值比例是0.54:0.575:0.053,如图所示。
不仅人眼的响应与sensor不同,不同厂家制造的sensor响应也是不同的。图中显示了三个camera在相同参数下拍摄到的颜色效果。

CCM是在RGB空间中完成的处理任务,主流的做法是用一个3x3 的矩阵将一个输入像素值(R, G, B)线性地映射为一个新的像素值(R', G', B'),通过选择矩阵参数使映射后的颜色更符合人的认知习惯。
其约束条件是不能破坏白平衡。实现原理是通过矩阵的变换来确定CCM参数,上述为矩阵的计算过程。
上述为矩阵的求解过程。由于上述过程需要使用某种色卡,因此这种方法也被称为patch-based方法。
有时在CCM的处理过程中需要将RGB空间转换到HSV空间,Hue为色调,Value为亮度,Saturation为饱和度。因此ISP中的CCM模块第一步为色彩空间转换。

述为RGB转HSV的具体转换公式。
ISP中的CCM模块第二步为确定色彩校正矩阵,通过Hue的不同色彩位置来确定色彩校正矩阵的参数。
最后一步是更新参数值,将输入图像像素点乘以色彩校正矩阵即可得到校正后的图像。
03
The End


关 注 我 们
实验室网站:http://viplab.fudan.edu.cn/
OpenASIC官方网站:www.openasic.org
知乎专栏:http://zhuanlan.zhihu.com/viplab
微信公众号:OpenASIC
继续阅读
阅读原文