基于VGG16的垃圾分类系统

该数据集包含了2507 个生活垃圾图片,物品都是物品放在白板上在日光/室内光源下拍摄的,压缩后的尺寸为 512 * 384,垃圾识别分类数据集中包括玻璃 (glass) 、硬纸板 (cardboard) 、金属 (metal) 、纸 (paper) 、塑料 (plastic) 、一般垃圾 (trash) ,共6个类别,如下表3-1所示:序号中文名英文名数据集大小1玻璃glass497张图片2纸paper590张图片3硬纸板cardboard400张图片4塑料。
摘要由CSDN通过智能技术生成

目录

1.VGG结构

2.块结构

3.权重参数

3.特点

4.代码实现

4.1 数据集介绍

4.2 代码

4.3 实验结果


1.VGG结构

VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络。VGG是由Simonyan 和Zisserman在文献《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(Visual Geometry Group)的缩写。该模型参加2014年的 ImageNet图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。

VGG中根据卷积核大小和卷积层数目的不同,可分为A,A-LRN,B,C,D,E共6个配置(ConvNet Configuration),其中以D,E两种配置较为常用,分别称为VGG16和VGG19。下图给出了VGG的六种结构配置:

下图 VGG六种结构配置图:

上图中,每一列对应一种结构配置。例如,图中绿色部分即指明了VGG16所采用的结构。

我们针对VGG16进行具体分析发现,VGG16共包含:

  • 13个卷积层(Convolutional Layer),分别用conv3-XXX表示
  • 3个全连接层(Fully connected Layer),分别用FC-XXXX表示
  • 5个池化层(Pool layer),分别用maxpool表示

其中,卷积层和全连接层具有权重系数,因此也被称为权重层,总数目为13+3=16,这即是VGG16中16的来源。(池化层不涉及权重,因此不属于权重层,不被计数)。

VGG16整个架构图如下图所示:

从左至右,一张彩色图片输入到网络,白色框是卷积层,红色是池化,蓝色是全连接层,棕色框是预测层。预测层的作用是将全连接层输出的信息转化为相应的类别概率,而起到分类作用。

可以看到 VGG16 是13个卷积层+3个全连接层叠加而成。

网络开始输入(3,224,224)的图像数据,即一张宽224,高244的彩色RGB图片,同时补了一圈0。接着是卷积层,有64个(3,3)的卷积核,一个卷积核扫完图片,生成一个新的矩阵,64个就生成64 层。接着是补0,接着再来一次卷积。此时图像数据是64*224*224,接着是池化,小矩阵是(2,2)。按照这样池化之后,数据变成了64*112*112,矩阵的宽高由原来的224减半,变成了112。再往下,同理,只不过是卷积核个数依次变成128,256,512,而每次按照这样池化之后,矩阵都要缩小一半。13层卷积和池化之后,数据变成了 512*7*7。

2.块结构

观察上面第一幅图右侧,VGG16的卷积层和池化层可以划分为不同的块(Block),从前到后依次编号为block1-block5。每一个块内包含若干卷积层和一个池化层。例如:block4包含:3个卷积层,conv3-512;1个池化层,maxpool。

并且同一块内,卷积层的通道数是相同的,例如:block2中包含2个卷积层,每个卷积层用conv3-128表示,即卷积核为:3x3x3,通道数都是128;block3中包含3个卷积层,每个卷积层用conv3-256表示,即卷积核为:3x3x3,通道数都是256

下面给出按照块划分的VGG16的结构图,可以结合下图进行理解:

VGG的输入图像是 224x224x3:通道数翻倍,由64依次增加到128,再到256,直至512保持不变,不再翻倍;高和宽变减半,由 224→112→56→28→14→7。

3.权重参数

尽管VGG的结构简单,但是所包含的权重数目却很大,达到了惊人的139,357,544个参数。这些参数包括卷积核权重和全连接层权重。

例如,对于第一层卷积,由于输入图的通道数是3,网络必须学习大小为3x3,通道数为3的的卷积核,这样的卷积核有64个,因此总共有(3x3x3)x64 = 1728个参数。

计算全连接层的权重参数数目的方法为:前一层节点数×本层的节点数前一层节点数×本层的节点数。因此,全连接层的参数分别为:

  • 7x7x512x4096 = 1027,645,444
  • 4096x4096 = 16,781,321
  • 4096x1000 = 4096000

FeiFei Li在CS231的课件中给出了整个网络的全部参数的计算过程(不考虑偏置),如下图所示:

图中蓝色是计算权重参数数量的部分;红色是计算所需存储容量的部分。

VGG16具有如此之大的参数数目,可以预期它具有很高的拟合能力;但同时缺点也很明显,即训练时间过长,调参难度大;需要的存储容量大,不利于部署。例如存储

  • 12
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值