基于CNN的图形分类算法研究
2021-05-11董亮段正泰龚彬
董亮 段正泰 龚彬
【摘要】 图像物体分类与检测是计算机视觉研究中的两个重要的基本问题,也是图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。为最大限度的发挥深度学习算法的性能,有必要对不同的深度学习算法进行评估,从而进行不同数据集识别方法的最优选择。本文基于CIFAR10和MNIST數据集,采用LeNet网络和VGG网络进行图像识别,并比较各算法的效率、准确率、召回率等性能差异,进而对两种算法进行对比和分析。
【关键词】 模式识别 深度学习 卷积神经网络 LeNet VGG
引言
计算机视觉作为人工智能的一个重要分支,其显著的研究成果已逐渐应用于人们的实际生活中,如人脸识别、目标追踪等。而图像分类是计算机视觉中的一个基础问题,如何高效准确的实现图像分类具有重要的研究意义和实用价值。与传统神经网络相比,卷积神经网络可通过局部感受野和权值共享机制大幅降低网络结构的参数数量[1],并且能够通过池化操作有效降低特征维度,同时可有效改善网络的泛化能力。因此,卷积神经网络被广泛应用在大规模图像数据集的分类与识别中。近年来,Alex Krizhevsky等提出了AlexNet模型,该模型引入全新的深层结构,将错误率从25%以上降低到了15%,颠覆了图像识别领域[2];2014年,VGG团队提出通过小卷积核增加网络的深度,减少网络参数量[3]。大量研究实验表明,CNN是一种具有层次结构的学习模型,其在特征提取、特征选择以及分类等问题上具有突出的优势,可有效提高人图像识别的准确率和稳健性。
一、数据集的准备
1.1 MNIST数据集
手写数字识别数据集(MNIST)包含60000条训练数据和10000条测试数据[4]。数据集中每一条数据均由feature(数字图像)和lebels(标签)组成。如图1所示,每个图像都是固定大小(28x28像素),其值为0到1。每个图像都被平展并转换为784(28*28)个特征的一维numpy数组。
1.2 CIFAR10数据集
CIFAR-10[5]是由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理的一个用于识别普适物体的小型数据集。一共包含10个类别的RGB彩色图片,如图2所示。图片的尺寸为32×32,数据集中一共有50000张训练图片和10000张测试图片。
二、算法设计
2.1数据预处理
Pytorch框架对MNIST和CIFAR10数据集进行了封装。以MNIST数据集为例,每幅图像是长度784的一维数组,而卷积网络直接从彩色或灰度图像中提取特征,通过transforms.ToTensor()方法转化为tensor。每一个数据labels是One-Hot-Encoding格式,而模型输出层共有10个神经元,因此需将数据labels转换为对应0-9的数字。每次训练并不是读取所有数据同时进行训练,而是读取一个batch数据进行训练。
2.2 Lenet神经网络
LeNet神经网络[6]模型,该模型共有7层(不包含输入),每层都包含可训练参数;每个层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征,每个FeatureMap有多个神经元。
2.3 VGGNet神经网络
VGGNet是由牛津大学视觉几何小组(Visual Geometry Group,VGG)提出的一种深度卷积网络结构[7]。
模型特点为:
①整个网络都是用了同样大小的卷积核尺寸3*3和最大池化尺寸2*2;
②两个3*3的卷积串联相当于1个5*5的卷积层,感受野大小为5*5(如图8所示)。同样,3个3*3卷积层串联的效果相当于1个7*7的卷积层。这样的连接方式使得网络的参数更少,而且多层的激活函数(前者可以使用三次ReLU激活函数,而后者只有一次)令网络对特征的学习能力更强。
三、实验与分析
3.1实验环境
本文所有实验均在Windows10操作系统的计算机上进行,计算机配置为Intel Core i7-8750H CPU、主频2.20GHz、内存8.0GB、实验所用编译器为Pycharm,编程语言为Python,所用到的依赖库为Pytorch 1.1.0,Tochversion 0.3.0,Numpy 1.17.4和Opencv 3.4.1。
3.2算法对比与分析
3.2.1 LeNet和VGGNet识别CIFAR10数据集
在识别CIFAR10数据集方面,LeNet在数据集迭代不同次数时,两算法在不同时期准确率比较如下图3所示,VGGNet的79.1%明显优于LeNet的66.1%,且在收敛速度上也明显优于LeNet。由此可得出以下结论:
①几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好。
②通过不断加深网络结构可以提升性能。
3.2.2 LeNet识别MNIST数据集
在识别MNIST数据集方面,LeNet在数据集迭代不同次数时,由图4所示实验结果可知,应用同一LeNet网络分别对CIFAR10数据集和MNIST数据集的训练效果存在明显差异,训练准确率由CIFAR10的66.1%提高到MNIST的98.2%。由此可得出以下结论:
相对于灰度图的MNIST数据集,显然具有RGB3通道的彩色CIFAR10数据集训练难度要高很多,且在收敛速度上明显慢于MNIST。
四、总结
本文基于CNN卷积神经网络,介绍分析了LeNet和VGGNet两个经典神经网络,并将两网络应用在CIFAR10和MNIST两类图像识别数据集上,通过控制迭代次数,得出有效结论。本文实验结果表明,在对同一数据集进行训练时,几个小滤波器卷积层的组合比一个大滤波器卷积层好,且网络结构越深效果越好;在应用同一网络对不同数据集训练时,灰度图数据集在收敛速度和准确率方面明显优于彩色图,也反映出彩色图片在训练时的难度之大。
因此,在训练诸如MNIST的简单数据集合时,可以采用简单的全连接层网络即可达到较高的准确率;此外,在搭建卷积神经网络时,适当的增加网络深度,可以有效提高训练准确率。下一步将通过加宽加深网络结构,对现有算法进行改进,进一步提高检测精度,以适用于更为复杂的数据环境。
参 考 文 献
[1]吕刚,郝平,盛建荣.一种改进的深度神经网络在小图像分类中的应用研究[J].计算机应用与软件,2014,31(4):182-184.
[2]侯宇昆.卷积神经网络概述[J].中国新通信,2017,19(9):45-45.
[3]赵秦敏.基于哈希编码的图像检索算法研究[D].成都:电子科技大学,2017
[4]林大貴.TensorFlow Keras 深度学习人工智能实践应用[M].北京:清华大学出版社,2018:254-270
[5] Alex Krizhevsky.The CIFAR-10 dataset[EB/OL].http://www.cs.toronto.edu/~kriz/cifar.html,2009.
[6] Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[7] Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014).
董亮,出生1976年10月,性别:男,民族:汉族、籍贯:吉林 职务(现任云南特殊教育职业学院院长,计算机应用硕士,副教授,研究方向:计算机软件系统架构,人工智能,模式识别技术