APP下载

基于简化PCNN的脉冲噪声滤波

2015-04-02郭旭展姚建峰

软件导刊 2015年2期

郭旭展+姚建峰

摘要:基于脉冲耦合神经网络, 提出了一种有效的脉冲噪声图像滤波算法。利用 PCNN相似群神经元同步发放脉冲的特性检测噪声点,并利用中值滤波对噪声点进行滤波。仿真表明,该方法对不同强度的噪声图像均体现了较好的滤波性能,在去噪效果和运行效率上同其它方法相比具有明显优势。

关键词关键词:脉冲耦合神经网络;脉冲噪声;同步脉冲

DOIDOI:10.11907/rjdk.143807

中图分类号:TP317.4

文献标识码:A文章编号文章编号:16727800(2015)002014302

0引言

数字图像在生成和传输过程中有可能会受到多种噪声污染,其中典型的噪声是脉冲噪声。脉冲噪声主要表现为极端的点状污染,噪声点与周边像素的灰度值区别很大,对图像的特征破坏也很大。常用的降噪方法包括中值滤波[1]和均值滤波。但这两种处理方法不区分噪声点,只是对所有像素进行同样的操作,整体图像都被平滑化,因此图像的细节破坏很大。如何利用噪声与周围像素的灰度区别进行准确识别,有目的地进行降噪,保护图像细节,提高图像识别效果,一直是图像处理的研究热点[2]。

经过长期研究,图像处理技术日趋成熟,传统处理方法难以进一步提高处理效果,而模拟人的认知过程是一种新的发展方向,神经网络就是其中的代表。长期以来,经典的神经网络结构,如BP神经网络、RBF神经网络等,在这一过程中得到广泛应用,但其处理信息是依赖于阈值和连接权值,这与人的认知方式截然不同,效果并不理想。脉冲耦合神经网络(PCNN)是1990年Eckhorn提出的一种基于猫的视觉原理构建的简化神经网络模型,与其它神经网络相比,PCNN能从复杂背景下提取有效信息,不需要提前学习或者训练,同时具有同步脉冲发放和全局耦合等特性,其信号形式和处理机制更符合人类视觉神经系统的生理学基础[3]。

1算法思想

1.1PCNN模型

脉冲耦合神经网络通过对猫、猴等哺乳动物视觉神经细胞的模拟,利用单个神经元线性相加,激励可以传播的、其周围的神经元,经过与阈值的比较以确定是否产生点火,一旦条件成立,可以形成神经元集群同步振荡脉冲。同时由于PCNN模型在进行图像处理时与图像的像素一一对应,图像中相似的区域更容易产生集群点火,因而PCNN在处理过程中无需考虑神经元的数量,对二维图像的处理非常方便。图像通过PCNN处理时,空间相似、灰度相似的像素被分组,有利于识别被污染的像素位置,利于下一步处理。

通常的PCNN 模型可以用数学方程表达如下[4]:

Fij(n)=e-αFFij(n-1)+Sij+VF∑k,lMijklYkl(n-1)(1)

Lij(n)=e-αLLij(n-1)+VL∑k,lMijklYkl(n-1)(2)

Uij(n)=Fij(n)(1+βLij(n))(3)

θij(n)=e-αθθij(n-1)+VθYij(n-1)(4)

Yij(n)=step(Uij(n)-θij(n))(5)

其中:Fij(n)是神经元的输入;Lij(n)是窗口神经元的连接输入;Uij(n)是神经元的内部活动项;θij(n)是神经元的动态阈值;Yij(n)是神经元的对外脉冲;VF是反馈域的放大系数;αF是反馈域的衰减时间常数;Sij是神经元受到的外部激励,可以反映图像中对应位置的灰度;VL和αL是耦合连接域的放大系数和误差时间常数;β为内部活动项连接系数;θij是动态阈值,Vθ和αθ是其放大系数和衰减时间常数;Uij是内部活动信号。PCNN在上述各式中的参数表明,PCNN在处理过程中,具有可变阈值、非线性调制、同步脉冲激发、邻接捕获、等特性,可用于多个方面。但传统模型在实际使用时,需要合理设定各种门限参数、衰减参数、运行次数才能得到满意结果。这种人工干预降低了模型的实用性,同时模型使用了指数衰减常数,这严重降低了系统的运行速度,因此必须将模型进行简化。通过分析,PCNN在此处理过程中,主要是识别噪声污染,Fij仅需获取对应像素的灰度值,Lij也可仅通过处理窗口的情况确定,θij的放大系数与误差时间常数直接参与工作。因此,可以将其进一步简化为式(6)-式(10)。

Fij(n)=Sij(6)

Lij(n)=VL∑k,lMijklYkl(n-1)(7)

Uij(n)=Fij(n)(1+βLij(n))(8)

θij(n)=αθθij(n-1)+VθYij(n-1)(9)

Yij(n)=1,0, ifUij(n)>θij(n)otherwise(10)

在简化后,消除了指数衰减常数,同时保留了神经网络的放大系数、误差时间常数、活动连接系数等参数,保留了PCNN的基本特性使其能够捕获相关激励信号,并提高了运行效率。在用PCNN进行降噪处理时,由于PCNN的神经元分别与图像的像素点一一对应,则PCNN获得对应像素点的灰度值,并成为神经元的对应外部激励Sij,当满足参数条件时,此神经元自然点火,产生脉冲并激励周围神经元。同时,此神经元的阈值θij会根据上述公式首先急剧增大,然后随着时间衰减。在此过程中,自然点火的神经元会对邻接神经元进行激励,诱导邻接神经元点火。但只有与自然点火神经元的对应像素具有相似强度的神经元才会被捕获产生点火,反之则不会被捕获。则根据神经元点火时间的不同,图像像素形成若干个不同的集群,从而区分出自然图像中灰度不同的区域。在激励过程中,不同的像素集群的阈值衰减周期不同,其集群的对外脉冲周期也不同,这样图像的点火集群类似于波进行传播,通过这种传播可以区分出图像中与此集群类似的其它集群。通过这种方式,PCNN能够自发识别出图像的噪声点,这种识别是通过像素的自然属性——灰度完成的,而非通过预处理或训练完成。这对于处理不同类型的图像非常有帮助,尤其是处理实时图像。

1.2噪声滤波算法

根据PCNN的工作原理,相似的神经元可同步发出脉冲,同时,由于噪声像素与周边像素的灰度区别,污染像素与周边像素将异步发出脉冲。通过在3×3的窗口中设定阈值N=6,如果像素点(i,j)点火且周边点火像素数量小于N,则此像素是被污染的,确定了像素点位置就可以用MF算法进行滤波。

2实验测试与分析

为了测试改进PCNN算法的有效性,采用Matlab 编程进行了计算机仿真实验,测试采用256×256的8位灰度Lena图。通过对比测试噪声强度分别为10%、20%、40%的污染图像(见图1),分别采用中值滤波、均值滤波和PCNN滤波(见图2-图4)。PCNN的连接权重Mijkl由3×3窗口确定,其值Mijkl=0.70710.7071010.70710.707

算法步骤如下:①根据上述内容,初始化PCNN参数;②在每个神经元的3×3窗口,采用式(6)、式(7)计算F、L,式(9)计算阈值;③根据式(8)计算神经元内部信号U;④根据式(10)是确定是否点火;④根据PCNN识别结果进行中值滤波;⑤输出图像处理结果。

3结语

作为一种模拟生物视觉原理的神经网络算法,PCNN 在图像处理和信号处理方面具有广阔的应用前景。本文基于改进的PCNN方程,采用标准测试图像进行测试,验证图像受到脉冲噪声污染时,PCNN可以取得较好的滤波