Learning to Structure an Image with Few Colors
原文链接
文章目录
Abstract
色彩和结构是构成图像的两大支柱。通常,该结构通过丰富的颜色光谱得到很好的表达,使图像中的对象能够被神经网络识别。然而,在颜色空间的极端限制下,该结构趋于消失,因此神经网络可能无法理解图像。为了探索颜色和结构之间的相互作用,我们研究了识别和保存最具信息量的图像结构的科学问题,同时将颜色空间限制为几个比特,以便可以以尽可能高的精度识别最终的图像。为此,我们提出了一种颜色量化网络ColorCNN,它学习以端到端的方式从分类损失中构造图像。给定颜色空间大小,ColorCNN通过生成颜色索引图和RGB调色板来量化原始图像中的颜色。然后,这个颜色量化的图像被馈送到预先训练的任务网络以评估其性能。在我们的实验中,在只有1位颜色空间(即两种颜色)的情况下,所提出的网络在CIFAR10数据集上实现了82.1%的top1准确率,远远优于传统的颜色量化方法。对于应用,当用PNG编码时,所提出的颜色量化在极低比特率范围内显示出优于其他图像压缩方法的优势。源码地址。
1. Introduction
颜色和结构是自然图像的两个重要方面。结构被视为形状、纹理等的组合,与颜色密切相关。特别地,仅当存在足够的颜色集时,该结构才被很好地呈现。在本文中,我们感兴趣的是如何在色彩约束下最好地呈现结构。
在文学中,一个密切相关的工作路线是颜色量化。颜色量化研究如何在有限的颜色空间中保持视觉相似性。该问题是以人为中心的,因为它通常关注人类观看的视觉质量。特别地,大多数现有方法是在相对较大的颜色空间(例如,8位)下设计的,使得量化图像在视觉上仍然与原始图像相似。在较小的色彩空间中,例如2位或1位,色彩量化仍然是一个未解决的问题。
自然图像通常包含丰富的颜色和结构。当色彩空间有限时,它们之间的联系会影响结构。 例如,在图1的第一行中,结构随着颜色空间的减少而消失。 此外,我们认为,在原始自然图像上训练的神经网络可能无法识别颜色较少的量化图像。 事实上,量化的颜色和受损的结构会转移神经网络的注意力,这可能会导致识别失败。例如,在图1的第二行,在原始图像上训练的神经网络发现头部和身体对识别狗最关键。当颜色空间逐渐缩小时,神经网络首先无法关注头部,然后是身体,从而导致识别失败。
在这项工作中,我们研究了一个科学问题:如何在极小的颜色空间下保存关键结构?这个问题与传统的颜色量化问题是正交的,因为它是以任务为中心的:神经网络识别精度是它的主要焦点,而不是人类的观察。 如图2所示,我们使用在原始图像上预训练的分类器评估(量化)图像。为了优化识别精度,我们设计了一种颜色量化方法ColorCNN,它学习以端到端的方式构造图像。 与传统的颜色量化方法完全依赖颜色值进行决策不同,ColorCNN利用颜色、结构和语义来发现和保留关键结构。 它通过计算颜色索引图和分配调色板值来量化图像。在图2中,通过ColorCNN量化的图像使分类器能够成功地聚焦于猫的tabby和前肢。在本例中,注意信息区域导致正确识别。
我们证明了颜色量化在分类任务中的有效性。通过使用几种颜色,我们发现所提出的方法比传统方法有很大的优势。
测试使用四个数据集,包括CIFAR10[20]、CIFAR100[20]、STL10[8]和tiny-imagenet-200[22],以及三个分类网络,包括AlexNet[21]、VGG[34]和ResNet[16]。对于应用,彩色CNN图像量化可用于极低比特率的图像压缩。
2. Related Work
颜色量化。颜色量化对颜色进行聚类,以减少颜色空间,同时保持视觉相似性。Heckbert等人提出了流行的MedianCut方法。后来,Gervautz等人[14]设计了另一种常用的颜色量化方法, OCTree。抖动[12],是通过添加噪声模式来消除视觉伪影的一个可选步骤。 颜色量化图像可以表示为索引颜色[30],并用PNG编码[6]。
以人为中心的图像压缩。基于启发式,许多图像压缩方法是为人类观众设计的。这些方法分为两类,无损压缩,例如PNG[6],和有损压缩,例如JPEG[41,35]和颜色量化。
最近,深度学习方法被引入到图像压缩问题中。研究了递归方法[28,19,39,38]和卷积方法[27,23,40,3,2,37]。Ballé等人[5]提出了用于图像压缩的广义分裂归一化(GDN)。Agustsson等人[3]提出了一种生成对抗网络(GAN)中的多尺度鉴别器,用于低比特率压缩。在[24,18]中,研究人员应用图像压缩方法来抵御敌对攻击。
以任务为中心的图像压缩。传统的或基于深度学习的图像压缩方法都是以人为中心的。Liu等人[25]指出,对于分割,以人为中心的压缩并不是3D医学图像的最佳选择。对于2D地图数据和3D场景模型,以任务为中心的压缩方法用于定位[43,7]。
压缩数据的神经网络识别。一些研究人员使用压缩数据处理某些任务。例如,用压缩视频解决动作识别问题[44,47,48,33]。Wang等人[42]利用压缩数据加速视频对象识别。
3. Motivation
在极小的颜色空间中,我们发现传统的颜色量化方法不能保持关键结构。这是因为这些方法通常只采用color-value方法对颜色进行聚类,完全忽略结构。 然而,正如一些[13,15]所指出的,具有语义意义的关键形状和纹理在神经网络识别中起着重要作用。 事实上,在图1和图2中,当结构没有得到很好的保存时,我们会看到注意力漂移。 这进一步导致识别失败。出于这种失败的动机,在接下来的部分中,我们将进一步研究如何在极小的颜色空间中有效地保存结构。
4. Proposed Approach
为了识别和保存原始图像中的关键结构,我们设计了彩色CNN(见图3)。在这一部分中,我们首先阐述了如何从数学上构造问题。接下来,我们将介绍ColorCNN体系结构。最后,我们提供了一种端到端的训练方法。
4.1 问题表述
不失一般性,,我们可以定义一个参数为 θ \theta θ 的 f θ ( ⋅ ) f_{\theta}(\cdot) fθ(⋅)的分类网络。对于图像标签对(x,y),该网络估计其标签 y ^ = f θ ( x ) \hat{y} =f_{\theta}(x) y^=fθ(x)。为了训练网络,我们将数据集D上的损失 L ( y , y ^ ) L(y,\hat{y}) L(y,y^) 最小化,
其中
θ
∗
\theta^*
θ∗ 表示最佳参数。
对于颜色量化,我们设计了ColorCNN架构。给定输入图像x,它可以通过计算颜色索引图 M ( x ) M(x) M(x)和调色板 T ( x ) T(x) T(x) 来输出颜色量化图像 x ‾ \overline{x} x。
我们将ColorCNN的正向传递表示为一个带参数 ψ \psi ψ 的函数 x ‾ = g ψ ( x ) \overline{x}=g_{\psi}(x) x=gψ(x)。
我们的目标是构造一个颜色较少的图像,这样一个预先训练好的分类器在颜色量化图像上可能具有较高的精度。表示为:
其中
ψ
∗
\psi^*
ψ∗是针对ColorCNN的优化参数,基于给定的由
θ
∗
\theta^*
θ∗ 参数化的预训练分类器。
R
R
R 是正则项,
γ
\gamma
γ 表示其权重。
4.2 ColorCNN 结构
我们在图4中展示了ColorCNN架构。它的第一个组件是一个U-net [31]自动编码器,它识别关键的和语义丰富的结构(图3中的自动编码器激活图)。
对于第二个组件,两个深度方向(1 × 1内核大小)的卷积层创建了每个像素采用一种特定颜色的softmax概率图。这会产生一个C通道概率图 m ( x ) m(x) m(x)(C通道上的softmax)。
然后,对于每个输入图像
x
x
x,1通道颜色索引图
M
(
x
)
M(x)
M(x)被计算为C通道概率图
m
(
x
)
m(x)
m(x)上的arg max,
形状为 C × 3 的 RGB 调色板 T (x) 被计算为落入某个量化颜色索引的所有像素的平均值
其中
[
⋅
]
i
[\cdot]_i
[⋅]i表示索引为
i
i
i 的元素或张量,
∏
(
⋅
)
\prod(\cdot)
∏(⋅)是指示函数。
⋅
\cdot
⋅ 表示逐点乘法。对于
W
×
H
W\times H
W×H 图像中的像素(u,v),
[
x
]
u
,
v
[x]_{u,v}
[x]u,v 表示输入图像中的像素及其RGB值,而
[
M
(
x
)
]
u
,
v
[M(x)]_{u,v}
[M(x)]u,v 表示其计算的颜色索引。
[
T
(
x
)
]
c
[T(x)]_c
[T(x)]c 表示量化颜色
c
c
c 的RGB值
最后,量化图像 x ‾ \overline{x} x 被创建为:
通过结合等式3、4、5,我们完成ColorCNN正向传递 x ‾ = g ψ ( x ) \overline{x}=g_{\psi}(x) x=gψ(x)。
4.3 端到端学习
4.3.1 可微逼近
图5示出了训练中的可微分近似。首先,我们移除等式中 3的arg max 1通道颜色索引图M (x)。相反,我们使用C通道softmax概率图m (x)。
接下来,我们改变调色板的设计。对于每个量化的颜色,不是对相同颜色索引的像素进行平均,而是将其RGB颜色值
[
t
(
x
)
]
c
[t(x)]_c
[t(x)]c 设置为所有像素的加权平均值,
这里,C通道概率分布
[
m
(
x
)
]
u
,
v
[m(x)]_{u,v}
[m(x)]u,v 被用作像素
(
u
,
v
)
(u,v)
(u,v) 对C颜色的贡献率。这将导致稍微不同的调色板
t
(
x
)
t(x)
t(x)。
最后,我们将表查找过程从最初的向前传递改变为加权和。对于索引为 c c c 的量化颜色,我们使用 [ m ( x ) ] c [m(x)]_c [m(x)]c 作为整个图像的表达强度。数学上,训练时间量化图像 x ~ \tilde{x} x~ 计算如下
通过结合等式6、7,ColorCNN在训练期间的前向传递可以公式化为
x
~
=
g
ψ
~
(
x
)
\tilde{x}=\widetilde{g_{\psi}}(x)
x~=gψ
(x)。最后,我们用等式2中的
g
ψ
~
(
⋅
)
\widetilde{g_{\psi}}(\cdot)
gψ
(⋅)代替
g
ψ
(
⋅
)
g_{\psi}(\cdot)
gψ(⋅), 用于端到端训练。
尽管两个前向通道
g
ψ
~
(
⋅
)
\widetilde{g_{\psi}}(\cdot)
gψ
(⋅)和
g
ψ
(
⋅
)
g_{\psi}(\cdot)
gψ(⋅)使用相同的参数
ψ
\psi
ψ,但它们的行为非常不同。输出之间的并排比较见图6。试时输出
x
‾
\overline{x}
x 只有C种颜色,而训练时输出
x
~
\tilde{x}
x~ 有多于C种颜色。这种不匹配的主要原因归结于one-hot和softmax向量之间的差异。如图4所示,独热方法仅允许从一些像素到一种量化颜色,以及从一种颜色到任何量化像素的影响。另一方面,在图5中,利用softmax函数,所有像素影响调色板中的所有颜色,并且调色板中的所有颜色对输出图像中的每个像素有贡献。
4.3.2 正则化
在训练过程中,每个像素中的softmax概率分布可能偏离独热向量很远,这可能导致过度拟合。
为了最小化这种差异,我们提出了一个正则化项。 它鼓励了每个像素的概率分布更像独热向量。 对于像素
(
u
,
v
)
(u,v)
(u,v),我们最大化概率分布
[
m
(
x
)
]
u
,
v
[m(x)]_{u,v}
[m(x)]u,v的最大值。正则项设计为:
我们取总和的负号,因为希望最小化这个正则项r。我们还将正则项偏移1,以使其为正。
4.3.3 颜色抖动
我们用预先训练的分类器 f θ ∗ ( ⋅ ) f_{{\theta}^*}(\cdot) fθ∗(⋅) (等式2所述)训练提出的ColorCNN。在训练期间,只要ColorCNN能够提供勉强令人满意的结果,预训练的分类器就有很大机会做出正确的决定。然而,如果在训练时间结果上有更多的自由度,当网络收敛时,测试时间结果可能仍然很困难。我们称这种现象为过早收敛。
为了防止这种过早收敛,在训练期间,我们将抖动 ξ × n \xi\times n ξ×n添加到归一化后的彩色量化图像 x ~ \tilde{x} x~。噪声 n n n 是从高斯分布 N ( 0 , 1 ) N(0,1) N(0,1)中采样的。 ξ \xi ξ表示权重。首先,训练输出中较高的方差会延迟收敛(更难用较高的方差拟合数据),从而允许更好地训练网络。第二,具有颜色抖动(更高的方差)的训练输出的特征分布可能与测试输出的特征分布有更多的重叠。由于分类器可以识别颜色抖动的训练输出,因此它可以在测试期间执行得更好。
5. Discussion
更大的色彩空间并不是本项工作的重点。当颜色空间更大时,更丰富的颜色自然支持更多的结构,使得结构保持不再是一个科学问题。此外,许多传统方法研究这一问题,其量化结果在预训练的分类器上取得了非常好的精度。事实上,在6位色彩空间中,量化图像的精度仅略微落后于原始图像(参见第6.2节)。
ColorCNN与基于聚类的颜色量化。当颜色空间很大时,使用每像素分类公式,ColorCNN不能提供与基于聚类的方法相竞争的结果(图7)。这是非常正常的,因为每像素分类单独处理每个像素,而聚类考虑所有像素以强制执行类内相似性来做出集体决策。每个像素的特征具有全局信息,但是这是不够的:需要全局地和集体地做出决定。使用有效的端到端神经网络聚类方法,ColorCNN可能会优于传统方法,即使是在大的颜色空间中。有人可能会问,为什么不在ColorCNN中加入聚类?事实上,使用神经网络来解决聚类问题并不简单,它本身就是一个具有挑战性的问题。一些神经网络聚类的先驱工作研究端到端的特征更新,或特征降维[46,4]。尽管如此,他们在测试过程中必须依赖k-means或其他聚类方法。事实上,神经网络聚类本身是一种不同的工作,超出了本文的范围。
6. Experiment
6.1 实验设置
数据集。我们在多个数据集上测试了ColorCNN的性能。CIFAR10和CIFAR100数据集[20]分别包括10类和100类通用对象。与CIFAR10类似,STL10数据集[8]也包含10个图像类。但是,STL10中的图像具有更高的96 × 96分辨率。我们还在tiny-imagenet200数据集[22]上进行评估,该数据集是imagenet数据集[9]的子集。它有200类64 × 64的通用对象图像。我们比较了表1中的四个数据集。
评价。为了进行评估,我们在提到的数据集上报告了最高的分类准确度。
分类网络。分类网络我们选择AlexNet [21],VGG16 [34],ResNet18 [16]。除了STL10,所有的分类器网络被训练60个时期,批量大小为128,在STL 10,我们设置批量为32。我们使用动量为0.5、L2归一化为 5 × 1 0 − 4 5\times 10^{-4} 5×10−4 的SGD优化器。我们选择峰值学习速率为0.1的1周期学习速率调度器[36]。
ColorCNN。我们在原始图像预训练分类器的基础上训练ColorCNN。我们如下设置超参数。对于正则化和颜色抖动权重,我们设置γ = 1和ξ = 1。我们还通过原始图像的默认方差的4倍来归一化量化图像,以防止过早收敛。为了训练,我们以128的批量运行60个时期的梯度下降。类似于分类网络,我们也在STL10数据集上将批量减少到32。用于ColorCNN训练的SGD优化器与用于分类器网络的一样。对于学习速率调度器,我们选择余弦-热重启[26],峰值学习速率为0.01,最小学习速率为0,统一重启周期为20。
我们在一个RTX-2080TI GPU上完成了所有的实验。
6.2 ColorCNN的评估
分类网络性能。我们在表2中报告了分类网络的前1名测试准确度。在所有四个数据集上,从AlexNet到VGG16再到ResNet18,准确性都有一致的提高。
ColorCNN低位量化的可视化。如图8所示,ColorCNN有效地保留了形状、纹理和其他结构。例如,飞机机翼、汽车轮胎和挡风玻璃,以及鸟的脸颊和腹部。在列(d)中,我们发现通过自动编码器提取的特征图在信息丰富的边缘、细节和纹理上表现出高活性。我们在图9中进一步展示了这些关键结构的精度提升。
低位彩色量化性能。在图9中,我们报告了使用三个网络在所有四个数据集上使用彩色量化图像的顶级分类准确度。我们选择MedianCut [17]、八叉树[14]和带抖动的median cut[12]进行比较。
首先,所提出的ColorCNN方法在小颜色空间中带来了相对于传统量化方法的一致且显著的改进。使用AlexNet作为分类网络,ColorCNN的1比特量化结果在四个数据集上分别达到82.1%、24.8%、52.3%和26.0%。与传统颜色量化方法相比,这意味着绝对精度提高了 37.6%、8.6%、9.6% 和 14.5%,相对精度提高了 92.9%、56.5%、66.5% 和 75.3%。由于与10路分类相比,100路分类的任务要求更高(在相同数据上),因此与CIFAR10相比,CIFAR100的改进(绝对和相对)较小。尽管如此,这些不平凡的精度增加仍然证明了所提出的方法的有效性。我们指出,在原始图像上训练的分类器1)在低位图像上具有明显较低的性能,2)但仍然能够对一些低位图像进行分类。彩色量化图像和原始图像可以看作是两个不同的领域。这两个域在外观上有很大的不同,但也共享相同的类集和一些外观上的相似性。因此,它们的特征分布非常不同,但仍有一定程度的重叠,这解释了该现象的两个方面。
第二,在大的颜色空间下,ColorCNN通常不如传统方法。正如第5节所讨论的,ColorCNN没有将颜色量化公式化为聚类问题。这将自然地导致在较大数量的聚类(颜色空间大小)下的较差结果,因为ColorCNN中的每像素方法不能实施聚类内的相似性。
第三,通过抖动保持结构被发现是没有用的。抖动基于颜色值的量化误差产生噪声图案。它可以进一步去除平坦的颜色区域和错误的轮廓。在没有考虑结构和语义的情况下,抖动仍然不能在有限的颜色空间中保持语义丰富的结构,这进一步导致了较差的准确性。
不同分类网络的影响。我们在图9的不同行中比较不同分类网络的量化性能。发现在极小的颜色空间中,较强的分类器具有较低的准确度。更强的分类器可以对图像数据添加更多的变换,提取更多的表达特征,从而具有更高的准确性。然而,当颜色空间有限时,这些颜色和结构都会减少。这可能导致更强的分类器在特征空间中的更大漂移,因为它们向输入添加了更多的变换,这最终导致更低的准确度。
我们还发现,当使用更强的分类器训练时,ColorCNN的性能并不总是更高。事实上,更强的分类器可以容易地在训练期间对量化图像 x ~ \tilde{x} x~ 进行分类,这可能导致更早、更不成熟的收敛。考虑到训练时间和测试时间前向传递 g ψ ~ ( ⋅ ) \widetilde{{g_{\psi}}}(\cdot) gψ (⋅) 和 g ψ ( ⋅ ) g_{\psi}(\cdot) gψ(⋅) 之间的差异,这种不太成熟的收敛会导致更多的过拟合和更低的精度。
低比特彩色量化作为图像压缩。在图10中,随着色彩空间大小从1比特增长到6比特,当用PNG编码时,量化图像采用更高的比特率,并且具有更高的测试精度。与传统的颜色量化方法相比,ColorCNN可以在较低的比特率下达到较高的测试精度。如图7所示,即使允许6位颜色空间,ColorCNN也只对图像的大部分使用少数几种颜色。不均匀地使用所有颜色将引入较低的信息熵[32],这导致通过PNG无损压缩时比特率较小。这表明ColorCNN可以更有效地提取图像的关键结构。 此外,在每像素0.2位的情况下,1位彩色CNN量化甚至可以比JPEG压缩高出13.2%,JPEG压缩有超过2种颜色。这清楚地证明了ColorCNN的有效性。
6.3 消融研究
我们设置正则化权重γ=0或颜色抖动权重ξ=0,以查看没有这两种情况下的ColorCNN性能。结果如表3所示。
首先,我们发现去除正则化项会导致精度下降。事实上,如果没有正则化,在测试期间选择的颜色会更少。这是因为训练期间的softmax颜色填充可以在图像中引入更多颜色,如图6所示。这种颜色填充的差异会导致过度拟合和2.2%的精度下降。
其次,没有颜色抖动也会导致精度下降。如果没有颜色抖动,训练时间量化对于预先训练的分类器来说可能太容易了。这可能会导致过早收敛,从而进一步降低精度1.9%。
第三,更高的比特率不一定会导致更高的精度,重要的是保留关键结构。在同样的精度下,没有正则化的ColorCNN实际上比没有颜色抖动的情况下具有更小的比特率。通过正则化和颜色抖动,比特率变得更高。然而,这一次,由于引入的结构有助于识别,ColorCNN实现了最高的准确性。我们发现这与图10中的压缩率曲线一致,其中ColorCNN在较低的比特率下实现了更高的精度,因为它保留了更关键的结构。
6.4 变量研究
我们比较了ColorCNN及其变体的识别精度,包括具有不同超参数的变体和具有不同自动编码器主干的变体(图11)。 当正则化权重太小或太高时,ColorCNN性能较低。同样,颜色抖动太小或太大也会导致精度大幅下降。 这是因为将权重设置得太小或太大会导致影响太小,或完全掩盖其他任何内容。 对于正则化和颜色抖动, 当权重设置为1时,我们可以看到最高的精度,这与我们的超参数设置相对应。
当自动编码器主干被DnCNN取代[49]时,在所有分类网络下,ColorCNN的性能都会下降。与U-Net不同,DnCNN没有旁路来维持本地结构。因此,其量化结果可能存在结构错位,从而影响分类精度。
7. Conclusion
在本文中,我们研究了在极小的颜色空间下保持信息结构的科学问题。在这种情况下,传统的颜色量化方法往往会失去颜色和结构,使其输出无法被神经网络理解。 为了保持量化图像中的关键结构,以便正确识别,我们设计了ColorCNN颜色量化网络。ColorCNN通过整合多个线索进行综合量化决策,有效地识别和保存信息结构,即使在极端条件下也是如此。 还为ColorCNN设计了一种端到端的训练方法,以最大限度地提高量化图像在神经网络任务中的性能。在四个数据集和三个分类网络上验证了该方法的有效性。