基于VggNet网络与ResNet神经网络的物体分类识别研究-附Matlab代码

✳️ 一、引言

近年来,随着计算机技术的飞速进步, 图像分类具有非常强的实际应用价值,一直是计算机视觉方向的一个重要研究课题, 图像分类是将具有相同属性的目标划分为一个类别,从分类的细致程度上分为粗粒度分类和细粒度分类两种。 早期分类类别属性差异较大的分类就是粗粒度分类,比如猫狗猴子的动物类别分类,目前粗粒度分类与人们日常生活息息相关,具有不可或缺的地位,粗粒度分类的研究还有很大发展空间。但随着技术和人们思维的发展,人们不再局限于粗粒度分类上,于是提出了细粒度图像分类这一概念,细粒度图像分类是指在识别出图像中目标物体的基础上,进行更细致类别区分,与粗粒度图像分类不同的是, 细粒度图像分类是在同一类属性的目标物体下进行类别区分,比如分类车的款式、鸟的品种、方便面的品牌等。在产品质量检测、生物多样性自动监测、智能零售、智能交通监测等方面有广泛的应用价值。

✳️ 二、VGGNet网络与ResNet网络模型

✳️ 2.1 VGG16 网络

深度卷积神经网络在细粒度图像分类任务中的应用非常普遍,常见的深度卷积神经网络有 AlexNet、 Res-Net、 VGG-Net 等。 VGG-Net 是由牛津大学的 Visual Geometry Group 于 2014 年提出。 VGG-Net 有多种配置方式例如 VGG-A、 VGG-B、 VGG-D 等。VGG-D 是 VGG-Net 中使用最普遍的配置方式, VGG-D 有 16 个权重层,其中包括13 个卷积层、 2 个全连接层和 1 个分类层,因此 VGG-D 又被称作 VGG16。本框架使用的基础神经网络是 VGG16 网络,同时 VGG16 网络也是本文的基准网络之一,本节将对 VGG16 网络展开详细的介绍,其结构如图1所示:

在这里插入图片描述

图1 VGG16 网络结构图示意图

如图1所示, VGG16 网络由 5 个卷积块、 2 个全连接层和 1 个分类层组成。第一个卷积块由 2 个卷积层和 1 个池化层组成, 其中每个卷积层均含有 64 个卷积核,且卷积核的尺寸分别为 3× 3× 3 和 3× 3× 64,两个卷积层的像素填充值均为 1,步长也均为 1,可知图像经第一个卷积块的 2 个卷积层提取特征后并没有改变输出特征图的尺寸。 在第一个卷积块的池化层中滑动窗口的尺寸为 2× 2,滑动步长为 2,因此经一次池化操作后特征图的尺寸缩为输入特征图的 1/2。在其余后续四个卷积块中分别有 2、 3、 3、 3 个卷积层并且每一个卷积块之后都连接一个最大池化层。第二个卷积块的 2 个卷积层均有 128 个卷积核,第三个卷积块的三个卷积层均有 256 个卷积核,第四和第五个卷积块的所有卷积层均有 512 个卷积核,并且所有卷积层的卷积核的二维平面尺寸均为 3× 3,只是不同卷积层的卷积核在深度上不同,像素填充值为 1,步长为 1,因此可知在 VGG16 网络中卷积操作均不改变特征图的尺寸,而在后续 4 个卷积块中的池化层中滑动窗口的尺寸均为 2× 2,步长均为 2,因此每经一次池化操作,特征图缩小为原来的 1/2。假设原始图像的大小为 224× 224,则截取第五个卷积块的池化层的输出得到的特征图的尺寸为 7× 7× 512。在 VGG16 网络中全连接层均有 4096 个隐藏神经元,分类层有 1000个神经元。

✳️ 2.2 ResNet-18网络

在卷积神经网络构建过程中, 选择良好的特征提取基础网络,有助于模型获得更加有效的高维语义特征,在具体的任务中取得更加良好的表现。因此,本文使用由 He等人提出,并在 ImageNet 大规模视觉识别挑战赛(ILSVRC)中获得 2015 年冠军的ResNet 网络结构作为大气光估计的基础特征提取网络。

学者们通过研究发现,随着深度学习网络层数不断加深,网络所提取的特征维度也不断增加。然而更深的网络使得反向传播的链路也在不断变长,导致最上层的梯度难以良好的传播到底层, 指导底层参数的更新, 从而出现梯度弥散导致网络无法收敛,网络出现退化的现象。 为了解决该问题, He 等人[51]在网络中引入了“shortcut”分支,该分支与原始网络组成一个基本单元,被称为残差模块,其结构如图2所示。

在这里插入图片描述

图2 残差结构示意图

如上图所示, 左侧为“shortcut”结构,右侧为卷积分支。 He 等人[51]认为, 如果想使前层网络不受后面层的影响,使模型变为浅层网络,那么网络后面的层需要进行恒等映射。 但是如果让深层的网络直接学习这个潜在的恒等映射H(x)= x十分困难,因此 He[2] 等人将网络设计为如下公式:

在这里插入图片描述

其中 x 为上一层网络的输出,即改残差模块的输入, F(x)为卷积分支的映射函数, H(x)为最终输出, +由专门的 Element-wise addition 模块完成,卷积分支会保证F(x)与 x 的输出大小和维度相同。从上式中可以看出,当 F(x)=0时,构成恒等映射H(x)= x。其残差函数的可以表示为:

在这里插入图片描述
He 等人[2]认为拟合残差比直接拟合函数更加容易。例如把 10 映射到 10.1,那么引入残差分支前是 F’ (10)=10.1,引入残差分支后是H(10)=10.1,H(10)= F(10)+10,F(10)=0.1。 此处的 F’ 和 H 表示对输入数据进行映射, 引入残差分支后的,可以看出对于输出变化残差结构更为敏感。比如输出从 10.0 变到 10.1,映射 F` 的输出增加了 1%,而对于残差结构 F 输出从 10.0 到 10.1,映射 H 是从0.0到0.1,增加了 100%。更大的变化使得网络参数可以进行较大的调整,由于通过“shortcut”分支去掉相同的主体部分, 突出微小的变化, 所以效果更好。

为了提高网络执行效率,采用 ResNet 网络中最轻量级的结构 ResNet-18 作为基础网络,其网络结构如所示:

在这里插入图片描述

图 3 ResNet-18 结构图

如上图所示, 网络在训练时输入图像为CIFAR-10 数据,每个卷积模块由一个 3x3 的卷积层,一个 BatchNorm 层和一个 ReLU 层组成,最后一层卷积后连接一个 Global Average Pooling层将特征尺寸改为 1x1,这样做的好处可以保证网络输入任意大小的图片。

✳️ 三、训练与实验结果

✳️ 3.1 CIFAR-10 数据集

该数据集共有 60 000 幅彩色图像, 分为 10 类, 每类 6000 幅图。如图3所示, CIFAR-10 数据集中 50000 幅用于训练, 另外10000 幅用于测试。

在这里插入图片描述

图34 CIFAR-10 数据集

✳️ 3.2 ResNet-18训练与识别结果

基于ResNet-18网络训练结果如下,在单GPU环境下训练该网络共用时41分钟。随着训练迭代次数的增强,准确率逐渐上升,Loss曲线逐渐下降。

在这里插入图片描述

图5 ResNet-18网络训练结果

随后,导入一幅图像进行识别,该网络模型准确识别结果为“airplane”,整个识别过程共用时1.41秒。

在这里插入图片描述

图6 ResNet-18识别结果

✳️ 3.3 VGG16 网络训练与识别结果

基于VGG16网络训练结果如下,在单GPU环境下训练500轮共用时26分钟。随着训练迭代次数的增强,准确率逐渐上升,Loss曲线逐渐下降。

在这里插入图片描述

图7 VGG16网络训练结果

同样地,导入一幅图像进行识别,该网络模型准确识别结果为“airplane”,整个识别过程共用时0.19秒。

在这里插入图片描述

图8 VGG16网络的识别与分类结果

✳️ 四、参考文献

[1] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition [Online], available: https://arxiv.org/abs/1409.1556, April 10, 2015

[2] He K, Zhang X, Ren S. Deep Residual Learning for Image Recognition[C]. 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015: 770-778

✳️ 五、Matlab代码获取

上述演示实例,均由Matlab代码实现,下载链接如下:

https://download.csdn.net/download/m0_70745318/87777934


博主简介:研究方向涉及智能图像处理、深度学习、卷积神经网络等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: VGG16是一个非常流行的深度卷积神经网络,用于图像识别分类任务。它由Simonyan等人在2014年首次提出,这个模型具有16个卷积层和3个完全连接层,这些层被认为是非常深的网络结构。在Matlab中,要使用VGG16模型,就需要使用深度学习工具箱的模型库,在这个库中可以找到vgg-16网络的支持。这意味着,如果想要在Matlab中实现VGG16模型,需要在深度学习工具箱中安装vgg-16网络的支持包。这个支持包提供了VGG16网络的预训练模型,可以用于图像分类任务和其他深度学习应用。因此,这个支持包非常重要,是使用VGG16网络的必要条件。总的来说,VGG16是一个非常强大的深度卷积神经网络,在Matlab中使用需要深度学习工具箱的模型库的支持。 ### 回答2: VGG16是一种经典的卷积神经网络模型,它适用于图像分类、目标检测等深度学习任务。在MATLAB中使用VGG16网络时,需要首先安装“深度学习工具箱”模型以便提供VGG16网络的支持。 深度学习工具箱是MATLAB中的一个重要工具,它包含了许多深度学习算法和网络模型的实现,用户可以通过这个工具箱灵活地搭建、训练和测试自己的深度学习模型。而VGG16模型正是深度学习工具箱提供的其中一种预定义网络模型。 在安装了深度学习工具箱后,用户可以通过简单的命令来加载预训练好的VGG16模型,该模型可以在不同的图像数据集上进行微调,以更好地适应用户自己的任务。此外,深度学习工具箱还提供了大量的图像处理函数,例如数据增强、卷积层可视化、特征可视化等,可以帮助用户更好地了解和优化自己的深度学习模型。 总之,VGG16需要深度学习工具箱模型的支持,在MATLAB中使用VGG16网络时需要先安装并加载该模型,并结合其他图像处理函数进行模型训练和优化。 ### 回答3: vgg16是深度学习中常用的卷积神经网络模型,在使用时需要使用深度学习工具箱配合使用,以支持vgg16网络。深度学习工具箱是基于MATLAB编写的一款深度学习工具,该工具箱提供了许多深度学习模型的支持,包括vgg16等经典模型。使用深度学习工具箱可以简化模型实现的步骤,使得深度学习的实现更加便捷和高效。 在使用vgg16模型时,需要先在深度学习工具箱中将模型加载进入MATLAB环境中,然后再进行训练和测试操作。深度学习工具箱提供的vgg16模型支持包括了许多经典的网络层,如卷积层、池化层、全连接层等,同时还提供了一些预训练好的模型参数,使得模型的训练和调整更加方便。 除了vgg16,深度学习工具箱还支持其他许多深度学习模型,如AlexNet、ResNet等,使用起来也十分方便。如果想要进行深度学习的开发和研究,深度学习工具箱是一个十分不错的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值