【图像识别】基于卷积神经⽹络(CNN)实现垃圾分类Matlab

【图像识别】基于卷积神经⽹络(CNN)实现垃圾分类Matlab

源码

⼀、垃圾分类

如何通过垃圾分类管理,最⼤限度地实现垃圾资源利⽤,减少垃圾处置量,改善⽣存环境质量,是当前世界各国共同关注的迫切问题之⼀。根据国家制定的统⼀标准,现在⽣活垃圾被⼴泛分为四类,分别是可回收物、餐厨垃圾、有害垃圾和其他垃圾。可回收物表⽰适宜回收和资源利⽤的垃圾,主要包括废纸、塑料、玻璃、⾦属和布料五⼤类,⽤蓝⾊垃圾容器收集,通过综合处理回收利⽤。餐厨垃圾包括剩菜剩饭、⾻头、菜根菜叶、果⽪等⾷品类废物,⽤绿⾊垃圾容器收集等等。但是随着深度学习技术的发展,为了简单⾼效地对⽣活垃圾进⾏识别分类,本篇⽂章将实现⼀种基于卷积神经⽹络的垃圾分类识别⽅法。该⽅法只需要对图像进⾏简单的预处理,CNN模型便能够⾃动提取图像特征且池化过程能够减少参数数量,降低计算的复杂度,实验结果表明卷积神经⽹络,能克服传统图像分类算法的诸多缺点,当然更为复杂的模型等待⼤家去实验研究。但是⽬前认为采⽤VGG或者global 池化⽅式可能效果更好⼀点。

⼆、卷积神经⽹络CNN

卷积神经⽹络(Convolutional Neural Networks / CNNs / ConvNets)与普通神经⽹络⾮常相似,它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收⼀些输⼊,并做⼀些点积计算,输出是每个分类的分数,普通神经⽹络⾥的⼀些计算技巧到这⾥依旧适⽤。

所以哪⾥不同呢?卷积神经⽹络默认输⼊是图像,可以让我们把特定的性质编码⼊⽹络结构,使是我们的前馈函数更加有效率,并减少了⼤量参数。

具有三维体积的神经元(3D volumes of neurons)

卷积神经⽹络利⽤输⼊是图⽚的特点,把神经元设计成三个维度 : width, height, depth(注意这个depth不是神经⽹络的深度,⽽是⽤来描述神经元的) 。⽐如输⼊的图⽚⼤⼩是 32 × 32 × 3 (rgb),那么输⼊神经元就也具有 32×32×3 的维度。下⾯是图解:

传统神经⽹络

卷积神经⽹络

⼀个卷积神经⽹络由很多层组成,它们的输⼊是三维的,输出也是三维的,有的层有参数,有的层不需要参数。

Layers used to build ConvNets

卷积神经⽹络通常包含以下⼏种层:

卷积层(Convolutional layer),卷积神经⽹路中每层卷积层由若⼲卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的⽬的是提取输⼊的不同特征,第⼀层卷积层可能只能提取⼀些低级的特征如边缘、线条和⾓等层级,更多层的⽹络能从低级特征中迭代提取更复杂的特征。

线性整流层(Rectified Linear Units layer, ReLU layer),这⼀层神经的活性化函数(Activation function)使⽤线性整流(Rectified Linear Units, ReLU)。

池化层(Pooling layer),通常在卷积层之后会得到维度很⼤的特征,将特征切成⼏个区域,取其最⼤值或平均值,得到新的、维度较⼩的特征。

全连接层( Fully-Connected layer), 把所有局部特征结合变成全局特征,⽤来计算最后每⼀类的得分。

⼀个卷积神经⽹络各层应⽤:

卷积层(Convolutional layer)

局部感知(Local Connectivity)

普通神经⽹络把输⼊层和隐含层进⾏“全连接(Full Connected)“的设计。从计算的⾓度来讲,相对较⼩的图像从整幅图像中计算特征是可⾏的。但是,如果是更⼤的图像(如 96x96 的图像),要通过这种全联通⽹络的这种⽅法来学习整幅图像上的特征,从计算⾓度⽽⾔,将变得⾮常耗时。你需要设计 10 的 4 次⽅(=10000)个输⼊单元,假设你要学习 100 个特征,那么就有 10 的 6 次⽅个参数需要去学习。与 28x28 的⼩块图像相⽐较, 96x96 的图像使⽤前向输送或者后向传导的计算⽅式,计算过程也会慢 10 的 2 次⽅(=100)倍。

卷积层解决这类问题的⼀种简单⽅法是对隐含单元和输⼊单元间的连接加以限制:每个隐含单元仅仅只能连接输⼊单元的⼀部分。例如,每个隐含单元仅仅连接输⼊图像的⼀⼩⽚相邻区域。(对于不同于图像输⼊的输⼊形式,也会有⼀些特别的连接到单隐含层的输⼊信号“连接区域”选择⽅式。如⾳频作为⼀种信号输⼊⽅式,⼀个隐含单元所需要连接的输⼊单元的⼦集,可能仅仅是⼀段⾳频输⼊所对应的某个时间段上的信号。)

每个隐含单元连接的输⼊区域⼤⼩叫r神经元的感受野(receptive field)。

由于卷积层的神经元也是三维的,所以也具有深度。卷积层的参数包含⼀系列过滤器(filter),每个过滤器训练⼀个深度,有⼏个过滤器输出单元就具有多少深度。

具体如下图所⽰,样例输⼊单元⼤⼩是32×32×3, 输出单元的深度是5, 对于输出单元不同深度的同⼀位置,与输⼊图⽚连接的区域是相同的,但是参数(过滤器)不同。

虽然每个输出单元只是连接输⼊的⼀部分,但是值的计算⽅法是没有变的,都是权重和输⼊的点积,然后加上偏置,这点与普通神经⽹络是⼀样的,如下图所⽰:

空间排列(Spatial arr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值