一种基于对称正定矩阵流形切空间子空间学习的描述子局部聚合向量方法与流程

文档序号:17361201发布日期:2019-04-09 22:05阅读:1429来源:国知局
一种基于对称正定矩阵流形切空间子空间学习的描述子局部聚合向量方法与流程

本发明涉及面向机器学习领域的编码技术,具体是一种描述子局部聚合向量方法。



背景技术:

近年来,计算机视觉成为了研究的热点,在计算机视觉问题中,特征不再局限于传统的向量特征,很多矩阵形式的特征提取方法被提出,所以对矩阵特征进行处理是很有必要的。

在现在的研究中,矩阵形式的特征主要分为两类,一类是区域协方差描述子(regioncovariancedescriptor,rcovd),另一类是线性子空间。其中区域协方差描述子由于其优越的性能被广泛用于人脸识别(文献1,m.t.harandi,r.hartley,b.lovell,andc.sanderson,sparsecodingonsymmetricpositivedefinitemanifoldsusingbregmandivergences,ieeetrans.neuralnetw.learn.syst,vol.27,no.6,pp.1294–1306,jun.2016.)、纹理分类(文献2,m.faraki,m.t.harandi,andf.porikli,materialclassificationonsymmetricpositivedefinitemanifolds,inproc.ieeewinterconf.appl.comput.vis.,jan.2015,pp.749–756.)和人头姿势估计(文献3,d.tosato,m.spera,m.cristani,andv.murino,characterizinghumansonriemannianmanifolds,ieeetrans.patternanal.mach.intell.,vol.35,no.8,pp.1972–1984,aug.2013.)等问题上。区域协方差描述子是对称正定矩阵,因而是对称正定矩阵流形(symmetricpositivedefinitemanifold,spdmanifold)上的点,spd流形是典型的黎曼流形,在spd流形上每个点的切空间上都定义了缓慢变化的内积运算。由于spd流形的非线性,常用的基于向量运算的方法不再适用于spd流形数据。所以有必要提出基于spd流形的编码算法,将spd流形上的点编码成为向量。

目前基于spd流形的编码算法主要分为类,一类是稀疏编码,另一类是描述子局部聚合向量方法(vectorofaggregateddescriptors,vlad)。基于欧式空间的vlad编码表现出了良好的性能(文献4,h.jégou,f.perronnin,m.douze,j.sánchez,p.pérez,andc.schmid,aggregatinglocalimagedescriptorsintocompactcodes,ieeetrans.patternanal.mach.intell.,vol.34,no.9,pp.1704–1716,sep.2012)。基于spd流形的vlad编码方法也引起了关注。目前基于spd流形的vlad编码算法主要分为两类,一种做法是在码本的切空间上计算局部差异向量,文献5(m.faraki,m.t.harandi,andf.porikli,materialclassificationonsymmetricpositivedefinitemanifolds,inproc.ieeewinterconf.appl.comput.vis.,jan.2015,pp.749–756.)提出了基于spd流形的vlad编码,在将spd矩阵映射到码本切空间时采用了两种方式,一种是通过传统的log映射,另一种是通过计算输入样本与码本之间测度关于码本的梯度来将输入spd矩阵映射到码本切空间上。第二种映射spd流形数据的做法是将spd流形数据映射到再生核希尔伯特空间上计算每个码本的局部差异向量,文献6(mehrtashharandi,mathieusalzmann,andfatihporikli,whenvladmethilbert,2016ieeeconferenceoncomputervisionandpatternrecognition.)提出了基于核方法的spd流形vlad编码方法,具体做法是通过spd流形的正定核函数定义一个再生核希尔伯特空间,从而确定一个从spd流形到再生核希尔伯特空间的映射,将spd矩阵映射到再生核希尔伯特空间上进行局部差异向量的计算。

本方法是一种基于spd流形的vlad方法,本方法映射spd流形数据的方法是将spd流形数据映射到码本的切空间上,主要的创新点在切空间上基于原始spd矩阵的类别信息来学习具有判别性的子空间,这样计算的局部差异向量更具有判别性,能够得到较好的分类效果,此外,由于子空间的学习可以人为确定子空间的标准正交基的个数,相对于文献5提出的方法,本方法可以灵活控制每个码本上局部差异向量的长度。



技术实现要素:

本发明的目的在于提供一种对称正定矩阵流形上的描述子局部聚合向量方法。本发明的技术方案是,先利用训练数据在码字切空间上学习子空间,学习的方法是先通过聚类算法生成k个码字,然后将训练数据根据最近邻原则分配给码字,对每个码字,将分配到该码字的训练样本映射到码字的切空间上,然后在切空间上根据同类数据距离最小化和异类数据距离最大化的原则来学习具有判别性的子空间,子空间学习完成后对新输入的图片通过计算每个局部区域的描述子协方差矩阵得到spd矩阵集合,将spd矩阵映射到码字切空间上,在根据学习到的子空间的标准正交基得到spd矩阵在码字切空间的子空间的表示,利用这个表示进行聚合向量的计算。发明内容如下:

1.“对称正定矩阵流形切空间上子空间学习算法”。该算法是在对称正定矩阵的切空间上根据训练数据的标签信息学习具有判别性的子空间。其具体步骤如下:

步骤一:利用训练数据通过对称正定流形上的k聚类算法来产生k个聚类中心点作为码本码本也是由spd矩阵组成的集合。根据最近邻原则将训练数据分配给不同码字。

步骤二:将训练数据映射到码字切空间上,以码字ct为例,首先将被分配到ct的训练数据映射到ct的切空间上。得到训练数据的切向量,spd矩阵的切向量是对称矩阵,映射的公式是:

其中δ表示spd流形上的测度,ti∈symn表示n维对称矩阵空间。

步骤三:在每个码字的切空间上进行子空间学习,子空间学习的目标是让在学习的子空间上同类数据的距离尽可能小,异类数据之间的距离尽可能大,假设子空间的基可以由线性组合得到:

步骤四:根据训练数据的标签信息构建同类信息矩阵:同类数据在子空间上的距离总和为:其中yi是数据在子空间上的表示,可以通过数据的切向量与子空间的基的内积得到:w是组合系数矩阵,lw是gw的拉普拉斯矩阵,k(t)是码字ct的切向量之间的距离矩阵。

步骤五:构建异类信息矩阵:异类数据在子空间上的距离总和:其中,lw是gw的拉普拉斯矩阵。

步骤六:总的目标函数为:

s.twk(t)wt=i,w∈rd×n

2.一种对称正定矩阵流形上的描述子局部聚合向量方法。该方法是对一幅输入图片的提取由对称正定矩阵组成的特征,然后对称正定矩阵进行vlad编码。具体地,对输入的一幅图片,通过计算有重叠的局部区域的协方差矩阵,得到spd矩阵组成的集合对集合中的每个spd矩阵,首先根据最近邻原则将其分配到某一码字ct,然后将spd矩阵映射到码字ct的切空间上,根据已学习好的子空间标准正交基计算spd矩阵的切向量在子空间上的表示作为差异向量。把属于同一个码字的所有差异向量累加起来得到该码字的局部聚合向量,所有码字的聚合向量拼接成一个编码向量得到最终的编码结果。

本发明的特点及其意义:

(1)提出了一种新的spd流形上的vlad方法。在每个码本的切空间上利用流形数据的类别信息学习具有判别性的子空间,然后在子空间上进行vlad计算。

(2)提出的vlad方法的编码长度可变。

(3)具有较好的适用性。使用已有的训练数据学习子空间,学习得到子空间的标准正交基之后,可以对新来数据点进行vlad计算。

附图说明

图1:基于对称正定矩阵流形切空间子空间学习的描述子局部聚合向量流程图。

具体实施方式

本发明的目的在于提供一种对称正定矩阵流形上的描述子局部聚合向量方法。本发明的技术方案是,先利用训练数据在码字切空间上学习子空间,学习的方法是先通过聚类算法生成k个码字,然后将训练数据根据最近邻原则分配给码字,对每个码字,将分配到该码字的训练样本映射到码字的切空间上,然后在切空间上根据同类数据距离最小化和异类数据距离最大化的原则来学习具有判别性的子空间,子空间学习完成后对新输入的图片通过计算每个局部区域的描述子协方差矩阵得到spd矩阵集合,将spd矩阵映射到码字切空间上,在根据学习到的子空间的标准正交基得到spd矩阵在码字切空间的子空间的表示,利用这个表示进行聚合向量的计算。如下介绍本发明的具体原理。

表示训练数据。通过spd流形上的k聚类算法产生k个码本根据最近邻原则将训练数据分配给码字,令码字ct分配得到的训练数据记为首先要把训练数据映射到ct的切空间上,映射的公式为:

spd流形上一点的切空间是由对称矩阵组成的矩阵空间,具有欧式空间的性质,可以进行线性运算,因而可以大大方便后续的计算。

在进行子空间学习之前首先要根据训练数据的标签信息构同类信息矩阵gw和异类信息矩阵gw:

子空间学习是在码字ct的切空间上进行的,子空间学习的目的是利用spd流形数据的类别信息学习比原始空间更有判别性的子空间,假设子空间的基可以由训练数据在码字切空间上的对应的切向量线性组合表示:

记ti在自空间上的表示为yi:yi=[<γ1,ti>…<γd,ti>]∈rd×1,又:

其中k(t)是之间的距离矩阵,用矩阵内积计算,k(t)的计算如下:

矩阵之间的内积定义为:<a,b>=tr(atb),则yi的计算公式为:

根据两个原则来构建目标函数,一是同类数据在子空间上距离尽可能小,在子空间上同类数据之间的距离总和:

其中lw是gw的拉普拉斯矩阵,lw=dw-gw,dw=diag(d11,…,dnn)。第二个原则是不同类的数据临近点在子空间上的距离尽可能大,同理,在子空间上异类近邻点之间的距离总和:

其中lb是gb的拉普拉斯矩阵。

由于子空间的基要求是标准正交基,因此需要对此作限制:

其中由约束条件可以看到每个基与其他基的矩阵内积都是0,而自身的范数是1。加上约束条件之后,总的目标函数为:

目标函数是一个广义瑞利商问题,可以通过特征分解来求解,对k(t)进行chol分解k(t)=vvt,则目标函数可以改写为:

对b进行chol分解b=llt,目标函数可以改写为:

其中对矩阵l-1a(lt)-1进行特征分解,前d小的特征值对应的特征向量构成y,由于y=ml=wvl,最后得到w=y(vl)-1。得到稀疏矩阵w之后可以通过的线性组合得到子空间的标准正交基。

对一幅输入的图片,通常是通过区域协方差描述子产生spd矩阵的集合对每个zi,根据最近邻原则将其分配给距离最近的码字ct,然后将zi映射到ct的切空间上:

记ct的切空间上学习得到的子空间的基为则ct与zi的局部差异向量为:

vti=[<γ1,ti><γ2,ti>...<γd,ti>]t(15)

码字ct的总的局部聚合向量为:

其中zi∈ct表示zi被分配到ct。最后得到这幅图片的vlad编码为:

v=[v1v2...vk]t(17)

至此,vlad编码完成。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1