传统图像分类与深度学习分类算法比较研究
2020-08-14杨涛
杨涛
摘要:传统图像分类方法需要对图像进行手工特征设计和提取,而这些特征只是包含了图像的部分信息,通过对卷积神经网络算法进行特征进行提取,采用不断的训练大量不同组的卷积核来依次获得图像低级特征和高级特征。研究结果表明,传统的分类算法的平均正确率在50%左右,而卷积神经网络的分类正确率能够达到90%以上,基于卷积神经网络的图像分类算法提升效果显著。
关键词:图像分类;支持向量机;卷积神经网络
中图分类号:TP391.4;TP18 文献标志码:A 文章编号:1008-4657(2020)02-0027-08
0 引言
图像分类是计算机视觉中基础的一个任务,也是几乎所有的基准模型进行比较的任务。图像分类就是使用给定的标签集合,当输入一幅图像时,在标签集合当中寻找一个合适的类别标签,将分类标签分配给该输入图像。图像在分类之前需要进行预处理,原始图像包含许多干扰、噪声等,因此需要对图像进行裁剪,去噪,增强等操作。经过预处理以后的图像受到的干扰噪声减少,有助于提高图像的分类准确度。
传统的机器学习算法当中,图像分类需要提取图像的特征来对图像进行描述。当以整幅图像作为分类算法的输入时,算法计算的数据量庞大,其次图像包含背景等冗余信息,会导致分类效率降低,正确率下降。特征提取的主要目的是对原始图像进行降维,将原图像映射到一个低维特征空间,得到最能反映图像本质或进行区分的低维样本特征。图像的特征分为四大类:颜色特征,主要包括颜色直方图、颜色集、颜色矩等不同特征;纹理特征[1],常用的有灰度共生矩阵[2](Gray-Level Co-occurrence Matrix,GLCM)、局部二值模式[3](Local Binary Pattern,LBP)特征、方向梯度直方图[4](Histogram of Oriented Gradient,HOG)特征等;形状特征,如霍夫曼变换、傅里叶变换、小波变换等;空间关系特征,如模型的姿态估计方法、学习的姿态估计方法等。
提取到不同的特征以后,需要将特征作为输入送入到不同的机器学习算法当中。传统的图像分类算法有很多,K邻近分类算(K-Nearest Neighbor,KNN)法是数据挖掘分类技术中最简单的方法,也可以用在图像分类的任务上,赵玉丹等[5]提出使用模糊KNN做刑偵场景图像分类。贝叶斯分类器是一种基于条件概率的分类方法,通过给定对象的先验概率,利用贝叶斯公式求解出其后验概率。在刘晓等[6]提出使用朴素贝叶斯算法对遥感图像分类。黄亦其等[7]提出用朴素贝叶斯的算法对甘蔗种芽进行完好性进行检测。支持向量机(Support Vector Machine,SVM)是基于统计学习理论当中一种二分类模型,因其坚实的理论基础及诸多良好特性而被广泛使用。Cortes C等 [8]提出基于梯度直方图(HOG)结合SVM的人体识别算法达到了很高的精度。BP神经网络是一种基于误差反向传递的算法,其参照生物神经元模型发展起来。卷积神经网络近年来使用广泛的神经网络模型,在图像分类方面,各种更加优秀的网络优秀模型被提出,从最初的立昆杨网络(Lecun Network,LeNet)、亚里克斯网络(Alex Network,Alexnet)、视觉几何群网络[9](Visual Geometry Group Network,VggNet)到谷歌的扩散网络[10](Inception Network,InceptionNet)、残差网络 [11](Residual Network,ResNet),卷积神经网络做图像分类的精度不断提升,甚至超过人类水平。
1 图像特征提取
图像的分类识别主要经过图像预处理、特征提取、分类器设计等步骤。其中特征提取是极为重要的环节,图像特征提取是核心问题,特征提取的方式以及结果将直接影响分类的精度。
1.1 颜色特征
颜色特征是一种全局特征,描述了图像或者图像局部区域所对应的颜色信息。颜色特征中最常使用的颜色空间为RGB(Red Green Blue)颜色空间和HSV(Hue, Saturation,Value)颜色空间。描述颜色特征的方法有很多,主要分为颜色直方图、颜色集、颜色矩、颜色聚合向量及颜色相关图。
1.2 纹理特征
纹理特征描述了图像中重复出现的局部模式与他们的排列规则,反映了图像或图像区域所对应的表面性质。纹理特征的优势在于,无论图像怎么旋转其纹理特征不会发生改变,又较强的抗干扰能力。但是当图像的分辨率发生变化时候,纹理特征则可能发生较大的变化,此外光照,反射也可能会影响纹理特征。灰度共生矩阵(GLCM,Gray-Level Co-occurrence Matrix)通过计算灰度图像得到他的共生矩阵,然后通过计算共生矩阵来得到矩阵部分的特征值,来分别代表图像的某些纹理特征。常用的基于灰度共生矩阵构建的统计量的纹理特征有:能量,熵,对比度,相关性。
1.3 形状特征
形状特征采用一种基于图像轮廓及区域边界的特征描述。但由于其数学模型还是不够完善,本文将主要使用颜色及纹理特征作为分类器的输入。
2 分类算法
在机器学习的分类问题当中,主要分为无监督学习和监督学习,监督学习根据已有的数据集,知道输入和输出结果之间的关系,根据这种已知的关系,训练得到一个最优的模型。即给定样本的输入和输出标签,通过训练,分类算法可以找到输入特征与输出标签之间的联系,当给定一个未标注新样本时,分类算法可以学习到的知识输出一个类别标签。无监督学习主要是根据数据特征之间的内在关系,结构特征的差异将数据分为不同的类别。
2.1 K近邻算法
简称KNN(K-Nearest Neighbor)是一种非常简单的机器学习预测、分类算法。当给定一个测试样例时,如果离它最近的k个训练数据大多数属于同一个类别,则认为该测试数据也属于这个类别。如何衡量两个样本之间的距离是该算法的关键之处。常用的距离衡量方式主要有欧式距离、曼哈顿距离、余弦距离等等。其中欧式距离使用的最为广泛。KNN作为一个实用的机器学习分类算法,其优点在于模型简单、通俗易懂、对于简单问题分类准确率较高、训练时间复杂度较低;但缺点也很明显,该算法计算量大、占用较大的储存空间,当特征维数变多时算法效率低下。
2.2 朴素贝叶斯分类算法(Naive Bayes)
Bayes算法是一类利用概率统计知识进行分类的算法,该算法核心思想基于贝叶斯定理,主要用于预测未知类别隶属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。在数据集较大的情况下能够获得较高的准确率。在使用贝叶斯算法时,为了方便建模计算,通常假定给定样本的各个属性之间相互条件独立,这种假定一定程度上会降低算法的分类精度,但是在实际的应用场景当中,能够有效降低算法的复杂性。根据贝叶斯定理,对于一个分类问题,给定具有m个特征维度的样本的情况下,且假定各个特征之间相互独立。
全概率公式(1)表征了朴素贝叶斯分类算法的具体计算方式。朴素贝叶斯分类算法的优点是对于数据缺失不敏感,对待预测的样本,分类过程快速高效;缺点是朴素贝叶斯算法分类时假设特征之间相互独立,当特征之间存在关联性时,会导致分类效果不好。
2.3 支持向量机
支持向量机(Support Vector Machine)是一种监督式的学习方法,它是一种二分类的线性模型,目的是寻找一个超平面来对样本进行分割,分割的原则是正负样本之间间隔最大化,最终转化为一个凸二次规划问题来求解。SVM是一种二分类的算法,如何实现用SVM对多个类别的划分,主要有两种不同的思路:分别是一对一方法和一对多的方法,一对多的方法是指在训练时依次把某个样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构建了k个SVM。一对一的方法,训练时对任意两类样本之间设计一个SVM,因此k个类别的样本需要设计k(k-1)/2个SVM分类器。当对一个未知样本进行分类时,采用投票的方式,最后得票最多的类别即为该未知样本的类别。在本研究中将采用一对一的方式训练SVM分类器。SVM不需要大量的训练样本,只需少量样本就可达到很好的分类效果。单样本在低维平面类线性不可分时,通过核函数映射到高维平面以后,样本就能够线性可分。但当训练样本过大时候,SVM算法的计算内存和时间消耗巨大,效率变慢。
2.4 BP神经网络
人工神经网络(Artificial Neural Network,ANN),是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计和近似。BP[12](Back Propagation)神经网络是人工神经网络当中的一种,广泛的用于机器学习领域当中。BP[13]神经网络的学习过程由信号的正向传播与误差的方向传播两个过程组成。信号正向传播时,输入样本从输入层传入,经过隐藏逐层处理后,信号流入输出层。当输出层的实际输出与期望输出不符,则将进入输出与期望之间的误差反向传播过程。该过程将输出误差的梯度通过隐藏层向输入层逐层反传,将误差分配给各层的所有单元从而获得各层单元的误差信号,该误差信号将作为修正各个神经元权值的依据。BP神经网络的优点是能够自适应、自主学习,且具有较强的非线性映射能力,以及较强的泛化能力。但BP神经网络由于是全连接结构,因此网络参数较多,收敛速度较慢。BP神經网络由于采用梯度下降算法,容易陷入局部最优解。
2.5 卷积神经网络
卷积神经网络(Conventional Neural Network,CNN)是一种前馈神经网络,专门针对图像识别问题设计而成,模仿人类识别图像的多层过程:眼睛观察图像;大脑皮层某些细胞进行初步处理,发现形状边缘、方向;抽象判定形状;进一步判定图像类别。本文构建的卷积神经网络的结构图如图1所示。
其中输入数据为图像,以数字矩阵来表示。卷积层中包含大量的卷积滤波器,这些滤波器通过在原图像中按照一定规律滑动,与原图像对应的区域做卷积运算,每一个滤波器都可以得到一张特征图,每个卷积滤波器提取的图像特征都不一样,滤波器当中的参数通过正态分布函数来初始化,通过当前网络输出与真实输出之间误差的梯度反向传递,逐层更新滤波器当中的参数,最终结果让网络的输出与真实输出之间的误差越小越好。卷积过程之后,通过一个激活函数来限定卷积输出的范围,通常采用的激活函数为Relu,Sigmoid,Tanh等函数。其中Sigmoid,Tanh激活函数容易导致神经网络当中梯度消失或者爆炸[14]等问题。由于Relu函数为线性,非饱和,且其导数为一,输出非负,因此简化了神经网络的计算复杂度的同时,也不会造成梯度消失或爆炸问题,能够使神经网络快速收敛。
采样层中数据采样是为了降低数据的维度,以2*2个像素的正方形窗口,步长为2,依次在特征图中滑动,只保留窗口当中最大的像素值或者窗口中的平均像素值,经过该操作以后特征图缩小至原来特征图的面积的四分之一,大大减少了网络的计算量。全连接层的输出为列向量,可以将卷积神经网络理解成为一个编码器,其中全连接层输出的是该图像的编码向量。oftmax层输出列向量,其中向量的长度等于图像需要分类的类别总数,向量中的每一位都代表了一个分类类别。其数值大小代表输入图片为该类别的概率大小,该向量所有元素的值和为一。优化的过程就是不断更新卷积网络当中滤波器的参数值,使得最终的输出向量的某个类别的概率最大,则该类别就是输入图像的真实类别。
卷积神经网络由于共享卷积核,大大减少了网络模型的参数量,提高了计算效率。使用多个卷积核可以提取到图像各种不同的特征,避免了单一特征对分类结果产生不利影响。低层的卷积核提取边缘,线等语义较低的特征,高层的卷积核提取形状,物体轮廓等特征。
但是卷积神经网络对物体的空间关系识别能力不强,举例来说,当人脸肖像五官位置发生互换,而卷积神经网络判定为人脸的概率依然很高。当图像发生旋转之后,卷积神经网络的识别能力变差。
3 实验结果比较与分析
3.1 数据集介绍
本次实验选择使用SIMPLIcity图像数据集进行分类实验,该数据集一共包含了10个类别图像:非洲土著居民、海滩、建筑、公共汽车、恐龙、大象、花、马、雪山、菜肴,共包含1000幅图像,其中每个类别包含100张图像。本次实验将该图像数据集划分为训练集和测试集两个部分,其中训练集包含了每个类别70张图像,共700张。测试集中包含了每个类别剩余的30张图像,共300张图像。
3.2 分类图像特征及方法
在图像特征方面,我们将选择图像颜色矩作为颜色特征,图像的灰度直方图和灰度共生矩阵作为纹理统计特征。特征提取以后进行归一化处理,归一化的目的是让分类算法均匀地考虑特征值,同时能够消除奇异样本数据带来的不良影响,提高分类精度,还能够加速神经网络收敛。
本实验将采用KNN,Naive_Bayes、SVM,全连接神经网络,卷积神经网络算法来分别实现对图像进行分类。对各个算法的参数选择如下:
KNN算法:k的取值为5,即选择前五个与样本距离最近的类别中最多的类别作为该样本的分类类别。Naive_Bayes算法,选择正态分布作为概率分布。SVM分类算法,多分类过程采用一对一的方法。全连接神经网络算法,将采用32个神经元作为隐藏层,10个神经元作为输出层。卷积神经网络算法,使用TensorFlow框架构建算法模型,卷积过滤器将使用截断正态分布进行初始化,包含两个卷积层,两个池化层,两个全连接层,与一个Softmax层。其中第一个卷积层使用64个3*3的卷积核,第二个卷积层使用16个3*3的卷积核;第一个全连接层使用128个神经元,第二个全连接网络使用10个神经元,使用Relu激活函数。学习率大小为0.000 1,每个批次大小为20,最大运行次数为20 000次,输入图像大小为64*64个像素,采用批量梯度下降[15]的方法。
3.3 分类评价指标及结果分析
混淆矩阵(Confuse Matrix)是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。其中矩阵的行表示真实值,矩阵的列表示预测值。混淆矩阵能够清晰的反映分类器对样本的分类情况,每个类别分类结果的具体值。分类结果的正确率及结果比较分别如表1和图2所示。
比较采用相同的图像特征不同的分类算法时,当用灰度直方图作为图像分类特征时,不同分类算法的分类准确度差别较大,其中SVM与KNN算法的分类准确率相差了18个百分点。当用颜色矩作为分类特征时,各种算法之间分类准确率都稳定65%左右,准确率差别只有4个百分点,说明在这个数据集当中各种类别之间颜色差距较大,采用颜色矩能够得到相对较好的分类效果。当用灰度共生矩阵图像特征分类时,各种分类算法分类准确度差别明显。当使用相同的分类算法,比较不同的图像特征时候,可以看到在同一种分类算法当中,提取不同特征作为输入时,分类的准确度差别较大。说明不同的图像特征适用不同的分类算法,图像特征與分类算法之间存在一定的相关性。
比较传统算法与卷积神经网络的算法,可以看到卷积神经网络的算法的分类正确率远远超过传统算法,这是因为传统的图像分类算法是通过提取图像的单一特征作为输入,仅仅只能表述图像部分信息,无法准确的描述这幅图像。而卷积神经网络的每一个卷积滤波器都可以看作一个单独的图像特征提取器,底层的滤波器提取低语义的特征,高层的滤波器提取高层的语义特征。大量有层次结构的滤波器提取的特征能够较为完整的表达一幅图像。分类准确率得到了显著的提升。而经过精心设计的卷积神经网络在分类准确率上甚至超越人类水平。
各特征算法混淆矩阵如图3~6所示。
由图3~6可知,在CNN分类算法的混淆矩阵当中,大部分类别的分类效果都很好,只有在建筑这个类别时,分类器主要误将建筑分为土著居民的样本较多,这是因为在土著居民类别当中大部分样本中包含了建筑,而在建筑类别当中有相当的样本背景当中包含了人类个体,因此导致了多数样本误分类。
可以看到在所有的混淆矩阵图当中只有恐龙这个类别的分类正确率最好,基本都在90%以上,这是因为在恐龙这个类别当中,样本形式单一简单,轮廓明显,背景基本为白色,背景中不存在对主体类别当中的干扰项,因此各种特征及算法对此类的分类效果最好。
4 结论
本研究对传统图像分类算法与深度学习分类算法做了比较研究。实验结果表明,在传统图像分类算法当中,当以相同的图像特征作为输入,使用不同的分类算法,得到的分类正确率相差较大。当用不同的图像特征作为输入时,采用相同的图像分类算法时,得到的分类正确率差别较小。传统图像分类算法中图像特征的选取对分类结果的正确率的影响比分类算法的选择要大的多。在深度学习分类算法中,本文采用了一个仅有两个卷积层的神经网络,其分类准确率的达到90%以上,与传统图像分类算法相比,图像分类结果的准确率提升了近30%,远远超过传统图像的分类算法。可见,深度学习的图像分类方法的在图像分类这项任务中表现卓越。本研究对基于卷积神经网络的深度学习图像分类方法做了初步研究。而最新实验结果表明,经过精心设计的卷积神经网络的图像分类正确率能够达到98%以上,超越人类的识别水平。目前基于卷积神经网络的深度学习图像分类方法能够达到很高的识别准确率,但是该算法需要大量的训练数据集经过多次训练,因此接下来的研究重点如何在小规模的数据集上实现高精度的分类准确率。
参考文献:
[1] Castellano G,Bonilha L,Li L M,et al.Texture Analysis of Medical Images[J].Clin Radiol,2004,59(12):1 061-1 069.
[2] Walker R F,Jackway P T,Longstaff I D.Recent Developments in the Use of the Co-occurrence Matrix for Texture Recognition[C]//International Conference on Digital Signal Rocessing.IEEE Xplore,1997:63-65.
[3] Mehta R,Egiazarian K.Dominant Rotated Local Binary Patterns (DRLBP) for Texture Classification[J].Pattern Recognit Lett,2016,71:16-22.
[4] Deniz O,Buneo G,Salido J,et al.Face Recognition Using Histograms of Oriented Gradients[J].Pattern Recognition Letters,2011,32(12):1 598-1 603.
[5] 赵玉丹,王倩,范九伦,等.基于模糊KNN的刑侦图像场景分类[J].计算机应用研究,2014,31(10):3 158-3 160,3 164.
[6] 刘晓,蒋刚毅,叶锡恩.宁波市土地TM遥感图像Bayes分类[J].科技通报,2003(2):116-120.
[7] 黄亦其,尹凯,黄媚章,等.基于Bayes决策的甘蔗种芽完好性检测与试验[J].农业工程学报,2016,32(5):57-63.
[8] Cortes C,Vapnik V.Support-vector Networks[J].Mach Learn,1995,20(3):273-297.
[9] Karen S,Zisserman A.Very Deep Convolutional Networks for Large-scale Image Recognition[C].May 7-9,San Diego,CA: ICLR,2015.
[10] Gomez L.Special Issue on Computer Vision Applying Pattern Recognition Techniques[J].Pattern Recognit,2014,47(1):9-11.
[11] He K M,Zhang X Y,Ren S Q,et al.Deep Residual Learning for Image Recognition [C].Conference on Computer Vision and Pattern Recognition,June 27-30,2016.Las Vegas,USA: IEEE,2016.
[12] Lecun Y,Boser B,Denker J S,et al.Backpropagation Applied to Handwritten Zip Code Recognition[J].Neural Comput,1989,1(4):541-551.
[13] Legun Y,Bottou L,Orr G B,et al.Efficient Backpropagation in Neural Networks[J].Neural Network World,2006,16(4):9-50.
[14] Glorot X,Bengio Y.Understanding the Difficulty of Training Deep Feedforward Neural Networks[C].Thirteenth International Conference on Artificial Intelligence and Statistics,May 13-15.Sardinia,Italy: JMLR,2010.
[15] 王功鵬,段萌,牛常勇.基于卷积神经网络的随机梯度下降算法[J].计算机工程与设计,2018,39(2):441-445,462.
[责任编辑:许立群]