自监督学习(二)之Colorful Image Colorization

原文链接:https://arxiv.org/pdf/1603.08511.pdf

摘要

本文通过CNN实现了灰度图像自动上色的功能。文章的重点在于:1)通过颜色空间量化的方式把上色问题转化为分类问题。2)通过软标签的方式充分利用邻域信息以及增加了上色结果的多样性 3)经统计发现,在量化后的颜色空间中,类别分布是不均匀的,因此在损失函数中对每个类别的损失定义了权重。4)分类后的标签直接转化为真实颜色会存在颜色不连续的问题,作者采用了the simulated annealing technique解决了这一问题。

颜色空间量化

为了将图片上色问题转化为分类问题,作者将原始图片从RGB颜色空间转换到CIE Lab颜色空间。Lab颜色空间也有着3个波段,L表示亮度波段,取值为[-100,100],a,b表示颜色波段,取值为[-128,127],颜色空间如下图所示。

作者把L=50时的a,b波段组成了二维网格空间,并将网格大小设置为10,即将10×10的网格单元划分为一个类,在自然图像中统计出了313种颜色类别(文中用Q表示)。

软标签

文章的目标是输入一个灰度图像实现自动上色的功能,作者通过颜色空间量化的方式把(a,b)值和区块索引一 一对应,因此把回归问题转化为分类问题(回归问题只是利用该像素的ab值作为监督信号,没有考虑邻域内像素,会造成色彩的不连续性。另外回归问题只能根据原始图像的信息预测出来一组ab值,但是实际上上色问题可能有着多种解法,原始图像也只是提供了一种参考)。因此我们的模型是构造一个函数 ,通过输入原始图像的L波段X,预测出每一个位置(h,w)的颜色概率分布。根据传统CNN的经验,容易想到的是利用类别的one-hot编码作为监督信号。用类似于查表的方式,把(h,w)处的颜色用对应区块的索引号表示出来,以此作为标签来进行训练。但是这种方式有着和回归问题相同的缺点(没有利用邻域像素和只有一组解)。因此作者在本篇文章中利用软标签作为监督信号:通过利用(h,w)处和邻域内5个点的颜色信息(根据距离远近进行高斯加权)作为(h,w)的标签。在这里我觉得是在k*k的窗口内随机选取5个点,通过查表得到类别索引,进行one-hot编码后,利用高斯加权然后相加求和经归一化得到(h,w)处的监督标签Z,Z是一个313维的列向量,该向量有5+1=6个元素是非零元素。(真真真·自己的理解,仅供参考!!),这样把L波段图像作为原始数据,软标签作为监督信号,loss采用交叉熵误差的形式,就可以训练出网络了。作者采用的损失函数如下:

                                                             

是图像(h,w)像素处构造的软标签,是图像(h,w)像素处的网络输出,均为313维的列向量。抛开是一个标准的交叉熵误差的形式。

类别平衡

自然图像中的颜色类别分布肯定是不平衡的,作者可视化了ImageNet图像的颜色分布如下。明显看出(a,b)值趋于(0,0)的颜色数量较多,远离(0,0)的颜色较少。

                                                     

损失函数中的是根据像素点(h,w)处的软标签设置的损失权重。作者将软标签中值最大的类别对应的颜色作为权重计算的参考。作者的思路是该颜色的在分布图中的数量越少,对应的损失权重越大(类似于focal loss,分类越困难的样本损失权重越大),具体计算过程如下图,等式3表示选择软标签中值最大的类别的权重作为最终权重,等式4中表示上图经过高斯平滑后的颜色概率分布,λ是(0,1)之间的超参数,可以看出,颜色的数量越多,权值越小。

                                      

模拟退火技术

现在我们已经得到了像素点(h,w)的预测向量,还需要把预测向量转化为真实的颜色。一种方法是选取最大概率值对应的颜色类别作为最终类别,但是会产生空间不连续性(下图最右边)。另一种方式是采用预测分布向量的均值来作为最终结果,这样的结果会保证空间上的连续性但是得到的结果是不饱和的,图像会呈现出一个不自然的色调(下图最左边)。作者从

the simulated annealing technique中得到启发,通过下列公式来计算出最终的颜色。T是手动设置的超参数,T=0.38时取得最好的效果。

                                                                

                                                  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值