一种基于张量分解的手势分类方法与流程

文档序号:12819333阅读:217来源:国知局
一种基于张量分解的手势分类方法与流程

本发明涉及动作识别领域,尤其涉及一种基于张量分解的手势分类方法。



背景技术:

近年来,人机交互和统计学习在不断的发展,动作识别问题是致力于解决的一个重要问题,人类动作由于本身的复杂性,同一动作间也会存在很大的差别,因此如何有效的提取不同动作间的本质差别或者从同一动作中提取它们之间的不变特征是至关重要的。

schuldt等人[1]采用局部时空特征捕获视频中的局部事件,该特征可以适应移动模式大小、频率和速度的变化。同时将这种表示方法与支持向量机(supportvectormachine,svm)分类方案结合以用于动作识别,但该方法在识别慢跑和跑步动作时的分类准确率较低。

scovanner等人[2]提出了一个用于视频或3d图像的三维(3d)尺度不变特征变换(scaleinvariantfeaturetransform,sift)描述符,具体地使用一袋词的方法来表示视频,并提出一种方法来发现时空词之间的关系,以便更好地描述视频数据,该方法虽然平均准确率较高,但在分类某些动作时的分类准确率仍不够理想。

jhuang等人[3]则提出受生物启发的系统,用于视频序列的动作识别。该系统由增加复杂性的时空特征检测器层组成,由运动方向敏感单元阵列分析输入序列,并尝试了不同类型的运动方向敏感单元以及不同的系统架构。

尽管人们做了如上所述的努力,人类动作识别由于其本身的复杂性仍然是一个难题,因此需要新的更强大的方法或者说工具来进行动作识别,本方法尝试将张量这一有效表示高阶数据结构的方法用于动作识别,以求能达到较好的分类效果。



技术实现要素:

本发明提供了一种基于张量分解的手势分类方法,本发明将张量分解结果进行视觉化,呈现同时用于分类,可以更好地理解张量分解的物理意义,详见下文描述:

一种基于张量分解的手势分类方法,所述手势分类方法包括以下步骤:

用三阶张量对手势视频进行建模;对每个手势视频则利用修改后的高阶奇异值分解方法进行分解;

将张量分解的结果进行视觉化呈现并进行分析;

分别利用典型角通过k近邻分类器和支持向量机分类器对手势视频进行分类;改变因子矩阵列向量的数目进行对比实验。

其中,所述用三阶张量对手势视频进行建模的步骤具体为:

张量的第一阶表示水平方向,第二阶表示竖直方向,第三阶表示时间轴;

读取样本内的图片为矩阵,将矩阵在张量的第三阶进行串联,构成了一个表示手势视频的三阶张量。

其中,所述对每个手势视频则利用修改后的高阶奇异值分解方法进行分解的步骤具体为:

首先对三阶手势视频张量进行张量的矩阵化的计算,然后进行转置,接着对转置后结果其进行奇异值分解,最后构建因子矩阵并计算核心张量。

其中,所述利用典型角通过k近邻分类器对手势视频进行分类具体为:

用典型角计算set5中的视频样本和数据库中的各个样本的三个因子矩阵之间的距离,并构建训练数据集和测试数据集;

数据集包括考虑单个因子矩阵、两个因子矩阵、三个因子矩阵,采用留一交叉验证法选取不同情况下k近邻分类器所对应的最优k值,然后采用此最优k值训练模型和测试数据。

本发明提供的技术方案的有益效果是:本发明采用修改后的高阶奇异值分解方法,能更好地视觉化呈现分解的结果;手势分类和视觉化呈现相结合,更好的表现了张量分解的物理意义。

附图说明

图1为一种基于张量分解的手势分类方法的流程图;

图2为剑桥手势数据库样例;

图3为视觉化呈现样例及对其中每幅小图片人为构建的坐标轴;

图4为部分分类结果展示;

图5为混合矩阵样例。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。

随着数据处理技术的多元化发展,数据的表示形式由最初的向量发展到二维数据的矩阵形式,然而要表示数据的多属性,虽然可以通过将多维数据表示成向量和矩阵的形式,但是这样会破坏原始数据的结构,造成原始数据的信息丢失。处理高维数据是数据科学发展的趋势,因此需要寻找一种恰当的高维数据表示方法,张量适应了这一要求,张量是向量、矩阵的高阶推广,由于他将原始的数据整体建模为一个张量,因此他没有破坏数据之间的结构信息,很好的保持了数据之间的相关性。由于计算机等硬件设备的进一步发展为处理高维的数据奠定了深厚的基础,因此引用张量去处理多维数据已经成为当前的一个研究热点,同时也被应用在了越来越多的领域,例如图像处理、生物医学等。

张量用于众多高维数据的表示,由于它适应了现今众多高维数据的要求,因此关于张量的各种研究如张量子空间学习、张量分解等越来越受到重视[4],作为一种张量研究的重要方法,张量分解也在不断地发展,各种张量分解方法不断地被提出,尤其是在基本的tucker[5]分解方法上增加各种约束条件的张量分解方法更是层出不穷,这些tucker分解方法有其不同的适用范围,增加的约束条件合适的条件下,张量分解会达到很好的效果。

张量分解将高维张量分解成若干个低维数据,从而表明两者之间的内在联系,其中cp(candecomp/parafac)[6]分解对研究张量的秩具有重要意义,张量分解被广泛的应用于计算机视觉、数字信号处理等领域,在图像压缩、数据恢复、图像修复、图像分类等具体的应用方面发展前景良好。

统计学习这一学科包含甚广,监督学习还有非监督学习都是其重要内容,监督学习指的是首先对有输出的输入数据进行学习,然后训练出模型,最后用模型预测新的输入数据所对应的输出。非监督学习则指的是输入数据并不含有对应的输出,而计算机对没有输出的输入数据进行学习并且建立模型,然后对新的数据进行处理,具体的学习方法包括聚类等等。本发明通过监督学习方法中的分类器利用张量分解结果进行手势分类。本发明实施例将张量分解后的结果进行视觉的呈现,然后对呈现的图片进行分析,分析分解后得到各成分对应的物理意义,力求能更好的理解张量分解更好的用于手势分类。

实施例1

一种基于张量分解的手势分类方法,参见图1,该手势分类方法包括以下步骤:

101:用三阶张量对手势视频进行建模;对每个手势视频则利用修改后的高阶奇异值分解方法进行分解;

102:将张量分解的结果进行视觉化呈现并进行分析;

103:分别利用典型角通过k近邻分类器和支持向量机分类器对手势视频进行分类;改变因子矩阵列向量的数目进行对比实验。

其中,步骤101中的用三阶张量对手势视频进行建模的步骤具体为:

张量的第一阶表示水平方向,第二阶表示竖直方向,第三阶表示时间轴;

读取样本内的图片为矩阵,将矩阵在张量的第三阶进行串联,构成了一个表示手势视频的三阶张量。

其中,步骤101中的对每个手势视频则利用修改后的高阶奇异值分解方法进行分解的步骤具体为:

首先对三阶手势视频张量进行张量的矩阵化的计算,然后进行转置,接着对转置后结果其进行奇异值分解,最后构建因子矩阵并计算核心张量。

其中,步骤103中的利用典型角通过k近邻分类器对手势视频进行分类具体为:

用典型角计算set5中的视频样本和数据库中的各个样本的三个因子矩阵之间的距离,并构建训练数据集和测试数据集;

数据集包括考虑单个因子矩阵、两个因子矩阵、三个因子矩阵,采用留一交叉验证法选取不同情况下k近邻分类器所对应的最优k值,然后采用此最优k值训练模型和测试数据。

综上所述,本发明实施例采用修改后的高阶奇异值分解方法[7],能更好地视觉化呈现分解的结果;手势分类和视觉化呈现相结合,更好的表现了张量分解的物理意义。

实施例2

下面结合具体的计算公式、实例对实施例1中的方案进行进一步地介绍,详见下文描述:

201:用三阶张量对手势视频进行建模;

具体为:本次实验中采用剑桥手势数据库,包括9类手势,如图2所示,将一个手势视频表示为一个三阶张量,其中张量的第一阶表示水平方向,第二阶表示竖直方向,第三阶表示的是时间轴。首先读取样本内的图片为矩阵,然后将这些矩阵在张量的第三阶进行串联,这样就构成了一个表示视频的三阶张量。

202:对每个手势视频利用修改后的高阶奇异值分解(highordersingularvaluedecomposition,hosvd)[7]方法进行分解;

首先对n阶(维)张量进行张量的矩阵化的计算,得到结果为a(1),a(2),…,a(n)(为若干个矩阵),然后对上述的结果进行转置,得到b(1),b(2),…,b(n)(为对应的若干个矩阵),然后对其进行svd(奇异值分解),其公式如下:

设有一个矩阵c∈rm×n,则该矩阵可以通过svd分解为如下的形式:

c=u∑vt(1)

其中,σ表示为一个矩阵,该矩阵除了主对角线元素以外的元素为0,∑的主对角线的元素按照递减的顺序排列,u和v分别为正交矩阵[8]

修改后的hosvd(高阶奇异值分解)采用了u(k)(第k个矩阵b(k)经过奇异值分解得到的正交矩阵u)中的前l个列向量对因子矩阵进行初始化,构成了stiefel流形[9],通过对应的公式计算出核心张量。

上述具体的计算步骤为本领域技术人员所公知,本发明实施例对此不做赘述。

因此修改后的hosvd分解方法就完成了将构建的三阶手势张量用上述修改的高阶奇异值分解方法进行分解,得到核心张量和三个因子矩阵。

203:将张量分解的结果进行视觉化呈现并进行分析;

本方法首先构建了40×40×30的张量样本,为了显示上述分解结果的意义,对最终得到的三个因子矩阵的列进行图像的显示。

例如u(1)是分解后的一个因子矩阵,则将u(1)的一个列向量表示为一张图片,设表示视频的三阶张量的大小为i×j×k,则u(1)的列向量对应的图片大小为j×k,其余情况下的图片大小同理。

下面以第一个因子矩阵分析为例,见图3,图3为第一个因子矩阵的前五个列向量的图片的显示:其中每一行对应一个手势,每一行从左到右的每一个图片对应于因子矩阵的一个列向量。

不妨人为的构建的三阶视频张量的三个坐标轴分别为x轴、y轴和z轴,分别对应水平方向、竖直方向、以及时间轴,则第一个因子矩阵的列向量对应的为y-z平面,通过上述对数据库的描述可知,上述向左和向右的手势动作分别对应y轴方向位移减小、y轴方向位移增大,因此表示在上述的图片中,如第一行中的图片竖直方向为y轴,水平方向对应z轴,则可以看出每张图片中随着z轴数据的增加,对应的图片中显示出的数据点的y轴坐标值减小,而第二行的图片中数据点的y轴坐标值变化则和第一行中恰恰相反。而第三行的图片对应的是五指并拢时的握拳姿势,可以想象一下,在拳的过程中,在y轴方向的位移并没有发生明显的变化,因此数据点的y轴坐标近似不变。

204:分别利用典型角通过k近邻(k-nearestneighbor,knn)分类器和svm分类器对手势视频进行分类,具体为:

典型角是用于计算两个大小相同的矩阵之间距离的一种方法。

设有两个矩阵d∈rm×n和e∈rm×n,则进行如下的计算

f=dte,f∈rn×n(2)

f=uσvt(3)

其中,σ的主对角线元素就是用来衡量两个矩阵d和e之间的距离的,对应于典型角[9]。σ、u和v的意义与公式(1)中相同。

在knn分类器中首先进行视频采样,采样的方法有两种,一种是连续取样,另一种是间隔取样,连续取样为连续取若干张图片,间隔取样为每隔若干图片选取一张图片,构建大小为20×20×20的视频张量,本方法采用的剑桥手势数据库根据实验时不同的光照分为5个集合:set1、set2、set3、set4、set5,然后在数据库中选取set5(对应的光照水平比较均匀)作为训练集,set1、set2、set3、set4作为测试集。

对上述构建的张量用修改后的hosvd进行分解,得到每个视频张量所对应的三个因子矩阵,接着用典型角计算set5中的视频样本和数据库中的各个样本的三个因子矩阵之间的距离并构建训练数据集和测试数据集。最后用训练数据集去训练模型,用测试数据集进行测试,并构建混合矩阵、以及统计准确率。

在构建数据集的过程中,充分考虑了各种可能的组合情况,包括考虑单个因子矩阵、两个因子矩阵的组合、三个因子矩阵。并且采用了留一交叉验证法选取不同情况下knn分类器所对应的最优k值,然后采用此最优k值训练模型和测试数据。

数据集的构建方法与采用knn分类器的数据集的构建方法相同。上述已经表明根据因子矩阵的不同组合构建数据集,则数据集共有7种,像knn分类器一样,统计这7种情况对应的混合矩阵。同时统计这7种情况set1、set2、set3、set4对应的分类准确率和平均准确率。

首先对于svm分类器需要选择许多参数,在本次实验中采用的核函数为径向基函数,所以需要选择合适的参数g和参数c,因此采用了交叉验证的方法,实验采用了libsvm工具箱自带的用于交叉验证的python算子。其中grid.py算子(.py表示该算子为python算子)通过交叉验证获取最优参数,本方法安装了gnuplot和python两个程序,然后将数据采用grid.py算子选取最优参数g和c。

实验时的部分分类结果如图4所示,图4表示采样方式为间隔取样,并且所取列向量数目为10时各个测试集上的分类准确率,从中可以看出采用因子矩阵的组合取得了较高的分类准确率,同时使用三个因子矩阵的组合相对于采用第一个和第三个因子矩阵的分类准确率并没有提高太多,说明第二个因子矩阵和另外两个因子矩阵包含的信息有较大程度的冗余,这也与视觉化分析的结果相吻合。

图5为混合矩阵样例,表示采用间隔取样方法,且列向量数目为5时的实验结果,每一行的最左侧表示待分类的手势所属于的类别,每一列的上方表示该手势被判断成的类别,表中标注的是被错分概率最高所对应的数据,从这些数据中可以看出被判别的手势的运动方向和被错判成的手势的运动方向大体是相同的,其中不相同方向时,两者y坐标即竖直方向随时间的变化也是相近的,如表中vr误判为fc的概率最高,而且vr误判为fr的概率也较高。这表明了第一个因子矩阵表明的信息主要是运动信息即位置的变化,此外还包含了一些手势的轮廓信息。

205:改变步骤202中因子矩阵列向量的数目进行对比实验,具体为:

为了更好地看出张量分解的物理意义,本发明在进行完步骤204的实验之后,增加了一组对比实验,即改变所取的因子矩阵的列向量的数目,通过视觉化呈现结果和分类结果分析张量分解的物理意义。

可以看出随着因子矩阵列向量数目的增加,分类的准确率先增加然后保持不变或者说略有降低,在采用单个因子矩阵的典型角进行分类的时候,第一个和第二个因子矩阵的分类准确率随列向量数目的增加而增加,而第二个因子矩阵的分类准确率增幅较第一个因子矩阵较大,而采用第三个因子矩阵进行分类的准确率随列向量的数目增加先增加后减小。所以可以看出三个因子矩阵带有重要信息的列向量的位置不同,也正如视觉化呈现结果所示,三个因子矩阵中显示较明显信息的位置不同。这可能是由于受环境的因素,如光照等等而造成的。

综上所述,本发明实施例采用修改后的高阶奇异值分解方法,能更好地视觉化呈现分解的结果;手势分类和视觉化呈现相结合,更好的表现了张量分解的物理意义。

实施例3

下面结合具体的计算公式、实例对实施例1和2中的方案进行可行性验证,详见下文描述:

本次实验的数据库为剑桥手势数据库,该数据库总共包含900个样本,按手势的种类分为9类,按照图片的光照程度分为5种,分别对应了set1、set2、set3、set4和set5,每一种的光照程度下均包含9类手势,分别为五指并拢向左、五指并拢向右、五指并拢握拳、五指分开向左、五指分开向右、分开的五指并拢、v型手势向左、v型手势向右、v型手势并拢。每一个手势下又包含20个样本。每个样本内包含若干个图片,图片的数目是不一致的。样本中的一个图片对应于视频的一帧,所以通过选取若干图片就可以构成一个视频。

本方法采用准确率和混合矩阵来评估分类性能,

accuracy=a/b

其中,accuracy表示准确率,a表示正确分类的数目,b表示总的数目。混合矩阵如图5所示,可以显示某一类手势被分类的所有情况,包括准确率和错分为其他某一类手势的概率。

根据张量分解结果间的典型角、构造的数据在分类时的效果显著,在实验中构造的张量大小为20×20×20,在间隔取样且列向量数目为10时的分类效果如图4所示。将张量分解结果进行视觉化呈现时可以较明显的看出其物理意义,例如图3所示,具体分析见具体实施方案的步骤(3)。

参考文献:

[1]schuldtc,laptevi,caputob.recognizinghumanactions:alocalsvmapproach[c]//internationalconferenceonpatternrecognition.ieee,2004:32-36vol.3.

[2]scovannerp,alis,shahm.a3-dimensionalsiftdescriptoranditsapplicationtoactionrecognition[j].2007:357-360.

[3]jhuangh,serret,wolfl,etal.abiologicallyinspiredsystemforactionrecognition[c]//ieee,internationalconferenceoncomputervision.ieee,2007:1-8.

[4]刘亚楠.基于图和低秩表示的张量分解方法及应用研究[d].合肥:安徽大学,2014.

[5]l.r.tucker,somemathematicalnotesonthree-modefactoranalysis,psychometrika,31(1966),279~311.

[6]r.a.harshman,foundationsoftheparafacprocedure:modelsandconditionsforan“explanatory”multi-modelfactoranalysis,uclaworkingpapersinphonetics,16(1970),1~84.

[7]dijunluo,chrisding,henghuang.aretensordecompositionsolutionsunique?ontheglobalhosvdandparafacalgorithms[j].lecturenotesincomputerscience,2009,6634(1):148-159.

[8]]杨华勇,林晓丽,林立宇.基于格拉斯曼流形上谱聚类的视频人脸识别[j].计算机应用与软件,2014(5):168-171.

[9]章建军,曹杰,王源源.stiefel流形上的梯度算法及其在特征提取中的应用[j].雷达学报,2013,2(3):309-313.

本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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