Skip to content

VGG 19 is a Very Deep Convolutional Networks for Large-Scale Image Recognition In this work we investigate the effect of the convolutional network depth on its accuracy in the large-scale image recognition setting. Our main contribution is a thorough evaluation of networks of increasing depth using an architecture with very small (3x3) convoluti…

Notifications You must be signed in to change notification settings

RunyiYang/VGG19-for-image-recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1 实验流程

1.1 实验模块

1.1.1 数据加载模块

数据加载模块实现数据的读取和预处理。为了统一神经网络输入的大小,读入图像数据后,首先需要将图像缩放到224x224 的大小,并用矩阵的方式存储。

然后,对输入图像做标准化处理,将输入值的范围从[0, 255]标准化为均值为0的区间。

1.1.2 基本单元模块

本实验仅实现VGG19 的推断过程,因此不需要实现反向传播计算和参数的更新,仅需实现层的初始化、参数初始化、前向传播计算、参数加载等基本操作。在VGG19网络中,包含卷积层、ReLU层、最大池化层、全连接层和Softmax层。

此外还需实现一个flatten(扁平化)层,用在VGG19中第一个全连接层之前,用于将最大池化层(pool5)输出的四维特征图矩阵变形为二维矩阵作为全连接层的输入。最大池化层和flatten层中没有参数,不包含参数初始化和参数加载操作。

1.1.3 网络结构模块

本实验的网络结构模块用一个类来定义VGG19 神经网络,用类的成员函数来定义VGG19 的初始化、建立网络结构、神经网络参数初始化等基本操作。

1.1.4 网络推断模块

网络推断模块包含VGG19 网络的前向传播、VGG19 网络参数的加载、推断函数主体等操作,这些操作用VGG19 神经网络类的成员函数来定义。

1.2 完整实验流程

本实验仅需要对给定的一张图像进行分类,因此给定一张预处理好的图像,执行网络前向传播函数即可获得VGG19 预测的1000 个类别的分类概率,然后取其中概率最大的类别作为最终预测的分类类别。在实际应用中,可能需要对一个数据集中的多张测试图像依次进行分类,然后与测试图像对应的标记进行比对,即可得到测试数据集的分类正确率。

首先实例化VGG19 网络对应的类,建立VGG19 的网络结构,并对每层的参数进行初始化,然后从官方模型中加载每层的参数,之后加载给定的图像并进行预处理,最后调用网络推断模块获得最终的图像分类结果。

2 实验环境

硬件环境:CPU。

软件环境:Python 编译环境及相关的扩展库,包括Python 2.7.12,Pillow 6.0.0,Scipy0.19.0,NumPy 1.16.0(本实验不需使用TensorFlow等深度学习框架)。

数据集:官方训练VGG19使用的数据集为ImageNet。该数据集包括约128万训练图像和5万张测试图像,共有1000个不同的类别。本实验使用了官方训练好的模型参数,并不需要直接使用ImageNet数据集进行VGG19模型的训练。

3 实验内容

本实验利用VGG19 网络进行图像分类。首先建立VGG19 的网络结构,然后利用VGG19的官方模型参数对给定图像进行分类。VGG19 网络的模型参数是在ImageNet数据集上训练获得,其输出结果对应ImageNet 数据集中的1000 个类别概率。在工程实现中,依然按照第2.1节实验的模块划分方法,每个模块的具体实现基于第2.1节实验进行改进。由于本实验只涉及VGG19 网络的推断过程,因此本实验仅包括数据加载模块、基本单元模块、网络结构模块、网络推断模块,不包括网络训练模块。

About

VGG 19 is a Very Deep Convolutional Networks for Large-Scale Image Recognition In this work we investigate the effect of the convolutional network depth on its accuracy in the large-scale image recognition setting. Our main contribution is a thorough evaluation of networks of increasing depth using an architecture with very small (3x3) convoluti…

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages