背景技术
图像理解是一个转变“像素值决定”的过程:它将以图标形式的图像表示方式转化为另一种知识符号的形式,也即是图像的各个像素块内包含了怎样的内容。其中,图像分类是图像理解的一个分支,它在基于内容的图像检索、物体分类与识别和场景分类中具有广泛的应用。在计算机视觉中,一个基本的问题是怎样让计算机像人类一样“看”事物。实际中,虽然我们每一秒内都接受巨大数量的视觉数据,但是我们几乎并没有意识到我们正在以相当快的速度处理它们。对物体,比如桌子、乒乓球或者一个高山流山场景进行分类,进行分类更是非常容易的事情。但目前机器人的视觉与人眼的视觉是无法比拟的。
人工智能结合了计算机科学、神经科学、数学、心理学、哲学和认知科学等领域的工作。与此同时,在许多领域都去了很大的进步。例如,在认知科学方面的进步使我们有足够的理由相信,我们的大脑处理信息是以“至上而下”的方式,而不是“至下而上”的方式。结合认知科学上取得的成果,图像分类主要采取类似的两种不同的技术路线:一种是“至下而上”的方法,利用图像中物体的类别来判定图像的类别;另一种是“至上而下”的方法,直接从整幅图像来判定图像的类别。
目前,较多的研究都聚焦在了第二种技术路线上。从而,避开了图像分割,并通过融合一个图像的全局特征来进行分类。
采用“自上而下”技术路线。此种技术由于避开了图像分割,从而使图像分类任务变得简明和有效。主要的思路是首先提取出图像的全局或者局部特征;然后,对这些特征进行编码;接下里,进行向量的池化;最后,用分类器进行分类。比如,文献Chang E,Goh K,SychayG,et al.CBSA:content-based soft annotation for multimodal image retrieval using Bayes pointmachines[J].Circuits and Systems for Video Technology,IEEE Transactions on,2003,13(1):26-38中提到了全局特征;文献Szummer M,Picard R W.Indoor-outdoor imageclassification[C]//Content-Based Access of Image and Video Database,1998.Proceedings.,1998IEEE International Workshop on.IEEE,1998:42-51使用全局特征来对图像进行分类。
常用的图像分类算法框架有:
空间金字塔匹配SPM:Lazebnik S,Schmid C,Ponce J.Beyond bags of features:Spatialpyramid matching for recognizing natural scene categories[C]//Computer Vision and PatternRecognition,2006IEEE Computer Society Conference on.IEEE,2006,2:2169-2178.
基于稀疏编码的空间金字塔匹配ScSPM:Yang J,Yu K,Gong Y,et al.Linear spatialpyramid matching using sparse coding for image classification[C]//Computer Vision and PatternRecognition,2009.CVPR 2009.IEEE Conference on.IEEE,2009:1794-1801.
SPM方法需要用到非线性核,训练时间较长;ScSPM方法编码时间过长,抵消了后面运用线性核的整体效果。
发明内容
本发明所要解决的技术问题是,提供一种能同时提升分类精度与效率的图像分类方法。
本发明为解决上述技术问题所采样的技术方案是,一种图像分类方法,包括以步骤:
1)训练阶段:
对训练样本图像同时提取SIFT特征与协方差矩阵特征;
对图像的SIFT特征与图像的协方差矩阵特征分别进行局部约束线性编码LLC得到图像的SIFT特征稀疏编码与图像的协方差矩阵特征稀疏编码;
SIFT特征稀疏编码经基于空间金字塔匹配SPM框架的池化处理后得到图像的SIFT特征表示,协方差矩阵特征稀疏编码经池化后得到图像的协方差特征表示;
将SIFT特征表示与协方差特征表示进行级联后形成最终的样本图像的特征,将最终的样本图像的特征输入线性分类器训练;
2)分类阶段:
对待分类的图像同时提取SIFT特征与协方差矩阵特征;
对图像的SIFT特征与图像的协方差矩阵特征分别进行局部约束线性编码LLC得到图像的SIFT特征稀疏编码与图像的协方差矩阵特征稀疏编码;
SIFT特征稀疏编码经基于SPM框架的池化处理后得到图像的SIFT特征表示,协方差矩阵特征稀疏编码经池化后得到图像的协方差特征表示;
将SIFT特征表示与协方差特征表示进行级联后形成最终的图像表示,将最终的图像表示向量输入训练好的线性分类器得到分类结果。
本发明的有益效果是,保留了SPM框架,在SIFT特征提取技术基础上,结合协方差矩阵特征提取技术和LLC技术,协方差矩阵特征融合了多种特征,这些特征对尺度、旋转和光照变化不敏感。LLC的编码速度快,效率高,为线性分类提供了基础。线性分类器的使用缩短了训练时间。分类精度提高的同时,又增强了系统的鲁棒性。
具体实施方式
为了方便地描述本发明内容,首先对一些术语进行说明。
特征区域:特征区域是在图像上均匀划分出来的栅格,这些栅格中包含了图像的边缘纹理和方向信息。这些信息对于特定的图像都是非常稳定的,它们代表了图像的大体轮廓,具有较好区分性。
特征描述子:特征描述子(Descriptor)是对特征区域附近局部特征的定量化数据描述,一个好的特征描述子应该能够充分表达特征点局部图像的形状和纹理结构,具备高的鲁棒性、独特性和区分性。通俗地说,就是用一个向量来表示一个局部区域的特征。
稀疏编码:由于自然图像信号的稀疏性,图像信号I(x,y)可分解为一组基的线性组合。
其中,αi是各个基的系数,为基。若αi中只有很少数的值不为零,那么,αi就是图像信号I(x,y)的稀疏编码。稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据。
max-pooling:max-pooling为池化方式的一种,它是一个函数。对于图像M个特征描述子集合组成的矩阵U=[u1,u2,…,uM]T。每个ui即为一个特征描述子的稀疏编码。定义池化函数其中,z=[z1,z2,…,zM],zj=max{|u1j|,|u2j|,…,|uMj|},zj是z的第j个元素,uij是矩阵U的第i行第j列的元素。最大化池化技术是根据人脑视觉皮层中生物学方面的证据来建立的,捕获了各个维度的突出点,具有较强的鲁棒性。
图像稀疏表示:图像的稀疏表示是在SPM框架内,将图像各个区域内池化后的向量z级联起来,从而表示一幅图像的过程。
SPD矩阵:正定对称矩阵。
L2ECM:局部对数欧拉协方差矩阵,图像中每个像素点的协方差矩阵是个SPD矩阵。
LLC:局部约束线性编码Locality-constrained Linear Coding,。
LCM:局部协方差矩阵Local Covariance Matrix。
如图1所示,图像分类方法的算法,包含以下步骤:
步骤1:在C类图像中,每类随机选取M幅图像作为训练图像。
步骤2:采用LLC技术进行图像的SIFT特征表示:
步骤201:采用密集SIFT算法计算图像的特征描述子,本实施例采用每隔8个像素点取一个16×16的栅格。
步骤202:对每幅图像每个特征描述子采用LLC技术进行编码,这样就得到每幅图像的编码矩阵U=[u1,u2,…,us]T。其中ui是每个特征描述子的编码,维数为K1,K1为经验值。s是描述子的个数。
步骤203:采用SPM框架进行池化。将图像分成3层,第0层将整幅图像作为一个区域,对应编码矩阵U,对U的每一列应用max-pooling技术,得到向量z0。然后,第1层将整幅图像均匀划分为4个区域。按从左往右、从上到下对应的编码矩阵分别为U00、U01、U10、U11,同样对每个编码矩阵按列应用max-pooling池化技术,得到向量z1,z2,z3,z4。同样地,第2层将整幅图像均匀划分为16个区域,池化后得到z5,z6,…,z20。
步骤204:对z0,z2,z3,…,z20加权后级联起来,得到图像SIFT特征表示向量Z1。按第0层权值为1/4,第1层权值为1/4,第2层权值为1/2。
步骤3:用局部协方差特征来表示图像:
步骤301:已知灰度级图像I(x,y),提取出图像融合特征f(x,y):
f(x,y)中每一项表示一种图像特征。其中|·|表示绝对值;Ix、Ixx分别表示(x,y)处的像素值在x方向的一阶偏导和二阶偏导;同理,Iy,Iyy分别表示(x,y)处的像素值在y方向的一阶偏导和二阶偏导;最后两项是边缘方向和梯度值。这里的特征还可以根据需求进行增减。
步骤302:在图像每个像素(x,y)处计算协方差矩阵Ci。即,以像素点(x,y)为中心,选取N×N的矩形区域,N=16,计算像素点(x,y)处协方差矩阵。此处Ci为6维SPD矩阵。
步骤303:从上到下,从左到右,每隔T个像素点取一个协方差矩阵Ci,并将每一个协方差矩阵进行向量化。T=6。即,将一个N×N矩阵,从上到下,从左往右取值,然后组合成一个长度为N2的向量。
步骤304:对每幅图像每个局部协方差特征描述子采用LLC技术进行编码,这样就得到每幅图像的编码矩阵V=[v1,v2,…,vs]T。其中vi是每个特征描述子的编码,维数为K2,K2为经验值。
步骤305:采用SPM框架进行池化。将图像分成3层,第0层将整幅图像作为一个区域,对应编码矩阵V,对V的每一列应用max-pooling技术,得到向量t0。然后,第1层将整幅图像均匀划分为4个区域。按从左往右、从上到下对应的编码矩阵分别为V00、V01、V10、V11,同样对每个编码矩阵按列应用max-pooling池化技术,得到向量t1,t2,t3,t4。同样地,第2层将整幅图像均匀划分为16个区域,池化后得到t5,t6,…,t20。
步骤306:对t0,t1,t2,…,t20加权后级联起来,得到图像协方差特征表示向量Z2。按第0层权值为1/4,第1层权值为1/4,第2层权值为1/2。
步骤4:将Z1,Z2级联起来得到最终训练图像表示Z。
步骤5:将所有的训练图像输入线性SVM分类器进行训练。
之后,对于待分来的图像也使用上述方法提取图像表示后输入训练好的线性SVM分类器完成分类。
将上述方法在Matlab环境中实现。在Windows Server 2008R2Standard环境下运行,计算机配置:CPU主频为3.3GHz,内存为32.0G。三种分类方法在15-Category Dataset上分类效果的分类精度对比可以看出。本发明的分类精度得到了很大的提升,充分验证了本发明的有效性。其中,编码一幅图像平均需要0.4秒,7.2秒内训练了1500个92400维的样本,满足实时性要求。
采用分类方案 |
SIFT+LLC |
LCM+LLC |
SIFT+LCM+LLC |
平均精度 |
82.44% |
81.48% |
86.82% |