时间:2024-07-28
熊继平,叶 童,叶灵枫
(浙江师范大学 数理信息工程学院,浙江 金华 321004)
场景识别是计算机视觉领域的重要研究方向之一,旨在设计有效的分类器来区分场景类别[1]。场景识别技术在许多方面都有广泛的应用[2],如基于内容的图像检索,从待查找的图像视觉特征出发,在图像库(查找范围)中依据视觉相似程度找出与之相似的图像[3];应用于数字照相洗印加工,对数字化的图片通过识别不同的场景,进行颜色平衡来校正偏色,增强图像对比度[4];应用于智能机器人领域,使智能机器人能够做到自动识别当前所处的场景,针对不同的场景做出不同的响应[5]。除此之外,场景分类还可以应用于视频检索[6]、医学图像浏览、卫星遥感图像分析、天气场景分类等方面。
场景特征表示方法主要分为手工特征[7-12]和学习特征[13-15]两大类。典型的手工特征包括通用搜索树[16]、局部描述符方向纹理曲线[17]和统计变换直方图[18],它们研究低级视觉信息,如结构和纹理信息场景图像。但是,这些特征只考虑到低级视觉信息,对于复杂的场景来说还远远不够。使用卷积神经网络(Convolutional Neural Network,CNN)的方法是代表性的基于学习的方法,其中提取的特征利用了高层次的语义信息。谢国森等[19]提出一种基于词袋的混合CNN场景识别模型,通过训练好的CNN网络对场景图像进行特征提取,在此基础上进行多种空间全局特征的提取,最后将得到的特征输入到支持向量机(Support Vector Machine,SVM)进行场景识别,使得场景识别的效果有了极大的提高。虽然CNN特征取得了令人鼓舞的表现,但是它们利用了场景类别间的场景特征,其特征包括不同场景中共同对象引起的一般特征,削弱了场景间的区分能力。
大多数现有的场景表示方法利用了类间独立场景中构成对象的特征,忽略了不同场景中普通对象造成的负面影响。通用对象的一般特征造成了不同场景之间的一般性,从而削弱了场景之间的判别特性。为了解决这个问题,本文提出了一种基于主题模型的对象特征描述符(Latent dirichlet allocation semantic Objectness Descriptor,LOD)用于场景识别。利用场景中所有对象的共现模式与不同场景之间的对象配置的相关性来选择具有代表性和有区别性的对象,从而增强了类间可辨性。具体来说,通过捕捉出现在每个场景中的对象的统计信息,以计算每个对象在场景中的条件分布,从而获得对象的共现模式。此外,利用场景图像中的识别对象对于场景的相关性表示来表示图像描述符,以消除普通对象的负面影响。
主题模型主要功能是提取可以理解、相对稳定的潜在语义结构,采用了词袋(Bag Of Features,BOF)的方法,将每一篇文档视为一个词频向量,从而将文本信息转化为易于建模的数字信息。主题模型的主要前提假设是:一系列的主题链接了一系列词和文档集合,而主题则可以理解为字和词的一种概率分布。采用概率推断算法,是一种全概率生成过程[20]。目前主要的主题生成模型是潜在Dirichlet分布(Latent Dirichlet Allocation,LDA)模型。
LDA模型的主要思想是将每篇文章看作所有主题的一个混合概率分布,而将其中的每个主题看作在单词上的一个概率分布。LDA模型中,在一篇文档中的第i个单词的概率可以表示为:
(1)
在以上生成式文档思想加入Dirichlet先验后,便得到人们熟知的LDA模型,其中θ表示文档在主题上的分布,φ表示主题在单词上的分布,再加入θ和φ的先验分布(分别服从参数α、β的Dirichlet分布),这样就能得到LDA模型的各层参数之间的依赖关系的数学表述:
wi|zi,φ(Zi)~Discrete(φ(Zi))
(2)
φ~Discrete(β)
(3)
zi|θ(di)~Discrete(θ(di))
(4)
θ~Discrete(α)
(5)
LDA模型是一个概率生成式模型,其中一条文本生成的过程如下:(1)对于文档d,从Dirichlet(α)抽样得θ(d);(2)对于主题z,从Dirichlet(β)抽样得φ(z);(3)对于每个单词wi及所属主题zi,从多项式分布θ中抽样得zi=P(zi|θ),从多项式分布φ中抽样得wi=P(wi|zi,φ)。
(6)
(7)
费舍尔向量(Fisher Vector,FV)是用似然函数的梯度向量来表达一幅图像[22]。假设图像X中提取的局部特征信号量集合为X={xd,d=1,…,D}。基于这些特征训练高斯混合模型记为:
Θ={(μk,σk,πk):k=1,…,K}
(8)
其中μk、σk和πk分别为第k个高斯成分的均值、标准差以及先验概率。由此可以得到:
(9)
其中Ν(X;μk,σk)为第k个高斯成分,可以通过高斯成分计算特征Xi的后验概率:
(10)
由μk、σk和πk求偏导得到:
(11)
(12)
(13)
最后进行归一化得到FV。
在对CNN网络的训练过程中,网络会自动提取主要的特征,不用额外进行数据特征的提取。基于CNN这样的特点,本文采用基于主题模型对象判别特征的场景识别算法。提出基于LDA的对象判别特征(LOD),结合多尺度空间判别符(Multi-scale Spatial Discrimination,MSD)和卷积费舍尔特征(Convolution Fisher Vector,CFV)构成空间判别特征,三种特征融合,利用分类器进行场景识别。如图1所示,本文采用双卷积神经网络模型,使用两个卷积神经网络分别训练场景数据与对象数据用以提取空间判别特征与对象判别特征,进行特征融合,输入分类器进行分类。
图1 双卷积神经网络
利用CNN训练图像,对CNN全连接层的输出特征图进行解卷积,运用SPM方法对特征图进行空间多尺度划分,统计其在不同分辨率下的图像特征点分布,从而构成MSD。具体步骤如下:
(1)对卷积神经网络的输出特征进行解卷积。
(2)根据特征在图像中的坐标进行分层。层数l={0,…,L},从0层开始,最顶层为L,每一层代表一种粒度,在第l层上每个特征被分为2l个区间,这样D维的特征空间被分为2Dl个区间。
(3)采用稀疏编码方式计算每个特征在不同层次图像中的分布情况得到多尺度的空间局部特征,本步骤中,稀疏编码的字典学习:
(14)
其中,ci表示第i个特征的编码,B表示字典。将目标图像的所有点的编码排成矩阵C,C的每一列就是字典中的原子,选取矩阵C每一列的最大值,最后进行归一化后获得的向量为该目标图像的特征。
利用CNN训练图像,CNN最后一个卷积层输出特征图,运用费舍尔向量对卷积特征进行量化得到CFV。
本文提出了一种基于LDA主题模型的对象判别特征(LOD),用于场景对象的配置。具体实施步骤如下:
(1)训练对象检测CNN对图像进行对象检测,进行统计得到对象特征(Objectness Descriptor,OD)。
(2) 在主题词抽取后进行人工去噪处理,主要包括:单复数统一、同义词合并、连字符“-”的使用、全称和缩写、专有词组等,消除场景识别类间差异性。
(3)利用所有对象构成文档,定义每一类场景作为一个主题,场景中的对象视为单词,构成词袋。
(4)基于LDA的思想,计算每一类主题中所有单词的得分,然后推导出一个对象的场景的后验概率,以用于在场景中选择判别对象的共现模式。
其中场景—主题模型的模型构造算法如下:
给定场景数据集PS={p1,…,pN},特征词集合WS={w1,…,wM},定义包含的场景类型构成主题集合TS={t1,…,tS}。
第1步:抽取φm~Dirichlet(α),m=1,2,…,M,场景类别生成对象特征词的概率;
第2步:抽取Ψs~Dirichlet(β),l=1,2,…,S,场景生成主题的概率;
第3步:生成场景pi(i=1,…,N)的特征词wj(j=1,…M);
选取场景类别hk~Multinomial(σi);
选取特征词tj~Multinomial(φk)。
其中N为场景数目,M为特征词数目,S为场景类别数目即主题数目,α和β是特征词和场景类别先验分布Dirichlet参数。
(5)通过得分最高的交集来修剪不包含判别性特性的对象和有区别的对象。
(6)通过选取表示判别对象类的元素(称为对象选择),减小对象得分向量的维数,得到判别向量。
(7)将非欧几里得空间中的判别向量投影到欧几里得空间,得到LOD图像描述符。
为了研究场景之间的判别特性,本文采用自动方式检索抓取网页中的场景图片,选取图书馆、沙漠和游泳池三类与Scene-15[23]数据集中商店、海滨、高山相似度较高的场景,经过预处理,与Scene-15数据集组成包含5 285张场景图片的Scene-18数据集进行实验。Scene-18数据集部分示例如图2。
图2 Scene-18数据集
本实验取Scene-18数据集中3 485张图片作为训练集,1 800张图片作为测试集(每类场景100张图片)。采用两个标准VGG-19网络训练ImageNet数据集和Places365数据集,得到VGG-19-ImageNet网络模型和VGG-19- Places365网络模型,使用VGG-19- ImageNet模型提取数据集的LOD特征,使用VGG-19- Places365提取数据集的空间结构特征,实验中使用libSVM作为分类器。实验环境为:Intel Core i7-7700,16 GB内存,软件平台为Python3.6- OpenCV3。
由表1和表2可以看到,本文算法在Scene-15与Scene-18数据集上的分类精确度超过了现有的方法。表3列举了6类由于存在类间相似性而易错的场景的10次测试平均分类结果,可以看到,相比于目前现有的算法,本文算法对这6类易错场景的识别效果有显著的提高。
表1 Scene-15数据集分类实验结果 (%)
此外,本文还研究了LDA模型中对象词特征的数量对场景识别精确度的影响,如图3所示,在本例中每个主题选择7个词特征能够取得最好的识别效果。
表2 Scene-18数据集分类实验结果 (%)
本文提出了一种基于主题模型的对象特征描述符LOD,并提出了一种基于LDA主题模型的对象判别特征的场景识别方法。LOD的提出,很好地解决了场景识别领域中的类内差异性和类间相似性问题。本文算法利用双卷积神经网络模型提取全局空间特征与对象判别特征,将两类特征相结合进行分类,并将本文算法同目前现有的场景识别算法进行比较,结果表明,本文算法在Scene-15和Scene-18数据集中都取得了更好的效果,并且本文算法在对Scene-18数据集分类中精确度有显著的提高。本文采用的是将主题模型运用于对象特征的描述,但是在自然语言处理中还有许多经典的算法,如使用概率潜在语意分析PLSA等,这将是本
表3 易错场景分类结果精确率 (%)
图3 不同词数量对精确度的影响
文今后的研究重点。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!