APP下载

神经网络在交通图像压缩中的应用

2019-12-27

山西电子技术 2019年6期
关键词:解码权值个数

罗 山

(攀枝花学院交通与汽车工程学院,四川 攀枝花 617000)

0 引言

经典的图像压缩算法如熵编码算法,行程编码算法,LZW压缩算法[1],矢量量化编码算法[2],DCT压缩算法[3],小波压缩算法[4]等存在某些方面的不足,无法获得满意的压缩效果。人工神经网络具有强大的模式识别和数据拟合能力,在图像压缩领域的应用日益广泛[5]。它大大降低了处理大容量的交通图像的复杂性,并且对图像中的噪声具有很好的容错性,因此采用性能良好的神经网络进行交通图像的压缩。

1 神经网络模型与原理

神经网络种类繁多,其中应用最为广泛的是BP(Back Propagation)神经网络[6],具有非常强的非线性映射能力,结构简单、易于实现。三层BP网络的典型结构如图1所示。

图1 三层BP网络模型

BP网络的核心是误差反向传播算法与梯度下降算法,其基本原理是计算实际输出与期望输出的误差,通过误差反向传播求得权值和阈值的梯度,利用梯度下降法不断调整网络的权值和阈值,使网络的误差平方和最小。BP网络的学习分为信号正向传播和误差反向传播两个过程,信号正向传播是输入已知学习样本,通过构建的网络和前一次迭代的权值和阈值,从网络的第一层向后逐层计算各神经元的输出;误差反向传播是通过计算输出层输出与期望值的误差,使误差沿原信号路径返回,通过梯度下降法不断修改各层的连接权值和神经元节点阈值。训练网络时,这两个过程反复交替进行,直到误差或训练次数满足要求为止。

2 基于BP神经网络的交通图像压缩

2.1 BP神经网络压缩原理

把一组输入模式通过少量的隐含层神经元映射到一组输出模式,并使输出模式尽可能等于输入模式。因此,隐含层神经元的值和相应的权值向量可以输出一个与原输入模式相同的向量。当隐含层的神经元个数少于输入层神经元个数时,就意味着隐含层能用更少的数来表现输入模式,即实现了数据压缩。

从输入层到隐含层的映射相当于对图像压缩的编码,从隐含层到输出层的映射相当于解码,对压缩后的图像进行反变换实现图像重建。输入模式经过隐含层到达输出层,训练好的网络隐含层神经元值则是图像压缩的结果,而输出层神经元值则是重建的图像。设计时输入层和输出层神经元个数等于原始图像分块后子图像的像素数,隐含层的神经元个数比输入层和输出层的神经元个数少。

2.2 BP神经网络压缩系统

基于BP神经网络的交通图像压缩系统框图如图2所示。

图2 BP神经网络交通图像压缩系统

2.2.1 图像分块

首先将图像大小调整为N×N像素大小。为控制网络的规模,将大小为N×N的图像划分为k×k大小的图像块,按行从左向右依次将每个图像块转换为一个列向量,依次排列构成一个k2×(N2/k2)大小的矩阵作为输入训练样本。

2.2.2 归一化

为保证网络性能的稳定性,输入训练样本需要进行归一化处理。这里考虑到图像数据的特殊性,像素灰度值为整数,且位于0~255之间,因此将灰度值除以255进行归一化处理。

2.2.3 BP网络压缩

1) 构建网络:选择三层的BP神经网络结构,l、n分别为输入层与输出层神经元个数,隐含层神经元个数决定了压缩比的大小,可根据式(1)估计确定[7]:

(1)

式中:m为隐含层神经元个数;a为0~10之间的常数。

因为BP网络的非线性逼近能力是通过S型激活函数体现出来的,所以隐含层一般采用S型激活函数,输出层采用线性激活函数。

3) 保存压缩结果:训练完成后,压缩的结果是每个输入样本对应的隐含层神经元向量的值,以及网络的权值和阈值。将输入样本与输入层和隐含层的连接权值矩阵相乘后加上隐含层的阈值,再用S型激活函数处理,即可得到隐含层神经元向量的值。

2.2.4 Huffman编码及解码

对压缩的结果进行Huffman编码,以进一步去除统计冗余。对Huffman编码码元进行解码,还原压缩结果,以便下一步进行BP网络解码。

2.2.5 BP网络解码

将Huffman解码输出值与隐含层和输出层的连接权值矩阵相乘后加上输出层的阈值即得到BP网络解码输出。

2.2.6 去归一化

将BP网络解码输出数据乘以像素峰值255,并取整即可进行去归一化。

2.2.7 图像重建

去归一化后的解码矩阵与训练样本矩阵的大小相同,将该矩阵的每一列抽取出来,重新排列成k×k大小的矩阵,并对每个k×k矩阵按行从左向右依次排列,则可重建原图像。

3 仿真实验及分析

使用大小为256×256的图像进行仿真实验。考虑控制网络的规模,并通过对不同大小的图像块进行实验可知,将图像划分为4×4的子块可获得更好的压缩性能。然后对训练样本矩阵进行归一化处理。神经网络参数设置为:输入层和输出层神经元个数均为16,隐含层神经元数目根据式(1)可取6~16间的数,通过实验确定取7可获得良好的压缩性能;隐含层激活函数采用Tan-Sigmoid函数,输出层采用线性激活函数;目标误差最小值为0.001,最大训练步数为1 000;分别采用自适应学习率梯度下降法[8]和BFGS拟牛顿法[9]训练网络。

利用设置好的神经网络进行压缩与重建,仿真实验结果如图3~5所示。

图3 不同学习算法压缩效果对比(一)

图4 不同学习算法压缩效果对比(二)

图5 不同学习算法压缩效果对比(三)

为进一步比较自适应学习率梯度下降法与BFGS拟牛顿法的压缩效果,采用峰值信噪比(PSNR)和压缩率(Rate)来客观评价图像压缩质量,其定义分别为:

(2)

(3)

其中,cp为压缩图像文件的大小(字节数)。

得到的压缩性能指标结果如表1所示。

表1 不同学习算法的压缩性能比较

分别对比图3、图4和图5中压缩后的重建图像,自适应学习率梯度下降法的重建图像中存在方块效应,细节较模糊,失真度大;而BFGS拟牛顿法的重建图像中几乎没有方块效应,重建图像保真度高,细节清晰,视觉效果良好。从表1可以看出,与自适应学习率梯度下降法相比,基于BFGS拟牛顿法压缩的Rate只有小幅度的增大,压缩比几乎一样,但PSNR有很大的提高,提高了6个dB以上,压缩性能得到极大的改善。可见,在获得更低压缩率(高压缩比)的情况下,达到了重建图像质量好的理想压缩性能要求。

5 结束语

针对传统的图像压缩算法在某些方面的不足,采用BP神经网络实现交通图像的压缩。构建以BP神经网络为核心的压缩系统,设置网络参数,通过实验确定合适的隐含层神经元个数和学习算法,BFGS拟牛顿法比自适应学习率梯度下降法的训练时间短,压缩性能更好,重建图像质量更高。

猜你喜欢

解码权值个数
一种融合时间权值和用户行为序列的电影推荐模型
《解码万吨站》
怎样数出小正方体的个数
CONTENTS
解码eUCP2.0
等腰三角形个数探索
怎样数出小木块的个数
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
怎样数出小正方体的个数