您的位置 首页 开关

一种根据FPGA的神经网络硬件完成计划详解

一种基于FPGA的神经网络硬件实现方案详解-人工神经网络在智能控制、模式识别、图像处理等领域中应用广泛。在进行神经网络的应用研究时,人们可以将神经网络模型或算法在通用的计算机上软件编程实现,但很多时间浪费在分析指令、读出写入数据等,其实现效率并不高。软件实现的缺点是并行程度较低,因此利用软件实现神经网络的方法无法满足某些对数据实时处理要求较高的场合(如工业控制等领域)。

人工神经网络在智能操控、方式识别、图画处理等范畴中使用广泛。在进行神经网络的使用研讨时,人们能够将神经网络模型或算法在通用的核算机上软件编程完结,但许多时刻糟蹋在剖析指令、读出写入数据等,其完结功率并不高。软件完结的缺陷是并行程度较低,因而使用软件完结神经网络的办法无法满意某些对数据实时处理要求较高的场合(如工业操控等范畴)。

现在完结大规模、实时性要求高的神经网络,传统的软件算法完结办法显现出其难以满意速度等要求的缺乏。此外,在构建神经网络时必定需求考虑硬件完结问题。因为神经网络具有并行核算的特色和功用,能够有用开掘算法自身的并行特性,提出高效的硬件电路结构,然后完结神经网络的硬件完结。

脉冲耦合神经网络(Pulse Coupled Neural Network,PCNN)是新一代的神经网络,在研讨猫等哺乳动物的视觉神经元时,依据其脉冲同步发放的作业原理所提出的。现在,P CNN理论仍在发展中,因为其共同的并行功用,在图画切割与滑润、边际检测与细化、决议计划与优化等范畴使用广泛。当时的研讨要点在于模型的优化和软件的完结,而相关的硬件完结在国内并不多见,PCNN并行结构的特性为硬件完结供给了或许。

1 PCNN的根本原理

脉冲耦合神经网络是一种单层方式的两维神经网络,它的根本单元是脉冲耦合网络的神经元。图1为PCNN的单个神经元模型框图,它由输入部分、衔接调制部分、脉冲发生器部分3部分构成。

一种依据FPGA的神经网络硬件完结计划详解

输入部分即接纳域,其接纳信号来历有两部分:附近神经元发生的信号和外部的输入鼓励。这两部分信号经过两个不同的途径进行传递,其间一个途径传递反应输入信号,其包括外部输入鼓励,该途径即为F途径;另一个途径传递衔接输入信号,其包括来自附近神经元发生的信号,该途径即为L途径。

衔接调制部分完结上述两个途径信号的耦合,经过必定的信号处理,发生神经元的内部活动项。该信号处理需求首要经过一个正的单位偏置和L途径的衔接输入信号的累加,然后与F途径的反应输入信号完结相乘调制。该神经元的内部活动项即为信号经调制得到的乘积成果。

脉冲发生器和阈值巨细改变的比较器构成PCNN单个神经元的脉冲发生部分。假如到达脉冲发放条件,则该脉冲发生器起效果,宣布一个频率稳定不变的脉冲,此刻神经元处于焚烧状况。

依据图1模型,每个神经元依照公式(1)完结迭代运算,完结上述PCNN的功用。

一种依据FPGA的神经网络硬件完结计划详解

式(1)中,Fij[n]是某个神经元的第n次反应输入信号;αF与αL表明迭代时刻常数;Sij表明外部输入常数,在图画处理时即为像素矩阵中像素的灰度值;Lij[n]是神经元的线性输入项;wijkl与mijkl表明突触间联接权值系数;Uij[n]是神经元的内部活动项;Tij[n]是Uij[n]是否激起生成脉冲的动态阈值;β是神经元突触间的衔接强度系数;Yij[n]为PCNN的脉冲输出项。因为信号Lij[n]比信号Fij[n]改变快,经过相乘调制的信号Uij[n]就等同于把一个快速改变的信号加在一个近似不变的信号上。

假如某个神经元焚烧,即宣布一个脉冲信号,那么因为内部活动项大于当时的门限阈值,下一次迭代运算后阈值将经过其时刻常数αT和起伏系数VT忽然变大。而此刻迭代后的阈值TIj[n]远大于Uij[n],因而神经元将被按捺,脉冲信号中止输出,即处于未焚烧状况。在这一状况下,周围神经元不断焚烧,发生呼应的脉冲信号,经过L途径的输入进步内部活动项,与此同时阈值经指数运算不断较小。在某一次迭代时,当时阈值将再次小于Uij[n],此刻神经元将被激活,脉冲信号开端输出,即神经元再次被焚烧。如此循环往复,不必神经元在焚烧和为焚烧状况进行切换,然后完结脉冲同步激起。

2 体系硬件完结

2.1 PCNN模型的改善

关于上述PCNN模型结构,在图画处理等使用中仍存在必定的局限性:

1)PCNN涉及到的参数较多,增加了数学运算的难度,完结算法比较困难;

2)网络参数确认较为困难。

此外,为了易于FPGA完结。把规范的PCNN进行必定的简化和改善。将反应输入只当做对应象素的灰度值强度,所以F途径的衔接权值矩阵M为零。改善后的第一个长处是减少了迭代的时刻,而迭代的质量仍与规范PCNN模型挨近,第二个长处是节省了FPGA资源的使用。改善模型的数学表达式与规范模型类似,仅仅馈送域不同。馈送域表达式为:

Fij[n]=Sij (2)

2.2 小数的定点表明办法

因为VeTIlog无法直接界说小数类型,所以选用小数的定点表明法表明小数。考虑到灰度值为8位二进制数据,故小数的表明方式为《8.8》,即整数位数和小数位数都为8位,整数的表明方式为《8.0》,即整数位数为8位,小数位数为0位。因为并没有存储小数的方位信息,所以需求依据从前的约好对最终的成果进行截取。如式(3)所示,最终的运算成果为24位,低8位为小数部分,而使用Verilog的位操作运算截取中心8位即为更新后的灰度值。

《8.8》*《8.0》+《8.8》*《8.0》=《16.8》 (3)

2.3 PCNN参数挑选

使用2.1节介绍的PCNN改善模型,描绘单个神经元的PCNN算法。表1为本规划计划PCNN模型参数的经历设定,其阈值衰减设为每次运算后阈值的约0.9倍。为使算法利于硬件完结,试验中将设定神经元衔接强度β=1,衔接域增益VL=1。

一种依据FPGA的神经网络硬件完结计划详解

其衔接域邻域矩阵为:

一种依据FPGA的神经网络硬件完结计划详解

2.4 体系全体规划框图

在进行图画处理时,需求把神经元与像素一一对应,神经网络的巨细取决于图画的巨细。假如需求处理的图画体积较大,那么硬件资源将被很多占用,继而需求更高标准的FPGA芯片来完结。本文介绍一个简略的PCNN硬件体系,能够处理3×3、8位的灰度图画。

PCNN在FPGA完结的体系框图如图2所示。体系分为5个首要的功用模块:时钟分频模块、串口接纳模块、串并转化模块、PCNN模块和VGA显现模块。图中除PC机部分都在FPGA上完结。PC机包括上位机串口通讯软件,常见的有VB串口通讯帮手、串口大师等,可完结串口的调试、测验、监控和过滤等功用。

一种依据FPGA的神经网络硬件完结计划详解

体系需求完结的作业分为三大部分:图画的输入、图画的处理和图画的显现输出。体系具体的作业进程描绘如下:PC机经过串口软件(如串口大师)发送图画数据,串口接纳模块接纳图画数据并经过模块内部的FIFO存储数据;串并转化模块将串口接纳模块存储的图画数据并行输出给PCNN模块,等候处理;PCNN模块接纳到图画数据后,开端进行迭代,并输出给VGA显现模块;VGA显现模块担任显现图画经PCNN模块处理后的二值序列,以调查PCNN的处理效果。因为本试验选用的FPGA试验渠道供给的时钟频率为50 MHz,而串口接纳模块、PCNN模块和VGA显现模块需求特定的时钟频率才干作业,所以有必要规划时钟分频模块以发生满意要求的时钟频率。

一种依据FPGA的神经网络硬件完结计划详解

3 体系仿真

因为考虑边际神经元的特殊情况,规划了3种略有差异的神经元,即周围神经元输入分别为2、3和4的神经元。这儿仅选取4输入的PCNN神经元进行仿真,神经元的阈值为200以验证神经元功用的正确性。经过选取了4个典型的图画灰度值S输入,分别为4、100、200和250,经仿真验证了单个神经元的正确性。

使用单个PCNN神经元,构建了包括9个PCNN神经元PCNN模块,能处理3×3巨细的图画,经过网络迭代,得到抱负的图画。经过串口输入数据:181、187、140、120、120、4、46、83、120,对PCNN模块进行了仿真。为了便于调查,选取其间3个神经元的时序仿真成果,如图3所示。由图3知,PCNN输出出现0和1的不断改变,且能看出3个神经元中因为耦合效应发生了不同的成果。图3中S1~S3为9个像素灰度值的3个输入,Y1~Y3为图画经PCNN处理后3个二值序列值。

一种依据FPGA的神经网络硬件完结计划详解

4 体系验证与剖析

本试验以Altera Cyclone II开发渠道为验证环境,选用Cyclone系列中的EP2C35F672芯片。使用串口软件发送网像数据,FPGA经PCNN处理后将二值成果显现在VGA显现器上。PCNN模块的时钟输入频率为100MHz,VGA显现模块的时钟输入频率为25 MHz。关于波特率,考虑到现已完结的串口接纳模块,选取波特率115 200 bps,以匹配串口接纳模块

的采样频率。数据位有8位,无检验位,包括1位中止位,传输数据以16进制的方式进行发送。

为了便于调查,考虑到显现器的改写频率和人眼的视觉暂留,将PCNN网络的迭代处理频率设定为1 Hz,即显现器每1秒显现一次迭代效果图。图4为显现器前40次的显现效果。图中九宫格代表要处理的3×3输出图画,一个方格代表一个像素点。九宫格中灰色方框神经元焚烧,即输出为“1”。黑色方框代表神经元未焚烧,即输出为“0”。

一种依据FPGA的神经网络硬件完结计划详解

据试验渠道的测验成果,与除掉VGA模块的硬件模块ModelSim仿真成果进行了比照。图5为除掉VGA模块的硬件模块的功用仿真图。图中高电平代表“1”,低电平代表“0”。

一种依据FPGA的神经网络硬件完结计划详解

果完全符合,这也验证了PCNN网络硬件完结的正确性。此外,由图4和图5看出,神经元1、2、3、4、5、8、9在几回迭代后输出一直为“1”,这是因为神经元的内部活动项一直大于阈值。而因为神经元6和7的图画输入值较小,内部活动项部分和阈值部分不断改变,使得在周围神经元的效果下,出现周期性的“0”和“1”输出。

5 定论

本文依据脉冲耦合神经网络具有并行核算的特色,提出了一种依据FPGA的神经网络硬件完结计划。使用Verilog硬件描绘言语完结了体系模块的规划,构建的PCNN神经网络

在FPGA开发渠道进步行了验证。经过处理简略的3×3图画,并调查VGA显现成果,完结了PCNN的FPGA完结,到达了规划要求,图画处理实时性较好。下一步将研讨构建更杂乱的PCNN网络结构,以处理更大的图画数据。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/339106.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部