基于动态字节长度分配的卷积神经网络的图像压缩***
技术领域
本发明涉及一种图像压缩***,属于图像压缩技术领域。
背景技术
图像压缩是计算机视觉和图像处理领域中的一项基本问题。随着高质量的多媒体内容的发展和流行,图像的有损压缩在节省传输带宽和硬件存储上变得愈发重要。图像压缩***通常包括编码器、量化器和解码器三部分,这三部分构成了媒体数字信号编解码器。对于典型的图像编码标准,例如JPEG和JPEG2000,二者通常依赖于手动设计的编码器进行图像转换和离散优化。因此,对于图像压缩来说,这类图像编码标准并非最佳标准。除此之外,JPEG和JPEG2000对低比率图像的压缩性能较差,在对图像进行压缩的过程中,会不可避免地产生视觉上的非自然信号,例如模糊、振铃及块效应等。
基于上述问题,近年来,学者们尝试将卷积神经网络应用到图像压缩领域中,并取得了比JPEG和JPEG2000更好的压缩效果。因为对图像的编码和解码来说,卷积神经网络能够很容易地通过堆叠几层卷积层来实现灵活的非线性分析和合成转换,并能够端对端地联合优化非线性编码器和解码器。
但是,现有基于卷积神经网络的图像压缩方法仍然存在着不足:对于待压缩的图像,其局部信息内容是空间变化的。然而,对于现有基于卷积神经网络的图像压缩方法,其量化后的离散编码与编码器的输出长度相同,即待熵编码的离散编码的空间不变。因此,对于现有基于卷积神经网络的图像压缩方法,其待熵编码的离散编码有待改进为随待压缩图像的局部信息内容的变化而变化。
发明内容
本发明为解决采用现有基于卷积神经网络的图像压缩方法所得的离散编码的空间不变的问题,提出了一种基于动态字节长度分配的卷积神经网络的图像压缩***。
本发明所述的基于动态字节长度分配的卷积神经网络的图像压缩***包括卷积码编码器、字节长度分配图网络、二值器、点乘计算器、卷积熵编码器和卷积码解码器;
卷积码编码器包括卷积层C1~卷积层CN+1和残差块R1~残差块RN,卷积层和残差块依次间隔设置,卷积层C1的输入端和卷积层CN+1的输出端分别为卷积码编码器的待压缩图像输入端和初步编码特征图输出端,残差块RN的第一输出端为卷积码编码器的字节长度特征输出端,残差块RN的第二输出端与卷积层CN+1的输入端相连;
字节长度分配图网络的字节长度特征输入端和字节长度分配图模板输出端分别与卷积码编码器的字节长度特征输出端和点乘计算器的第一输入端相连;
字节长度分配图网络用于根据卷积码编码器发来的字节长度特征建立基于图像内容的字节长度分配图,并根据该字节长度分配图建立字节长度分配图模板;
二值器的初步编码特征图输入端和编码二值特征图输出端分别与卷积码编码器的初步编码特征图输出端和点乘计算器的第二输入端相连;
卷积熵编码器用于对点乘计算器的输出结果和字节长度分配图进行无损熵编码,得到压缩图像;
卷积码解码器用于对压缩图像进行解压;
N∈[2,3,4,5,6]。
作为优选的是,N=3;
卷积层C1用于对待压缩图像依次进行第一次卷积操作和第一次激活操作;
残差块R1用于对第一次激活操作的输出结果依次进行第二次卷积操作、第二次激活操作、第三次卷积操作和第三次激活操作,并将第三次激活操作的输出结果与第一次激活操作的输出结果进行点加操作,并对点加结果进行第四次激活操作;
卷积层C2用于对第四次激活操作后的点加结果依次进行第四次卷积操作和第五次激活操作;
残差块R2用于对第五次激活操作的输出结果依次进行第五次卷积操作、第六次激活操作、第六次卷积操作和第七次激活操作,将第七次激活操作的输出结果与第五次激活操作的输出结果进行点加操作,并对点加结果进行第八次激活操作;
卷积层C3用于对第八次激活操作后的点加结果进行第七次卷积操作和第九次激活操作;
残差块R3用于对第九次激活操作的输出结果依次进行第八次卷积操作、第十次激活操作、第九次卷积操作和第十一次激活操作,将第十一次激活操作的输出结果与第九次激活操作的输出结果进行点加操作,并对点加结果进行第十二次激活,第十二次激活操作后的点加结果为字节长度特征;
卷积层C4用于对第十二次激活操作后的点加结果依次进行第十次卷积操作和第十三次激活操作,对第十三次激活操作的输出结果进行量化,得到初步编码特征图;
第一次卷积操作为128个8*8、步长为4的卷积操作;
第二次卷积操作、第三次卷积操作、第五次卷积操作和第八次卷积操作均为128个3*3、步长为1的卷积操作;
第四次卷积操作为256个4*4、步长为2的卷积操作;
第六次卷积操作、第七次卷积操作和第九次卷积操作均为256个3*3、步长为1的卷积操作;
第十次卷积操作为M个1*1、步长为1的卷积操作,当所述图像压缩***的压缩率小于0.5bpp时,M=64,否则,M=128;
第一次激活操作至第十二次激活操作均采用ReLU函数,第十三次激活操作采用Sigmoid函数。
作为优选的是,字节长度分配图网络包括卷积层C5和卷积层C6;
卷积层C5用于对第十二次激活操作后的点加结果依次进行第十一次卷积操作和第十四次激活操作;
卷积层C6用于对第十四次激活操作的输出结果依次进行第十二次卷积操作和第十五次激活操作;
量化后的第十五次激活操作的输出结果为字节长度分配图;
第十一次卷积操作为128个3*3、步长为1的卷积操作;
第十二次卷积操作为1个1*1、步长为1的卷积操作;
第十四次激活操作采用ReLU函数;
第十五次激活操作采用Sigmoid函数。
作为优选的是,在卷积神经网络前向传播时,采用B(eijk)函数定义编码二值特征图中的元素:
在卷积神经网络反向传播时,定义函数计算二值操作梯度:
式中,eijk为初步编码特征图中的元素。
作为优选的是,字节长度分配图网络根据卷积码编码器发来的字节长度特征建立基于图像内容的字节长度分配图,并根据该字节长度分配图建立字节长度分配图模板的具体过程为:
S1、由卷积层C5和卷积层C6构成的两层卷积网络根据接收到的第十二次激活操作后的点加结果,得到字节长度分配特征;
S2、对字节长度分配特征进行取整操作,并采用Q(pij)函数定义字节长度分配特征的取整操作:
式中,pij为字节长度分配特征,l和L均为正整数,l为分配给取整后的pij的字节数,L为字节长度等级数,每个字节长度等级对应个字节,n为卷积码编码器的初步编码特征图的输出通道数,n为L的整数倍;
根据取整后的字节长度分配特征建立基于图像内容的字节长度分配图p,字节长度分配图p的尺寸为h*w,h为高度,w为宽度;
S3、根据字节长度分配图p,建立字节长度分配图模板m,其尺寸为n*h*w;
在卷积神经网络前向传播时,定义字节长度分配图模板m的元素mkij:
在卷积神经网络反向传播时,定义字节长度分配图模板m的导数为:
式中,k为mkij所在的特征通道。
作为优选的是,所述图像压缩***采用Adam优化算法进行端对端的训练。
作为优选的是,卷积熵编码器采用算术编码的方式对编码二值特征图与字节长度分配图模板m的点乘结果以及字节长度分配图p分别进行无损熵编码;
在对字节长度分配图p进行算术编码时,采用二进制编码图来表示字节长度分配图p;
定义c为待编码的二值字节图编码,在对c编码时,修改编码表,重新定义上下文,并基于卷积神经网络求取编码位生成0或1的概率,并生成概率表。
作为优选的是,卷积熵编码器根据所述概率表进行无损熵编码,无损熵编码的具体过程为:
S4、从左到右,跳过字节长度分配图模板m中值为0的点,逐行编码每个二值比特位;
S5、定义ckij为待编码的c的二值字节,通过该二值字节所在点位的相邻点和相邻通道来定义ckij的上下文CNTX(ckij),并将CNTX(ckij)分为可获得的字节和不可获得的字节;
可获得的字节能够用来预测ckij;
不可获得的字节包括ckij自身、字节长度分配图值为0的字节、超出边界的字节和因编码顺序而未能编码的字节;
CNTX(ckij)为5*5*4的立方体;
S6、对于CNTX(ckij),通过将不可获得的字节标记为0,将不可获得的字节中值为0的字节标记为1,将不可获得的字节中值为1的字节标记为2的方式来重新定义CNTX(ckij);
S7、对于卷积熵编码器,训练卷积熵编码器的损失函数定义如下,获取当其输入CNTX(ckij)时,输出ckij为0或1的概率:
式中,En(CNTX(ckij))为卷积熵编码。
作为优选的是,卷积码解码器包括:
卷积层C7用于对卷积熵编码器的输出结果依次进行第十三次卷积操作和第十六次激活操作;
残差块R4用于对第十六次激活操作的输出结果依次进行第十四次卷积操作、第十七次激活操作、第十五次卷积操作和第十八次激活操作,并将第十八次激活操作的输出结果与第十六次激活操作的输出结果进行点加操作,并对点加结果进行第十九次激活操作;
卷积层C8用于对第十九次激活操作后的点加结果依次进行第十六次卷积操作和第二十次激活操作;
残差块R5用于对第二十次激活操作的输出结果依次进行第十七次卷积操作、第二十一次激活操作、第十八次卷积操作和第二十二次激活操作,并将第二十二次激活操作的输出结果与第二十次激活操作的输出结果进行点加操作,并对点加结果进行第二十三次激活操作;
上采样层U1用于对第二十三次激活操作的输出结果进行第一次上采样操作;
卷积层C9用于对第一次上采样操作的输出结果依次进行第十九次卷积操作和第二十四次激活操作;
残差块R6用于对第二十四次激活操作的输出结果依次进行第二十次卷积操作、第二十五次激活操作、第二十一次卷积操作和第二十六次激活操作,将第二十六次激活操作的输出结果与第二十四次激活操作的输出结果进行点加操作,并对点加结果进行第二十七次激活操作;
上采样层U2用于对第二十七次激活操作后的点加结果进行第二次上采样操作;
卷积层C10用于对第二次上采样操作的输出结果依次进行第二十二次卷积操作、第二十八次激活操作和第二十三次卷积操作,得到解压缩后的图像;
第十三次卷积操作、第十五次卷积操作、第十六次卷积操作和第十八次卷积操作均为512个3*3、步长为1的卷积操作;
第十四次卷积操作、第十七次卷积操作和第二十次卷积操作均为128个3*3、步长为1的卷积操作;
第十九次卷积操作和第二十一次卷积操作均为256个3*3、步长为1的卷积操作;
第二十二次卷积操作为32个3*3、步长为1的卷积操作;
第二十三次卷积操作为3个1*1、步长为1的卷积操作;
第十六次激活操作至第二十八次激活操作均采用ReLU函数;
对于第一次上采样操作,输入C*H*W的特征,输出(C/4)*(2*H)*(2*W)的特征,C、H和W分别为特征通道数、特征高度和特征宽度,与其输入特征相比,其输出特征的宽高尺寸均扩大一倍;
对于第二次上采样操作,输入C*H*W的特征,输出(C/16)*(4*H)*(4*W)的特征,与其输入特征相比,其输出特征的宽高尺寸均扩大三倍。
作为优选的是,卷积熵编码器通过卷积层C11预测编码位生成0或1的概率:
卷积层C11对二进制编码图依次进行第二十四次卷积操作、第二十九次激活操作、第二十五次卷积操作、第三十次激活操作、第二十六次卷积操作、第三十一次激活操作、第二十七次卷积操作和第三十二次激活操作;
将第三十二次激活操作的输出结果依次经过第一全连接层和第二全连接层,并对第二全连接层的输出结果进行第三十三次激活操作,获得概率值;
第二十四次卷积操作和第二十五次卷积操作均为64个3*3、步长为1的卷积操作;
第二十六次卷积操作为128个3*3、步长为1的卷积操作;
第二十七次卷积操作为256个3*3、步长为1的卷积操作;
第二十九次激活操作至第三十二次激活操作均采用PReLU函数,第三十三次激活操作采用Sigmoid函数;
第一全连接层输出32个特征,第二全连接层输出1个特征。
本发明所述的基于动态字节长度分配的卷积神经网络的图像压缩***,字节长度分配图网络将卷积码编码器的中间特征,即字节长度特征,作为其输入,建立基于待压缩图像内容的字节长度分配图,并根据该字节长度分配图建立字节长度分配图模板。二值器输出的编码二值特征图,即离散编码,在进入卷积熵编码器之前,先与字节长度分配图模板进行点乘裁剪。因此,对于本发明所述的图像压缩***,其待熵编码的离散编码随待压缩图像的局部信息内容的变化而变化,与待压缩图像的配合度更高,具有更好的压缩效果。
附图说明
在下文中将基于实施例并参考附图来对本发明所述的基于动态字节长度分配的卷积神经网络的图像压缩***进行更详细的描述,其中:
图1为实施例所述的基于动态字节长度分配的卷积神经网络的图像压缩***的结构框图,其中,1为卷积码编码器,2为字节长度分配图网络,3为二值器,4为点乘计算器,5为卷积熵编码器,6为卷积码解码器;
图2为实施例提及的卷积码编码器的结构框图;
图3为实施例提及的卷积熵编码的网络结构图;
图4为实施例提及的待压缩图与其对应的字节长度分配图的对比图。
具体实施方式
下面将结合附图对本发明所述的基于动态字节长度分配的卷积神经网络的图像压缩***作进一步说明。
实施例:下面结合图1至图4详细地说明本实施例。
本实施例所述的基于动态字节长度分配的卷积神经网络的图像压缩***包括卷积码编码器、字节长度分配图网络、二值器、点乘计算器、卷积熵编码器和卷积码解码器;
卷积码编码器包括卷积层C1~卷积层CN+1和残差块R1~残差块RN,卷积层和残差块依次间隔设置,卷积层C1的输入端和卷积层CN+1的输出端分别为卷积码编码器的待压缩图像输入端和初步编码特征图输出端,残差块RN的第一输出端为卷积码编码器的字节长度特征输出端,残差块RN的第二输出端与卷积层CN+1的输入端相连;
字节长度分配图网络的字节长度特征输入端和字节长度分配图模板输出端分别与卷积码编码器的字节长度特征输出端和点乘计算器的第一输入端相连;
字节长度分配图网络用于根据卷积码编码器发来的字节长度特征建立基于图像内容的字节长度分配图,并根据该字节长度分配图建立字节长度分配图模板;
二值器的初步编码特征图输入端和编码二值特征图输出端分别与卷积码编码器的初步编码特征图输出端和点乘计算器的第二输入端相连;
卷积熵编码器用于对点乘计算器的输出结果和字节长度分配图进行无损熵编码,得到压缩图像;
卷积码解码器用于对压缩图像进行解压;
N∈[2,3,4,5,6]。
在本实施例中,N=3;
卷积层C1用于对待压缩图像依次进行第一次卷积操作和第一次激活操作;
残差块R1用于对第一次激活操作的输出结果依次进行第二次卷积操作、第二次激活操作、第三次卷积操作和第三次激活操作,并将第三次激活操作的输出结果与第一次激活操作的输出结果进行点加操作,并对点加结果进行第四次激活操作;
卷积层C2用于对第四次激活操作后的点加结果依次进行第四次卷积操作和第五次激活操作;
残差块R2用于对第五次激活操作的输出结果依次进行第五次卷积操作、第六次激活操作、第六次卷积操作和第七次激活操作,将第七次激活操作的输出结果与第五次激活操作的输出结果进行点加操作,并对点加结果进行第八次激活操作;
卷积层C3用于对第八次激活操作后的点加结果进行第七次卷积操作和第九次激活操作;
残差块R3用于对第九次激活操作的输出结果依次进行第八次卷积操作、第十次激活操作、第九次卷积操作和第十一次激活操作,将第十一次激活操作的输出结果与第九次激活操作的输出结果进行点加操作,并对点加结果进行第十二次激活,第十二次激活操作后的点加结果为字节长度特征;
卷积层C4用于对第十二次激活操作后的点加结果依次进行第十次卷积操作和第十三次激活操作,对第十三次激活操作的输出结果进行量化,得到初步编码特征图;
第一次卷积操作为128个8*8、步长为4的卷积操作;
第二次卷积操作、第三次卷积操作、第五次卷积操作和第八次卷积操作均为128个3*3、步长为1的卷积操作;
第四次卷积操作为256个4*4、步长为2的卷积操作;
第六次卷积操作、第七次卷积操作和第九次卷积操作均为256个3*3、步长为1的卷积操作;
第十次卷积操作为M个1*1、步长为1的卷积操作,当所述图像压缩***的压缩率小于0.5bpp时,M=64,否则,M=128;
第一次激活操作至第十二次激活操作均采用ReLU函数,第十三次激活操作采用Sigmoid函数。
字节长度分配图网络包括卷积层C5和卷积层C6;
卷积层C5用于对第十二次激活操作后的点加结果依次进行第十一次卷积操作和第十四次激活操作;
卷积层C6用于对第十四次激活操作的输出结果依次进行第十二次卷积操作和第十五次激活操作;
量化后的第十五次激活操作的输出结果为字节长度分配图;
第十一次卷积操作为128个3*3、步长为1的卷积操作;
第十二次卷积操作为1个1*1、步长为1的卷积操作;
第十四次激活操作采用ReLU函数;
第十五次激活操作采用Sigmoid函数。
本实施例的二值器用于对卷积码编码器输出的初步编码特征图进行二值化操作,将二值器3的函数定义为:
式中,eijk为初步编码特征图中的元素。
然而,该二值器函数B(eijk)的导数除了在eijk=0.5处是无穷大以外,几乎都是0。由于在神经网络反向传播过程中,梯度是通过链式法则逐层计算的。因此,在二值器之前,也就是卷积码编码器,其在训练过程中都不会更新。为了解决该问题,本实施例引入了一个代理函数来近似B(eijk)。这里的B(eijk)仍然在前向传播中计算,用来反向传播计算。
定义为:
的反向传播导数为:
字节长度分配图网络根据卷积码编码器发来的字节长度特征建立基于图像内容的字节长度分配图,并根据该字节长度分配图建立字节长度分配图模板的具体过程为:
S1、由卷积层C5和卷积层C6构成的两层卷积网络根据接收到的第十二次激活操作后的点加结果,得到字节长度分配特征;
S2、对字节长度分配特征进行取整操作,并采用Q(pij)函数定义字节长度分配特征的取整操作:
式中,pij为字节长度分配特征,l和L均为正整数,l为分配给取整后的pij的字节数,L为字节长度等级数,每个字节长度等级对应个字节,n为卷积码编码器的初步编码特征图的输出通道数,n为L的整数倍;
根据取整后的字节长度分配特征建立基于图像内容的字节长度分配图p,字节长度分配图p的尺寸为h*w,h为高度,w为宽度;
S3、根据字节长度分配图p,建立字节长度分配图模板m,其尺寸为n*h*w;
在卷积神经网络前向传播时,定义字节长度分配图模板m的元素mkij:
在卷积神经网络反向传播时,定义字节长度分配图模板m的导数为:
式中,k为mkij所在的特征通道。
本实施例所述的基于动态字节长度分配的卷积神经网络的图像压缩***的整体为一个优化压缩比率和重建图像失真问题。目标函数为最小化失真损失和比率损失。权衡参数γ用来平衡压缩比率和失真。使用X表示训练集,x∈X表示该集合的一幅图。最终,所述图像压缩***的目标函数定义为:
式中,c为输入图像x的编码,LD(c,x)为失真损失,LR(x)为比率损失。失真是用来评估原始图和解码后图像的损失。尽管可以通过在视觉空间评价失真来获得更好的图像。针对输入图x和解码结果D(c),本实施例简单地采用L2误差来定义失真损失:
关于比率损失,本实施例直接在连续近似的编码长度上定义比率损失,而不是使用熵率。假设卷积码编码器输出的初步编码特征图的尺寸为n*h*w。本实施例的编码包含两部分:第一部分是字节长度分配图,尺寸为h*w;第二部分是裁剪的二值码,大小为需要注意的是,Q(pij)的尺寸相对于卷积码编码器和字节长度分配图网络来说是一个常量,因此可以作为比率损失。
由于Q(pij)的取整影响,是不能通过反向传播优化的。因此本实施例将Q(pij)写成连续形式,并且使用字节长度分配图的和作为比率损失:
为了更好地控制比率,本实施例使用了阈值r,只有当该损失大于r时来惩罚上述公式中的比率损失。因此本实施例定义的最终比率损失为:
该阈值r可以根据给定压缩比率的编码长度设置。通过这种方式,本实施例的比率损失将会惩罚编码长度大于r的,并且使得学习到的压缩***获得给定压缩比率的可比较的结果。
所述图像压缩***采用Adam优化算法进行端对端的训练。训练时,首先对数据集X,使用不带有字节长度分配图训练得到的参数初始化整个模型。然后该模型经过学习率为1e-4,1e-5和1e-6进一步训练。在每个学习率训练阶段,直到目标函数不再进一步减小,然后使用更小的学习率来细调整个模型。
本实施例的卷积熵编码器采用算术编码的方式对编码二值特征图与字节长度分配图模板m的点乘结果以及字节长度分配图p分别进行无损熵编码;
在对字节长度分配图p进行算术编码时,采用二进制编码图来表示字节长度分配图p;
定义c为待编码的二值字节图编码,在对c编码时,修改编码表,重新定义上下文,并基于卷积神经网络求取编码位生成0或1的概率,并生成概率表。
卷积熵编码器根据所述概率表进行无损熵编码,无损熵编码的具体过程为:
S4、从左到右,跳过字节长度分配图模板m中值为0的点,逐行编码每个二值比特位;
S5、定义ckij为待编码的c的二值字节,通过该二值字节所在点位的相邻点和相邻通道来定义ckij的上下文CNTX(ckij),并将CNTX(ckij)分为可获得的字节和不可获得的字节;
可获得的字节能够用来预测ckij;
不可获得的字节包括ckij自身、字节长度分配图值为0的字节、超出边界的字节和因编码顺序而未能编码的字节;
CNTX(ckij)为5*5*4的立方体;
S6、对于CNTX(ckij),通过将不可获得的字节标记为0,将不可获得的字节中值为0的字节标记为1,将不可获得的字节中值为1的字节标记为2的方式来重新定义CNTX(ckij);
S7、对于卷积熵编码器,训练卷积熵编码器的损失函数定义如下,获取当其输入CNTX(ckij)时,输出ckij为0或1的概率:
式中,En(CNTX(ckij))为卷积熵编码。
本实施例采用算数编码的方式来进行无损熵编码。相对于霍夫曼编码,给定一个很好定义的上下文,算数编码具有更好地压缩比率。在编码制度上,本实施例简单地从左到右,跳过字节长度分配图模板中值为0的点,逐行编码每个二值比特位。上下文模型中,定义ckij是要编码c的二值字节。通过该位置的相邻点和相邻通道来定义ckij的上下文CNTX(ckij)。其中CNTX(ckij)大小为5*5*4的立方体。本实施例进一步将CNTX(ckij)的字节划分为两组,分别为可获得的值和不可获得的值。可获得的值代表这些能够用来预测ckij的,而不可获得的部分包含:(1)ckij自身;(2)字节长度分配图中值为0的字节;(3)超出边界的字节;(4)当前由于编码顺序而未能编码的字节。这里本实施例重新定义了CNTX(ckij),(1)对不可获得的字节标记为0;(2)对不可获得的字节中值为0的字节标记为1,并且标记不可获得字节中值为1的字节标记为2。
通常概率预测的方法是建立和保持频率表。但是针对本实施例,立方体的尺寸太大,以至于不能建立频率表。因此本实施例引入了一个卷积神经网络模型来预测概率。该卷积熵编码网络输入CNTX(ckij),En(CNTX(ckij))为卷积熵编码,输出字节ckij为0或1的概率。因此,学习熵编码的损失函数定义为:
本实施例的卷积码解码器包括:
卷积层C7用于对卷积熵编码器的输出结果依次进行第十三次卷积操作和第十六次激活操作;
残差块R4用于对第十六次激活操作的输出结果依次进行第十四次卷积操作、第十七次激活操作、第十五次卷积操作和第十八次激活操作,并将第十八次激活操作的输出结果与第十六次激活操作的输出结果进行点加操作,并对点加结果进行第十九次激活操作;
卷积层C8用于对第十九次激活操作后的点加结果依次进行第十六次卷积操作和第二十次激活操作;
残差块R5用于对第二十次激活操作的输出结果依次进行第十七次卷积操作、第二十一次激活操作、第十八次卷积操作和第二十二次激活操作,并将第二十二次激活操作的输出结果与第二十次激活操作的输出结果进行点加操作,并对点加结果进行第二十三次激活操作;
上采样层U1用于对第二十三次激活操作的输出结果进行第一次上采样操作;
卷积层C9用于对第一次上采样操作的输出结果依次进行第十九次卷积操作和第二十四次激活操作;
残差块R6用于对第二十四次激活操作的输出结果依次进行第二十次卷积操作、第二十五次激活操作、第二十一次卷积操作和第二十六次激活操作,将第二十六次激活操作的输出结果与第二十四次激活操作的输出结果进行点加操作,并对点加结果进行第二十七次激活操作;
上采样层U2用于对第二十七次激活操作后的点加结果进行第二次上采样操作;
卷积层C10用于对第二次上采样操作的输出结果依次进行第二十二次卷积操作、第二十八次激活操作和第二十三次卷积操作,得到解压缩后的图像;
第十三次卷积操作、第十五次卷积操作、第十六次卷积操作和第十八次卷积操作均为512个3*3、步长为1的卷积操作;
第十四次卷积操作、第十七次卷积操作和第二十次卷积操作均为128个3*3、步长为1的卷积操作;
第十九次卷积操作和第二十一次卷积操作均为256个3*3、步长为1的卷积操作;
第二十二次卷积操作为32个3*3、步长为1的卷积操作;
第二十三次卷积操作为3个1*1、步长为1的卷积操作;
第十六次激活操作至第二十八次激活操作均采用ReLU函数;
对于第一次上采样操作,输入C*H*W的特征,输出(C/4)*(2*H)*(2*W)的特征,C、H和W分别为特征通道数、特征高度和特征宽度,与其输入特征相比,其输出特征的宽高尺寸均扩大一倍;
对于第二次上采样操作,输入C*H*W的特征,输出(C/16)*(4*H)*(4*W)的特征,与其输入特征相比,其输出特征的宽高尺寸均扩大三倍。
在本实施例中,卷积熵编码器通过卷积层C11预测编码位生成0或1的概率:
卷积层C11对二进制编码图依次进行第二十四次卷积操作、第二十九次激活操作、第二十五次卷积操作、第三十次激活操作、第二十六次卷积操作、第三十一次激活操作、第二十七次卷积操作和第三十二次激活操作;
将第三十二次激活操作的输出结果依次经过第一全连接层和第二全连接层,并对第二全连接层的输出结果进行第三十三次激活操作,获得概率值;
第二十四次卷积操作和第二十五次卷积操作均为64个3*3、步长为1的卷积操作;
第二十六次卷积操作为128个3*3、步长为1的卷积操作;
第二十七次卷积操作为256个3*3、步长为1的卷积操作;
第二十九次激活操作至第三十二次激活操作均采用PReLU函数,第三十三次激活操作采用Sigmoid函数;
第一全连接层输出32个特征,第二全连接层输出1个特征。
虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他所述实施例中。