本论文是由北交大的Mr.Zhao Lijun博士所写。发布在该会议上IEEE Transactions on Circuits and Systems for Video
论文地址:https://arxiv.org/abs/1801.06611
多描述编码可以在不可靠且没用优先级的网络中传输,但是传统方向上的多描述编码没用利用图像的上下文特征生成多描述。所以本文针对图像的上下文特征,提出了一种新的基于标准卷积神经网络的MDC框架。
提出了两个框架:multiple description generator network(MDGN)以及multiple description reconstruction network(MDRN)以及一个虚拟编码器:multiple description virtual codec network(MDVCN)。
MDGN用于生成看起来像但是特征不同的多描述。
MDRN用于重构编解码之后的多描述,生成最终重构图像。
MDVCN用于平衡前两个网络的误差,以便于端到端训练网络。
Introduction
Internet传输已经很稳固了,但是仍然会有传输失败的风险:当在过载情况下发生网络堵塞或者信号包在不可预测且不可靠的信道上传输。为了解决以上问题才引出了多描述编码,多描述编码通过将源信号分割成多个冗余的子集,被传输到不同的信道中。之后,即使只收到一个信号,也可以在解码之后获得可接受质量的重构。收到的信号越多质量越高。
多描述编码的发展史
基于量化的多描述、基于变换的多描述、基于采样的多描述
- 多描述标量量化器(multiple description scalar quantizatior):利用分集克服信道缺陷的通信系统。该系统利用对称熵的设计将问题转化成优化问题,给出最优性的必要条件。《 Design of multiple description scalar quantizers》
- 基于小波的多描述编码:将多个描述标量量化器与有效的小波编码相结合,生成独立的多包,提高了错误恢复能力。主要是解决信道错误而导致的数据最终没用传输成功的问题。《 Multiple description wavelet based image coding》
- 两阶段多描述标量量化:在高分辨率假设条件下,提出了两级多描述标量量化方法来实现中心和边解码器,其失真更接近多描述编码的速率失真边界。《Enhancing Two-Stage Multiple Description Scalar Quantization》
- 多重描述矢量量化:将栅格矢量量化器设计的主要问题转化为双通道多重描述的标记问题。《Multiple Description Vector Quantization with Lattice Codebooks: Design and Analysis》
- 成对变换的多描述编码:在基于变换的MDC框架中生成两个描述,引入了变换系数对之间的相关性。《Multiple description coding using pairwise correlating transforms》
除了基于图像的多描述编码之外,论文中同样介绍了基于视频的编码方向。这篇论文同样参考了图像压缩方向以及压缩伪影移除方向的文献。
本文介绍了一种新的基于深度卷积神经网络的多描述编码框架: - 引入多描述发生器网络(MDGN),根据图像的内容自适应地生成多个描述,并通过标准的编解码器对其进行压缩以减少传输比特。
- 我们提出了多描述重建网络(MDRN),它由边重构网络(SRN)和中心重构网络(CRN)组成当解码器接收到两个压缩描述中的任何一个时,使用侧重构网络(SRNA)或侧重构网络(SRNB)来重构有损描述,并通过去除压缩伪影和向上采样来同时放大该描述。同时,我们利用两个接收描述的CRN网络作为输入,在多个描述图像都可用的情况下,实现高质量的图像重建。
- 通过学习多描述虚拟编解码器网络(MDVCN),我们将上述两个神经网络:MDGN网络和MDRN网络一起训练。这意味着我们可以利用所学习的MDVCN网络来进一步监督MDGN网络的培训。此外,我们提供了两种训练卷积神经网络的学习算法。
- 引入MDGN网络的距离损失和结构相似损失,保证生成的描述图像在结构上相似,但又有细微差别。
Framework
主要工作是研究如何根据每个描述之间的冗余度和描述的多样性生成多个描述,以便更好地进行中心重构。同时,设计了用于描述生成和重构的神经网络,并介绍了如何将我们的卷积神经网络训练到一起。这是第一个使用卷积神经网络进行多重描述编码的工作。
A.Framework
多重描述编码框架有三个组成部分:MDGN网络、JPEG标准编解码器、MDRN网络.
MDCFramework
1.MDGN网络g(I,ω)负责从真实图像I中生成不同的描述IA和IB,I是M*N的大小的真实图像。ω属于MDGN网络的训练参数。
2.使用JPEG编解码器压缩这些描述,以便进一步减少图像冗余以获得有损的描述。
c(·)是编解码器的压缩函数。压缩的描述流分别通过不同的通道传输。然而,使用标准的编码解码器进行图像压缩常常会产生编码伪影。
·)是编解码器的压缩函数。压缩的描述流分别通过不同的通道传输。然而,使用标准的编码解码器进行图像压缩常常会产生编码伪影。
3.利用MDRN网络,即重构函数R(·),去除这些伪影进行图像增强,放大有损描述,从而保证最终的重构图像具有与地面真值图像I相同的大小。
最后,接收方仍然可以解码接收到的数据包,即使缺少任何一个描述,也可以通过SRNA网络或SRNB网络获得可接受的质量重建描述.如果这两种描述都被接受,高质量的重构可以通过CRN网络来实现。
因为有损压缩编码中的量化函数是不可微的,所以对MDGN网络和MDRN网络进行联合训练并不容易。因此,来自MDRN网络的重构误差不能直接反向传播到MDGN网络。所以又学习了MDVCN(虚拟)网络对MDRN网络进行编码压缩和描述重构的两个连续过程的模拟。因此,可以以端到端方式培训整个框架。
B.目标函数
多重描述编码框架的整个目标函数如下所示:
这是MDGN网络的损失、MDRN网络的损失和MDVCN网络的损失的损失之和。
其中MDGN网络损失如下:
MDGN的损失用于监督学习MDGN网络的参数ω, u(·)为线性上采样函数,β平衡了描述的SSIM损失以及距离损失,这种矛盾在一定程度上是有效的。此外,QF是JPEG压缩的质量因素和clip(·)是剪辑功能用于限制κ1和κ2之间的值。因此,β参数在生成有效的多个描述中起着重要作用。
一方面,我们希望两者在结构上能产生与输入图像相似的描述,这样即使不需要MDRN网络的处理,解码后的描述也能被接收方直接看到。因此,SSIM损失函数被用来监督每个描述的学习。对其中一个描述求得SSIM如下:
SSIM损失函数能够保证MDGN网络产生的两个描述保持结构上的相似性。同时,两个生成的描述也被用作对立的标签规范化MDGN网络的训练,可以保证两个多样化的描述能够生成高质量的中心重构。distance 损失函数能够保证两个描述之间的细节差异:
两个图象之间的内容损失函数与梯度差异损失函数被如下定义:
在MDRN网络中内容损失与梯度差异损失共同监督两个边重构和一个中心重构的学习,定义如下:
为了将误差从MDRN网络中反向传播到MDGN网络中,需要学习MDVCN网络,用于近似无损描述到有损描述重构这个过程。内容损失与梯度差异损失共同监督MDVCN网络的学习:
我们使用MDVCN网络明确地监督MDGN网络的学习,或者直接使用MDVCN网络的梯度作为标准编解码器的梯度近似。MDVCN仅用于训练期间!
C.网络结构
MDGN由8个卷积网络构成,包括一个输入流两个输出流。包括两个部分:前四层是共享的特征提取层,是四层卷积层组成,第一层的卷积核大小为9*9其他层均为3*3.9*9大小的卷积层是为了扩大卷积网络的接受域。后面是两个描述生成层分为A和B两个:最后一层的卷积核大小为9*9其他层均为3*3。具体细节如图中所示:包括每层的卷积核大小,卷积的步长,每层的输入输出渠道数以及每层的输入.除了最后一层的每一层都使用ReLU激活函数。
MDRN使用了三个独立的网络,SRNA,SRNB以及CRN,其中CRN的输入是SRNA与SRNB的输出.为了将MDRN网络的误差反向传播至以前的网络,并且使用太深度的网络进行中心重构,所以三个独立的网络并不交叉连接,也不会权重共享。每个网络都使用了7层卷积层以及一层反卷积层,这样做可以移除编码伪影以及将特征映射扩大至全分辨率.第一层以及最后一层都使用了9*9的卷积核,以便于扩大接受域能够更好的重构描述。依旧除了最后一层,其余每层都是用ReLU激活函数.具体细节见上图。
如前所述,MDVCN网络弥补了MDGN网络和MDRN网络之间的差距,使重构的误差可以从MDRN网络适当地反向传播到MDGN网络。MDVCN网络和MDRN网络被设计成具有相同的结构,因为它们通过学习可以被看作是同一类低层次的图像处理问题。因此,我们有三个MDVCN网络的虚拟网络B:虚拟侧重构网络A (VSRNA)、虚拟侧重构网络B (VSRNB)和虚拟中心重构网络(VCRN).两个网络的输入却不一样,MDVCN的输入是没经过编码的无损描述。
D.网络学习
因为学习整个网络不是很容易,所以就分成了几个子问题.为解决这些子问题给出了反向传播的两种学习算法。
-
学习算法-1将MDVCN网络作为特征函数,通过固定MDVCN网络的参数来构建重构,使得来自MDVCN网络的重构错误可以在描述编解码之前反向传播至以监督MDGN网络。对MDGN网络和MDRN网络分别进行训练。
为了将误差从MDRN反向传播至MDGN中,将学习问题分割成三个网络的学习,但是他们之间又是紧密关联的。
1.首先初始化前面提到的所有参数集,通过向下采样对IA和IB数据集进行多重描述,对MDRN网络进行训练并压缩该数据集。
2.α基于最小化公式9,通过训练MDRN网络,对α参数进行更新。
3.利用这个α,可以生成描述的三个重构图像。
4.基于最小化公式10,通过更新参数θ,利用生成的描述重构图像加以训练MDVCN网络。
5.根据最小化公式(3)和(9),固定θ,训练MDGN网络亿更新ω的参数集。
6.训练MDGN网络后,利用MDGN网络的参数ω来生成多个描述图像IA和IB,然后开始下一个迭代。 - 学习算法2对MDGN网络使用MDVCN网络的反向传播误差,在不固定任何网络参数的情况下,同时训练MDGN网络和MDRN网络时,从编解码器中对误差进行近似估计。
对比两个算法的效率以及网络的稳定性,采用了算法1,所以算法2可以仔细看论文。
Experimental Results
论文基于编码伪影去除论文结果与超分辨相结合形成了8个baseline,其中基于多相降采样技术形成了一个新的baseline,与他们进行比较。
A.训练细节
整个框架基于Tensorflow,使用400张大小为180x180的图像作为的训练数据集,通过剪切、翻转和旋转图像来扩充我们的训练数据集。框架训练使用了大小为160x160的图像patch共计3200个。使用图2中的四幅图像来评估所提出的测试方法的效率。
框架是用Adam优化方法训练的,参数优化设置β1 = 0.9,β2 = 0.999。
训练初始学习率设定为0.0001,当训练步长达到总步长3/5时,学习率衰减为初始学习率的一半。一旦训练步骤达到总步骤的4/5,它就减少到初始步骤的1/4。
在训练和测试期间,使用标准的JPEG编解码器对多个描述进行压缩,QF分别为2、6、10、20和40。
为了验证该框架的有效性,我们使用峰值信噪比(PSNR)和SSIM来测量目标质量。
结果具体可看论文。












网友评论