一、实验名称
基于BP神经网络的图像压缩 二、实验目的
1.熟悉掌握神经网络知识;
2.学习多层感知器神经网络的设计方法和Matlab实现;
3.进一步了解掌握图像压缩的方式方法,分析仿真图像压缩效果。 三、实验要求
1.学习神经网络的典型结构;
2.了解BP算法基本思想,设计BP神经网络架构; 3.利用BP算法解决图像压缩的质量问题; 4.谈谈实验体会与收获。 四、实验步骤
(一)分析原理,编写程序
本实验主要利用BP神经网络多层前馈的模式变换能力,实现数据编码和压缩。采用输入层、隐含层、输出层三层网络结构。输入层到隐含层为编码过程,对图像进行线性变换,隐含层到输出层为网络解码过程,对经过压缩后的变换系统进行线性反变换,完成图像重构。其主要步骤有以下五步:
1.训练样本构造
基于数值最优化理论的训练算法,采用Levenberg-Marquardt方法,将训练图像的所有像素点作为压缩网络的输入,对图像进行划分。将原始图像分成4×4的互不重叠的像素块,并将每个像素快变形为16×1的列向量,将原始数据转化为16×1024的矩阵。对输入数据进行预处理,像素块矩阵进行尺度变换,即归一化处理。
为了将网络的输入、输出数据限定在[0,1]的区间内,本实验采用均值分布预处理方法。将待处理图像的灰度范围[xmin,xmax],变换域为[ymin,ymax],设待处理的像素灰度值为xi,则对于所有过程的映射yi满足公式:
yi =
(ymax?ymin)(xi?xmin)xmax?xmin+xmin
其主要程序为:
P = []; %将原始数据转化为16*1024的矩阵 for i = 1:32 for j = 1:32
I2 = I((i-1)*4 + 1:i*4,(j-1)*4 + 1:j*4); i3 = reshape(I2,16,1);
II = double(i3);
P_1 = II/255; %矩阵归一化处理 P = [P,P_1]; end end
2.创建神经网络
将图像样本集作为输入和理想信号训练BP网络,设此网络图像压缩比为S,网络输入层节点数为ni,隐含层节点数为nh,则压缩比:
S =
ninh
本实验将原始图像数据转化为16×1024的矩阵数据,网络输入层节点数为ni =64,隐含层节点数要求小于输入层节点数,则分别取nh 为4、8、12、16进行实验。
3.训练神经网络
构建输入矩阵(每一列代表一个输入模式),并将此作为输出矩阵。根据采用Levenberg-Marquardt方法,在Matlab中调用训练算法,即调用newff函数开始训练网络,函数的输入参数BTF取值“trainlm”,TFi取值“tansig、logsig”,训练次数设定为500次,性能目标为0.001。
其主要程序为:
net = newff(minmax(P),[8,16],{'tansig','logsig'},'trainlm'); net.trainParam.goal = 0.001; net.trainParam.epochs = 500;
4.编码仿真
根据给定的算法训练网络,然后进行仿真。在Matlab中用sim函数进行仿真。
5.图像重构
对压缩编码后的数据进行解码,并进行尺度变换回原数据量值,即每个矩阵元素分别乘以255,将像素值从[0,1]恢复到[0,255]区间内,再将列向量变形成图像块,合成一副完整图像,完成图像重构。
其主要程序为:
Y_fz= sim (net,P);%对网络训练结果进行编码仿真 Y_cg = []; %图像重构
- 1 -
for k = 1:1024
Y_cg1 = reshape(Y_1(:,k),4,4); Y_cg = [Y_cg,Y_cg1]; end Y_sc = []; for k = 1:32
Y_sc1 = Y_cg(:,(k-1)*128+1:k*128); Y_sc = [Y_sc;Y_sc1]; end
Y_scjg = uint8(Y_sc *255);
(二)分析及仿真实验
隐含层神经元数对神经网络的构建和训练有很重要的影响,当神经元数较少时,图像压缩较高,但重构图像质量较差,实验选取一定的神经元数,已满足图像重构质量和训练速度的要求。
实验1:神经元数nh = 4,S = 16,训练次数500; 实验2:神经元数nh = 8,S = 8,训练次数500; 实验3:神经元数nh = 12,S = 5.3,训练次数500; 实验4:神经元数nh = 16,S = 4,训练次数500。 五、实验结果分析
实验一结果:
原始图像
S = 16 压缩比为16时的训练误差性能曲线
图1 实验一图像压缩及误差曲线图
- 2 -
TRAINLM, Epoch 500/500, MSE 0.00150597/0.001, Gradient 0.658157/1e-010 TRAINLM, Maximum epoch reached, performance goal was not met. Elapsed time is 879.688000 seconds.
没有达到性能目标;
实验二结果:
原始图像
S = 8 压缩比为8时的训练误差性能曲线
图2 实验二图像压缩及误差曲线图
TRAINLM, Epoch 0/500, MSE 0.200195/0.001, Gradient 411.191/1e-010
TRAINLM, Epoch 10/500, MSE 0.000817748/0.001, Gradient 36.1943/1e-010 TRAINLM, Performance goal met. Elapsed time is 42.203000 seconds.
达到性能目标,重构图像质量好,训练速度快。
实验三结果:
- 3 -
原始图像
压缩比为5.3时的训练误差性能曲线
S = 5.3
图3 实验三图像压缩及误差曲线图
TRAINLM, Epoch 0/500, MSE 0.195168/0.001, Gradient 448.976/1e-010 TRAINLM, Epoch 10/500, MSE 0.000863373/0.001, Gradient 186.52/1e-010 TRAINLM, Performance goal met. Elapsed time is 77.187000 seconds.
达到性能目标,重构图像质量差,训练速度较快。
实验四结果:
原始图像
压缩比为4时的训练误差性能曲线
S = 4
图4 实验四图像压缩及误差曲线图
TRAINLM, Epoch 0/500, MSE 0.183762/0.001, Gradient 453.808/1e-010 TRAINLM, Epoch 18/500, MSE 0.000511771/0.001, Gradient 284.423/1e-010 TRAINLM, Performance goal met. Elapsed time is 226.625000 seconds.
- 4 -
达到性能目标,重构图像质量好,训练速度较慢。
综合上述实验分析:当隐含层元数选取8时,重构图像质量和训练速度都比较好,能够满足性能目标要求。 六、实验体会与收获
我现在学习的专业是图像处理,通过学习神经网络课程,使我进一步开拓了视野,了解掌握了一种新的数据处理方法。通过本次实验,进一步了解掌握神经网络强大的自学习能力和适应能力,以及对复杂问题的解决能力,也激发了进一步深入学习神经网络知识的热情。
- 5 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于BP神经网络的图像压缩--神经网络实验报告在线全文阅读。
相关推荐: