论文部分内容阅读
摘 要 图像分类问题应用广泛,是一个典型的模式识别问题。首先对训练图像进行网格稠密采样,然后对每一个网格采样点提取其周围区域的SIFT特征,接着使用Kmeans聚类算法对训练图像集上的SIFT特征进行聚类,生成一个视觉词汇表,从而得到基于BOW的图像表示。采用直方图交叉核训练了SVM 分类器,结果表明,该方法在图像分类问题上取得了较好的平均分类准确率。
关键词 图像分类 SIFT BOW SVM
中图分类号:TP391 文献标识码:A
图像分类问题是计算机视觉领域的重要研究方向,本身也是一个典型的模式识别问题。图像分类是指给定一副图像,自动地给图像分配一个类标。一般而言,图像的类标描述了图像的总体信息,类标信息本质上就是一种语义信息。因此,图像分类是跨越语义鸿沟,实现智能化图像管理的一个重要的途径。
1 基于BOW的图像分类框架
本文采用基于BOW的图像分类框架如图1所示。
图1 基于BOW的图像分类框架
为了能够正确地区分图像类别,需要有效地表述图像语义内容。现有的图像表示方法大致可分为3类:(1)基于图像的全局低级特征。通过提取图像的整体或分块颜色、纹理等特征,然后用一个特征矢量来表示图像内容。(2)基于图像区域分割。首先将图像先进行区域分割,并根据不同区域类型和及其关系并行地表述图像语义特性。(3)基于图像块(patch)的视觉词汇表示法。所谓图像块是指图像中相邻并且连通的像素集合。相对于以像素为单位的处理,以块为单位进行处理在计算量、推广性和集成上下文信息上等方面均有优势。
基于图像块的方法一般可分为图像块特征提取,构建视觉词汇码书(codebook),用直方图表示图像等三个步骤。视觉词汇表示和模型建立。图像块提取有两种方法:一种是基于兴趣点的方法;另一种则是基于规则网格的方法。将得到的图像块进行归一化,再用特征描述子(本文选用SIFT descriptor)描述得到的图像块,然后通过聚类、量化,从而构建得到码书。聚类方法有很多种选择,本文选用的是Kmeans聚类方法。码书构建完以后,需要将SIFT 描述子向第二步骤中得到的码书投影,统计一幅图像中不同图像块在不同码字(code)上的词频分布,从而得到该图像的词袋表示(bag of words,BOW)。
基于BOW对图像表示之后,进一步选用生成模型或者判别模型完成图像分类。目前常用概率生成模型有pLSA(probabilist iclatent semantic analysis)模型和LDA( latent Dirichlet allocation)模型,其基本思想是引入一个潜在语义维,对应于图像的语义特性,通过概率生成模型,将图像的高维BOW表示映射到低维的潜在语义表示上。而判别模型最常用的方法是支持向量机(support vector machine,SVM)。
2 算法具体流程
2.1 主要步骤
本文算法主要借鉴文献,分为训练阶段和测试阶段两个部分。
(1)训练阶段。对所有训练图像进行规则网格分割,并提取每个图像块的SIFT特征。在训练图像中抽取40幅图像的所有图像块特征,进行Kmeans聚类。聚类算法的初始化采用随机选取初始值,聚类的次数上限设定为100次,如果超过100次, 就采用第100次聚类得到的结果;聚类停止的准则是相邻2次聚类结果的改变,其小于某个阈值。对于视觉单词聚类为V(文中取V=200)个类别,得到视觉词汇码书,然后按照这个码本对训练图像库中的所有图像提取其视觉单词,建立图像的金字塔特征。并通过训练得到SVM分类器。
(2)测试阶段。对输入的测试图像提取其图像块特征,并根据训练部分得到的聚类码书,进而得到图像的金字塔表示;然后使用金字塔匹配核的SVM分类器对测试图像进行分类,得到最终的实验结果。
2.2 视觉词汇表的生成
文中首先用DOG算子来探测图像中的感兴趣区域,然后用SIFT描述子来描述这些感兴趣区域,最后对这些区域的SIFT特征进行聚类来生成视觉词汇。视觉词汇表的具体生成过程如下:(1)对训练图像进行网格稠密采样,从而得到相应的网格采样点。本文使用的规则网格大小是16€?6,网格采样间隔为8像素;(2)对每一个网格采样点提取其周围区域的SIFT特征来描述该网格采样点。在本文中使用网格采样点周围16€?6的区域来计算SIFT特征,SIFT特征用该区域梯度方向直方图表示,是一个128维向量;(3)使用Kmeans聚类算法对训练图像集上的所有网格采样点的SIFT特征进行聚类,每个聚类中心对应一个视觉词汇,从而生成一个由V个视觉词汇构成的视觉词汇表。
2.3 空间金字塔特征
假设视觉词汇的数目是,为图像中标号为的视觉词汇的坐标,则级空间金字塔核可以表示为(,) = (,),其中是级空间金字塔匹配核。对图像进行金字塔式的网格分割,在每个金字塔级别( = 1,…,)下,得到个图像子区域。标号为的视觉词汇可以形成个柱的统计直方图,,则金字塔匹配核可以表示为:
其中I为直方图交叉函数(histogram intersection function),即:
(1)
也可以从另一个角度理解级空间金字塔匹配核:对属于每个金字塔级别下的全部子区域中的所有视觉词汇,分别统计其直方图:
(2)
令表示直方图的连接操作,将在不同级别和不同空间区域中得到的所有视觉词汇直方图加权连接起来,就得到图像的空间金字塔特征,即:
(3)
其中为不同金字塔级别的权值。式(3)得到的是空间金字塔特征,可以使用式(1)进行匹配。
3 实验结果及分析 3.1 实验数据库和参数设置
本文中图像种类均为6类,每类600幅图像,其中300幅用于训练,其它300幅用于测试。图像主要来自于Caltech101标准数据库。实验图像示例如图2所示。处理过程中没有使用颜色信息,即所有图像均是按照灰度图像进行处理的。
本文中多类分类器是通过one-vs-rest的方式来构造:对每一类都学习得到一个区分它和其他类别的SVM 分类器,本文采用直方图交叉函数作为SVM 分类器的核函数。直方图交叉函数是通过多核学习(Multiple Kernel Learning , MKL)获得的。原图是第0层,权重1/4,第一层是1/4,第二层是1/2,是按金字塔匹配核的权重公式算的。SVM分类器源代码为libsvm3.11 SVM。
本文的所有实验都将进行十次的随机选择训练图像和测试图像,然后分别计算每次试验各类的平均准确率。十次试验得到的平均准确率的均值将作为最终的平均分类准确率。
图2 六类object:airplanes, bonsai, butterfly, chair, dolphin, yin_yang
3.2 实验结果
图3给出了在L= 3的情况下,本文方法所得到的图像分类的混淆矩阵。混淆矩阵的X和Y 轴分别表示场景类别,第i行第j列的值表示第i类图像被分类为第j类图像的比例,混淆矩阵对角线上元素的值代表了每类图像的分类准确率。图4则给出了更直观的6类object的平均分类准确率情况。分析图3,图4,主要有以下结论:
(1)本文方法(SPM+SVM)在图像分类问题上取得了较好的识别率,对于各类的平均正确率均在80%以上;主要原因是文中图像识别的数据集过于简单。
(2)在6类object中,海豚(dolphin 5)是最容易错分的类别。主要原因是它们在局部特征的空间分布上变化比较大并没有很大的相似性。
(3)文中的方法在计算量上会单一特征大,但是由于不用进行模型参数估计和推理, 并且采用了金字塔匹配核的SVM 分类器,因此本文方法比采用统计模型的方法,如pLSA等的计算量小。
图3 目标识别图像的混淆矩阵
图4 平均分类准确率
4 结论
图像分类受到了很多研究者的关注,并被应用到各种民生领域,例如人脸识别、指纹识别、交通标志牌识别、商标检索等等。另外,图像分类的相关研究工作也促进了机器学习和模式识别的发展。本文基于SPM和SVM的架构,实现了图像分类任务,结果表明,文中提出的方法在图像分类问题上取得了较好的平均分类准确率。
参考文献
[1] Lowe, David G. "Distinctive image features from scale-invariant keypoints." International journal of computer vision 60.2 (2004): 91-110.
[2] Chih-Chung Chang and Chih-Jen Lin. LIBSVM3.11: a library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2011.
关键词 图像分类 SIFT BOW SVM
中图分类号:TP391 文献标识码:A
图像分类问题是计算机视觉领域的重要研究方向,本身也是一个典型的模式识别问题。图像分类是指给定一副图像,自动地给图像分配一个类标。一般而言,图像的类标描述了图像的总体信息,类标信息本质上就是一种语义信息。因此,图像分类是跨越语义鸿沟,实现智能化图像管理的一个重要的途径。
1 基于BOW的图像分类框架
本文采用基于BOW的图像分类框架如图1所示。
图1 基于BOW的图像分类框架
为了能够正确地区分图像类别,需要有效地表述图像语义内容。现有的图像表示方法大致可分为3类:(1)基于图像的全局低级特征。通过提取图像的整体或分块颜色、纹理等特征,然后用一个特征矢量来表示图像内容。(2)基于图像区域分割。首先将图像先进行区域分割,并根据不同区域类型和及其关系并行地表述图像语义特性。(3)基于图像块(patch)的视觉词汇表示法。所谓图像块是指图像中相邻并且连通的像素集合。相对于以像素为单位的处理,以块为单位进行处理在计算量、推广性和集成上下文信息上等方面均有优势。
基于图像块的方法一般可分为图像块特征提取,构建视觉词汇码书(codebook),用直方图表示图像等三个步骤。视觉词汇表示和模型建立。图像块提取有两种方法:一种是基于兴趣点的方法;另一种则是基于规则网格的方法。将得到的图像块进行归一化,再用特征描述子(本文选用SIFT descriptor)描述得到的图像块,然后通过聚类、量化,从而构建得到码书。聚类方法有很多种选择,本文选用的是Kmeans聚类方法。码书构建完以后,需要将SIFT 描述子向第二步骤中得到的码书投影,统计一幅图像中不同图像块在不同码字(code)上的词频分布,从而得到该图像的词袋表示(bag of words,BOW)。
基于BOW对图像表示之后,进一步选用生成模型或者判别模型完成图像分类。目前常用概率生成模型有pLSA(probabilist iclatent semantic analysis)模型和LDA( latent Dirichlet allocation)模型,其基本思想是引入一个潜在语义维,对应于图像的语义特性,通过概率生成模型,将图像的高维BOW表示映射到低维的潜在语义表示上。而判别模型最常用的方法是支持向量机(support vector machine,SVM)。
2 算法具体流程
2.1 主要步骤
本文算法主要借鉴文献,分为训练阶段和测试阶段两个部分。
(1)训练阶段。对所有训练图像进行规则网格分割,并提取每个图像块的SIFT特征。在训练图像中抽取40幅图像的所有图像块特征,进行Kmeans聚类。聚类算法的初始化采用随机选取初始值,聚类的次数上限设定为100次,如果超过100次, 就采用第100次聚类得到的结果;聚类停止的准则是相邻2次聚类结果的改变,其小于某个阈值。对于视觉单词聚类为V(文中取V=200)个类别,得到视觉词汇码书,然后按照这个码本对训练图像库中的所有图像提取其视觉单词,建立图像的金字塔特征。并通过训练得到SVM分类器。
(2)测试阶段。对输入的测试图像提取其图像块特征,并根据训练部分得到的聚类码书,进而得到图像的金字塔表示;然后使用金字塔匹配核的SVM分类器对测试图像进行分类,得到最终的实验结果。
2.2 视觉词汇表的生成
文中首先用DOG算子来探测图像中的感兴趣区域,然后用SIFT描述子来描述这些感兴趣区域,最后对这些区域的SIFT特征进行聚类来生成视觉词汇。视觉词汇表的具体生成过程如下:(1)对训练图像进行网格稠密采样,从而得到相应的网格采样点。本文使用的规则网格大小是16€?6,网格采样间隔为8像素;(2)对每一个网格采样点提取其周围区域的SIFT特征来描述该网格采样点。在本文中使用网格采样点周围16€?6的区域来计算SIFT特征,SIFT特征用该区域梯度方向直方图表示,是一个128维向量;(3)使用Kmeans聚类算法对训练图像集上的所有网格采样点的SIFT特征进行聚类,每个聚类中心对应一个视觉词汇,从而生成一个由V个视觉词汇构成的视觉词汇表。
2.3 空间金字塔特征
假设视觉词汇的数目是,为图像中标号为的视觉词汇的坐标,则级空间金字塔核可以表示为(,) = (,),其中是级空间金字塔匹配核。对图像进行金字塔式的网格分割,在每个金字塔级别( = 1,…,)下,得到个图像子区域。标号为的视觉词汇可以形成个柱的统计直方图,,则金字塔匹配核可以表示为:
其中I为直方图交叉函数(histogram intersection function),即:
(1)
也可以从另一个角度理解级空间金字塔匹配核:对属于每个金字塔级别下的全部子区域中的所有视觉词汇,分别统计其直方图:
(2)
令表示直方图的连接操作,将在不同级别和不同空间区域中得到的所有视觉词汇直方图加权连接起来,就得到图像的空间金字塔特征,即:
(3)
其中为不同金字塔级别的权值。式(3)得到的是空间金字塔特征,可以使用式(1)进行匹配。
3 实验结果及分析 3.1 实验数据库和参数设置
本文中图像种类均为6类,每类600幅图像,其中300幅用于训练,其它300幅用于测试。图像主要来自于Caltech101标准数据库。实验图像示例如图2所示。处理过程中没有使用颜色信息,即所有图像均是按照灰度图像进行处理的。
本文中多类分类器是通过one-vs-rest的方式来构造:对每一类都学习得到一个区分它和其他类别的SVM 分类器,本文采用直方图交叉函数作为SVM 分类器的核函数。直方图交叉函数是通过多核学习(Multiple Kernel Learning , MKL)获得的。原图是第0层,权重1/4,第一层是1/4,第二层是1/2,是按金字塔匹配核的权重公式算的。SVM分类器源代码为libsvm3.11 SVM。
本文的所有实验都将进行十次的随机选择训练图像和测试图像,然后分别计算每次试验各类的平均准确率。十次试验得到的平均准确率的均值将作为最终的平均分类准确率。
图2 六类object:airplanes, bonsai, butterfly, chair, dolphin, yin_yang
3.2 实验结果
图3给出了在L= 3的情况下,本文方法所得到的图像分类的混淆矩阵。混淆矩阵的X和Y 轴分别表示场景类别,第i行第j列的值表示第i类图像被分类为第j类图像的比例,混淆矩阵对角线上元素的值代表了每类图像的分类准确率。图4则给出了更直观的6类object的平均分类准确率情况。分析图3,图4,主要有以下结论:
(1)本文方法(SPM+SVM)在图像分类问题上取得了较好的识别率,对于各类的平均正确率均在80%以上;主要原因是文中图像识别的数据集过于简单。
(2)在6类object中,海豚(dolphin 5)是最容易错分的类别。主要原因是它们在局部特征的空间分布上变化比较大并没有很大的相似性。
(3)文中的方法在计算量上会单一特征大,但是由于不用进行模型参数估计和推理, 并且采用了金字塔匹配核的SVM 分类器,因此本文方法比采用统计模型的方法,如pLSA等的计算量小。
图3 目标识别图像的混淆矩阵
图4 平均分类准确率
4 结论
图像分类受到了很多研究者的关注,并被应用到各种民生领域,例如人脸识别、指纹识别、交通标志牌识别、商标检索等等。另外,图像分类的相关研究工作也促进了机器学习和模式识别的发展。本文基于SPM和SVM的架构,实现了图像分类任务,结果表明,文中提出的方法在图像分类问题上取得了较好的平均分类准确率。
参考文献
[1] Lowe, David G. "Distinctive image features from scale-invariant keypoints." International journal of computer vision 60.2 (2004): 91-110.
[2] Chih-Chung Chang and Chih-Jen Lin. LIBSVM3.11: a library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2011.