基于Simulink与Stateflow的红外图像边缘检测系统设计
2013-08-10安友伟
王 巍,安友伟
(重庆邮电大学光电学院,重庆 400065)
责任编辑:时 雯
红外图像广泛地应用于红外监测与跟踪系统,而对整个系统来说,从红外图像中提取目标的边缘信息是整个系统的前提与基础。因此,国内外研究人员一直关注于这方面的研究。James W.Davis等人采用两阶段模板方法检测跟踪人体在广域红外热成像图[1],此方法可以在高噪声的红外跟踪图像中提取出很好的效果。Basturk等人将克隆算法和细胞神经网络算法相结合应用于图像的边缘检测[2]。近年来,模糊数学、统计分析、小波变换[3]和数学形态学等算法也被应用于红外图像的边缘检测。尽管这些方法都取得了良好的效果,但是在硬件实现上却遇到了定点化难度大、开发周期长、风险高、硬件系统不稳定等问题。基于模型的设计方法将系统验证与测试贯穿了整个设计过程,并且模块化的设计方法和Verilog代码的自动生成,大大降低了设计时间和开发成本。本文将Simulink和细胞神经网络的基本理论相结合,搭建细胞神经网络IP核模块,然后组建红外边缘检测系统模型,最后结合ISE,Modulsim对系统进行RTL级仿真、综合和布局布线。
1 细胞神经网络原理
细胞神经网络(Cellular Neural Network,CNN)是由美国加州伯克莱大学的L.O.Chua和L.Yang于1988年提出,是一种将神经网络和细胞自动机(CA)相结合的阵列处理器,像细胞自动机一样,它由大量细胞元组成,且只允许最邻近的细胞之间直接通信,具有高速的并行处理能力,易于可编程逻辑阵列和VLSI的硬件实现特点[4]。用一阶非线性微分方程描述细胞的状态方程为
式中:Akl,Bkl是每个胞元的反馈模板和前馈模板;Rx是线性电阻值;I是阈值;ukl,xij,ykl表示胞元的输入、状态、输出值。
由式(1)可知,整个细胞神经网络的功能由Akl,Bkl,I决定。由于细胞神经网络处理图像的输入值在[-1,1]之间,而一般的灰度图像的像素值在[0,255]之间,所以在进行图像处理之前,式(2)对输入图像进行预处理[5]
式中:gij∈ {0,1,2,…,255};|uij|≤1。
2 系统总体结构设计
根据模块化设计的原则,将整个红外图像边缘检测系统划分为图像输入、输出、模板输入及细胞神经网络IP核模块(如图1所示)。这种设计方法将各模块之间的信息量传输降低到最小,使它们的设计之间保持相对独立,很大程度上降低了设计与验证的难度。
图1 系统设计总体结构图
从整个系统处理的时序角度考虑,在保证细胞神经网络IP核能实时处理输入像素点的前提下,将输入模块与输出模块通过读写时能相关联,从而保证整个系统处于时间利用率最高的状态。图2清晰地表述了输入、输出模块的工作流程和相互制约的关系。根据图2的逻辑流程,利用Stateflow的控制行为能力特性,定义全局时钟CLK、图像输入变量image和输入、输出模块相互控制的读写时能变量RD,WR,从而搭建了图像的输入、输出模块,如图3所示。
图2 输入、输出模块流程图
图3 输入、输出模块的Stateflow图(截图)
根据整个系统结构,从细胞神经网络IP核模块实时处理要求和设计复杂度角度考虑,利用Simulink的算法行为特性,创建独立的子系统模块,从而减小此模块对整个系统设计带来的难度。整个系统搭建的仿真模型如图4所示。
图4 红外图像边缘检测系统Simulink模型(截图)
3 细胞元IP核模块设计
利用细胞神经网络阵列的规则特性和互联的局域特性,所以只需设计单个胞元[6-7]便可以扩展成整个CNN网络。由于数字图像在时间域和空间域都是离散的,为了将CNN应用于红外图像处理,所以将式(1)中的时间离散化,并且将xij(t)的导数用其相应的差分形式来表示。从而得到近似CNN的状态方程式的一阶差分方程见式(3)式中:A,B为每个胞元的反馈模板和前馈模板;Rx是性电阻值;I是阈值矩阵;u表示胞元的输入值;n表示时间点,x(n+1)表示胞元在n+1时刻的状态值,y(n)表示在n时刻的输出值。
根据上述的状态方程,采用3×3的CNN模板设计方式(即A,B为3×3矩阵),利用Simulink搭建了细胞神经网络IP核子模块(如图5所示)。从硬件设计占用资源的方面考虑,本文的设计方法占用的乘法器就多,因此采用串行处理的设计方式。所以整个红外图像处理系统只包含了一个细胞神经网络IP核。
图5 细胞元IP核Simulink模型(截图)
4 实验结果和分析
本文采用基于模型的设计方法,将整个系统按功能划分为三个子模块。然后通过Stateflow和Simulink模块搭建整个红外图像边缘检测系统。采用此设计系统对360×240的原始红外图像(如图6a所示)进行边缘检测仿真,得到了如图6b所示的仿真结果。从仿真结果来看,本文提出的基于模型的红外图像边缘检测设计方法取得了较好的效果,且与MATLAB软件m代码仿真的结果(如图6c所示)进行对比并没有太多差别。在得到满足设计要求的结果后,利用Simulink硬件语言自动生成功能将所设计的红外图像边缘检测系统模型生成Verilog代码文件。接着,在ISE中建立工程并调用Modelsim对生成的RTL级代码进行功能仿真。从Modelsim的仿真结果(如图7所示)分析,所生成的Verilog代码完全符合系统设计需求,并与Simulink仿真得到的结果基本一致。在ISE12.3软件环境下在Xilinx公司的Virtex-6系列的FPGA平台上对生成的Verilog代码进行综合,将综合后所占用的资源与传统的设计方法相比较(如表1所示)。基于模型设计方法占用更合理、更少的资源,并且达到了142.693 MHz的最高频率和7.927 Mpixel/s的处理速度。由此可见,基于模型设计方法无论在占用资源、工作效率和开发周期方面都有较大的优势。
图6 不同方法的仿真结果对比
图7 Modelsim仿真结果(截图)
表1 ISE综合结果对比
5 小结
针对传统算法硬件实现存在的问题,本文采用基于模型设计的方法,根据动态控制元结构以及由其构建系统的理念,根据模块化、可视化系统设计的特点,运用基于Stateflow和Simulink的仿真工具,构建了整个基于CNN算法红外图像边缘检测系统,并对整个系统进行Simulink仿真验证。在得到满足要求的仿真结果后,通过Simulink系统模型自动生成RTL级Verilog代码,最后运用ISE和Modelsim对生成的Verilog进行仿真验证。仿真实验结果表明,运用基于模型的设计思想来构建系统,可以将系统验证与测试贯穿了整个设计过程,大大降低了设计风险和开发周期,并且与传统的设计方法相比占用资源更少、处理速度更高。
[1] DAVIS J W,KECK M A.A two-stage template approach to person detection in thermal imagery[C]//Proc.WACV/MOTIONS 2005.[S.l.]:IEEE Press,2005:364-369.
[2] BASTURK A,GUNAY E.Clonal selection algorithm based cloning template learning for edge detection in digital images with CNN[C]//Proc.Signal Processing,Communication and Applications Conference 2008.[S.l.]:IEEE Press,2008:1-4.
[3]甘斌,张雄伟,甘仲民.基于小波变换的多尺度图像边缘处理[J].电视技术,2001,25(8):20-22.
[4] SLAVOVA A,RASHKOVA V.A novel CNN based image denoising model[C]//Proc.ECCTD 2011.[S.l.]:IEEE Press,:226-229.
[5]王怀颖.细胞神经网络在图像处理中的应用技术研究[D].南京:南京航空航天大学,2007.
[6] SULEYMAN M.On hardware implementation of discrete-time cellular neural networks[D].Lund:Lund University,2008.
[7] SRIMAT C,MURUGAN S,VENKATA J,et al.A dynamically configurable coprocessor for convolutional neural networks[C]//Proc.International Symposium on Computer Architecture 2010.[S.l.]:IEEE Press,2010:247-257.