2019
然而,深度压缩系统通常针对传统的失真指标进行了优化,如峰值信噪比(PSNR)或多尺度结构相似度(MS-SSIM)。对于非常低的比特率(低于每像素0.1位(bpp)),保留完整的图像内容变得不可能,这些失真指标失去了意义,因为它们倾向于像素级保留局部(高熵)结构,而不是保留纹理和全局结构。
概要
在本文中,我们提出了一个原则的全分辨率GAN压缩框架,并使用它来实现一个极端的图像压缩系统(目标比特率低于0.1bpp)。此外,与之前的工作相比,我们提供了在全分辨率图像压缩的背景下,这种框架的第一个彻底的用户研究。
1. 简述
在我们的框架中,我们考虑两种操作模式(对应于无条件和条件GAN),即:
- generative compression (GC):保留整体的图像内容,同时生成不同尺度的结构,如树叶或建筑物立面的窗户
- selective generative compression (SC):从语义标签映射中完全生成图像的部分,同时保留具有高度细节的用户定义区域
Conditional GAN:
上述两种mode的应用场景:
- GC: GC的一个典型用例是带宽受限的场景,即希望尽可能保留完整的图像,而对于不足以存储原始像素的区域,则回到合成内容而不是块状/模糊的斑点。
- SC: SC可以应用于视频通话场景中,人们希望在视频流中完全保存人,但视觉上令人愉悦的合成背景的目的和真正的背景
2.
2.1 GC
在GC操作模式下,图像被转换为位流,并使用算术编码进行编码。
2.2 SC
SC需要一个原始图像的语义/实例标签图,它可以使用现成的语义/实例分割网络获得,例如PSPNet和MaskR-CNN,并以向量图形的形式存储。在编码成本方面,这相当于一个很小的、与图像维度无关的开销。然而,压缩图像的大小与语义标签映射生成的面积成比例减小,通常会导致存储成本的显著降低。
在SC操作模式下,我们的系统无缝地将保留的图像内容与合成的内容相结合,即使是对于跨越多个对象边界的区域,同时忠实地保留图像语义。
编码
w
^
\hat{w}
w^所需的平均比特数是通过熵
H
(
w
^
)
H(\hat{w})
H(w^)来测量的,它可以用先验的或条件概率模型来建模。所谓的重建质量和比特率之间的“率失真”权衡:
E
[
d
(
x
,
x
^
)
]
+
β
H
(
w
^
)
(1)
E[d(x,\hat{x})]+\beta H(\hat{w}) \tag{1}
E[d(x,x^)]+βH(w^)(1) 其中
d
d
d是一个基于人的视觉感知质量损失,它衡量了
x
^
\hat{x}
x^与
x
x
x的感知相似程度。给定熵
H
(
w
^
)
H(\hat{w})
H(w^)的可导估计量,权值
β
β
β控制了模型的比特率。然而,由于维数
d
i
m
(
w
^
)
dim(\hat{w})
dim(w^)和能级数
L
L
L是有限的,因此熵的上确界为:
H
(
w
^
)
≤
d
i
m
(
w
^
)
l
o
g
2
(
L
)
(2)
H(\hat{w})\le dim(\hat{w})log_2(L) \tag 2
H(w^)≤dim(w^)log2?(L)(2) 因此,设置β=0并通过(2)确定最大比特率(即通过E的架构调整
L
L
L和/或
d
i
m
(
w
^
)
dim(\hat{w})
dim(w^)来控制最大比特率)也很有效。虽然可能导致次优比特率,但这避免了将熵明确地建模为损失项。
疑问? 为什么要避免将熵作为损失项?这样的话还能控制码率变化吗。
3. GAN 再图像压缩中的应用
3.1 Generative Compression
所提出的用于极端图像压缩的GAN框架可以看作是(conditional)GAN和学习到的压缩特征的组合。
使用编码器
E
E
E和量化器
q
q
q,我们将图像
x
x
x编码为一个压缩特征表示的
w
^
=
q
(
E
(
x
)
)
\hat{w}=q(E(x))
w^=q(E(x))。该特征表示可以和从一个固定的先验分布为
p
v
p_v
pv?中提取的噪声
v
v
v维度相拼接,以形成潜在特征表示
z
z
z。然后,解码器/生成器
G
G
G尝试生成与图像分布
p
x
p_x
px?一致的图像
x
^
=
G
(
z
)
\hat{x}=G(z)
x^=G(z),同时也在一定程度上恢复特定的已编码的图像
x
x
x。使用
z
=
[
w
^
,
v
]
z=[\hat{w},v]
z=[w^,v]来表示我们的压缩特征表示:
min
?
E
,
G
max
?
D
?
E
[
f
(
D
(
x
)
)
]
+
E
[
g
(
D
(
G
(
z
)
)
)
]
+
λ
E
[
d
(
x
,
G
(
z
)
)
]
+
β
H
(
w
^
)
(3)
\min \limits_{E,G}\max \limits_{D}\ E[f(D(x))]+E[g(D(G(z)))]+\lambda E[d(x,G(z))]+\beta H(\hat{w}) \tag{3}
E,Gmin?Dmax??E[f(D(x))]+E[g(D(G(z)))]+λE[d(x,G(z))]+βH(w^)(3) 其中,
λ
>
0
λ>0
λ>0平衡了失真项和GAN损失和熵项。
由于(1)的后两项不依赖于鉴别器D,因此它们并不直接影响其优化。因此,上述式子可以改写为:
min
?
E
,
G
?
L
G
A
N
+
λ
E
[
d
(
x
,
G
(
z
)
)
]
+
β
H
(
w
^
)
(4)
\min \limits_{E,G}\ L_{GAN}+\lambda E[d(x,G(z))]+\beta H(\hat{w}) \tag{4}
E,Gmin??LGAN?+λE[d(x,G(z))]+βH(w^)(4) 我们注意到方程(2)与正常的GAN具有完全不同的latent representation(z),因为潜在空间z包含
w
^
\hat{w}
w^,它存储了关于真实图像x的信息。
3.2 GC (D+)
我们可以很容易地将GC扩展到一个有条件的情况下。我们考虑的设置是,图像
x
x
x的附加信息
s
s
s是场景的语义标签映射,但有一个tip:在训练期间,我们只将它提供给鉴别器D,而不是将s提供给E、G和D。我们将此设置称为“
G
C
(
D
+
)
GC(D^+)
GC(D+)”。
我们强调,无论是
G
C
GC
GC还是
G
C
(
D
+
)
GC(D^+)
GC(D+),都不需要语义信息 (因为E,G不依赖于s)
3.3 Selective Generative Compression
对于
G
C
GC
GC和
G
C
(
D
+
)
GC(D^+)
GC(D+),
E
,
G
E,G
E,G自动在整个图像上导航生成和保存之间的权衡,没有任何指导。我们还考虑了一个不同的设置,选择性生成压缩(SC)。在这里,网络根据side information来决定应该生成什么和应该保留什么。
为了简单起见,我们考虑一个二进制设置,其中我们构建一个与
w
^
\hat{w}
w^相同空间维度的单通道二进制heatmap
m
m
m。赋值为零的区域对应于应该完全合成的区域,赋值为去的区域对应应该保留的区域。然而,由于我们的任务是压缩,所以我们将完全合成的区域约束为具有与原始图像x相同的语义s。我们假设语义s是分区存储的,并在将特征提取器F提供给生成器g之前通过特征提取器F进行提取。为了用语义引导网络,我们mask了(像素级)失真d,这样它只在要保留的区域上计算。此外,我们将压缩的特征表示
w
^
\hat{w}
w^中应该合成的区域中赋值为零。如果heatmap
m
m
m也被存储,那么我们就只编码与保存需要保存区域对应的特征表示
w
^
\hat{w}
w^,从而大大降低了存储它所需的比特率。在比特率为依据的评判下,
w
^
\hat{w}
w^平均所需要的空间远远大于
s
s
s和
m
m
m的存储成本,这种方法可以导致大量的比特率节省。
两种训练模式:
- Random instance(RI):在语义标签映射中随机选择25%的实例并保留这些实例
- Random box(RB):均匀地随机地选择一个图像位置,并保留一个随机维度的box
虽然RI模式适用于大多数用例,但RB可以为生成器创建更具挑战性的情况,因为它需要将保存下来的框无缝地集成到生成的内容中(也就是不能产生artifacts)
4. PSNR and MS-SSIM as quality measures
我们的模型的目标是真实的重建,其中纹理和有时甚至更抽象的图像内容被合成。常见的失真措施,如PSNR和MSSSIM,不能衡量“现实性”,因为它们惩罚局部结构的变化,而不是评估全局图像内容的保存。直观地说,测量合成纹理块和真实纹理块之间的PSNR本质上量化了纹理的方差,而不是合成纹理的感知质量。
5. Architecture, Losses, and Hyperparameters
对于熵项
β
H
(
w
^
)
βH(\hat{w})
βH(w^),我们采用前面中描述的简化方法。我们设置
β
=
0
β=0
β=0,使用
L
=
5
L=5
L=5中心
C
=
?
2
,
1
,
0
,
1
,
2
C={?2,1,0,1,2}
C=?2,1,0,1,2,并通过上限
H
(
w
^
)
≤
d
i
m
(
w
^
)
l
o
g
2
(
L
)
H(\hat{w})≤dim(\hat{w})log_2(L)
H(w^)≤dim(w^)log2?(L)来控制比特率。例如,对于GC,使用
C
=
2
C=2
C=2这样的量化值,我们得到0.0181bpp。计算过程如下:
H
(
w
^
)
/
W
H
≤
W
H
16
?
16
?
C
?
l
o
g
2
(
L
)
/
W
H
=
0.0181
?
b
p
p
H(\hat{w})/WH\le \frac{WH}{16\cdot 16}\cdot C\cdot log_2(L)/WH=0.0181\ bpp
H(w^)/WH≤16?16WH??C?log2?(L)/WH=0.0181?bpp 我们注意到这是一个上界,
H
(
w
^
)
H(\hat{w})
H(w^)的实际熵通常较小,因为学习到的分布不一定是均匀的。
也可以使用传统的方法,比如使用一个算术编码器将
w
^
\hat{w}
w^的通道编码到一个位流,分别存储每个通道的频率信息。在我们的实验中,这导致比特率比上限小8.8%。我们将对上下文模型的探索留给我们,为未来的工作进一步降低比特率。
对于失真项
d
d
d,我们采用MSE和λ=10。此外,我们采用了特征匹配和VGG感知损失,
L
F
M
L_{FM}
LFM?和
L
V
G
G
L_{VGG}
LVGG?
6. 结果
6.1 GC效果
用户研究结果评估我们的GC模型在Kodak,RAISE1K和Cityscapes。每个图都对应于我们的一个模型。该模型的比特率在x轴上用黑色菱形突出显示。粗灰色线显示了在该比特率(bpp)下更喜欢我们的模型而不是BPG的用户百分比。蓝色箭头从我们的模型指向最高比特率的BPG操作点,在那里超过50%的用户喜欢我们的,可视化BPG在这一点上使用了多少位。
6.2 SC效果
对于我们的GC和SC网络以及MSE基线的城市景观验证集中,平均IoU作为bpp的函数。
上图表明,SC网络比pix2pixHD更好地保存语义,这表明SC网络忠实地从标签图中生成纹理,并合理将生成的纹理与保留的图像内容结合起来。BPG、AEDC和MSE基线的mIoU明显低于我们的SC和GC模型获得的,这可以说归因于模糊和阻塞伪影。然而,这并不奇怪,因为这些基线方法在训练和预测过程中没有使用标签图。
使用我们的SC网络和C=8合成不同的类。在每幅图像中,除了没有合成外,我们还合成了植被、天空、人行道、自我载体、墙等类别。左下角的热图显示了灰色的合成部分。我们展示了每个图像的bpp以及由于选择性生成而产生的相对节省。
相对于传统方法有着很大的码率节省
总结
综上所述,我们的主要贡献如下:
- 我们提供了一个原则性的GAN框架,并使用它来构建一个极端的图像压缩系统。
- 我们是第一个在全分辨率图像压缩的背景下彻底探索这样的框架
- 我们基于用户的研究,在视觉质量方面设置了最先进的新水平,以很大的比特率节省(但仍然每个码率单独训练一个模型)
参考
[1] Reference:Generative Adversarial Networks for Extreme Learned Image Compression [2] 李宏毅.深度学习
|