本发明属于计算机视觉
技术领域:
,涉及一种图像分类方法,具体涉及一种基于深度网络和稀疏fisher矢量的图像分类方法,可用于对医疗,交通等图像进行分类。
背景技术:
:随着互联网技术的进步,图像作为人的感官中最重要的表达方式之一,每天都产生着大量的数据。如何让用户精确地找到需要的图像成为了互联网公司和科研机构的研究重点。而对于计算机视觉来说,图像分类任务一直是研究的热点问题。研究图像分类,能解决人们在生活中或者工作中的诸多现实问题。比如淘宝购物的物品分类,医院的癌变细胞的检测等。目前,常用的图像分类方法两大类:基于传统方法提取图像特征图像分类方法、基于深度学习的图像分类方法。yans,xux以及xud在其发表的论文“beyondspatialpyramids:anewfeatureextractionframeworkwithdensespatialsamplingforimageclassification”(berlinheidelberg:springer,2012:473-487)中公开了一种新的特征提取框架与密集的空间采样图像分类方法。该方法具体的内容是:首先引入了一个新的图像分类框架,它超越了固定空间金字塔的窗口采样,包括一组在位置、大小和长宽比上密集采样的窗口。为了有效地处理这一大组窗口,使用两层提取方法导出了一个简洁的高级图像特征。在第一级,基于窗口的特征是通过类似于标准特征提取器的过程,从本地描述符(例如sift、spatialhog、lbp)计算出来的。然后在第二层,以类似于第一级的方式从基于窗口的特征中确定新的图像特征。这种更高层次的抽象既提供了对密集样本的有效处理,又降低了对偏差的敏感性。简单而有效的框架可以很容易地容纳大量现有的池/编码方法,允许它们提取空间金字塔表示之外的特性,有效地融合与标准的一级二级功能图像功能分类。但是,该方法仍然存在不足之处是,对于图像的特征提取不够完全,例如图像的空间信息,边缘信息等,导致图像分类的准确率受到影响。又如,申请公开号cn108846421a,名称为“一种基于深度学习的图像分类方法”的专利申请,公开了一种基于深度学习的图像分类方法。该方法首先将图片分为n组,将n组图片集分别作为样本输入到alexnet模型中进行训练,得到图像分类模型ⅰ;其次,将待测图像样本输入到已经完成训练的图像分类模型ⅰ中进行图像分类,然后将不同待测图像对应的结果集归入不同的文档中,将精度较高的图像结果集重新组成图像样本输入到alexnet模型中进行训练,得到图像分类模型ⅱ;最后将所对应的待测图像样本输入到其对应的图像分类模型ⅱ中进行图像分类。该发明提高图像分类的准确率,但其存在不足之处是,卷积神经网络使得图像分类的精度得到了很大的提升,但是随着网络层数的增多,对计算机的性能要求也就越高,提取出来的图像特征中的存在冗余成分,导致图像分类的准确率受到影响,同时网络的参数也变得非常多,数据的维数也越高,使得分类速度也就越慢。技术实现要素:本发明的目的是针对上述现有技术的不足,提出了一种基于深度网络和稀疏fisher矢量的图像分类方法,旨在解决现有技术中存在的的准确率较低的技术问题。为实现上述目的,本发明采取的技术方案包括如下步骤:(1)获取训练数据集和待分类数据集:选取数据库中的n类图像,并将从每类图像中随机选取的70%~80%幅图像作为训练数据集,剩余图像作为待分类数据集,n>2;每类图像中包含的图像幅数为m,m>20;(2)构建深度神经网络a:构建包括依次连接的输入层、隐藏层和输出层的深度神经网络a,隐藏层包括多个卷积层、多个激活层和多个池化层,输出层包括多个全连接层;(3)对深度神经网络a进行训练:通过训练数据集对深度神经网络a进行训练,得到训练后的深度神经网络b;(4)建立深度神经网络b中图像特征的高斯混合模型z1:(4a)提取深度神经网络b中倒数第二个全连接层输出的多个图像特征,组成图像特征集h;(4b)通过q个服从高斯分布的函数对图像特征集h进行建模,得到由q个高斯模型组成的高斯混合模型z,q>2;(4c)从高斯混合模型z中随机选取k个高斯模型,组成高斯混合模型z1,k<q,(5)对高斯混合模型z1中的特征向量进行稀疏fisher矢量编码:(5a)提取高斯混合模型z1中图像特征集h的e个局部图像特征,并对第i个局部图像特征对应的特征向量xi进行fisher矢量编码,得到fisher矢量编码后的特征向量x,x=[x1,x2,...,xi,...,xe]∈rd×e,rd×e表示特征向量x所属向量空间,d表示特征向量的维度,d≥2,e≥2;(5b)对fisher矢量编码后的特征向量x进行稀疏表示,得到稀疏fisher矢量编码后的特征向量y,y=[y1,y2,...,yi,...,ye]∈rd×e,yi表示每个局部特征对应的稀疏fisher特征向量,对特征向量xi的稀疏公式定义如下:其中,s=[s1,s2,...,si,...,sf]∈rd×f表示基向量集,rd×f表示基向量空间,集f表示的是基向量的数量,f>d,||yi||l1表示稀疏惩罚项,||||l1表示取值为1范数,β为稀疏惩罚项系数;(6)对深度神经网络b进行训练:将特征向量y所对应的图像特征组成图像数据集g,并通过g对深度神经网络b进行训练,得到训练后的深度神经网络c;(7)获取图像分类结果:将待分类数据集输入到训练后的深度神经网络c中,对待分类数据集中的每幅图像进行分类,得到每幅图像的类别名称和图像分类的准确率。本发明与现有技术相比,具有以下优点:1.本发明利用深度神经网络训练一个适用数据集的权值参数,然后提取第二个全连接层的图像特征,对提取的图像特征建立高斯模型,利用稀疏fisher矢量编码的方法对图像特征进行编码,有效的去除了图像特征中的冗余成分,能够获得更有效的图像特征信息,而且有利于高维数据的降维,与现有技术相比,有效提高了图像分类的准确率,同时提高了图像分类效率。附图说明图1为本发明的实现流程框图。具体实施方式下面将结合附图和具体实施例,对本发明作进一步的详细描述:参照图1,本发明包括如下步骤:步骤1)获取训练数据集和待分类数据集:选取数据库中的n类图像,并将从每类图像中随机选取的70%~80%幅图像作为训练数据集,剩余图像作为待分类数据集,n>2;每类图像中包含的图像幅数为m,m>20;步骤2)构建深度神经网络a:构建包括依次连接的输入层、隐藏层和输出层的深度神经网络a,隐藏层包括多个卷积层、多个激活层和多个池化层,输出层包括多个全连接层;该深度神经网络的具体结构为:输入层→第一卷积层→第一激活层→第一池化层→第二卷积层→第二激活层→第二池化层→第三卷积层→第三激活层→第三池化层→第四卷积层→第四激活层→第四池化层→第五卷积层→第五激活层→第五池化层→第一全连接层→第二全连接层→第三全连接层;步骤3)对深度神经网络a进行训练:通过训练数据集对深度神经网络a进行训练,得到训练后的深度神经网络b;步骤3a)设置深度神经网络a的初始参数;第一卷积层中卷积核的大小为3x3,步长为1,卷积核个数为64,第一池化层大小为2x2,步长为2,第一激活层使用relu激活函数;第二卷积层中卷积核的大小为3x3,步长为1,卷积核个数为64,第二池化层大小为2x2,步长为2,第二激活层使用relu激活函数;第三卷积层中卷积核的大小为3x3,步长为1,卷积核个数为128,第三池化层大小为2x2,步长为2,第三激活层使用relu激活函数;第四卷积层中卷积核的大小为3x3,步长为1,卷积核个数为128,第四池化层大小为2x2,步长为2,第四激活层使用relu激活函数;第五卷积层中卷积核的大小为3x3,步长为1,卷积核个数为256,第五池化层大小为2x2,步长为2,第五激活层使用relu激活函数;relu激活函数按照如下公式:其中,x表示的是每个卷积层输出的结果;步骤3b)将训练数据集的每一幅图像输入到深度神经网络a中,通过隐藏层对输入层的每一幅图像进行卷积,并对卷积结果进行激活,然后对激活结果进行池化;步骤3c)将池化结果输送到全连接层,在最后一个全连接层进行分类,得到输出分类结果;步骤3d)将全连接层输出的分类结果与输入层的图像数据集对比,通过误差分析调整深度神经网络a的权值参数w,得到训练后的深度神经网络b。步骤4)建立深度神经网络b中图像特征的高斯混合模型z1:步骤4a)提取深度神经网络b中倒数第二个全连接层输出的多个图像特征,组成图像特征集h;步骤4b)通过q个服从高斯分布的函数对图像特征集h进行建模,得到由q个高斯模型组成的高斯混合模型z,q>2;步骤4c)从高斯混合模型z中随机选取k个高斯模型,组成高斯混合模型z1,k<q,步骤5)对高斯混合模型z1中的特征向量进行稀疏fisher矢量编码:步骤5a)提取高斯混合模型z1中图像特征集h的e个局部图像特征,并对第i个局部图像特征对应的特征向量xi进行fisher矢量编码,得到fisher矢量编码后的特征向量x,x=[x1,x2,...,xi,...,xe]∈rd×e,rd×e表示特征向量x所属向量空间,d表示特征向量的维度,d≥2,e≥2;步骤5a1)指定概率密度函数为p(λ),λ为服从p的参数;步骤5a2)将提取的深度神经网络b倒数第二个全连接层的图像特征向量记为x,x=[x1,x2,...,xi,...,xe]∈rd×e,xi表示第i个局部图像特征对应的特征向量,服从高斯分布的函数模型为u(μk,∑k),k=1,2,...,n,rd×e表示特征向量x所属向量空间,d表示特征向量的维度,d≥2,e≥2,μk表示均值,∑k表示方差;步骤5a3)将图像的特征向量x转化为固定的梯度向量表示,任意选取t个图像特征向量,t≤e,x的梯度向量表示如下公式:其中,uλ表示参数为λ的似然密度函数p(x|λ),λ表示梯度向量维度的大小。步骤5b)对fisher矢量编码后的特征向量x进行稀疏表示,得到稀疏fisher矢量编码后的特征向量y,y=[y1,y2,...,yi,...,ye]∈rd×e,yi表示每个局部特征对应的稀疏fisher特征向量,对特征向量xi的稀疏公式定义如下:其中,s=[s1,s2,...,si,...,sf]∈rd×f表示基向量集,rd×f表示基向量空间,集f表示的是基向量的数量,f>d,||yi||l1表示稀疏惩罚项,||||l1表示取值为1范数,β为稀疏惩罚项系数,选取k个服从高斯分布的函数模型u(μj,∑j),组成高斯混合模型z1,z1的表示如下公式:其中,λ={wj,μj,∑j,j=1,2,...,k},pj(xe|λ)表示高斯分布的概率值,e表示图像样本的数量,wj是权值参数,μj表示均值,∑j表示方差。步骤6)对深度神经网络b进行训练:将特征向量y所对应的图像特征组成图像数据集g,并通过g对深度神经网络b进行训练,得到训练后的深度神经网络c;步骤7)获取图像分类结果:将待分类数据集输入到训练后的深度神经网络c中,对待分类数据集中的每幅图像进行分类,得到每幅图像的类别名称和图像分类的准确率。以下结合仿真实验,对本发明的技术效果作进一步说明:1.仿真条件:本发明仿真实验需要使用gpu,型号为geforce1080,实验仿真时使用的编程软件是matlabr2015a,python3.5,tensorflow1.3,keras2.0。计算机系统为windows7的64位系统,硬件平台为cpue5-2620.2.0ghz,内存是64g。2.仿真内容和结果分析:对本发明和现有技术名称为“一种基于深度学习的图像分类方法”的专利分类的准确率进行对比仿真,其结果如表格1所示。表格的第一列是不同的图像分类方法名称,现有技术是一种基于深度学习的图像分类方法,本发明采用一种深度网络和稀疏fisher矢量的图像分类方法,第二列是不同图像分类方法的结果,用评价指标准确率map表示。由表格1的数据可以看出,在现有技术和本发明提出的深度网络和稀疏fisher矢量编码的方法比较下,本发明的算法是有较不错的性能。表格1分类方法map现有技术43.64%本发明46.63%综上,与现有技术相比,本发明利用深度网络训练一个适用数据集的权值参数,然后提取第二个全连接层的图像特征,对提取的图像特征建立高斯模型,利用稀疏fisher矢量编码的方法对图像特征进行编码,有效的去除了图像特征中的冗余成分,能够获得更有效的图像特征信息,而且有利于高维数据的降维,与现有技术相比,有效提高了图像分类的准确率,同时提高了图像分类效率。当前第1页12