首页 > 垃圾分类 > 【图像识别】基于卷积神经网络(CNN)实现垃圾分类Matlab源码
2022
04-11

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

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

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

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

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

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

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

  具体如下图所示样例输入单元大小是32×32×3, 输出单元的深度是5, 对于输出单元不同深度的同一位置与输入图片连接的区域是相同的但是参数过滤器不同。

  虽然每个输出单元只是连接输入的一部分但是值的计算方法是没有变的都是权重和输入的点积然后加上偏置这点与普通神经网络是一样的如下图所示

  : 顾名思义它控制输出单元的深度也就是filter的个数连接同一块区域的神经元个数。又名

  它控制在同一深度的相邻两个隐含单元与他们相连接的输入区域的距离。如果步幅很小比如 stride 1的线c;相邻隐含单元的输入区域的重叠部分会很多; 步幅很大则重叠区域变少。

   我们可以通过在输入单元周围补零来改变输入单元整体大小从而控制输出单元的空间大小。

  则可以用以下公式计算一个维度宽或高内一个输出单元里可以有几个隐藏单元

  另外网络的权重在图的右上角计算方法和普通神经网路一样。

  我们不禁会问为什么要权重共享呢一方面重复单元能够对特征进行识别而不考虑它在可视域中的位置。另一方面权值共享使得我们能更有效的进行特征抽取因为它极大的减少了需要学习的自由变量的个数。通过控制模型的规模卷积网络对视觉问题可以具有很好的泛化能力。

  如果应用参数共享的线c;实际上每一层计算的操作就是输入层和权重的卷积这也就是卷积神经网络名字的由来。

  先抛开卷积这个概念不管。为简便起见考虑一个大小为5×5的图像和一个3×3的卷积核。这里的卷积核共有9个参数就记为 吧。这种情况下卷积核实际上有9个神经元他们的输出又组成一个3×3的矩阵称为特征图。第一个神经元连接到图像的第一个3×3的局部第二个神经元则连接到第二个局部注意有重叠就跟你的目光扫视时也是连续扫视一样。具体如下图所示。

  图的上方是第一个神经元的输出下方是第二个神经元的输出。每个神经元的运算依旧是

  需要注意的是平时我们在运算时习惯使用 这种写法但事实上我们这里使用的是 。

  现在我们回忆一下离散卷积运算。假设有二维离散函数 ,  那么它们的卷积定义为

  现在发现了吧上面例子中的9个神经元均完成输出后实际上等价于图像和卷积核的卷积操作

  * 可训练池化。训练函数 ff 接受4个点为输入出入1个点。不常用。

  最常见的池化层是规模为2*2 步幅为2对输入的每个深度切片进行下采样。每个MAX操作对四个数进行如下图所示

  * 对于任意一个卷积层要把它变成全连接层只需要把权重变成一个巨大的矩阵其中大部分都是0 除了一些特定区块因为局部感知而且好多区块的权值还相同由于权重共享。

  * 相反地对于任何一个全连接层也可以变为卷积层。比如一个 的全连接层输入层大小为 它可以等效为一个 的卷积层。换言之我们把 filter size 正好设置为整个输入层大小。

  堆叠几个卷积和整流层再加一个池化层重复这个模式知道图片已经被合并得比较小了然后再用全连接层控制输出。

  [1]基于卷积神经网络的垃圾分类系统的研究[J]. 汪洋,王小妮,王育新,刘畅,熊继伟,韩定良.

  [2]基于卷积神经网络的智能垃圾分类系统[J]. 吴碧程,邓祥恩,张子憧,唐小煜.

  [3]基于计算机视觉的废物垃圾分析与识别研究[J]. 吴健,陈豪,方武.

  《Convolutional Neural Networks for Large-Scale Remote-Sensing Image Classification》本文提出了一种全

  做模式识别尤其是深度学习的小伙伴,十之八九都在使用Pytorch或Tensorflow完成着自己的idea。确实,如今的主流框架中,

  凭借优秀的生态攻城略地,独领风骚。但是对于很多刚刚入门深度学习的新手,尤其是用惯了

  提供的Deep Learning Toolbox可能就是你的第一选择。...

  是深度学习的一个重要组成部分,由于其优异的学习性能(尤其是对图片的识别)。近年来研究异常火爆,出现了很多模型LeNet、Alex net、ZF net等等。由于大多高校在校生使用

  1 数据集如下图所示 不同类别之间的差别不是很明显,同一类别的树叶,形状不一 联系方式:127-31-370-84(q号 添加麻烦备注 csdn) 使用

  构建深度网络, 网络的输入即为图片的大小 网络最后的输出为类别数目 下面是网络的定义过程 % 构建网络模型 layers = [imageInputLayer

  由像素组成,每个像素又有颜色构成。比如,一张像素1000x1000x3的RGB图片,若用传统的

  (只有全连层),会有3百万的参数。这样处理起来,会非常费资源,又耗时,效率很低。 而

  降低数据维度,再作全连层处理。在大部分场景下,降维并不会影响结果。比如,1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。 基本原理 典型的

  要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:...

  实战。本课程将使用Pytorch深度学习框架进行实战,并在ubuntu系统上进行演示,包括:不同标注文件下的数据集读取、编写

  开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录,点击右下方课程资料、代码等打包下载

  本文内容来自: 1,Michael Nielsen的《Neural Networks and Deep Learning》中文翻译 2,,

  层级之间的神经元是局部连接和权值共享,这样的设计大大减少了(w,b)的数量,加快了训练。

  2021年中国研究生数学建模竞赛D题抗乳腺癌候选药物的优化建模思路参考代码


本文》有 0 条评论

留下一个回复