基于CNN的海空目标检测
2012-04-17 来源:中电网
1 引言
舰船航行在大海上,主要面临来自空中,海面和水下的威胁,其中空中的威胁最大。这些目标的主要特点是运动速度高,机动频繁,其背景也比较复杂,受云层、烟雾、波浪、飞鸟、山峰等影响较大。传感器如热像仪、电视摄像机、激光测距机等自身带有噪声,另外还会有各种形式的干扰,这些都给目标的识别与跟踪带来很大困难。因此寻找一种能实时对图像信号处理的、抗干扰的,并且适合大规模硬件开发与实现的算法是军事界至今没有完美解决的难题之一。
元(细)胞神经网络(Cellular Neural Networks,CNN),是由加州伯克利大学的华裔学者蔡绍棠教授在1988年提出来的一种局域连接、权可设计的人工神经网络。而后关于CNN的各种理论,算法,改进与应用以及硬件实现等如同雨后春笋般出现。现在CNN在图像、通信、混沌控制、交通、医学等领域都有着广泛的应用。CNN用于图像的处理,例如降噪、分割、特征提取、空洞填充、细化、阴影检测、模式识别、目标跟踪,机器人视觉,水印加密等,比传统的方法更具潜力。CNN结构的局部耦合性对于处理具有混沌性质的背景下的海空光电目标图像具有较大的匹配性。本文主要描述了CNN的理论基础和他应用于图像处理的思想,并给出了算法实现的步骤,然后用Matlab语言编程进行仿真实验,以对海空目标的检测为例,将他与经典的方法进行比较,分析各自的优缺点,最后提出了本算法需要改进的地方。
2 图像目标检测的CNN模型
CNN的基本组成单元是元胞(Cell),每个元胞只同他周围r邻域的元胞相接,连接的个数Nr=((2r+1)2-1)。如图1所示为一个3×3规模的CNN网络结构。用C(i,j)表示第i行、第j列的元胞。C(i,j)只与C(i+1,j),C(i-1,j),C(i,j+1),C(i,j-1),C(i+1,j+1),C(i+1,j-1),C(i-1,j+1),C(i-1,j-1)等8个元胞相连。如图2所示,每个元胞都有一个状态vxij,一个恒定的输入vuij,一个输出vyij,门限I。标准CNN的状态方程可用下述一阶非线性微分方程描述:
其中,1≤i≤M,1≤j≤N。α,β,I,Eij为大于0的常数。vukl表示C(i,j)邻近元胞的输入,vykl表示C(i,j)邻近元胞的输出,A(i,j;k,l)表示C(k,l)的输出与C(i,j)的联接权,B(i,j;k,l)表示C(k,l)的输入与C(i,j)的联接权。式(3)表示输出与状态的关系。
CNN网络动态系统只要满足下面能量函数有界,就能达到稳定,即:
那么每个元胞经过暂态衰减后,一定能落在稳定状态,并且所有稳定点幅值都大于1,即:
其中,1≤i≤M,1≤j≤N。根据式(10),CNN就可用在二值图像或有二值输出的图像中去。
不难看出,元胞神经网络中元胞的排列与图像的像素相同,这一点很适合用作图像的处理。选择与图像规模相等的网络,将图像的每个像素映射到元胞神经网络的每个元胞。以灰度分辨率为L=2k(k为整数),空间分辨率为M×N的图像为例,用CNN进行处理。把像素的灰度值作为元胞的输入。根据式(4)的约束条件,首先要解决像素从0~L-1到-1~1之间的映射。其次,为了便于计算机处理,要将微分方程(1)的计算用差分方程来代替,将连续的时间离散化,然后对边界条件和模版参数初始化。一般选择边界为0,各个元胞的初始状态一般也确定为0。在保持网络稳定的条件下,不同的模板参数可以完成不同的图像处理功能。以边缘检测为例,取参数α=β=1,根据结构的对称性以及只考虑元胞自身输出反馈回来的情况,一般取为a=2,b=8,d=1,I=-0.5。网络稳定后的输出为1或-1。再将{-1,1}映射到{0,255}上,-1对应于白色255,1对应着黑色0。这就完成了对图像的处理。
用Matlab程序实现CNN处理图像的基本步骤为:
(1)读入待处理图像,将图像转化成256×256大小,灰度级为256的图像;
(2)把像素的灰度值映射到[-1,1]之间;
(3)对像素的初始状态、模板参数及初始输出进行初始化;
(4)将(2)的灰度值作为输入,利用式(1)和式(2)分别计算各元胞的状态与输出;
(5)判断各元胞的稳定性,若满足稳定条件则停止循环,否则转到步骤(4)继续循环迭代;
(6)网络所有元胞均收敛稳定,停止循环;
(7)将输出结果映射到{0,255)上,输出或显示图像。
3 仿真实验与分析
海空背景下的目标的特征提取与检测,一直都是研究热点,难度较高。因为背景比较复杂,受影响的因素较多,包括能见度、光照、云层、烟雾、海浪、海鸟、山峰和建筑物等。空中目标一般速度比较快,运动参数不易捕捉,如果加上云雾、能见度和光照的影响,超低空目标还受海鸟、海浪等的影响,检测的难度就加大了;海上目标速度稍慢,但连绵起伏的海浪、光的反射、云雾等的影响不容忽视,成像的信噪比会随着浪高、距离、能见度的变化而变化。加上传感器的性能等的因素使得获取的目标光电图像的信噪比难以达到所需检测概率和虚警概率的要求。这就要求图像处理方法能够有较好的抗噪性,能保持目标的完整性和细腻性,便于后续的精确计算,方便滤波、制导和跟踪等。
边缘检测是目标特征提取中重要的一步。目前边缘检测的方法有很多种,如Robert算子、Sobel算子、Laplacian算子、Kirsh算子、Prewitt等各种检测算子,形态学以及后来出现的分形法,神经网络法,小波理论及遗传算法等。CNN是边缘检测的一种新方法,以上这些方法都有各自的方法特点和应用范围。由于CNN处理图像的模式是将元胞与像素一一对应,利用元胞之间非线性的耦合性,通过设置不同功能的模板参数,网络经过一段动态的训练后收敛到稳定的状态。这样能较好地保证图像的完整性,保持细节部分不被丢失,很适合对海空背景的图像处理。
以边缘检测为例,为了清晰地看清CNN对海空目标检测的效果,可以从三个仿真实验来进行:其一用CNN对带有噪声的图像进行去噪和目标检测;其二是横向比较,即将CNN与传统的一些方法对同一幅图像进行目标边缘检测来比较;其三是纵向比较,即用CNN对不同种情况下的目标进行边缘检测。
验1 对输入图像加入均值为0,方差为0.05的椒盐噪声。先用CNN实现中值滤波(具体方法在此不作叙述),然后再用CNN进行检测。如图3所示,可以看出,带有噪声的图像,目标已经很模糊了,经过CNN的处理后,目标边缘部分依然被较完整地检测出来。
实验2 分别用CNN、Sobel算子、Canny算子、形态学来对一幅云层中的飞机进行边缘提取,效果如图4所示。
实验3 用CNN分别对云层中的飞机和海上的船只图像进行边缘提取,效果如图5所示。
从这几幅图处理的效果可以看出:用Sobel算子只把图中的主要边缘提取出了,损失了一些细节边缘,因为他是通过两个方向上的模板来对图像进行处理,对水平和垂直方向的边缘响应要大,且他受噪声的影响较大;Canny算子几乎把图中的强弱边缘都提取出来了,是最优的阶梯型边缘检测算子,但只对受到白噪声影响的阶跃型边缘是最优的;形态学作边缘检测对细节和边缘都有很好的保留作用,但是与结构元素的选取有关;前三者共同的特点就是检测速度快,但在硬件实现方面意义不大;而元胞神经网络提取的边缘与前面的方法相比,差别不大,但强弱边缘提取得更加细腻,清晰,边缘连续性和完整性好,还可以通过调节模板参数,使提取的效果更佳。
通过上面的仿真实验,可以看出CNN在对海空目标的边缘检测的完整性和细腻方面具有一定的优势。他的更大的优点是适合硬件实现,能够高速并行计算,耗时短(在硬件方面才能体现,软件不能),在图像实时处理方面有很好的应用,因此用于对海空目标实时检测、识别和跟踪,尤其是对速度快、机动频繁的目标,具有显著优势。本算法的不足之处,在于网络的模板参数的选取不一定是最佳的,这可以通过很多方法来改进。例如遗传算法,自适应算法,还有粒子群优化等方法都可以针对具体的应用来找到最佳的控制模板参数。
4 结 语
本文主要描述了元胞神经网络的结构、工作原理和他用于图像处理的基本思想,并给出了用Matlab编程实现仿真的步骤,然后将CNN处理不同海空背景下的目标的效果进行实验仿真,分析各个方法处理效果的优缺点,得出了:元胞神经网络在处理低信噪比图像,例如复杂海空背景下的光电目标图像方面具有较大优势,适用于军事上的目标检测、特征提取等应用。本文不足之处是没有对CNN进行图像处理的原因实质做出分析,这是文章后续要开展的工作。