基于空间矢量模型的图像分类方法

2018-06-01 06:25陈绵书桑爱军李培鹏
吉林大学学报(工学版) 2018年3期
关键词:直方图矢量类别

陈绵书,苏 越,桑爱军,李培鹏

(吉林大学 通信工程学院, 长春 130022)

0 引 言

随着互联网中图像数量的急速增长,如何准确且快速地对图像进行分类显然已经成为了一个热门领域。而源自于文本领域的图像分类模型—词袋模型(Bag-of-words,BOW)[1]作为一种信息检索算法,在文本分类领域有着广泛的应用。BOW模型忽略掉一个文档的结构、语法和语序等,仅仅将其看作是若干个独立单词的集合,文档中任意位置出现的单词,均不受该文档的语义影响而单独存在。将这一原理与图像相结合,认为图像是由一些相互无关联的视觉单词组成。具体的做法为:先提取图像的SIFT[2,3](Scale-invariant feature transform)特征,之后把视觉特征转换为一系列的图像视觉单词,最后,根据每一个视觉单词在图像中出现的概率来绘制直方图。视觉单词出现的频率越高,相应的概率值就越大。因此,词袋模型不仅具有文本匹配高效简洁的特点,而且原理简单,易于编程和实际操作。然而,词袋模型没有考虑到视觉单词之间的空间位置信息。研究表明,视觉单词间的空间位置信息有助于提高图像的表述能力。Lazebnik等[4]利用金字塔匹配核函数,提出了SPM模型(Spatial pyramid matching);Wu等[5]提出了视觉语言模型(Visual language model,VLM);Jiang等[6]利用随机划分图像来提高分类性能。然而以上研究均没有考虑到全局信息,且存在大量冗余的短语信息,从而严重地影响到计算速率。考虑以上不足,本文提出了一种基于视觉单词间空间位置信息的空间矢量模型。

1 空间矢量模型

在以往的图像分类应用中,BOW模型取得了不错的分类效果。但是在这些应用中,均是将单词视为独立的存在,彼此间没有联系且完全独立。可事实上,通常一幅图像中出现的单词都是有结构联系的,不可能完全独立,所以这种单词之间完全独立的假设显然不成立。由此,这里提出了结合视觉单词空间信息的图像分类方法。实验结果表明,这种方法能够有效地提高图像分类的平均分类正确率(Average classification accuracy,ACA)和平均类别准确率(Average category precision,ACP)。

1.1 构建空间矢量模型

对图像进行SIFT特征提取、聚类,以生成视觉单词。然后利用视觉单词的空间位置信息,将图像表达为空间位置模型。对于一幅图像来说,其表示为:

I={(w1,x1,y1),(w2,x2,y2),

…,(wm,xm,ym)}

(1)

式中:w为图像经过聚类表达后得到的视觉单词;m为视觉单词的个数;(x,y)为单词坐标位置。

这里需明确两个重要的问题:①视觉单词之间的联系是什么;②应该怎样准确地表达这种联系。空间位置矩阵最大的问题就是不包含视觉单词之间的空间位置信息。考虑到视觉单词的空间关系,两两视觉单词能够构成矢量,形成一对单词对。这样一来图像就能够映射成空间矢量矩阵。如图1所示,设CUP图像提取出3个视觉单词分别为w1、w2、w3,其中两两之间能够构成一个矢量,所以一共可以得到3个矢量,CUP图像的空间矩阵表达式就可以表示为矢量的形式:

M={(w1,w2,x2-x1,y2-y1),

(w1,w3,x3-x1,y3-y1),

(w2,w3,x3-x2,y3-y2)}

(2)

M={(w1,w2,x2-x1,y2-y1),

(w1,w3,x3-x1,y3-y1),…,

(wm-1,wm,xm-xm-1,ym-ym-1)}

(3)

式中:m为单词的个数;w为视觉单词。

图1 空间位置模型与空间矢量模型Fig.1 Spatial position model and space vector model

将图像表示为空间矢量矩阵后,虽然考虑到了视觉单词之间的联系,但仍有两个问题有待商榷。

图2 矢量位移对比Fig.2 Comparison of vector displacement

(2)如何利用空间矢量模型进行分类。本文使用支持向量机(Support vector machine,SVM)[7]和K最近邻分类器(K-nearest neighbor,KNN)[8]对图像进行分类,分别提出两种不同的分类方法。

1.2 构建有效的空间矢量矩阵

图3为有效空间矢量矩阵的构建过程图,具体包括以下4个步骤。

图3 有效空间矢量矩阵的构建Fig.3 Structure of valid space vector matrix

(1)相减

将图像库中不同图像间相同的单词空间位置两两相减。这里假定有分别包含m个视觉单词和n个视觉单词的两幅图像I1和I2,空间位置矩阵分别为d1和d2。则它们的空间位置差矩阵为:

(4)

(5)

式中:d1={(wa,xa,ya),(wb,xb,yb),…,(wm,xm,ym)};d2={(wa,xa1,ya1),(wa,xa2,ya2),…,(wn,xn,yn)}。

假设I1中第一个视觉单词为wa,I2中有2个与wa相同的单词。依据式(5)就可以得到位移点的坐标(xa1-xa,ya1-ya)和(xa2-xa,ya2-ya)。之后再将第1幅图像中的单词与第2幅图像中的所有单词进行比较,就能够得出I1与I2的空间位置差矩阵。其中,空间位置差矩阵中的每条记录都包含信息(w1,x1-x2,y1-y2)。其中w1表示视觉单词;x1和y1为单词在图像I1中的坐标;x2和y2为单词在图像I2中的坐标。

(2)统计

(3)提取

提取单词对个数不小于2的点,并保存到对应的空间矢量矩阵中。假设I1与I2的空间矢量矩阵分别为M1和M2,若空间位置差矩阵在某一个网格内存在2个点w1和w2,那么:

(6)

(7)

同理,将(I1,I2)空间位置差相同的点全部提取出来。

以此类推,依次提取(I1,I3),(I1,I4),…,(I2,I3),(I2,I4),…,(IN-1,IN)中空间位置差值相同的点。

(4)消除重复

由于总会出现某一图像的矢量与其他图像相同的情况,所以需要去除M1,M2,M3,…,MN中的重复行,这样的操作能够剔除不相关的矢量,以保证得到的空间矢量矩阵能最有效地代表图像的空间信息。

2 基于SVM和KNN的图像分类

2.1 基于SVM的图像分类

基于SVM分类器的图像分类包括3个步骤:建立视觉短语库、图像表达和分类判决。

2.1.1 建立视觉短语库

训练集图像的视觉单词经过空间矢量转化后,每一幅图像都会表示成一个N×4的空间矢量矩阵。使用K均值聚类将距离比较近的4维矢量合并。为了简化,这里假设K值为3,具体的视觉短语库的构建过程如图4所示。

图4 视觉短语库构造过程Fig.4 Structure of visual phrase lexicon

2.1.2 图像表达

假设一个N×4的图像空间矢量矩阵,计算每个矢量到视觉短语的距离,若与某一个视觉短语最近,就将这个短语的bin值加1。从而完成视觉短语直方图的转化,归一化之后称为视觉短语特征。最后,将视觉短语直方图与视觉单词直方图结合,形成视觉语言直方图。这样,视觉语言模型不仅考虑到了全局信息,也包含空间特征。

视觉语言模型的主要原理包括:

(1)对2个特征集X、Y,将其划为L个层(L=2,层1和层2分别为视觉单词直方图和视觉短语直方图)。

(2)在层l中,若点x,y落入同一bin中,就称x与y匹配。每个bin中匹配点的个数为min(Xi,Yi),其中Xi,Yi为相应层下的第i个bin。

(8)

(4)统计每层l下的匹配点的总数Il,不同的l赋予不同的权重w。

(5)两个点集X、Y匹配程度的匹配核为:

(9)

视觉语言模型的构建过程主要包括以下两个步骤。

(1)如图5所示,对图像特征聚类映射后,提取视觉单词直方图。之后将视觉单词转化为空间矢量矩阵,提取视觉短语直方图,如图6所示。

图5 视觉单词直方图Fig.5 Histogram of visual words

图6 视觉短语直方图Fig.6 Histogram of visual phrase

(2)将两个层的直方图首尾连接,同时赋予每个层相应的权重,如图7所示。

图7 视觉语言直方图Fig.7 Histogram of visual language

2.1.3 分类判决

基于SVM分类器的具体训练和判决过程如图8所示。

图8 SVM分类器过程图Fig.8 Flow diagram of SVM classification

2.2 基于KNN的图像分类

根据KNN分类原理,利用空间矢量矩阵对图像进行分类:首先,对所有训练图像的空间矢量矩阵进行量化;然后,设M为测试图像X的空间矢量矩阵,统计它与(M1,M2,…,MN)中相同行的个数;最后,利用相同个数最多的K个样本来判断测试图像X的标签。

2.2.1 量化统计

首先,分别对x方向及y方向的矢量差进行量化,量化间隔设为3;然后,计算两幅图像具有相同行的个数:

(10)

(11)

式中:N1、N2分别为空间矢量矩阵M1和M2的记录行数。

2.2.2 参数选取

(1)K值的选取

本文利用交叉验证法(cross-validate)[9,10]选取最佳K值。

(2)权重的选取

如果认定各特征的权重都相同,那么会大大降低图像的分类效果。本文利用与测试图像的空间矢量矩阵相同行的数量来分配权重。然后将权重累加,选定累加值最高的类别作为样本的类别标签。

将相同行个数的平方值作为权重。设训练数据集包含2个标签,K个近邻中有K1个作为标签1,K2个作为标签2(K1+K2=K),则判为标签1的概率为:

(12)

取权重后的概率为:

(13)

判为标签2的概率为:

(14)

取权重后的概率为:

(15)

式中:L1和L2分别为测试图像与标签1和标签2的训练图像空间矢量矩阵相同行的数量。

2.2.3 分类判决

通过参数的选取,确定了基于词袋模型的最佳K值(KB)和基于空间矢量矩阵的最佳K值(KM)。这里假定训练集包括2个标签,那么对于一幅测试图像,判为标签1的概率为:

(16)

判为标签2的概率为:

(17)

比较式(16)和式(17)的大小,将概率值相对较高的标签作为最终测试图像的分类类别。

3 旋转不变性

在图像分类中,有些发生旋转的图像会对分类效果造成影响。如图9所示,为了消除这种影响,本文提出了矢量模的方法。由于两两单词构成一个矢量,所以当图像旋转时,矢量的长度不变。因此对于一个N×3的图像矩阵,具体的表达式为:

(18)

在构建有效的空间矢量矩阵后,分别利用KNN和SVM分类器进行分类。

图9 图像旋转的分析Fig.9 Analysis of image rotation

4 实验及结果讨论

本次实验在Caltech 101数据集和Caltech 256数据集中[11]分别选取8个类别,并将数据集分为测试图像和训练图像两部分。从Caltech 101数据集中取8个类别的图像(Faces_easy、向日葵、摩托车、蝴蝶、笔记本电脑、双栀船、盆景、袋鼠)进行分类实验,实验分为二类类别(Faces_easy、向日葵)、四类类别(Faces_easy、向日葵、摩托车、蝴蝶)、六类类别(Faces_easy、向日葵、摩托车、蝴蝶、笔记本、双栀船)和八类类别(Faces_easy、向日葵、摩托车、蝴蝶、笔记本、双栀船、盆景、袋鼠);从Caltech 256数据集取8个类别的图像(ak47、双筒望远镜、骆驼、鸭子、烟火、三角钢琴、火星、网球鞋)进行分类实验,实验分为二类类别(ak47、双筒望远镜)、四类类别(ak47、双筒望远镜、骆驼、鸭子)、六类类别(ak47、双筒望远镜、骆驼、鸭子、烟火、三角钢琴)和八类类别(ak47、双筒望远镜、骆驼、鸭子、烟火、三角钢琴、火星、网球鞋),所有实验都重复10次取其统计平均,并对结果进行分析。评价标准采用平均分类正确率(ACA)和平均类别准确率(ACP)。

这里分别基于词袋模型、空间金字塔、空间矢量模型(SpVM)、具有旋转不变性的空间矢量模型(SpVM-ROT)进行实验,实验过程分别如图10和图11所示。

图10 基于SVM分类的框架图Fig.10 Frame diagram of classification based on SVM

图11 基于KNN分类的框架图Fig.11 Frame diagram of classification based on KNN

4.1 基于SVM的分类

4.1.1 参数的选择

(1)网格间距的选择

网格间距的选择对最终的分类结果有很大的影响。若网格间距太小,那么落入同一网格的单词会很少,获得的样本太少;若网格间距太大,那么落入同一网格的单词会很多,缺乏了准确性。所以选择一个合适的网格间距尤为重要。这里经验性地选择间距为3。

(2)权重的选择

视觉语言直方图分为两层:1层是视觉单词直方图;2层是视觉短语直方图。两层的权重分别为w1和w2。经过比较实验,取w1=0.4,w2=0.6。

(3)聚类K的选择

本文设置不同的K值,分析视觉短语库大小对分类性能的影响。其中,二类分类的K值为500;四类分类的K值为800;六类分类的K值为1400;八类分类的K值为2000。

4.1.2 实验结果

Caltech-101数据集和Caltech-256数据集的ACA和ACP分类结果分别如表1、表2和图12、图13所示。

表1 Caltech-101基于SVM的平均分类正确率Table 1 ACA in Caltech-101 data collection based on SVM %

图12 Caltech-101基于SVM的平均类别准确率Fig.12 ACP in Caltech-101 data collection based on SVM

表2 Caltech-256基于SVM的平均分类正确率Table 2 ACA in Caltech-256 data collection based on SVM %

图13 Caltech-256基于SVM的平均类别准确率Fig.13 ACP in Caltech-256 data collection based on SVM

4.2 基于KNN分类器的分类

4.2.1 参数的选择

通过交叉验证选择K值,选用相同记录个数的平方作为权重。

4.2.2 实验结果

Caltech-101数据集和Caltech-256数据集的ACA和ACP分类结果分别如表3、表4和图14、图15所示。

表3 Caltech-101基于KNN的平均分类正确率Table 3 ACA in Caltech-101 data collection based on KNN %

表4 Caltech-256基于KNN的平均分类正确率Table 4 ACA in Caltech-256 data collection based on KNN %

4.3 实验结果分析

这里对分类错误的图像进行统计和分析。如图16所示,分类错误的图像主要包括两类:一是受光照影响较大的图像,可以考虑通过图像滤波或图像增强等对图像进行预处理;二是背景较为杂乱或者物体本身绘有花纹的图像,这类影响具有不可避免性,所以如何避免此类干扰的影响,从而提高分类效果,将是下一步研究的重点。另外,当考虑旋转不变性时,有些分类准确率会出现不升反降的现象,这种现象主要发生在Caltech 101数据集上。这是因为Caltech 101数据集中很少有发生旋转的图像,图像都相对简单,从而导致聚类后的视觉单词对之间难以分辨;而在图像数据复杂的Caltech 256数据集上则表现良好。

图16 错误分类图像示例Fig.16 Misclassification image samples

5 结束语

提出了一种基于视觉单词间空间位置信息的空间矢量模型,并基于两种分类器提出了不同的分类方法:当使用SVM分类时,将空间矢量矩阵转化为视觉语言模型,利用视觉语言直方图特征进行分类;当使用KNN分类时,利用空间矢量矩阵具有相同行的个数,通过选择最佳的K值和权重进行分类。最后,对本文提出的基于空间矢量模型的图像分类方法进行了对比实验。实验结果显示,本文方法具有很好的分类效果。

参考文献:

[1] Li Fei-fei. Visual recognition: computational models and human psychophysics[D]. Pasadena: College of Electronic Engineering,California Institute of Technology,2005.

[2] 刘佳,傅卫平,王雯,等. 基于改进SIFT算法的图像匹配[J]. 仪器仪表学报,2013,34(5):1107-1112.

Liu Jia, Fu Wei-ping, Wang Wen, et al. Image matching based on improved sift algorithm[J]. Chinese Journal of Scientific Instrument,2013,34(5):1107-1112.

[3] 生海迪. 视觉词袋模型的改进及其在图像分类中的应用研究[D]. 济南:山东师范大学信息科学与工程学院,2015.

Sheng Hai-di. The improvement of bag-of-visual-words model and its application research in images classification[D]. Ji′nan: College of Information Science and Engineering,Shandong Normal University,2015.

[4] Lazebnik S, Schmid C, Ponce J. Beyond bags of features: spatial pyramid matching for recognizing natural scene categories[C]∥IEEE Conference on Computer Vision and Pattern Recognition(CVPR),New York, USA,2006:2169-2178.

[5] Wu Lei, Hu Yang, Li Ming-jing, et al. Scale-invariant visual language modeling for object categorization[J]. IEEE Transactions on Multimedia,2009,11(2):286-294.

[6] Jiang Y, Wang R, Wang C. Scene classification with context pyramid features[J]. Journal of Computer-Aided Design and Computer Graphics,2010,22(8):1366-1373.

[7] 纪昌明,周婷,向腾飞,等. 基于网格搜索和交叉验证的支持向量机在梯级水电系统隐随机调度中的应用[J]. 电气自动化设备,2014,34(3):125-127.

Ji Chang-ming,Zhou Ting,Xiang Teng-fei,et al. Application of support vector machine based on grid search and cross validation in implicit stochastic dispatch of cascaded hydropower stations[J]. Electric Power Automation Equipment,2014,34(3):125-127.

[8] 闫永刚,马廷淮,王建. KNN分类算法的MapReduce并行化实现[J]. 南京航空航天大学学报,2013,45(4):550-555.

Yan Yong-gang,Ma Ting-huai,Wang Jian. Parallel implementing KNN classification algorithm using Mapreduce programing model[J]. Journal of Nanjing University of Aeronautics and Astronautics,2013,45(4):550-555.

[9] 严利鑫,黄珍,朱敦尧,等. 基于马尔科夫毯和隐朴素贝叶斯的驾驶行为险态辨识[J]. 吉林大学学报:工学版,2016,46(6):1851-1857.

Yan Li-xin, Huang Zhen, Zhu Dun-yao, et al. Driving risk status identification based on Markov blanket hidden Naive Bayes[J]. Journal of Jilin University (Engineering and Technology Edition),2016,46(6):1851-1857.

[10] 王寅同,王建东,陈海燕. 时间序列降维及机场噪声中的机型识别[J]. 吉林大学学报:工学版,2016,46(4):1202-1208.

Wang Yan-tong,Wang Jian-dong,Chen Hai-yan. Time series dimensionality reduction and aircraft model recognition in airport-noise[J]. Journal of Jilin University (Engineering and Technology Edition),2016,46(4): 1202-1208.

[11] 汤鹏杰,王瀚漓,左凌轩. 并行交叉的深度卷积神经网络模型[J]. 中国图像图形学报,2016,21(3):339-347.

Tang Peng-jie, Wang Han-li, Zuo Ling-xuan. Parallel cross deep convolution neural networks model[J]. Journal of Image and Graphics,2016,21(3):339-347.

猜你喜欢
直方图矢量类别
符合差分隐私的流数据统计直方图发布
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
基于FPGA的直方图均衡图像增强算法设计及实现
用直方图控制画面影调
壮字喃字同形字的三种类别及简要分析
中考频数分布直方图题型展示
西夏刻本中小装饰的类别及流变
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用