一种城市垃圾分类处理智能视觉检测方法与流程

文档序号:23384849发布日期:2020-12-22 13:49阅读:240来源:国知局
一种城市垃圾分类处理智能视觉检测方法与流程

本发明涉及垃圾分类视觉智能检测技术领域,尤其涉及一种城市垃圾分类处理智能视觉检测方法。



背景技术:

目前的垃圾分类大多由人工判断分拣完成,自动化程度较低,这不仅占用大量的人力资源,还容易发生环境污染、毒害泄漏、人员受伤等危险情况,面对目前巨额的城市垃圾,如何实现快速、自动化分拣,是目前亟待解决的难题。



技术实现要素:

为解决上述问题,提供了一种城市垃圾分类处理智能视觉检测方法。

一种城市垃圾分类处理智能视觉检测方法,其中包括如下步骤:

步骤1)、采集多种城市垃圾图像,制作垃圾图像数据集,将除厨余垃圾外的生活垃圾类别分为18个二级类别,包含:1:玻璃类、2:牛奶盒、3:金属类、4:塑料类、5:废纸类、6:织物类、7:废电池、8:废墨盒、9:废油漆桶、10:过期药品、11:废灯管、12:杀虫剂、13:污染塑料袋、14:烟头、15:污染纸张、16:破旧陶瓷品、17:灰土、18:一次性餐具;按照垃圾所属二级类别,对各图像的所属类别进行标注,保存每张图像属于类别1-18中的哪一类别,标注结果保存为.xml文件;然后进入步骤2)对全体样本集进行训练;

步骤2)、每次送单张训练集图像数据进入新型卷积神经网络,训练集图像数据为3通道彩色图,图片格式为.jpg,图像尺寸参数为512像素*512像素*3通道;将所述新型卷积神经网络共有12层,相邻层与层之间采用串联方式;

设置学习率为0.005,迭代次数为500次,使用垃圾图像数据集进行训练;

所述卷积层在处理过程中要用到的公式中的变量及其含义说明如下:

*:表示数乘,乘数均为实数;v:表示当前处理的卷积层在整个网络中所处的层级,v为正整数,v≥1,当v的值确定时,指定当前的层数,所有下标包含v的变量均以v的值代入来表示此变量的名称;cv:表示网络第v层为卷积层;wv:单位为像素,表示第v层输入图像的尺寸为wv*wv;这里我们设置输入图像宽高比均为1:1;dv:正整数,表示第v层cv输入图像的通道数,输入图像为彩色3通道,分别是r、g、b,分别代表图像某点像素中的红色、绿色、蓝色分量值,这里的r、g、b均为正整数;fv:正整数,表示第v层cv使用的卷积核的大小,即卷积核的长度和宽度,中的所有卷积核的长度等于其宽度;tv:正整数,表示第v层cv使用的卷积核的个数;kvu:三维实矩阵,表示第v层cv使用的第u个卷积核,即长度*宽度*图像通道数,1≤u≤t1;kvu(mv,nv):表示卷积核kvu内的值,可看作对图像进行卷积运算的计算权重,为dv维实向量,mv、nv为正整数,表示第v层cv使用的卷积核内的位置,mv表示横坐标,nv表示纵坐标,mv、nv的取值范围为:1≤mv,nv≤fv;kvu(mv,nv,cv):表示卷积核kvu内各通道的值,mv、nv为正整数,表示第v层使用的卷积核内的位置,mv是表示横坐标,nv表示纵坐标,mv、nv的取值范围为1≤mv,nv≤fv,cv为正整数,表示卷积核内第cv个通道,1≤cv≤dv;bv:代表第v层使用的全部tv个卷积核对应的tv个偏置量;kv:代表第v层使用的全部tv个卷积核,没有数学意义,仅做符号表示;pv:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为dv,这里说的“0像素”是指一个像素的所有通道上的值均为0的像素;sv:正整数,第v层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔几个像素进行一次卷积运算,这个间隔数即操作步长,以像素为单位;layerv(iv,jv):表示第v层输入图像中的第iv行,第jv列的像素值,其由(r,g,b)三个数来表示,其中0≤r,g,b≤255,1≤iv,jv≤wv;layerv(iv,jv,cv):表示第v层输入图像中的第iv行,第jv列,第cv通道的像素值,1≤iv,jv≤wv,1≤cv≤dv;layervout(pv,qv,kvu):表示第v层输入图像经与卷积核kvu做卷积运算后得到的特征图的第pv行,第qv列的像素值,每个值可以看做一个神经元,其中1≤pv,qv≤wvout;wvout:单位为像素,表示第v层输入图像layerv与卷积核kvu进行卷积运算后得到的特征图layervout的尺寸为wvout*wvout;

对第一层卷积网络做卷积运算,所需参数的值如下:v=1,w1=512,d1=3,f1=5,t1=6,s1=1,p1=0,k1u和b1设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第一卷积层c1与卷积核k1u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s1移动,将卷积核k1u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer1out(p1,q1,k1u),公式表示如下:

其中layer1(i1+m1,j1+n1,c1)表示卷积运算进行到输入图像layer1第c1通道的i1+m1行、第j1+n1列,1≤i1,j1≤w1–f1+1,第一层图像layer1做卷积运算后输出的特征图尺寸由第一层图像尺寸w1、卷积核大小f1及扫描步长s1和填充p1决定,计算公式为:代入上述数据计算可得,则第一层与卷积核k1u做卷积操作后的输出特征图尺寸为508像素*508像素;分别利用t9=256个卷积核依次重复上述卷积过程,最终形成t9=256层二维特征图,神经元的个数为508*508*6个,这就是第一卷积层的全部输出结果,这里以下式代表:layer1out(p1,q1,k1);

所述第一卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer1out(p1,q1,k1)+b1做为本层激活函数leakyrelu的输入,layer2(i2,j2,c2)代表新型卷积神经网络第一卷积层激活后的输出,b1代表偏置量,其中i2、j2、c2均为正整数,且1≤i2,j2≤508,1≤c2≤6,这里c取值为50;之后,进入步骤3);

步骤3)、进入所述新型卷积神经网络的第二层池化层,本文中所有的池化层在计算过程中要用到的公式中的变量及其含义说明如下:

max:池化过程运算符号,表示取最大值;z:表示当前处理的池化层在整个网络中所处的层级,当z的值在一层被指定后,所有下标包含z的变量均以z的值代入来表示此变量的名称;wz:单位为像素,表示第z层输入图像的尺寸为wz*wz;dz:正整数,表示第z层输入图像的通道数,这里为第z层的输出结果的通道数,dz=tz-1;fz:正整数,表示第z层使用的池化过滤器的大小,即过滤器的长度和宽度,中所有池化层过滤器的长度等于其宽度;layerz(iz,jz):无单位,表示第z层输入图像中的第iz行,第jz列的像素值,其是一个dz维向量,其中1≤iz,jz≤wz;layerz(iz,jz,cz):无单位,表示第z层输入图像中的第iz行,第jz列,第cz通道的像素值,1≤iz,jz≤wz,1≤cz≤dz;layerzout(pz,qz,dz):无单位,表示第z层输出图像中的第pz行,第qz列,第dz通道位置处的值,1≤pz,qz≤(wz/fz);对第二层池化层做运算时,所需参数的值如下:z=2,w2=508,d2=6,f2=2,池化层使用的池化操作为最大池化,即:把输图像的一个通道内的w2*w2个像素划分为(w2/f2)行,(w2/f2)列个f2*f2的小块,对每个小块中的数,取最大数做为输出结果,然后遍历完每行上的小块和每列上的小块,依小块原有的次序放在相应的位置,最终构成一个(w2/f2)*(w2/f2)的矩阵,对输入数据的d2通道的第i2行,j2列位置的池化计算公式如下:

对一个通道做完池化操作后,形成输出特征图layer2out的1层二维池化结果,再对另外d2-1个通道,依次重复上述池化过程,最终形成d2层二维池化结果,这就是第二池化层的全部输出结果,以下式代表:layer2out(p2,q2,d2)

式中,1≤p2,q2≤(w2/f2)=254,d2=6;之后,进入步骤4);

步骤4)、进入所述新型卷积神经网络第三层为卷积层c3,对第三层卷积网络做卷积运算时,所需参数的值如下:v=3,w3=254,d3=6,f3=3,t3=16,s3=1,p3=0,k3u和b3设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第三层卷积层c3与卷积核k3u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s3移动,将卷积核k3u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer3out(p3,q3,k3u),公式表示如下:

其中layer3(i3+m3,j3+n3,c3)表示卷积运算进行到输入图像layer3第c3通道的i3+m3行,第j3+n3列,1≤i3,j3≤w3–f3+1,第三层图像layer3做卷积运算后输出的特征图尺寸由第一层图像尺寸w3、卷积核大小f3及扫描步长s3和填充p3决定,计算公式为:代入上述数据计算可得,则第三层与卷积核k3u做卷积操作后的输出特征图尺寸为252像素*252像素;分别利用t3=16个卷积核依次重复上述卷积过程,最终形成t3=16层二维特征图,利用一个卷积核k3u完成卷积运算后,形成输出特征图layer3out的一层二维结果,再用另外t3-1个不同的卷积核,依次重复上述卷积过程,即共t3=16个卷积核,每个卷积核运算后均生成一层二维特征图结果,最终形成16层二维特征图,神经元的个数为252*252*16个,这就是第三层卷积层的全部输出结果,这里以下式代表:layer3out(p3,q3,k3)

第三层卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer3out(p3,q3,k3)+b3做为本层激活函数leakyrelu的输入,layer4(i4,j4,c4)代表新型卷积神经网络第三层卷积层激活后的输出,b3代表偏置量,其中i4、j4、c4均为正整数,且1≤i4,j4≤508,1≤c4≤6,这里c取值为50;之后,进入步骤5);

步骤5)、进入所述新型卷积神经网络第四层为池化层,对第四层池化层做运算时,所需参数的值如下:z=4,w4=252,d4=16,f4=2,池化层使用的池化操作为最大池化,即:把输入图像的一个通道内的w4*w4个像素划分为w4/f4行,w4/f4列个f4*f4的小块,对每个小块中的数,取最大数做为输出结果,然后遍历完每行上的小块和每列上的小块,依小块原有的次序放在相应的位置,最终构成一个(w4/f4)*(w4/f4)的矩阵,对输入数据的d4通道的第i4行,j4列位置的池化计算公式如下:

对一个通道做完池化操作后,形成输出特征图layer4out的1层二维池化结果,再对另外d4-1个通道,依次重复上述池化过程,最终形成d4层二维池化结果,这就是第四层池化层的全部输出结果,以下式表示:layer4out(p4,q4,d4)

式中,1≤p4,q4≤(w4/f4)=126,d4=16;之后,进入步骤6);

步骤6)、进入所述新型卷积神经网络第五层,第五层为卷积层c5,对第五层卷积网络做卷积运算时,所需参数的值如下:v=5,w5=126,d5=16,f5=3,t5=32,s5=1,p5=0,k5u和b5设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第五层卷积层c5与卷积核k5u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s5移动,将卷积核k5u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer5out(p5,q5,k5u),公式表示如下:

其中layer5(i5+m5,j5+n5,c5)表示卷积运算进行到输入图像layer5第c5通道的i5+m5行,第j5+n5列,1≤i5,j5≤w5–f5+1,第五层图像layer5做卷积运算后输出的特征图尺寸由第五层图像尺寸w5、卷积核大小f5及扫描步长s5和填充p5决定,计算公式为:代入上述数据计算可得,则第五层与卷积核k5u做卷积操作后的输出特征图尺寸为126像素*126像素;利用一个卷积核k5u完成卷积运算后,形成输出特征图layer5out的一层二维结果,再用另外t5-1个不同的卷积核,依次重复上述卷积过程,即共t5=32个卷积核,每个卷积核运算后均生成一层二维特征图结果,最终形成31层二维特征图,神经元的个数为126*126*32个,这就是第一卷积层的全部输出结果,这里以下式表示:layer5out(p5,q5,k5)

第五层卷积层激活函数采用leakyrelu,其数学表达式为:

layer5out(p5,q5,k5)做为本层激活函数leakyrelu的输入,b5代表偏置量,layer6(i6,j6,c6)代表新型卷积神经网络第五层卷积层激活后的输出,其中i6、j6、c6均为正整数,且1≤i6,j6≤126,1≤c6≤32,这里c取值为50;之后,进入步骤7);

步骤7)、进入所述新型卷积神经网络第六层为池化层,对第六层池化层做运算时所需参数的值如下:z=6,w6=126,d6=32,f6=2,池化层使用的池化操作为最大池化,即:把输图像的一个通道内的w6*w6个像素划分为w6/f6行,w6/f6列个f6*f6的小块,对每个小块中的数,取最大数做为输出结果,然后遍历完每行上的小块和每列上的小块,依小块原有的次序放在相应的位置,最终构成一个(w6/f6)*(w6/f6)的矩阵,对输入数据的d6通道的第i6行、j6列位置的池化计算公式如下:

对一个通道做完池化操作后,形成输出特征图layer6out的1层二维池化结果,再对另外d6-1个通道,依次重复上述池化过程,最终形成d6层二维池化结果,这就是第六层池化层的全部输出结果,以下式表示:layer6out(p6,q6,d6);

式中,1≤p6,q6≤(w6/f6)=63,d6=32;之后,进入步骤8);

步骤8)、进入所述新型卷积神经网络第七层,第七层为卷积层c7,

对第七层卷积网络做卷积运算时,所需参数的值如下:v=7,w7=63,d7=32,f7=3,t7=64,s7=2,p7=0,k7u和b7设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第七层卷积层c7与卷积核k7u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s7移动,将卷积核k7u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer7out(p7,q7,k7u),公式如下:

其中layer7(i7+m7,j7+n7,c7)表示卷积运算进行到输入图像layer7第c7通道的i7+m7行,第j7+n7列,1≤i7,j7≤w7–f7+1,第七层图像layer7做卷积运算后输出的特征图尺寸由第七层图像尺寸w7、卷积核大小f7及扫描步长s7和填充p7决定,计算公式为:代入上述数据计算可得,则第七层与卷积核k7u做卷积操作后的输出特征图尺寸为31像素*31像素;利用一个卷积核k7u完成卷积运算后,形成输出特征图layer7out的一层二维结果,再用另外t7-1个不同的卷积核,依次重复上述卷积过程,即共t7=64个卷积核,每个卷积核运算后均生成一层二维特征图结果,最终形成64层二维特征图,神经元的个数为31*31*64个,这就是第一卷积层的全部输出结果,这里以下式代表:layer7out(p7,q7,k7);

第七层卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer7out(p7,q7,k7)做为本层激活函数leakyrelu的输入,b7代表偏置量,layer8(i8,j8,c8)代表新型卷积神经网络第五层卷积层激活后的输出,其中i8、j8、c8均为正整数,且1≤i8,j8≤31,1≤c8≤64,这里c取值为50;之后,进入步骤9);

步骤9)、进入所述新型卷积神经网络第八层,第八层为卷积层c8,对第八层卷积网络做卷积运算时,所需参数的值如下:w8=31,d8=64,f8=3,t8=128,s8=2,p8=0,k8u和b8设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第八层卷积层c8与卷积核k8u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s8移动,将卷积核k8u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer8out(p8,q8,k8u),公式表示如下:

其中layer8(i8+m8,j8+n8,c8)表示卷积运算进行到输入图像layer8第c8通道的i8+m8行,第j8+n8列,1≤i8,j8≤w8–f8+1,第八层图像layer8做卷积运算后输出的特征图尺寸由第八层图像尺寸w8、卷积核大小f8及扫描步长s8和填充p8决定,计算公式为:代入上述数据计算可得,则第八层与卷积核k8u做卷积操作后的输出特征图尺寸为15像素*15像素;利用一个卷积核k8u完成卷积运算后,形成输出特征图layer8out的一层二维结果,再用另外t8-1个不同的卷积核,依次重复上述卷积过程,即共t8=128个卷积核,每个卷积核运算后均生成一层二维特征图结果,最终形成128层二维特征图,神经元的个数为15*15*128个,这就是第八卷积层的全部输出结果,这里以下式代表:layer8out(p8,q8,k8);

第八层卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer8out(p8,q8,k8)做为本层激活函数leakyrelu的输入,b8代表偏置量,layer9(i9,j9,c9)代表新型卷积神经网络第五层卷积层激活后的输出,其中i9、j9、c9均为正整数,且1≤i9,j9≤15,1≤c9≤128,这里c为设定的常量,c取值为50;之后,进入步骤10);

步骤10)、进入所述新型卷积神经网络第九层为卷积层c9,对第九层卷积网络做卷积运算时,所需参数的值如下:v=9,w9=15,d9=128,f9=3,t9=256,s9=2,p9=0,k9u和b9设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第九层卷积层c9与卷积核k9u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s9移动,将卷积核k9u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer9out(p9,q9,k9u),公式表示如下:

其中layer9(i9+m9,j9+n9,c9)表示卷积运算进行到输入图像layer9第c9通道的i9+m9行,第j9+n9列,1≤i9,j9≤w9–f9+1,第九层图像layer9做卷积运算后输出的特征图尺寸由第九层图像尺寸w9、卷积核大小f9及扫描步长s9和填充p9决定,计算公式为:代入上述数据计算可得,则第九层与卷积核k9u做卷积操作后的输出特征图尺寸为15像素*15像素;利用一个卷积核k9u完成卷积运算后,形成输出特征图layer9out的一层二维结果,再用另外t9-1个不同的卷积核,依次重复上述卷积过程,即共t9=256个卷积核,每个卷积核运算后均生成一层二维特征图结果,最终形成256层二维特征图,神经元的个数为7*7*256个,这就是第九层卷积层的全部输出结果,这里以下式代表:layer9out(p9,q9,k9)

第九层卷积层激活函数采用leakyrelu,其数学表达式为:

layer9out(p9,q9,k9)做为本层激活函数leakyrelu的输入,b9代表偏置量,layer10(i10,j10,c10)代表新型卷积神经网络第九层卷积层激活后的输出,其中i10、j10、c10均为正整数,且1≤i10,j10≤7,1≤c10≤256,这里c取值为50;之后,进入步骤11);

步骤11)、进入所述新型卷积神经网络第十层的全连接层,本文中所有全连接层在计算过程中要用到的公式中的变量及其含义说明如下:a:表示当前处理的全连接层在整个网络中所处的层级,当a的值在一层被指定后,所有下标包含a的变量均以a的值代入来表示此变量的名称;xa:正整数,表示第a层的输入数据的维数;xa:列向量,表示第a层的输入数据是一个包含xa行的列向量,每行包含一个实数,这里的xa个元素从上到下分别为layera(ia,ja,ca)以层、行、列为顺序每次取出一个数值依次排列而成;da:正整数,表示第a层连接单元的数量;wa:实矩阵,表示第a层与第a-1层间的连接权重所构成的二维实矩阵,此矩阵的行数为da,列数为xa;ba:列向量,为第a层计算过程中需要用到的中间阈值变量,其行数为da;layeraout:列向量,为第a层输入图像经过运算得到的结果的da维列向量;layeraout(ka):实数,layeraout的第ka个分量的值,1≤ka≤da;

对第10层全连接层做运算时,所需参数的值如下:

a=10,x10=i10*j10*c10=12544,d10=213=8192,w10中所有值设置为(-1,1)之间的非0的随机数,b10中所有分量初始设置全部为-1;对所述新型卷积神经网络的第十层全连接层f10的计算过程为:以本层的权值矩阵与输入向量做矩阵相乘,再与阈值向量相加得到layer10out,公式表示如下:layer10out=w10x10+b10;第十层全连接层激活函数采用sigmoid函数,对layer10out的第k10个分量进行激活的公式为:

其中,layer10out(k10)做为本层激活函数sigmoid函数的一个分量的输入,layer11(c11)代表新型卷积神经网络第十层全连接层激活后的一个分量的输出,其中c11均为正整数,且1≤c11=k10≤d10;第十层全连接层的全部输出以layer11表示,layer11为d10维的一个列向量;之后,进入步骤12);

步骤12)、进入所述新型卷积神经网络第十一层为全连接层,对第十一层全连接层做运算时,所需参数的值如下:a=11,x11=d10=8192,d11=4096,w11中所有值设置为(-1,1)之间的非0的随机数,b11中所有分量初始设置全部为-1;对所述新型卷积神经网络的第十一层全连接层f11的计算过程为:以本层的权值矩阵与输入向量做矩阵相乘,再与阈值向量相加得到layer11out,公式如下:layer11out=w11x11+b11;

第十一层全连接层激活函数采用sigmoid函数,对layer11out的第k11个分量进行激活的数学表达式为:

其中,layer11out(k11)做为本层激活函数sigmoid函数的一个分量的输入,layer12(c12)代表新型卷积神经网络第十一层全连接层激活后的一个分量的输出,其中c12均为正整数,且1≤c12=k11≤d11;第十一层全连接层的全部输出以layer12表示,layer12为d11维的一个列向量;之后,进入步骤13);

步骤13)、进入所述新型卷积神经网络第十二层为全连接层,对第十二层全连接层做运算时,所需参数的值如下:a=12,x12=d11=4096,d12=18,w12中所有值设置为(-1,1)之间的非0的随机数,b12中所有分量初始设置全部为-1;对所述新型卷积神经网络的第十二层全连接层f12的计算过程为:以本层的权值矩阵与输入向量做矩阵相乘,再与阈值向量相加得到layer12out,公式表示如下:layer12out=w12x12+b12;

第十二层全连接层激活函数采用sigmoid函数,对layer12out的第k12个分量进行激活的数学表达式为:

其中,layer12out(k12)做为本层激活函数sigmoid函数的一个分量的输入,layer13(c13)代表新型卷积神经网络第十一层全连接层激活后的一个分量的输出,其中c13均为正整数,且1≤c13=k12≤d12;第十一层全连接层的全部输出以layer13表示,layer13为d12维的一个列向量,代表d12个二级分类类型;之后,进入步骤14);

步骤14)、进入所述新型卷积神经网络的输出层,输出层过程中要用到的公式中的标号及其含义说明如下:e:为自然常数,其值约为2.71828;sw:无单位,表示softmax函数的输出,也即输出层的输出;sw(c13):无单位,表示输出层第c13个神经元,为(0,1)间的概率值;layer13:列向量,为第十二层输出的d12个神经元输出的对应值,同时作为本层的输入;layer13(c13):正整数,表示layer13中的第c13个元素,其中1≤c13≤d12;m:无单位,表示强度参数,预设为1;swmax:表示layer13中神经元对应值经softmax函数输出后,d12个节点概率中最大的一个,也即最终的分类结果对应的概率值,为(0,1)间的概率值;最后一层的输出层将d12个神经元的输出映射到(0,1)区间内,用概率解释分类,使用经典softmax函数进行计算,得到第c13个元素对应的概率输出,数学表达式为:

则若18个神经元在第十一层全连接层的输出为layer13(1),layer13(2),…,layer13(18),则经最后输出层softmax作用后的d12=18个神经元的输出概率值依次为:sw(1),sw(2),…,sw(18),对应所属的18个二级类别,即:属于玻璃类的概率为sw(1)、属于牛奶盒的概率为sw(2)、属于金属类的概率为sw(3)、属于塑料类的概率为sw(4)、属于废纸类的概率为sw(5)、属于织物类的概率为sw(6)、属于废电池的概率为sw(7)、属于废墨盒的概率为sw(8)、属于废油漆桶的概率为sw(9)、属于过期药品的概率为sw(10)、属于废灯管的概率为sw(11)、属于杀虫剂的概率为sw(12)、属于污染塑料袋的概率为sw(13)、属于烟头的概率为sw(14)、属于污染纸张的概率为sw(15)、属于破旧陶瓷品的概率为sw(16)、属于灰土的概率为sw(17)、属于一次性餐具的概率为sw(18),经softmax映射后所有节点概率值的累和为1,选取输出节点概率值最大的作为预测目标和分类结果,如下公式所示:则选取swmax为分类结果;

步骤15)、对卷积核k1u、b1、k3u、b3、k5u、b5、k7u、b7、k8u、b8、k9u、b9以及全连接层内的w10、b10、w11、b11、w12、b12的值进行误差反向传播计算更新,进行循环迭代,调整上述参数,不断减小模型输出结果与实际结果之间的误差,找到所有样本的整体平均误差最小的k1u、b1、k3u、b3、k5u、b5、k7u、b7、k8u、b8、k9u、b9以及w10、b10、w11、b11、w12、b12的值,由此作为本新型卷积神经网络训练完成的模型参数,可用来做图像预测;之后,进入步骤16);

步骤16)、将待分类图像送入训练好的神经网络,过程如下;

16-1)、将待分类图像做为预测输入数据;

16-2)、加载训练好的网络模型,加载网络模型时使用训练好的k1u、b1、k3u、b3、k5u、b5、k7u、b7、k8u、b8、k9u、b9以及w10、b10、w11、b11、w12、b12的值做为计算参数;

16-3)、依次经过步骤2)至步骤14)的计算步骤后,输出分类结果,即待分类图像所属类别及其准确率sw(c13),1≤c13≤18,0≤sw(c13)≤1;将最终的swmax作为分类结果,其对应值为所属二级类别的概率,判断出来的结果为待分类垃圾所属的二级类别:如果swmax属于{sw(1),sw(2),sw(3),sw(4),sw(5),sw(6)},即图像分类识别结果为{玻璃类,牛奶盒,金属类,塑料类,废纸类,织物类},则判断该垃圾属于可回收垃圾;若swmax属于{sw(7),sw(8),sw(9),sw(10),sw(11),sw(12)},即图像分类识别结果为{废电池,废墨盒,废油漆桶,过期药品,废灯管,杀虫剂},则判断该垃圾属于有害垃圾;若swmax={sw(13),sw(14),sw(15),sw(16),sw(17),sw(18)},即图像分类识别结果为{污染塑料袋,烟头,污染纸张,破旧陶瓷品,灰土,一次性餐具},则判断该垃圾属于其他垃圾。

本发明提供了一种城市垃圾分类处理智能视觉检测方法,针对城市垃圾智能自动分类回收需求,采用新型卷积神经网络(ncnn)包括改进设计神经网络特征提取部分,使用新的复合卷积池化层取代传统的卷积神经网络卷积层;本发明将网络架构设计为12个层,包括6个卷积层,3个池化层和3个全连接层,在控制模型复杂度的情况下,提高了模型的分类精度;卷积核大小依次采用5*5,3*3和1*1,同时模型采用leakyrelu作为激活函数,提高了降采样速度和特征提取效率;构造属于三大类(可回收垃圾、有害垃圾、其他垃圾)的十八个二级类别的常见的城市垃圾样本图像数据,标注图像数据,制作数据集,并扩充训练集;利用扩充好的训练集输入新型卷积神经网络进行训练,获取网络模型;实验结果表明,该网络在自制垃圾数据集上进行训练测试后,得到了95.8%的准确率,具有较高的运算速度;同时,利用新型卷积神经网络进行垃圾的分类识别,模型泛化能力强,可迁移性强,革新了城市垃圾智能分类实现方法,能够自动完成垃圾分类任务,减轻人工操作,使垃圾分类做到减量化、资源化、无害化,确保垃圾分类效果。

附图说明

图1为本发明一种城市垃圾分类处理智能视觉检测方法的流程图;

图2为本发明的原理结构图。

具体实施方式

本发明提供了一种城市垃圾分类处理智能视觉检测方法,其流程图如图1所示,其原理结构图,其中:包括如下步骤:

步骤1)、采集多种城市垃圾图像,制作垃圾图像数据集,将除厨余垃圾外的生活垃圾类别分为18个二级类别,包含:1:玻璃类、2:牛奶盒、3:金属类、4:塑料类、5:废纸类、6:织物类、7:废电池、8:废墨盒、9:废油漆桶、10:过期药品、11:废灯管、12:杀虫剂、13:污染塑料袋、14:烟头、15:污染纸张、16:破旧陶瓷品、17:灰土、18:一次性餐具;按照垃圾所属二级类别,对各图像的所属类别进行标注,保存每张图像属于类别1-18中的哪一类别,标注结果保存为.xml文件;然后进入步骤2)对全体样本集进行训练;

步骤2)、每次送单张训练集图像数据进入新型卷积神经网络,训练集图像数据为3通道彩色图,图片格式为.jpg,图像尺寸参数为512像素*512像素*3通道;将所述新型卷积神经网络共有12层,每个层与层之间采用串联的连接方式;设置学习率为0.005,迭代次数为500次,所述训练和测试过程使用win10系统,配置anaconda环境,使用python3.6编程语言,搭建keras框架,使用垃圾图像数据集进行训练;

网络第一层处理过程中要用到的公式中的标号及其含义说明如下:

*:表示数乘,乘数均为实数;c1:表示网络第一层为卷积层;w1:单位为像素,表示第一层输入图像的尺寸为w1*w1;这里我们设置输入图像宽高比均为1:1;d1:正整数,表示第一层c1输入图像的通道数,输入图像为彩色3通道,分别是r、g、b,分别代表图像某点像素中的红色、绿色、蓝色分量值,这里的r、g、b均为正整数;f1:正整数,表示第一层c1使用的卷积核的大小,即卷积核的长度和宽度,所有卷积核的长度等于其宽度;t1:正整数,表示第一层c1使用的卷积核的个数;k1u:三维实矩阵,表示第一层c1使用的第u个卷积核,即:长度*宽度*图像通道数,1≤u≤t1;k1u(m1,n1):表示卷积核k1u内的值,可看作对图像进行卷积运算的计算权重,为d1维实向量,m1、n1为正整数,表示第一层c1使用的卷积核内的位置,m1表示横坐标,n1表示纵坐标,m1、n1的取值范围为:1≤m1,n1≤f1;k1u(m1,n1,c1):表示卷积核k1u内各通道的值,m1、n1为正整数,表示第一层使用的卷积核内的位置,m1是表示横坐标,n1表示纵坐标,m1、n1的取值范围为1≤m1,n1≤f1,c1为正整数,表示卷积核内c1通道,1≤c1≤d1;k1:代表第一层使用的全部t1个卷积核;p1:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为d1,所述的“0像素”是指一个像素的所有通道上的值均为0的像素;s1:正整数,是第一层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔几个像素进行一次卷积运算,这个间隔数即操作步长,以像素为单位;layer1(i1,j1):表示第一层输入图像中的第i1行,第j1列的像素值,其由(r,g,b)三个数来表示,其中0≤r,g,b≤255,1≤i1,j1≤w1;layer1(i1,j1,c1):表示第一层输入图像中的第i1行,第j1列,第c1通道的像素值,1≤i1,j1≤w1,1≤c1≤d1;layer1out(p1,q1,k1u):表示第一层输入图像经与卷积核k1u做卷积运算后得到的特征图的第p1行,第q1列的像素值,每个值可以看做一个神经元,其中1≤p1,q1≤w1out;w1out:单位为像素,表示第一层输入图像layer1与卷积核k1u进行卷积运算后得到的特征图layer1out的尺寸为w1out*w1out;需要说明的是,由于所有卷积核尺寸都是一样的,所以t1个卷积核做卷积运算得到的结果都是一样的。

对第一层卷积网络做卷积运算时,所需参数的值如下:w1=512,d1=3,f1=5,t1=6,s1=1,p1=0,k1u设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第一卷积层c1与卷积核k1u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s1移动,将卷积核k1u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer1out(p1,q1,k1u),公式表示如下:

其中layer1(i1+m1,j1+n1,c1)表示卷积运算进行到输入图像layer1第c1通道的i1+m1行、第j1+n1列,1≤i1,j1≤w1–f1+1,第一层图像layer1做卷积运算后输出的特征图尺寸由第一层图像尺寸w1、卷积核大小f1及扫描步长s1和填充p1决定,计算公式为:代入上述数据计算可得,则第一层与卷积核k1u做卷积操作后的输出特征图尺寸为508像素*508像素;分别利用t1=6个卷积核依次重复上述卷积过程,最终形成t1=6层二维特征图,神经元的个数为508*508*6个,这就是第一卷积层的全部输出结果,这里以下式代表:layer1out(p1,q1,k1);

所述第一卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer1out(p1,q1,k1)+b1做为本层激活函数leakyrelu的输入,layer2(i2,j2,c2)代表新型卷积神经网络第一卷积层激活后的输出,b1代表偏置量,其中i2、j2、c2均为正整数,且1≤i2,j2≤508,1≤c2≤6,这里c取值为50;之后,进入步骤3);

步骤3)、进入所述新型卷积神经网络的第二层池化层s2,池化层s2计算过程中要用到的公式中的标号及其含义说明如下:max:池化过程运算符号,表示取最大值;s2:表示第二层为池化层;w2:单位为像素,表示第二层输入图像的尺寸为w2*w2;d2:正整数,表示第二层输入图像的通道数,这里为第一层的输出结果的通道数,d2=t1;f2:正整数,表示第二层使用的池化过滤器的大小,即过滤器的长度和宽度,所有池化层过滤器的长度等于其宽度;layer2(i2,j2):表示第二层输入图像中的第i2行,第j2列的像素值,其是一个d2维向量,其中1≤i2,j2≤w2;layer2(i2,j2,c2):表示第二层输入图像中的第i2行,第j2列,第c2通道的像素值,1≤i2,j2≤w2,1≤c2≤d2;layer2out(p2,q2,d2):表示第二层输出图像中的第p2行,第q2列,第d2通道位置处的值,1≤p2,q2≤(w2/f2);

对第z层池化层做运算时,操作步骤如下:把池化层的输入图像的一个通道内的wz*wz个像素划分为(wz/fz)行,(wz/fz)列个fz*fz的小块,对每个小块中的数,取最大数做为输出结果,然后遍历完每行上的小块和每列上的小块,依小块原有的次序放在相应的位置,最终构成一个(wz/fz)*(wz/fz)的矩阵,所有下标包含z的变量均以z的值代入来表示此变量的名称;

对第二层池化层做运算时,所需参数的值如下:w2=508,d2=6,f2=2,池化层使用的池化操作为最大池化,对输入数据的d2通道的第i2行,j2列位置的池化计算公式如下:

对一个通道做完池化操作后,形成输出特征图layer2out的1层二维池化结果,再对另外d2-1个通道,依次重复上述池化过程,最终形成d2层二维池化结果,这就是第二池化层的全部输出结果,以下式代表:layer2out(p2,q2,d2);式中,1≤p2,q2≤(w2/f2)=254,d2=6;之后,进入步骤4);

步骤4)、进入所述新型卷积神经网络第三层为卷积层c3,c3层过程中要用到的公式中的标号及其含义说明如下:c3:表示第三层为卷积层;w3:单位为像素,表示第三层输入图像的尺寸为w3*w3;这里我们设置输入图像宽高比均为1:1;d3:正整数,表示第三层输入图像的通道数,这里为第二层的输出结果的通道数,d3=d2;f3:正整数,表示第三层使用的卷积核的大小,即卷积核的长度和宽度,所有卷积核的长度等于其宽度;t3:正整数,表示第三层使用的卷积核的个数;k3u:三维实矩阵,表示第三层使用的第u个卷积核,即长度*宽度*图像通道数,1≤u≤t3;k3u(m3,n3):表示卷积核k3u内的值,作为对图像进行卷积运算的计算权重,为d3维实向量,m3、n3为正整数,表示第三层使用的卷积核内的位置,m3表示横坐标,n3表示纵坐标,m3、n3的取值范围为1≤m3,n3≤f3;k3u(m3,n3,c3):表示卷积核k3u内各通道的值,m3、n3为正整数,表示第三层使用的卷积核内的位置,m3是表示横坐标,n3表示纵坐标,m3、n3的取值范围为1≤m3,n3≤f3,c3为正整数,表示卷积核内c3通道,1≤c3≤d3;k3:代表第三层使用的全部t3个卷积核,仅做符号表示;p3:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为d3,这里所述的“0像素”是指一个像素的所有通道上的值均为0的像素;s3:正整数,第三层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔几个像素进行一次卷积运算,这个间隔数即操作步长,以像素为单位;layer3(i3,j3):表示第三层输入图像中的第i3行,第j3列的像素值,其是一个d3维向量,layer3(i3,j3)=layer2out(p2,q2),其中1≤i3,j3≤w3;

layer3(i3,j3,c3):表示第三层输入图像中的第i3行,第j3列,第c3通道的像素值,1≤i3,j3≤w3,1≤c3≤d3;layer3out(p3,q3,k3u):表示第三层输入图像经与卷积核k3u做卷积运算后得到的特征图的第p3行,第q3列的像素值,每个值可以看做一个神经元,其中1≤p3,q3≤w3out;w3out:单位为像素,表示第三层输入图像layer3与卷积核k3u进行卷积运算后得到的特征图layer3out的尺寸为w3out*w3out;需要说明的是,由于所有卷积核尺寸都是一样的,所以t3个卷积核做卷积运算得到的结果都是一样的;

对第三层卷积网络做卷积运算时,所需参数的值如下:w3=254,d3=6,f3=3,t3=16,s3=1,p3=0,k3u和b3设置为初始值在(-1,1)之间的随机数;对所述新型卷积神经网络的第三层卷积层c3与卷积核k3u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s3移动,将卷积核k3u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer3out(p3,q3,k3u),公式表示如下:

其中layer3(i3+m3,j3+n3,c3)表示卷积运算进行到输入图像layer3第c3通道的i3+m3行,第j3+n3列,1≤i3,j3≤w3–f3+1,第三层图像layer3做卷积运算后输出的特征图尺寸由第一层图像尺寸w3、卷积核大小f3及扫描步长s3和填充p3决定,计算公式为:代入上述数据计算可得,则第三层与卷积核k3u做卷积操作后的输出特征图尺寸为252像素*252像素;分别利用t3=16个卷积核依次重复上述卷积过程,最终形成t3=16层二维特征图,神经元的个数为252*252*16个,这就是第三层卷积层的全部输出结果,这里以下式代表:layer3out(p3,q3,k3);

第三层卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer3out(p3,q3,k3)+b3做为本层激活函数leakyrelu的输入,layer4(i4,j4,c4)代表新型卷积神经网络第三层卷积层激活后的输出,b3代表偏置量,其中i4、j4、c4均为正整数,且1≤i4,j4≤508,1≤c4≤6,这里c取值为50;之后,进入步骤5);

步骤5)、进入所述新型卷积神经网络第四层为池化层s4,s4层计算过程中要用到的公式中的标号及其含义说明如下:

s4:表示第四层为池化层;w4:单位为像素,表示第四层输入图像的尺寸为w4*w4;d4:正整数,表示第四层输入图像的通道数,这里为第三层的输出结果的通道数,d4=t3;f4:正整数,表示第四层使用的池化过滤器的大小,即过滤器的长度和宽度,中所有池化层过滤器的长度等于其宽度;layer4(i4,j4):表示第四层输入图像中的第i4行、第j4列的像素值,是一个d4维向量,其中1≤i4,j4≤w4;layer4(i4,j4,c4):表示第四层输入图像中的第i4行,第j4列,第c4通道的像素值,1≤i4,j4≤w4,1≤c4≤d4;layer4out(p4,q4,d4):表示第四层输出图像中的第p4行,第q4列,第d4通道位置处的值,1≤p4,q4≤(w4/f4);

对第四层池化层做运算时,所需参数的值如下:w4=252,d4=16,f4=2,池化层使用的池化操作为最大池化,对输入数据的d4通道的第i4行,j4列位置的池化计算公式如下:

对一个通道做完池化操作后,形成输出特征图layer4out的1层二维池化结果,再对另外d4-1个通道,依次重复上述池化过程,最终形成d4层二维池化结果,这就是第四层池化层的全部输出结果,以下式表示:layer4out(p4,q4,d4);式中,1≤p4,q4≤(w4/f4)=126,d4=16;之后,进入步骤6);

步骤6)、进入所述新型卷积神经网络第五层,第五层为卷积层c5,c5层计算中要用到的公式中的标号及其含义说明如下:

w5:单位为像素,表示第五层输入图像的尺寸为w5*w5;设置输入图像宽高比均为1:1;d5:正整数,表示第五层输入图像的通道数,这里为第四层的输出结果的通道数,d5=d4;f5:正整数,表示第五层使用的卷积核的大小,即卷积核的长度和宽度,所有卷积核中任一卷积核的长度等于其宽度,卷积核都是以奇数为边长的方阵;t5:正整数,表示第五层使用的卷积核的个数;k5u:三维实矩阵,表示第五层使用的第u个卷积核,即长度*宽度*图像通道数,1≤u≤t5;k5u(m5,n5):表示卷积核k5u内的值,表示卷积核内一个对图像进行卷积运算的计算权重,为d5维实向量,m5、n5为正整数,表示第五层使用的卷积核内的位置,m5是表示横坐标,n5表示纵坐标,m5、n5的取值范围为1≤m5,n5≤f5;k5u(m5,n5,c5):表示卷积核k5u内各通道的值,m5、n5为正整数,表示第五层使用的卷积核内的位置,m5是表示横坐标,n5表示纵坐标,m5、n5的取值范围为1≤m5,n5≤f5,c5为正整数,表示卷积核内c5通道,1≤c5≤d5;k5:代表第五层使用的全部t5个卷积核;p5:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为d5;s5:正整数,第五层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔一定数量的像素进行一次卷积运算,这个间隔数量即操作步长,以像素为单位;layer5(i5,j5):表示第五层输入图像中的第i5行,第j5列的像素值,其是一个d5维向量,layer5(i5,j5)=layer4out(p4,q4),其中1≤i5,j5≤w5;layer5(i5,j5,c5):表示第五层输入图像中的第i5行,第j5列,第c5通道的像素值,1≤i5,j5≤w5,1≤c5≤d5;layer5out(p5,q5,k5u):表示第五层输入图像经与卷积核k5u做卷积运算后得到的特征图的第p5行,第q5列的像素值,每个值可以看做一个神经元,其中1≤p5,q5≤w5out;w5out:单位为像素,表示第五层输入图像layer5与卷积核k5u进行卷积运算后得到的特征图layer5out的尺寸为w5out*w5out;需要说明的是,由于所有卷积核尺寸都是一样的,所以t5个卷积核做卷积运算得到的结果都是一样的;

对第五层卷积网络做卷积运算时,所需参数的值如下:w5=126,d5=16,f5=3,t5=32,s5=1,p5=0,k5u和b5设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第五层卷积层c5与卷积核k5u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s5移动,将卷积核k5u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer5out(p5,q5,k5u),公式表示如下:

其中layer5(i5+m5,j5+n5,c5)表示卷积运算进行到输入图像layer5第c5通道的i5+m5行,第j5+n5列,1≤i5,j5≤w5–f5+1,第五层图像layer5做卷积运算后输出的特征图尺寸由第五层图像尺寸w5、卷积核大小f5及扫描步长s5和填充p5决定,计算公式为:代入上述数据计算可得,则第五层与卷积核k5u做卷积操作后的输出特征图尺寸为126像素*126像素;分别利用t5=32个卷积核依次重复上述卷积过程,最终形成t5=32层二维特征图,神经元的个数为126*126*32个,这就是第一卷积层的全部输出结果,这里以下式表示:layer5out(p5,q5,k5);

第五层卷积层激活函数采用leakyrelu,其数学表达式为:

layer5out(p5,q5,k5)做为本层激活函数leakyrelu的输入,b5代表偏置量;layer6(i6,j6,c6)代表新型卷积神经网络第五层卷积层激活后的输出,其中i6、j6、c6均为正整数,且1≤i6,j6≤126,1≤c6≤32,这里c取值为50;之后,进入步骤7);

步骤7)、进入所述新型卷积神经网络第六层为池化层s6,s6层计算过程中要用到的公式中的标号及其含义说明如下:

s6:表示第六层为池化层;w6:单位为像素,表示第六层输入图像的尺寸为w6*w6;d6:正整数,表示第六层输入图像的通道数,这里为第五层的输出结果的通道数,d6=t5;f6:正整数,表示第六层使用的池化过滤器的大小,即过滤器的长度和宽度,所有池化层过滤器的长度等于其宽度;layer6(i6,j6):表示第六层输入图像中的第i6行,第j6列的像素值,其是一个d6维向量,其中1≤i6,j6≤w6;layer6(i6,j6,c6):表示第六层输入图像中的第i6行,第j6列,第c6通道的像素值,1≤i6,j6≤w6,1≤c6≤d6;layer6out(p6,q6,d6):表示第六层输出图像中的第p6行,第q6列,第d6通道位置处的值,1≤p6,q6≤(w6/f6);对第六层池化层做运算时,所需参数的值如下:w6=126,d6=32,f6=2,池化层使用的池化操作为最大池化,对输入数据的d6通道的第i6行,j6列位置的池化计算公式如下:

对一个通道做完池化操作后,形成输出特征图layer6out的1层二维池化结果,再对另外d6-1个通道,依次重复上述池化过程,最终形成d6层二维池化结果,这就是第六层池化层的全部输出结果,以下式表示:layer6out(p6,q6,d6);

式中,1≤p6,q6≤(w6/f6)=63,d6=32;之后,进入步骤8);

步骤8)、进入所述新型卷积神经网络第七层,第七层为卷积层c7,c7层运算过程中要用到的公式中的标号及其含义说明如下:

w7:单位为像素,表示第七层输入图像的尺寸为w7*w7;这里我们设置输入图像宽高比均为1:1;d7:正整数,表示第七层输入图像的通道数,这里为第六层的输出结果的通道数,d7=d6;f7:正整数,表示第七层使用的卷积核的大小,即卷积核的长度和宽度,所有卷积核的长度等于其宽度;t7:正整数,表示第七层使用的卷积核的个数;k7u:三维实矩阵,表示第七层使用的第u个卷积核,即长度*宽度*图像通道数,1≤u≤t7;k7u(m7,n7):表示卷积核k7u内的值,可看作对图像进行卷积运算的计算权重,为d7维实向量,m7、n7为正整数,表示第七层使用的卷积核内的位置,m7是表示横坐标,n7表示纵坐标,m7、n7的取值范围为1≤m7,n7≤f7;k7u(m7,n7,c7):表示卷积核k7u内各通道的值,m7、n7为正整数,表示第七层使用的卷积核内的位置,m7是表示横坐标,n7表示纵坐标,m7、n7的取值范围为1≤m7,n7≤f7,c7为正整数,表示卷积核内c7通道,1≤c7≤d7;k7:代表第七层使用的全部t7个卷积核;p7:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为d7;s7:正整数,第七层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔一定数量像素进行一次卷积运算,这个间隔数量即操作步长,以像素为单位;layer7(i7,j7):表示第七层输入图像中的第i7行,第j7列的像素值,其是一个d7维向量,layer7(i7,j7)=layer6out(p6,q6),其中1≤i7,j7≤w7;

layer7(i7,j7,c7):表示第七层输入图像中的第i7行,第j7列,第c7通道的像素值,1≤i7,j7≤w7,1≤c7≤d7;layer7out(p7,q7,k7u):表示第七层输入图像经与卷积核k7u做卷积运算后得到的特征图的第p7行,第q7列的像素值,每个值可以看做一个神经元,其中1≤p7,q7≤w7out;w7out:单位为像素,表示第七层输入图像layer7与卷积核k7u进行卷积运算后得到的特征图layer7out的尺寸为w7out*w7out,需要说明的是,由于所有卷积核尺寸都是一样的,所以t7个卷积核做卷积运算得到的结果都是一样的;

对第七层卷积网络做卷积运算时,所需参数的值如下:w7=63,d7=32,f7=3,t7=64,s7=2,p7=0,k7u和b7设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第七层卷积层c7与卷积核k7u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s7移动,将卷积核k7u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer7out(p7,q7,k7u),公式表示如下:

其中layer7(i7+m7,j7+n7,c7)表示卷积运算进行到输入图像layer7第c7通道的i7+m7行,第j7+n7列,1≤i7,j7≤w7–f7+1,第七层图像layer7做卷积运算后输出的特征图尺寸由第七层图像尺寸w7、卷积核大小f7及扫描步长s7和填充p7决定,计算公式为:代入上述数据计算可得,则第七层与卷积核k7u做卷积操作后的输出特征图尺寸为31像素*31像素;分别利用t7=64个卷积核依次重复上述卷积过程,最终形成t7=64层二维特征图,神经元的个数为31*31*64个,这就是第一卷积层的全部输出结果,这里以下式代表:layer7out(p7,q7,k7);

第七层卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer7out(p7,q7,k7)做为本层激活函数leakyrelu的输入,b7代表偏置量,layer8(i8,j8,c8)代表新型卷积神经网络第五层卷积层激活后的输出,其中i8、j8、c8均为正整数,且1≤i8,j8≤31,1≤c8≤64,这里c取值为50;之后,进入步骤9);

步骤9)、进入所述新型卷积神经网络第八层,第八层为卷积层c8,c8层计算过程中要用到的公式中的标号及其含义说明如下:w8:单位为像素,表示第八层输入图像的尺寸为w8*w8;设置输入图像宽高比均为1:1;d8:正整数,表示第八层输入图像的通道数,这里为第八层的输出结果的通道数,d8=d7;f8:正整数,表示第八层使用的卷积核的大小,即卷积核的长度和宽度,所有卷积核的长度等于其宽度;t8:正整数,表示第八层使用的卷积核的个数;k8u:三维实矩阵,表示第八层使用的第u个卷积核,即长度*宽度*图像通道数,1≤u≤t8;k8u(m8,n8):表示卷积核k8u内的值,可看作对图像进行卷积运算的计算权重,为d8维实向量,m8、n8为正整数,表示第八层使用的卷积核内的位置,m8是表示横坐标,n8表示纵坐标,m8、n8的取值范围为1≤m8,n8≤f8;k8u(m8,n8,c8):表示卷积核k8u内各通道的值,m8、n8为正整数,表示第八层使用的卷积核内的位置,m8是表示横坐标,n8表示纵坐标,m8、n8的取值范围为1≤m8,n8≤f8,c8为正整数,表示卷积核内c8通道,1≤c8≤d8;k8:代表第八层使用的全部t8个卷积核;p8:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为d8;s8:正整数,第八层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔几个像素进行一次卷积运算,这个间隔数即操作步长,以像素为单位;layer8(i8,j8):表示第八层输入图像中的第i8行,第j8列的像素值,其是一个d8维向量,其中1≤i8,j8≤w8;layer8(i8,j8,c8):表示第八层输入图像中的第i8行,第j8列,第c8通道的像素值,1≤i8,j8≤w8,1≤c8≤d8;layer8out(p8,q8,k8u):表示第八层输入图像经与卷积核k8u做卷积运算后得到的特征图的第p8行,第q8列的像素值,每个值可以看做一个神经元,其中1≤p8,q8≤w8out;w8out:单位为像素,表示第八层输入图像layer8与卷积核k8u进行卷积运算后得到的特征图layer8out的尺寸为w8out*w8out;需要说明的是,由于所有卷积核尺寸都是一样的,所以t8个卷积核做卷积运算得到的结果都是一样的;

对第八层卷积网络做卷积运算时,所需参数的值如下:w8=31,d8=64,f8=3,t8=128,s8=2,p8=0,k8u和b8设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第八层卷积层c8与卷积核k8u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s8移动,将卷积核k8u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer8out(p8,q8,k8u),公式表示如下:

其中layer8(i8+m8,j8+n8,c8)表示卷积运算进行到输入图像layer8第c8通道的i8+m8行,第j8+n8列,1≤i8,j8≤w8–f8+1,第八层图像layer8做卷积运算后输出的特征图尺寸由第八层图像尺寸w8、卷积核大小f8及扫描步长s8和填充p8决定,计算公式为:代入上述数据计算可得,则第八层与卷积核k8u做卷积操作后的输出特征图尺寸为15像素*15像素;分别利用t8=128个卷积核依次重复上述卷积过程,最终形成t8=128层二维特征图,神经元的个数为15*15*128个,这就是第八卷积层的全部输出结果,这里以下式代表:layer8out(p8,q8,k8);

第八层卷积层激活函数采用leakyrelu,其数学表达式为:

其中,layer8out(p8,q8,k8)做为本层激活函数leakyrelu的输入,b8代表偏置量,layer9(i9,j9,c9)代表新型卷积神经网络第五层卷积层激活后的输出,其中i9、j9、c9均为正整数,且1≤i9,j9≤15,1≤c9≤128,这里c取值为50;之后,进入步骤10);

步骤10)、进入所述新型卷积神经网络第九层为卷积层c9,c9层计算过程中要用到的公式中的标号及其含义说明如下:c9:表示第九层为卷积层;w9:单位为像素,表示第九层输入图像的尺寸为w9*w9;这里我们设置输入图像宽高比均为1:1;d9:正整数,表示第九层输入图像的通道数,这里为第八层的输出结果的通道数,d9=d8;f9:正整数,表示第九层使用的卷积核的大小,即卷积核的长度和宽度,所有卷积核的长度等于其宽度;t9:正整数,表示第九层使用的卷积核的个数;k9u:三维实矩阵,表示第九层使用的第u个卷积核,即长度*宽度*图像通道数,1≤u≤t9;k9u(m9,n9):表示卷积核k9u内的值,可看作对图像进行卷积运算的计算权重,为d9维实向量,m9、n9为正整数,表示第九层使用的卷积核内的位置,m9是表示横坐标,n9表示纵坐标,m9、n9的取值范围为1≤m9,n9≤f9;k9u(m9,n9,c9):表示卷积核k9u内各通道的值,m9、n9为正整数,表示第九层使用的卷积核内的位置,m9是表示横坐标,n9表示纵坐标,m9、n9的取值范围为1≤m9,n9≤f9,c9为正整数,表示卷积核内c9通道,1≤c9≤d9;k9:代表第九层使用的全部t9个卷积核;p9:正整数,做卷积运算之前,对将要做卷积运算的图像的上、下、左、右四边均添加0像素的行数或列数,每个0像素的通道数均为d9;s9:正整数,第九层卷积运算操作步长,使用卷积核对将要做卷积运算的图像进行卷积运算时,无论是横向,还是纵向,均要每隔一定数量像素进行一次卷积运算,这个间隔数即操作步长,以像素为单位;

layer9(i9,j9):表示第九层输入图像中的第i9行,第j9列的像素值,其是一个d9维向量,其中1≤i9,j9≤w9;layer9(i9,j9,c9):表示第九层输入图像中的第i9行,第j9列,第c9通道的像素值,1≤i9,j9≤w9,1≤c9≤d9;layer9out(p9,q9,k9u):表示第九层输入图像经与卷积核k9u做卷积运算后得到的特征图的第p9行,第q9列的像素值,每个值可以看做一个神经元,其中1≤p9,q9≤w9out;w9out:单位为像素,表示第九层输入图像layer9与卷积核k9u进行卷积运算后得到的特征图layer9out的尺寸为w9out*w9out;需要说明的是,由于所有卷积核尺寸都是一样的,所以t9个卷积核做卷积运算得到的结果都是一样的;

对第九层卷积网络做卷积运算时,所需参数的值如下:w9=15,d9=128,f9=3,t9=256,s9=2,p9=0,k9u和b9设置为初始值在(-1,1)之间的随机数,对所述新型卷积神经网络的第九层卷积层c9与卷积核k9u进行卷积计算的过程为:根据输入图像从左至右,从上到下,按照指定步长s9移动,将卷积核k9u在每个位置上与输入图像对应位置且对应通道的像素值相乘后求和,所得结果作为输出的二维特征图,每个值可看作一个神经元layer9out(p9,q9,k9u),公式表示如下:

其中layer9(i9+m9,j9+n9,c9)表示卷积运算进行到输入图像layer9第c9通道的i9+m9行,第j9+n9列,1≤i9,j9≤w9–f9+1,第九层图像layer9做卷积运算后输出的特征图尺寸由第九层图像尺寸w9、卷积核大小f9及扫描步长s9和填充p9决定,计算公式为:代入上述数据计算可得,则第九层与卷积核k9u做卷积操作后的输出特征图尺寸为15像素*15像素;分别利用t9=256个卷积核依次重复上述卷积过程,最终形成t9=256层二维特征图,神经元的个数为7*7*256个,这就是第九层卷积层的全部输出结果,这里以下式代表:layer9out(p9,q9,k9);

第九层卷积层激活函数采用leakyrelu,其数学表达式为:

layer9out(p9,q9,k9)做为本层激活函数leakyrelu的输入,b9代表偏置量;layer10(i10,j10,c10)代表新型卷积神经网络第九层卷积层激活后的输出,其中i10、j10、c10均为正整数,且1≤i10,j10≤7,1≤c10≤256,这里c取值为50;之后,进入步骤11);

步骤11)、进入所述新型卷积神经网络第十层为全连接层f10,f10层计算过程中要用到的公式中的标号及其含义说明如下:

x10:正整数,表示第十层的输入数据的维数;x10:列向量,表示第十层的输入数据是一个包含x10行的列向量,每行包含一个实数,这里的x10个元素从上到下分别为layer10(i10,j10,c10)以层、行、列为顺序每次取出一个数值依次排列而成;d10:正整数,表示第十层连接单元的数量;w10:实矩阵,表示第十层与第九层间的连接权重所构成的二维实矩阵,此矩阵的行数为d10,列数为x10;b10:列向量,表示第十层计算过程中需要用到的中间阈值变量,其行数为d10;layer10out:列向量,表示第十层输入图像经过运算得到的结果的d10维列向量;layer10out(k10):实数,layer10out的第k10个分量的值,1≤k10≤d10;

对第十层全连接层做运算时,所需参数的值如下:x10=i10*j10*c10=12544,d10=213=8192,w10中所有值设置为(-1,1)之间的非0的随机数,b10中所有分量初始设置全部为-1;对所述新型卷积神经网络的第十层全连接层f10的计算过程为:以本层的权值矩阵与输入向量做矩阵相乘,再与阈值向量相加得到layer10out,公式表示如下:layer10out=w10x10+b10

第十层全连接层激活函数采用sigmoid函数,对layer10out的第k10个分量进行激活的数学表达式为:

其中,layer10out(k10)做为本层激活函数sigmoid函数的一个分量的输入,layer11(c11)代表新型卷积神经网络第十层全连接层激活后的一个分量的输出,其中c11均为正整数,且1≤c11=k10≤d10;第十层全连接层的全部输出以layer11表示,layer11为d10维的一个列向量;之后,进入步骤12);

步骤12)、进入所述新型卷积神经网络第十一层为全连接层f11,f11层计算过程中要用到的公式中的标号及其含义说明如下:x11:正整数,表示第十一层的输入数据的维数,x11等于第十层输出的列向量的行数;x11:列向量,表示第十一层的输入数据是一个包含x11行的列向量,每行包含一个实数,x11等于第十层的输出结果layer11;d11:正整数,表示第十一层连接单元的数量;w11:实矩阵,表示第十一层与第十层间的连接权重所构成的二维实矩阵,此矩阵的行数为d11,列数为x11;b11:列向量,表示第十一层计算过程中需要用到的中间阈值变量,其行数为d11;layer11out:列向量,表示第十一层输入图像经过运算得到的结果的d11维列向量;layer11out(k11):实数,layer11out的第k11个分量的值,1≤k11≤d11;

对第十一层全连接层做运算时,所需参数的值如下:

x11=d10=8192,d11=4096,w11中所有值设置为(-1,1)之间的非0的随机数,b11中所有分量初始设置全部为-1;对所述新型卷积神经网络的第十一层全连接层f11的计算过程为:以本层的权值矩阵与输入向量做矩阵相乘,再与阈值向量相加得到layer11out,公式表示如下:layer11out=w11x11+b11;

第十一层全连接层激活函数采用sigmoid函数,对layer11out的第k11个分量进行激活的数学表达式为:

其中,layer11out(k11)做为本层激活函数sigmoid函数的一个分量的输入,layer12(c12)代表新型卷积神经网络第十一层全连接层激活后的一个分量的输出,其中c12均为正整数,且1≤c12=k11≤d11;第十一层全连接层的全部输出以layer12表示,layer12为d11维的一个列向量;之后,进入步骤13);

步骤13)、进入所述新型卷积神经网络第十二层为全连接层f12,f12层计算过程中要用到的公式中的标号及其含义说明如下:

x12:正整数,表示第十二层的输入数据的维数,x12等于第十一层输出的列向量的行数;x12:列向量,表示第十二层的输入数据是一个包含x12行的列向量,每行包含一个实数,x12等于第十一层的输出结果layer12;d12:正整数,表示第十二层连接单元的数量;w12:实矩阵,表示第十二层与第十一层间的连接权重所构成的二维实矩阵,此矩阵的行数为d12,列数为x12;b12:列向量,表示第十二层计算过程中需要用到的中间阈值变量,其行数为d12;layer12out:列向量,表示第十二层输入图像经过运算得到的结果的d12维列向量;layer12out(k12):实数,layer12out的第k12个分量的值,1≤k12≤d12;

对第十二层全连接层做运算时,所需参数的值如下:

x12=d11=4096,d12=18,w12中所有值设置为(-1,1)之间的非0的随机数,b12中所有分量初始设置全部为-1;对所述新型卷积神经网络的第十二层全连接层f12的计算过程为:以本层的权值矩阵与输入向量做矩阵相乘,再与阈值向量相加得到layer12out,公式表示如下:layer12out=w12x12+b12;

第十二层全连接层激活函数采用sigmoid函数,对layer12out的第k12个分量进行激活的数学表达式为:

其中,layer12out(k12)做为本层激活函数sigmoid函数的一个分量的输入,layer13(c13)代表新型卷积神经网络第十一层全连接层激活后的一个分量的输出,其中c13均为正整数,且1≤c13=k12≤d12;第十一层全连接层的全部输出以layer13表示,layer13为d12维的一个列向量,代表d12个二级分类类型;之后,进入步骤14);

步骤14)、进入所述新型卷积神经网络的输出层,输出层过程中要用到的公式中的标号及其含义说明如下:e:为自然常数,其值约为2.71828;sw:表示softmax函数的输出,也即输出层的输出;sw(c13):表示输出层第c13个神经元,为(0,1)间的概率值;layer13:列向量,表示第十二层输出的d12个神经元输出的对应值,同时作为本层的输入;layer13(c13):正整数,表示layer13中的第c13个元素,其中1≤c13≤d12;m:表示强度参数,可预设为1;

swmax:表示layer13中神经元对应值经softmax函数输出后,d12个节点概率中最大的一个,也即最终的分类结果对应的概率值,为(0,1)间的概率值;

最后一层的输出层将d12个神经元的输出映射到(0,1)区间内,用概率解释分类,使用经典softmax函数进行计算,得到第c13个元素对应的概率输出,数学表达式为:

则若18个神经元在第十一层全连接层的输出为layer13(1),layer13(2),…,layer13(18),则经最后输出层softmax作用后的d12=18个神经元的输出概率值依次为:sw(1),sw(2),…,sw(18),对应所属的18个二级类别,即:属于玻璃类的概率为sw(1)、属于牛奶盒的概率为sw(2)、属于金属类的概率为sw(3)、属于塑料类的概率为sw(4)、属于废纸类的概率为sw(5)、属于织物类的概率为sw(6)、属于废电池的概率为sw(7)、属于废墨盒的概率为sw(8)、属于废油漆桶的概率为sw(9)、属于过期药品的概率为sw(10)、属于废灯管的概率为sw(11)、属于杀虫剂的概率为sw(12)、属于污染塑料袋的概率为sw(13)、属于烟头的概率为sw(14)、属于污染纸张的概率为sw(15)、属于破旧陶瓷品的概率为sw(16)、属于灰土的概率为sw(17)、属于一次性餐具的概率为sw(18),经softmax映射后所有节点概率值的累和为1,选取输出节点概率值最大的作为预测目标和分类结果,如下公式所示:则选取swmax为分类结果;

步骤15)、对卷积核k1u、b1、k3u、b3、k5u、b5、k7u、b7、k8u、b8、k9u、b9以及全连接层内的w10、b10、w11、b11、w12、b12的值进行误差反向传播计算更新,进行循环迭代,调整上述参数,不断减小模型输出结果与实际结果之间的误差,找到所有样本的整体平均误差最小的k1u、b1、k3u、b3、k5u、b5、k7u、b7、k8u、b8、k9u、b9以及w10、b10、w11、b11、w12、b12的值,由此作为本新型卷积神经网络训练完成的模型参数,可用来做图像预测;之后,进入步骤16);

步骤16)、将待分类图像送入训练好的神经网络,过程如下;

16-1)、将待分类图像做为预测输入数据;

16-2)、加载训练好的网络模型,加载网络模型时使用训练好的k1u、b1、k3u、b3、k5u、b5、k7u、b7、k8u、b8、k9u、b9以及w10、b10、w11、b11、w12、b12的值做为计算参数;

16-3)、依次经过步骤2)至步骤14)的计算步骤后,输出分类结果,即待分类图像所属类别及其准确率sw(c13),1≤c13≤18,0≤sw(c13)≤1;将最终的swmax作为分类结果,其对应值为所属二级类别的概率,判断出来的结果为待分类垃圾所属的二级类别:如果swmax属于{sw(1),sw(2),sw(3),sw(4),sw(5),sw(6)},即图像分类识别结果为{玻璃类,牛奶盒,金属类,塑料类,废纸类,织物类},则判断该垃圾属于可回收垃圾;若swmax属于{sw(7),sw(8),sw(9),sw(10),sw(11),sw(12)},即图像分类识别结果为{废电池,废墨盒,废油漆桶,过期药品,废灯管,杀虫剂},则判断该垃圾属于有害垃圾;若swmax={sw(13),sw(14),sw(15),sw(16),sw(17),sw(18)},即图像分类识别结果为{污染塑料袋,烟头,污染纸张,破旧陶瓷品,灰土,一次性餐具},则判断该垃圾属于其他垃圾。

实验结果表明,该网络在自制垃圾数据集上进行训练测试后,得到了97.8%的准确率,具有较高的运算速度;同时,利用新型卷积神经网络进行垃圾的分类识别,模型泛化能力强,可迁移性强,革新了城市垃圾智能分类实现方法,能够自动完成垃圾分类任务,减轻人工操作,使垃圾分类做到减量化、资源化、无害化,确保垃圾分类效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1