一种图像编解码神经网络分层定点化方法与流程

文档序号:24799916发布日期:2021-04-23 15:50阅读:133来源:国知局
一种图像编解码神经网络分层定点化方法与流程

1.本发明涉及神经网络压缩领域,具体涉及一种图像编解码神经网络分层定点化方法。


背景技术:

2.近年来,人工神经网络发展到了深度学习(deep learning)阶段。深度学习试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的一系列算法,其强大表达能力使得其在各个机器学习的任务上取到了最好的效果,在视频和图像处理上的表现在目前也超过了其它方法。而结合深度学习中autoencoder的基本思路做图像和视频压缩,用深度学习的方法来提供一个新的视频编码和解码的方法,对于以后的视频数据压缩领域发展是一个很好的开始工作,也便于未来在视频压缩方向上,神经网络的新方案在整个系统的完善过程中有着比传统方法更好的表现和前景。
3.但是,现有的图像编解码网络参数一般以浮点形式存储,导致其存储空间需求量大。同时浮点矩阵的乘法运算耗时长,运行内存需求大,限制了基于深度学习的图像编解码方案的实用性。
4.现有的神经网络定点化方案大多是面向图像分类任务,并对所有的网络层采取相同的量化参数,但在图像编解码任务中,对不同网络层的参数和激活值做定点化对网络性能会产生不同的影响。因此,对所有的网络层采取相同的量化参数并非最优方案。


技术实现要素:

5.本发明针对上述现有技术中存在的问题,提出一种图像编解码神经网络分层定点化方法。
6.本发明采用的技术方案如下:
7.一种图像编解码神经网络分层定点化方法,该方法的步骤如下:
8.(1)选取合适的静态图像训练集及测试集建立并训练端到端的图像编解码网络;
9.(2)对所述图像编解码网络的参数和激活值进行定点化,其中,对于网络不同层的参数和激活值采用不同的定点化比特数,并对需要进行浮点运算的激活函数进行简化;
10.(3)重新训练经步骤(2)定点化后的图像编解码网络;
11.(4)将训练后的图像编解码网络的输出数据,经过量化和无损熵编码输出作为压缩数据。
12.进一步地,步骤(1)中,所述图像编解码网络的编码端包括主编码器、超先验编解码器和上下文模型,主编码器用于将输入原始图像变换为特征图,超先验编解码器及上下文模型用于根据特征图估计特征图中像素的概率分布提供给熵编码器;在编码端,超先验编码器产生的压缩数据采用固定分布进行概率计算,经熵编码后作为额外信息加入到最终的压缩码流中;所述图像编解码网络的解码端包括主解码器、超先验解码器和所述上下文模型,超先验解码器及所述上下文模型用于为通过额外信息解码出特征图中像素的概率分
布提供给熵解码器,主解码器用于将特征图还原为重构图像。
13.进一步地,步骤(2)的具体步骤为:1)确定浮点矩阵的定点取值范围;2)根据定点取值范围,将浮点矩阵取值范围归一化至[

1,+1];3)将归一化的浮点矩阵简化为整数矩阵;4)对网络中的激活函数进行简化。
[0014]
进一步地,步骤(3)中对步骤(2)定点化后的编解码网络进行重新训练,其训练方法与步骤(1)相同,此外还包括:1)利用步骤(2)得到的激活函数结果和梯度进行优化深度训练;2)对激活函数的梯度传播进行优化,使用四舍五入的方法进行梯度值的下一层传播。
[0015]
本发明的方法具有以下有益效果:
[0016]
1)对图像编解码网络参数以及输入网络的激活值做定点化操作,减少了图像编解码的计算量,同时使其能够在硬件上进行实现。
[0017]
2)对网络的非线性激活函数进行了简化,将指数运算简化为线性运算,进一步减少计算量。
[0018]
3)相较于目前存在的面向图像分类任务的网络定点化方案,本发明通过对不同的网络层采用不同的量化系数,优化了定点化效果。
附图说明
[0019]
图1是本发明实施例中端到端的编解码网络结构图;
[0020]
图2是本发明的定点化方法与全网络层8比特定点化方法性能对比图。
具体实施方式
[0021]
下面结合附图与实施例对本发明的方案进行详细说明。
[0022]
本发明的一种图像编解码神经网络分层定点化方法,步骤如下:(1)选取合适的静态图像训练集及测试集建立并训练端到端的图像编解码网络;(2)对网络参数和激活值进行定点化。其中,对于网络不同层的参数和激活值采用不同的定点化比特数,并对需要进行浮点运算的激活函数进行简化;(3)重新训练定点化后的编解码网络;(4)编码网络的输出数据经过量化和无损熵编码输出作为压缩数据。
[0023]
步骤(1)中数据集的选取对于整个神经网络的训练有很大的影响,本实施例选取nic数据集。nic数据集是基于深度学习的图像压缩的ieee标准测试模型nic的开发数据集,包括图像大小为256*256的训练集和测试集。
[0024]
本实施例的端到端的编解码网络结构如图1所示。编码端包含主编码器及超先验(hyper prior)编解码器、上下文模型。主编码器作用为将输入原始图像变换为通道数为192,行、列尺寸分别为原大小1/16的特征图。超先验编解码器及上下文模型的作用为根据特征图估计特征图中像素的概率分布提供给熵编码器。在编码端,超先验编码器产生的压缩数据采用固定分布进行概率计算,经熵编码后作为额外信息加入到最终的压缩码流中。解码端包含主解码器、超先验解码器、及上下文模型。超先验解码器及上下文模型的作用为通过额外信息解码出特征图中像素的概率分布提供给熵解码器。主解码器作用为将特征图还原为重构图像。
[0025]
采用adam自适应梯度优化算法对端到端的图像编解码网络进行训练。代价函数为率失真代价函数,其中,失真度为网络输入图像与网络重构图像的均方差;码率通过利用超
先验编解码器及上下文模型所得的概率分布计算特征图中像素包含的信息量进行估计。通过在建立的数据集上进行充分训练,在其代价函数loss值达到收敛后,保存训练模型,作为端到端的图像编解码网络。
[0026]
步骤(2)中分为4个子步骤。

确定浮点矩阵的定点取值范围。过程如式(1)

(3)所示,式中n
l
为用于表示r
float
整数部分的比特数,n
r
为用于表示r
float
小数部分的比特数。首先根据当前层的量化总比特数n限制激活值矩阵以及权重矩阵的取值范围,式(1)中clip(a,x,y)函数作用为限制将矩阵a的取值最小值限制为x,最大值限制为y,即将矩阵a中小于x的值都取为x,将矩阵a中大于y的值都取为y。式(2)中r
float
为浮点形式的矩阵范围。式(3)中round函数为四舍五入取整函数。

根据定点取值范围,将浮点矩阵取值范围归一化至[

1,+1],公式如式(4)所示。

将归一化的浮点矩阵简化为整数矩阵,公式为式(6)所示。

对网络中的sigmoid与softmax激活函数进行简化,公式分别如式(7)(8)所示。式(8)中,hardmax函数为“硬最大值”函数,其作用为将矩阵中等于矩阵元素最大值的数置为1,其余置为0。
[0027][0028]
r
float
=max(|x
limited
|)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0029][0030][0031]
n=n
l
+n
r
ꢀꢀꢀꢀ
(5)
[0032]
x
fix
=round(x
normalized
*2
n
‑1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0033][0034]
y=hardmax(x)
ꢀꢀꢀꢀ
(8)
[0035]
本发明与现有网络定点化方案不同点在于,定点化比特数根据所处的层的不同而不同,即式(1)

(4)中n
l
与n
r
的取值与激活值矩阵与网络参数矩阵所处的层有关。在该基于nic网络的实施例中,对于解码网络的第一个上采样层,将激活值矩阵与网络参数矩阵n取为16,对于上下文模型中的三维卷积层n取为12,对于其余层n取为8。起到在尽量少增加计算量的前提下明显提高定点化编解码网络的性能。
[0036]
步骤(3)中,对步骤(2)中的定点化编解码网络进行重新训练。训练方法与步骤(1)中相同。额外地,为解决步骤(2)中的定点化网络在训练过程中无法进行正确梯度传播的问题,本实施例采取方法如下:对于简化的softmax函数,在训练过程中直接采用softmax函数的结果和梯度进行训练;对于简化的sigmoid函数,在训练过程中梯度传播公式如式(9)所示;对于其它定点化中采用的四舍五入取值(round)函数,在训练过程中梯度传播公式如式(10)所示。式中,g
input
表示未经过该层传播的梯度值,g
output
表示经过该层传播后的梯度值。
[0037]
[0038]
g
output
=g
input
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0039]
步骤(4)中,将输入图像输入编码网络,编码网络对每个块独立地进行编码产生特征图。对特征图采用四舍五入取整的方式进行量化,熵编码器利用超先验编解码器提供的概率分布对量化后的特征图进行无损熵编码(如算术编码)形成码流,并与超先验编码器产生的额外码流叠加作为最终的压缩数据。
[0040]
为了说明本发明方法的效果,以下与现有技术进行实例比对。
[0041]
表1为浮点编解码网络卷积层计算量与本发明优化后编解码网络计算量对比表
[0042][0043]
表2为浮点计算以及定点计算所用时间对比表
[0044] 8位定点运算16位定点运算浮点运算运算时间(s)0.270.270.657
[0045]
表3为计算指数运算以及线性运算所需时间对比表
[0046] 线性运算指数运算运算时间(s)0.7784.08
[0047]
表1中,c,h,w分别表示输入卷积层的图像的通道数,高度和宽度;k,n,s分别表示卷积层卷积核尺寸,卷积核输出尺寸大小以及卷积层扫描步长。表2为cpu为core
tm
i5

6300u cpu@2.40ghz,运行内存为8gb的计算机分别进行108次浮点计算以及定点计算所用时间对比表。由表1,表2可见,本发明将编解码网络中绝大多数浮点运算转换为了定点运算,大幅减少了编解码网络运行时间。表3为cpu为core
tm
i5

6300u cpu@2.40ghz,运行内存为8gb的计算机计算指数运算以及线性运算所需时间对比表。由表3可见,本发明将指数运算简化为线性运算能够节省大量的运行时间。
[0048]
图2给出了本发明的定点化方法与全网络层8比特定点化方法性能对比图,可以看出,本实施例的方法在较高码率段,较全网络层8比特定点化峰值信噪比(psnr)值提高了0.3db左右,且除了第一上采样层及三维卷积层2层外均保持8比特定点化,并未有明显计算量增加。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1