基于粒子群优化的BP神经网络图像复原算法研究
王文中1,2, 张树生1, 余隋怀1     
1. 西北工业大学 陕西省工业设计工程实验室, 陕西 西安 710072;
2. 陕西科技大学, 陕西 西安 710021
摘要: 立足于粒子群算法与BP神经网络算法相结合的PSO-BP算法,在对其进行优化的基础上,将这一算法应用到图像复原的研究中。在PSO-BP优化算法模型中,一方面用BP算法将各个训练样本的误差进行反传,并用原始图片作为参考共同修正BP算法的权阈值;另一方面又通过正向粒子群算法及BP自身算法对复原图像进行优化。最后通过算法分析和实验数据验证PSO-BP优化算法的复原效果优于同类型算法。
关键词: 图像复原     MATLAB     PSO-BP优化算法     像素    

图像退化和图像复原互为因果关系,由于各种外部和内部因素而导致图像质量的降低,我们称之为图像退化,其为因;而改善图像质量的数字图像处理技术,我们称之为图像复原(image restoration),其为果。图像复原通常是指应用计算机技术和数学理论,研究如何建立数学算法模型,把退化了的图像还原成原始图像,简而言之,图像复原过程就是退化的一个逆过程。图像复原对于图像分析、模式识别、特征元素提取等图像的进一步研究意义重大,已广泛用于科学研究、工程实践和日常生活中。

1 图像退化与复原模型

图像的老化,可以视为以下这样的一个退化过程:退化函数的影响(致使图片模糊,褪色等),叠加可加性噪声的影响[1]。本文研究的图像退化复原模型如图 1所示。

图 1 图像退化复原模型

原始图像f(x)经过一个算子或系统H作用后, 和加性噪声η(x)相叠加, 形成退化后的图像g(x), 这一退化过程的表达式为:g(x, y)=H[f(x, y)]+η(x); H[*]在这里是指所有导致图像退化外在原因的函数集合。f′(x, y)是经过复原函数矫正后获得的复原图像[2]

2 粒子群算法和BP神经网络 2.1 粒子群算法

粒子群算法是通过模拟鸟群觅食行为而发展起来的一种随机搜索算法[3]。在此基础上形成的粒子群优化算法, 是以一个群体中个体与个体之间相互协作和共享信息从而寻找最优解来作为基本思路的。设定搜索空间是D维的, 由m个粒子组成的一个种群, 粒子的速度和位置就可以通过PSO公式来更新[4]

PSO公式:

c1, c2是学习因子或者加速系数, 一般为正数, 通常等于2;r1, r2取值范围通常是[0, 1]的随机数。

2.2 BP神经网络

BP(back propagation)神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络[5]。简单的神经网络由输入层、隐含层和输出层组成, 假设有a个训练样本, 即有P个输入输出(Ip, Tp), p=1, 2, …, a; 输入向量Ip=(ip1, …, ipm)T, 目标输出向量Tp=(tp1, …, tpn)T, 最终输出向量Op=(op1, …, opn)T; 如图 2所示。

图 2 3层神经网络拓扑图

wij是输入向量的第j(j=1, …, m)个分量到输出向量的第i(i=1, …, n)个分量的权重。第i个神经元的输出可以表示为:, ipm=-1, wim=(第i个神经元阈值)。则在第p个输入模式下输出方差为:; a个样本对经过正向传递运算后, 网络的总误差为:EΣ=

BP网络的训练目的就是使误差最小, 沿着相对误差平方和的最速下降方向, 连续调整网络各层连接权值和阀值。根据Widrow-Hoff学习规则, 沿负梯度方向调整连接权wij的修正量为:Δw(i, j)=; 设迭代n次, 则网络j层到i层的连接权的迭代关系为wij(n+1)=wij(n)-η; 重复上述过程, 修正各层神经元间的连接权系数, 最终使其达到或接近误差阈值允许范围内的期望输出值[6]

3 PSO-BP算法优化及调整方法 3.1 粒子群PSO算法优化

粒子群算法是一种全局优化的随机搜索仿生算法, 隐含并行性, 根据个体的适配信息进行搜索, 不受函数约束条件的限制, 如连续性、可导性等。但是对高维复杂问题, 往往会遇到早熟收敛和收敛性能差的问题, 无法保证收敛到最优点, 这时一般的优化方法是引进收敛因子K是用来保证函数的收敛性。

式中, , ϕ>4;通常取ϕ为4.1, 则K=0.729。实验表明, 使用收敛因子K的PSO比使用惯性权重的PSO算法拥有更快的收敛速度。

3.2 BP网络结构优化

BP算法简单、计算量小、并行性强, 是目前最成熟的神经网络算法。但凡事皆有利弊, BP神经网络也不例外。总的来说, BP神经网络存在以下缺点:BP神经网络求解时很容易陷入局部极小值而得不到全局最优值。

针对易陷入局部极小值缺点, 一般采用下列方法对BP算法进行改进:

1) 选取合适的初始权值以及修正权值, 训练是从某一起始点沿误差函数的斜面逐渐达到误差最小值, 初始值一旦确定, 就注定了网络收敛的方向, 所以选择合适的初始值就显得特别重要, 只有通过多次随机训练最后选择效果最好的那个初始值; 或借用退火思想调整E, 允许E按照一定概率上升以增加跳出局部极小的可能; 或弹性调整权值变化方向和大小, 以改进误差函数。

2) 增加动量项:主要思想在于让第n次迭代时的权值的更新部分依赖于第n-1次的权值。即公式:Δwji(n)=η·δj·xji+αΔwji, 动量因子一般选取0.1~0.8。引入动量项一方面在一定程度上起到加大搜索步长,能加速算法收敛。另一方面可以降低网络对误差曲面局部调节的敏感性,从而有效地抑制了网络陷入局部最小值。

3) 改变网络结构:网络结构优化的关键在于隐含层数与隐含节点数目,隐含节点过多,正面效应很容易提高精度,负面效应会造成网络结构庞大,性能下降。按照实验的数据统计,隐含层一般取20~40效果较好[7]

4) 采用自适应调节学习率:对学习率(或步长)的改进。修正量大小受学习率控制,学习率的大小对收敛速度和训练结构影响很大。步长小训练收敛稳定,但时间长、速度慢;反之,步长大可以加速收敛但容易导致震荡或发散;所以采用自适应调节学习率显得特别重要。

3.3 PSO-BP模型的自身优化

PSO-BP优化算法模型一方面用BP算法对各个训练样本的误差进行反传,并以辅助原始图像作为参考,共同修正BP算法的权值和阈值;另一方面又通过正向粒子群算法,寻找个体极值和全局的最优值,再进行解码并更新BP算法的权值和阈值。PSO-BP优化算法从寻找初始权值到对PSO算法进行优化,同时也对隐含层的网络结构进行优化。通过调整输入节点与隐含层节点的联接强度和隐含层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,最终得到最小误差相对应的网络权值和阈值。

为避开饱和区,提高训练速度和灵敏性,要求输入数据的值在0~1之间,所以先要对数据进行归一化处理,通常的做法是将要复原图像的初始灰度值统一除以255,这样输入数据就由[0, 255]转换到了[0, 1]。

4 基于粒子群优化的BP神经网络图像复原 4.1 PSO-BP优化算法步骤

一个群体规模为m的网络,构造优化PSO-BP算法模型,从而得到误差最小的最佳PSO-BP网络结构。采用3×3(像素)窗口在退化图像上滑动取样,其PSO-BP优化训练流程图,如图 3所示。

图 3 PSO-BP优化训练流程图

该算法的学习过程包括“PSO信息的正向传播”和“BP误差的反向传播”2个过程。实际输出与期望输出的差即是误差,PSO-BP优化模型就是通过对各层神经元权阈值的不断修正,让误差函数沿梯度方向下降。这种PSO-BP优化算法使得总的误差一直减少,最终达到误差平方和小于目标误差ΣBP的目的[8]

4.2 PSO-BP优化算法MATLAB平台程序实现

我们在MATLAT平台中基于PSO-BP优化算法进行编程,语言采用MATLAB中兼容度最高的C++,部分代码截图如图 4所示,经大量样本案例实验数据证实,可以达到该算法预期效果。

图 4 PSO-BP优化算法在MATLAB平台程序实现
4.3 PSO-BP优化算法总结

1) 本文提出的PSO-BP优化算法在网络权值调整过程中,既考虑了由基本BP算法各个训练样本的误差反传进行的权值修正,又考虑训练完1遍后,通过跟踪个体网络历史最佳权值和群体网络历史最佳权值来更新权值,因而不同于传统的PSO-BP向前传播算法。

2) 本算法模型采用优选网络结构有2大特点:①对不同的网络结构,都通过构造群体规模为m的不同初始权值和阈值的网络,并采用PSO-BP算法进行优化,从中优选得到误差最小的BP网络为最佳的网络结构,该方法也兼顾了初始权值和阈值的优选。②隐含层按照实验大数据最优结果为模板,收敛速度快,精度高,不受模型结构的影响。PSO-BP优化算法与BP算法和传统PSO-BP算法的训练结果相比,具有更小的训练误差和检验误差,在一定程度上提高了学习能力和泛化能力。

3) 采用原始图像对PSO-BP优化算法进行直观校正,让复原图像尽量趋近于原始图像。然后再将经过反复修正的最优化模式用于其他失真图像复原上,可以更加精准的对图像进行复原。

5 仿真实验结果与分析 5.1 实验

粒子群的规模本次实验设定为20,PSO-BP优化算法采用3×3(像素)的九宫格窗口来滑动提取退化图像,由此获得输入样本。把退化图像的某一点及其周围8个点的灰度值作为一个样本输入,把相应原始图像该点的灰度值作为目标输出。在BP算法反向训练权值时,采用梯度下降动量和自适应学习算法,其中变换函数采用的是Sigmoid型函数,均方误差目标设定为0.000 1。结果如图 5所示:

图 5 3种算法的收敛曲线图比较

图 5不难看出,使用PSO-BP优化算法的收敛速度要比BP算法和传统PSO-BP算法快,复原效果也比其他2种都要好[9]

表 1为在给定3 000训练次数,不同BP算法分别在均方误差上的训练效果比较。

表 1 不同BP算法训练结果比较
算法类型 训练函数 均方误差 训练次数
BP Traingd 0.002 57 3 000
传统PSO-BP Sigmoid 0.000 26 3 000
优化PSO-BP Sigmoid 0.000 08 3 000

表 1的训练结果表明,采用传统PSO-BP算法得到的均方误差比BP算法减少89.88%,而优化PSO-BP算法得到的均方误差比传统PSO-BP算法减少69.23%,从数据对比研究可以得出,PSO-BP优化算法的收敛速度明显优于其他2种算法。定量训练证明,优化PSO-BP算法是一种比较好的图像复原方法,特别是在图像边缘及纹理细节方面处理效果较好。

5.2 某款无人机图像复原对比

训练样本取某款无人机作为实验对象,采用3×3九宫格窗口从要复原图像上滑动提取样本,分别得到相关输入矩阵和输出矩阵,代入用3种算法进行训练,本次实验平台选择MATLAB。样本像素大小为128×128,复原效果如图 6所示:

图 6 某无人机图像复原效果对比

图 6a)为原始图像,6b)为高斯模糊后的图像,6c)为用BP算法复原的图像,6d)为用传统PSO-BP算法复原的图像,6e)为PSO-BP优化算法复原的图像。可以明显看出传统PSO-BP算法复原图 6d)的效果要好于BP算法复原的图 6c),而图 6d)6e)两图复原效果进行对比,显然是PSO-BP优化算法复原图像6e)的效果更好一些。

5.3 唐代仕女图像复原对比

训练样本取自某博物馆具有代表性的唐代仕女图像,由于时代久远、保存手段限制等原因,图像严重失真,采用3×3九宫格窗口从退化图像上滑动提取样本,代入用3种算法进行训练,实验平台选择MATLAB。样本像素选择大小为200×300,这个例子不同的是,按照上一例原始参考图调整的取样值来更新BP神经网络的权阈值,复原效果如图 7所示:

图 7 唐代仕女图像复原效果对比

图 7a)为唐代仕女的失真图像,复原后的图像图 6b)~d)复原效果对比是依次变好。可以看出:在引入上一例参考原始图像进行微调校正的优化复原模式,用在仕女失真图上,复原效果比其他模式更好也更精准[10]

6 结论

在本例的图像复原过程中,一方面采用粒子群搜索全局最优解对BP神经网络权阈值进行优化,并对BP算法自身进行优化;另一方面采用原始图像对PSO-BP优化算法进行直观校正,让复原图像尽量趋近于原始图像, 实现图像的最优化复原;最后再将这一最优化模式用于其他失真图像复原上。实验表明:反复利用粒子群优化BP网络的权阈值,可以得到更优的样本数据进行训练,再参照原始图像,对网络参数进行动态调整,就能快速得到更小的均方误差和,使复原图像更加精准。总的来说,PSO-BP优化算法比其他2种算法在图像复原上效果更好。

参考文献
[1] Chen L, Yap K H. A Soft Double Regularization Approach to Parametric Blind Image Deconvolution[J]. IEEE Trans on Image Process, 2005, 14(5): 624-633. DOI:10.1109/TIP.2005.846024
[2] 韩月娇. 粒子群算法的改进及其在BP神经网络中的应用[D]. 南昌: 南昌航大学, 2012
Han Yuejiao. The Improvement of Particle Swarm Algorithm and Its Application in BP Neural Network[D]. Nanchang, Nanchang University, 2012(in Chinese)
[3] Avcibas I, Sankur B, Sayood K. Statistical Evaluation of Image Quality Measures[J]. Journal of Electronic Imaging, 2002, 11(2): 206-223. DOI:10.1117/1.1455011
[4] Trelea I C. The Particle Swarm Optimization Algorithm:Convergence Analysis and Parameter Selection[J]. Information Processing Letters, 2003, 85(6): 317-325. DOI:10.1016/S0020-0190(02)00447-7
[5] Irfan S Ahmad, John F Reid, Marv in RPaulsen. Etal Color Classifier for Symptomatic Soybean Seeds Using Image Processing[J]. Plant Disease, 1999, 83(4): 320-327. DOI:10.1094/PDIS.1999.83.4.320
[6] 艳霞, 李禹生. 基于粒子群优化算法的BP神经网络在图像识别中的应用[J]. 武汉工业学院学报, 2006, 12(30): 35-38.
Yan Xia, Li Yusheng. The Application of BP Neural Network Based on Particle Swarm Optimization Algorithm[J]. Journal of Wuhan Institute of Technology, 2006, 12(30): 35-38. (in Chinese)
[7] Eberhart R C, Shi Yuhui. Comparison between Genetic Algorithms and Particle Swarm Optimization[C]//Proc of 7th International Conference on Evolutionary Programming Ⅶ, London, 1998: 611-616
[8] 邓文杰. 基于聚粒子群算法的神经网络权值优化方法[J]. 计算机技术与发展, 2017, 7(19): 16-18.
Deng Wenjie. Optimization of Neural Network Weights Based on Cluster Algorithm[J]. Computer Technology and Development, 2017, 7(19): 16-18. (in Chinese)
[9] 宋发兴, 高留洋, 刘东升, 等. 基于粒子群优化的BP神经网络图像复原方法[J]. 计算机技术与发展, 2014, 2(24): 149-152.
Song Faxing, Gao Liuyang, Liu Dongsheng, et al. Image Restoration of BP Neural Network Based on Particle Swarm Optimization[J]. Computer Technology and Development, 2014, 2(24): 149-152. (in Chinese)
[10] 王书宇, 施宁, 李子杰. 基于PSO-BP神经网络的图像压缩算法[J]. 电脑知识与技术:学术交流, 2007, 12(8): 1409-1411.
Wang Shuyu, Shi Ning, Li Zijie. Image Compression Algorithm Based on PSO-BP Neural Network[J]. Computer Knowledge and Technology(Academic Exchange), 2007, 12(8): 1409-1411. (in Chinese)
Image Resteoration by BP Neural Based on PSO
Wang Wenzhong1,2, Zhang Shusheng1, Yu Suihuai1     
1. Shaanxi Engineering Laboratory for Industrial Design, Northwestern Polytechnical University, Xi'an 710072, China;
2. Shaanxi University of Science and Technology, Xi'an 710021, China
Abstract: Based on PSO-BP algorithm combining particle swarm algorithm with BP neural network algorithm, this paper applies this algorithm to image restoration based on optimization. In the PSO-BP optimization algorithm model, on the one hand, the error of each training sample of BP algorithm is reversed, and the original image is used as the reference to modify the weight threshold of BP algorithm. On the other hand, it is optimized by forward particle swarm algorithm and BP algorithm. Finally, through the algorithm analysis and experimental data, the recovery effect of PSO-BP optimization algorithm is better than that of the same type algorithm.
Keywords: image restoration     MATLAB     particle swarm optimization(PSO)-BP optimization algorithm     pixel    
西北工业大学主办。
0

文章信息

王文中, 张树生, 余隋怀
Wang Wenzhong, Zhang Shusheng, Yu Suihuai
基于粒子群优化的BP神经网络图像复原算法研究
Image Resteoration by BP Neural Based on PSO
西北工业大学学报, 2017, 36(4): 709-714.
Journal of Northwestern Polytechnical University, 2017, 36(4): 709-714.

文章历史

收稿日期: 2017-05-28

相关文章

工作空间