本发明涉及面向机器学习领域的编码技术,具体是一种描述子局部聚合向量方法。
背景技术:
近年来,计算机视觉成为了研究的热点,在计算机视觉问题中,特征不再局限于传统的向量特征,很多矩阵形式的特征提取方法被提出,所以对矩阵特征进行处理是很有必要的。
在现在的研究中,矩阵形式的特征主要分为两类,一类是区域协方差描述子(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.“对称正定矩阵流形切空间上子空间学习算法”。该算法是在对称正定矩阵的切空间上根据训练数据的标签信息学习具有判别性的子空间。其具体步骤如下:
步骤一:利用训练数据
步骤二:将训练数据映射到码字切空间上,以码字ct为例,首先将被分配到ct的训练数据
其中δ表示spd流形上的测度,ti∈symn表示n维对称矩阵空间。
步骤三:在每个码字的切空间上进行子空间学习,子空间学习的目标是让
步骤四:根据训练数据
步骤五:构建异类信息矩阵:
步骤六:总的目标函数为:
s.twk(t)wt=i,w∈rd×n
2.一种对称正定矩阵流形上的描述子局部聚合向量方法。该方法是对一幅输入图片的提取由对称正定矩阵组成的特征,然后对称正定矩阵进行vlad编码。具体地,对输入的一幅图片,通过计算有重叠的局部区域的协方差矩阵,得到spd矩阵组成的集合
本发明的特点及其意义:
(1)提出了一种新的spd流形上的vlad方法。在每个码本的切空间上利用流形数据的类别信息学习具有判别性的子空间,然后在子空间上进行vlad计算。
(2)提出的vlad方法的编码长度可变。
(3)具有较好的适用性。使用已有的训练数据学习子空间,学习得到子空间的标准正交基之后,可以对新来数据点进行vlad计算。
附图说明
图1:基于对称正定矩阵流形切空间子空间学习的描述子局部聚合向量流程图。
具体实施方式
本发明的目的在于提供一种对称正定矩阵流形上的描述子局部聚合向量方法。本发明的技术方案是,先利用训练数据在码字切空间上学习子空间,学习的方法是先通过聚类算法生成k个码字,然后将训练数据根据最近邻原则分配给码字,对每个码字,将分配到该码字的训练样本映射到码字的切空间上,然后在切空间上根据同类数据距离最小化和异类数据距离最大化的原则来学习具有判别性的子空间,子空间学习完成后对新输入的图片通过计算每个局部区域的描述子协方差矩阵得到spd矩阵集合,将spd矩阵映射到码字切空间上,在根据学习到的子空间的标准正交基得到spd矩阵在码字切空间的子空间的表示,利用这个表示进行聚合向量的计算。如下介绍本发明的具体原理。
令
spd流形上一点的切空间是由对称矩阵组成的矩阵空间,具有欧式空间的性质,可以进行线性运算,因而可以大大方便后续的计算。
在进行子空间学习之前首先要根据训练数据
子空间学习是在码字ct的切空间上进行的,子空间学习的目的是利用spd流形数据的类别信息学习比原始空间更有判别性的子空间,假设子空间的基可以由训练数据在码字切空间上的对应的切向量
记ti在自空间上的表示为yi:yi=[<γ1,ti>…<γd,ti>]∈rd×1,又:
其中k(t)是
矩阵之间的内积定义为:<a,b>=tr(atb),则yi的计算公式为:
根据两个原则来构建目标函数,一是同类数据在子空间上距离尽可能小,在子空间上同类数据之间的距离总和:
其中lw是gw的拉普拉斯矩阵,lw=dw-gw,
由于子空间的基要求是标准正交基,因此需要对此作限制:
其中
目标函数是一个广义瑞利商问题,可以通过特征分解来求解,对k(t)进行chol分解k(t)=vvt,
对b进行chol分解b=llt,
其中
对一幅输入的图片,通常是通过区域协方差描述子产生spd矩阵的集合
记ct的切空间上学习得到的子空间的基为
vti=[<γ1,ti><γ2,ti>...<γd,ti>]t(15)
码字ct的总的局部聚合向量为:
其中zi∈ct表示zi被分配到ct。最后得到这幅图片的vlad编码为:
v=[v1v2...vk]t(17)
至此,vlad编码完成。