一种用于图像分割的单层脉冲神经网络结构的制作方法

文档序号:11515774阅读:452来源:国知局
一种用于图像分割的单层脉冲神经网络结构的制造方法与工艺
本发明涉及神经网络领域,涉及一种用于图像分割的单层脉冲神经网络结构。
背景技术
:spiking神经网络(snn)将信息编码为脉冲的时间而非传统的平均脉冲发放率,被称作第三代人工神经网络,该网络更加符合生物神经元的特性。正是由于snn的时间编码机制,使得其与前两代人工神经网络(ann)大有不同,吸引了大量学者对其进行相关研究。目前脉冲神经网络在图像分割方面的研究比较多,多数的图像分割算法是用三层网络结构实现的,分别是输入层,中间层,输出层。结构如图1所示。1.输入层:脉冲编码:将输入图像的像素值转换为脉冲时间;发送脉冲:将感受野中的脉冲时间序列发送给中间层相对应的神经元。2.中间层:接收脉冲:接收输入层的脉冲序列,根据连接权值等计算中间层神经元的膜电压;发送脉冲:根据神经元膜电压函数,当膜电压达到神经元的电压阈值时向输出层对应的神经元发送脉冲。3.输出层:决定输出值:根据中间层神经元传递的脉冲发放时间和时间阈值的关系决定输出值。已有的基于脉冲神经网络的图像分割算法都是利用三层网络结构实现的,网络结构和计算复杂,在集成电路硬件实现时需要消耗更多的硬件资源。同时,已有的算法中,图像的一个像素对应一个神经元,高像素的图片需要的神经元个数太多,计算过程复杂而漫长,给硬件实现带来了很大的困难。技术实现要素:本发明为了简化网络结构,使得计算更简单,在硬件上更容易实现,硬件消耗资源更少,提出一种用于图像分割的单层脉冲神经网络结构,使得需要的网络神经元个数可以大大减少,极大的降低了计算的复杂度和硬件的资源消耗。本发明的目的是这样实现的,一种用于图像分割的单层脉冲神经网络结构,其特征是:至少包括如下步骤:1)根据已知的神经元个数对图片进行分块;2)将三层脉冲神经网络结构改进成单层脉冲神经网络,利用该网络对步骤1的分块图依次进行分割处理,得到多张分割后小图;3)将步骤2的小图分割图拼接得到最终的分割结果。所述的步骤1包括如下步骤:101步,输入要进行分割的图片:假设图片大小为h*w(h和w是图片的宽和高),先要对图片进行分块,假设分块的大小为m*n(m和n是分块小图的宽和高);102步,判断h*w是否刚好能够被m*n的大小进行分块:即h是否能被m整除以及w是否能被n整除,如果能够整除,则直接进行第104步,如果不能整除,则进行103步;103步,如果图片不能被刚好分割,则要对其添加边缘:即给图片数据边缘补0,使其大小变为h1*w1(添加了边缘的图片的宽和高),使得h1和w1刚好能被m和n整除;104步,对图片进行分块1操作:将大图以m*n的大小进行分块,依次得到numbers(分块的个数numbers=h1/m*w1/n或h/m*w/n)张小图,每张小图大小为m*n;105步,给每张小图添加边缘:将大图以(m+2)*(n+2)的大小再次进行分块操作,同样能够得到numbers张图片,分块得到的图片称为分块2图片;如图2所示,图中黑色虚线矩形为分块1小图(m*n),图中黑色点虚线矩形为每个分块1小图对应的分块2小图(m+2)*(n+2)。若分块2小图(如黑色点虚线矩形)的边缘是0,则给分块1小图(黑色虚线矩形)的边缘添加0,若分块2小图的边缘不是0,则将分块2小图的边缘数据赋给分块1小图作为其边缘即可,依次类推,可得到每张小图对应的边缘数据;所述的步骤2包括如下步骤:106步,将三层网络简化为单层网络结构:对三层网络结构进行修改,得到单层脉冲神经网络结构,如图3所示。单层网络结构是对上述三层网络结构做了如下修改:<1>.是将第一层编码的功能放在芯片之外,输入直接是编码后的脉冲信号。<2>.输入和神经元之间采用n*n(n是感受野的长和宽)到1的连接关系。<3>.每个神经元的功能如下:a.接收到输入的脉冲后调整神经元的膜电压;b.每个神经元有三个主要的参数:输入连接权值、电压阈值、时间阈值;c.当神经元膜电压达到神经元的电压阈值时根据达到时间与时间阈值的关系,决定神经元的输出为0或1.107步,利用ttfs线性编码方法,将分块1图像的灰度值编码为脉冲时间。具体方法是:将像素灰度值为255时对应的脉冲发时间定义为tmaxms,将像素灰度值为0时对应的脉冲发放时间赋值为0ms,根据公式(1)实现图像灰度值p到脉冲时间t的转换:108步,将脉冲时间转换为脉冲序列输入给该单层脉冲神经网络:以每个神经元为中心,选择n*n的感受野将这些脉冲时间转化为脉冲序列t(t),将脉冲序列输入给对应的神经元;109步,经过单层脉冲神经网络处理后得到神经元的脉冲发放时间:神经元接受输入的脉冲序列t(t),根据权值w,电压阈值vth,分块2图像数据利用膜电压公式(见式(2))计算神经元的膜电压u(t);当电压到达膜电压阈值vth时,发放脉冲,记录脉冲发放的时间tf;式中gswsps(es-u(t))起着电流源的作用,它的变化引起膜电容的变化;gs和ps表示离子通道的开通程度,ws是突触权重,es是突触的静态电位,gl是恒定电导,cm是膜电容,el是膜反向电位;110步,根据阈值进行分割:比较脉冲发放时间tf和分割阈值tthresk来决定网络的输出output是255(黑)还是0(白),从而实现图像分割。参考关系如式(3),当脉冲发放时间小于tthresk时,输出为0,对应黑色,当脉冲发放时间大于tthresk时,输出为1,对应白色;所述的步骤3是将分割后的小图拼接合成大图,得到最终的分割结果:如果没有进行103步,则直接将分割后的各个小图拼接合成大图,即为最终的分割结果;如果进行了103步,则将分割后的小图拼接合成大图后,去掉103步中添加的边缘数据,则为最终的分割结果。本发明与现有技术比较:1.目前的图像分割算法都是利用三层前馈网络结构实现的,网络结构和计算比较复杂,本发明中是单层脉冲网络,简化了网络结构,同时降低了计算复杂度,降低了硬件实现的难度。2.目前的算法中,图像的一个像素对应一个神经元,高像素的图片需要的神经元个数太多,计算过程复杂而漫长,给硬件实现带来了很大的困难。本发明利用图片分块和拼接合成使得神经元个数可以大大减少,极大的降低了计算的复杂度和效率,也大大降低了硬件的资源消耗。同时通过图像分块和拼接合成减少了网络中脉冲神经元的个数,使得算法处理速度更快,效率更高,硬件消耗资源更少。附图说明下面结合实施例子和附图对本发明作进一步说明:图1是现有的三层网络结构;图2是分块1小图对应的边缘图;图3是本发明的单层网络结构;图4是三层网络处理效果图;图5是三层网络分割后图像数据;图6是本发明单层网络处理效果图;图7是本发明单层网络分割后图像数据图;图8是三层网络处理效果图;图9是三层网络分割后图像数据;图10是本发明单层网络的各小图处理效果图;图11是本发明单层网络分块分割后的效果图;图12是本发明单层网络分块分割后图像数据图。具体实施方式如图3所示,一种用于图像分割的单层脉冲神经网络结构,包括如下步骤:101步,输入要进行分割的图片:假设图片大小为h*w,先要对图片进行分块,假设分块的大小为m*n;102步,判断h*w是否刚好能够被m*n的大小进行分块:即h是否能被m整除以及w是否能被n整除,如果能够整除,则直接进行第104步,如果不能整除,则进行103步;103步,如果图片不能被刚好分割,则要对其添加边缘:即给图片数据边缘补0,使其大小变为h1*w1,使得h1和w1刚好能被m和n整除;104步,对图片进行分块1操作:将大图以m*n的大小进行分块,依次得到numbers(h1/m*w1/n或h/m*w/n)张小图,每张小图大小为m*n;105步,给每张小图添加边缘:将大图以(m+2)*(n+2)的大小再次进行分块操作,同样能够得到numbers张图片,分块得到的图片称为分块2图片;如图2所示,图中黑色虚线矩形为分块1小图(m*n),图中黑色点虚线矩形为每个分块1小图对应的分块2小图(m+2)*(n+2)。若分块2小图(如黑色点虚线矩形)的边缘是0,则给分块1小图(黑色虚线矩形)的边缘添加0,若分块2小图的边缘不是0,则将分块2小图的边缘数据赋给分块1小图作为其边缘即可,依次类推,可得到每张小图对应的边缘数据;106步,将三层网络简化为单层网络结构:对三层网络结构进行修改,得到单层脉冲神经网络结构,如图3所示。该单层网络结构是对上述三层网络结构做了如下修改:<1>.是将第一层编码的功能放在芯片之外,输入直接是编码后的脉冲信号。<2>.输入和神经元之间采用n*n到1的连接关系。<3>.每个神经元的功能如下:a.接收到输入的脉冲后调整神经元的膜电压;b.每个神经元有三个主要的参数:输入连接权值、电压阈值、时间阈值;c.当神经元膜电压达到神经元的电压阈值时根据达到时间与时间阈值的关系,决定神经元的输出为0或1.107步,利用ttfs线性编码方法,将分块1图像的灰度值编码为脉冲时间。具体方法是:将像素灰度值为255时对应的脉冲发时间定义为tmaxms,将像素灰度值为0时对应的脉冲发放时间赋值为0ms,根据公式(4)实现图像灰度值p到脉冲时间t的转换:108步,将脉冲时间转换为脉冲序列输入给该单层脉冲神经网络:以每个神经元为中心,选择n*n的感受野将这些脉冲时间转化为脉冲序列t(t),将脉冲序列输入给对应的神经元;109步,经过单层脉冲神经网络处理后得到神经元的脉冲发放时间:神经元接受输入的脉冲序列t(t),根据权值w,电压阈值vth,分块2图像数据等参数利用膜电压公式(见式(5))计算神经元的膜电压u(t);当电压到达膜电压阈值vth时,发放脉冲,记录脉冲发放的时间tf;式中gswsps(es-u(t))起着电流源的作用,它的变化引起膜电容的变化;gs和ps表示离子通道的开通程度,ws是突触权重,es是突触的静态电位,gl是恒定电导,cm是膜电容,el是膜反向电位;110步,根据阈值进行分割:比较脉冲发放时间tf和分割阈值tthresk来决定网络的输出output是255(黑)还是0(白),从而实现图像分割。参考关系如式(6),当脉冲发放时间小于tthresk时,输出为0,对应黑色,当脉冲发放时间大于tthresk时,输出为1,对应白色;111步,将分割后的小图拼接合成大图,得到最终的分割结果:如果没有进行103步,则直接将分割后的各个小图拼接合成大图,即为最终的分割结果;如果进行了103步,则将分割后的小图拼接合成大图后,去掉103步中添加的边缘数据,则为最终的分割结果。图4是利用三层网络对其进行分割处理的结果,分割后图像对应的数据如图5所示。再利用本发明的单层网络对其进行处理,分割后的结果如图6所示,分割后图像对应的数据如图7所示。从图中可看到,图6是本发明处理后的效果图,图4是三层网络处理后的效果图,两个输出结果相同;图7是本发明处理后图片的数据,图5是三层网络处理后图片的数据,两个数据相同,说明本发明是正确的。再分析硬件资源消耗对比表1,可发现:表1以107*203大小的图片为例,对比三层网络和本发明的单层网络所消耗的存储资源大小。分析三个硬件消耗指标(乘法器、加法器、与或逻辑门)可知,本发明所需的各种资源都比三层网络少。如三层网络需要65805个乘法器,而本发明利用单层网络只需要39483个乘法器。其他资源消耗就不一一列举。所以本发明的单层简化网络使得计算更简单,硬件资源消耗更少。表1三层网络和本发明单层网络(未结合分块)的硬件资源消耗对比表fpga硬件指标三层网络本发明单层网络(未结合分块)乘法器6580539483加法器15793292127与或逻辑门368508355347图8是原图片经过三层网络进行分割后的结果,其分割后的图像数据如图9所示。再利用本发明的单层网络(结合分块)对其进行处理:先对图片分块,各小图依次分割后的结果如图10所示,然后将分割后的小图拼接合成大图,结果如图11所示,图11中左图是原图添加边缘数据(分块时添加的)后的分割结果,图11中右图是去掉边缘即原图的分割结果。分割后图像对应的数据如图12所示。从图片中可看到,三层网络的处理结果是图8右图,本发明分割后的结果图是图11右图,两种方法进行分割后的图片相同,分割后图像对应的数据也相同(图10和图12),但是原网络结构用了h*w(h为图片的宽,w为图片的高,如107*123)个神经元,而本发明中,不管图片像素是多大,只需要用m*n个神经元(m*n远小于h*w),大大减少了神经元的个数,降低了计算的复杂度和硬件资源消耗。分析硬件消耗资源对比表2可发现:表2以107*203大小的图片为例,对比三层网络和本发明的单层网络(对图片分块)所消耗的存储资源大小。分析三个硬件消耗指标(乘法器、加法器、与或逻辑门、fpga运行时间)可知,本发明所需的各种资源都比三层网络少。如三层网络需要65805个乘法器,而本发明利用单层网络(对图片分块)只需要384个乘法器。其他资源消耗就不一一列举。可见本发明不但简化了网络结构,降低了神经元的个数,也大大降低了硬件的资源消耗。表2三层网络和本发明单层网络(结合分块)的硬件资源消耗对比表fpga硬件指标三层网络本发明单层网络(结合分块)乘法器65805384加法器157932896与或逻辑门3685083456当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1