首页> 中国专利> 基于低秩顶点轨迹子空间提取的动画网格序列压缩算法

基于低秩顶点轨迹子空间提取的动画网格序列压缩算法

摘要

本发明公开了一种基于低秩顶点轨迹子空间提取的动画网格序列压缩算法,包括:1)运动分析(刚性块聚类);2)姿态对齐(低秩刚性块对齐);3)主成分分析;4)预测与量化;5)解压与重构处理五个步骤。主要流程:给定输入三维形状序列,该算法首先通过分析该输入序列的运动方式来对其分割并据此估计刚性变换矩阵从而得到顶点轨迹在低秩子空间上对齐的形状序列,接着通过主成分向量矩阵得到主成分系数矩阵,之后通过线性预测算子得到预测后的残差,以二进制文件的方式保存,最后可利用此文件重构原始的动画网格序列。本发明解决的是动画网格序列的高效压缩问题,可以应用到动态网格序列的压缩表示、高效存储和高效传输。

著录项

  • 公开/公告号CN106157339A

    专利类型发明专利

  • 公开/公告日2016-11-23

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN201610523462.0

  • 发明设计人 李桂清;何华赟;张智邦;

    申请日2016-07-05

  • 分类号G06T9/00(20060101);G06K9/62(20060101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人罗观祥

  • 地址 510640 广东省广州市天河区五山路381号

  • 入库时间 2023-06-19 00:57:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-18

    授权

    授权

  • 2017-01-04

    实质审查的生效 IPC(主分类):G06T9/00 申请日:20160705

    实质审查的生效

  • 2016-11-23

    公开

    公开

说明书

技术领域

本发明涉及计算机图形学和三维动画制作领域,尤其是指一种基于低秩顶点轨迹子空间提取的动画网格序列压缩算法。

背景技术

随着动画产业的持续发展,如何高效地存储或传输这些倾注动画师心血的产品,是另一个重要且迫切的问题。我们希望能够用较少的代价存储和传输拥有大量冗余信息的几何序列,这涉及到几何序列的紧凑表示和压缩。实际上,压缩可以看作紧凑表示的一种特例。不同于图片或视频的压缩,动画序列在传输之前,往往经过去噪平滑、顶点稠密对应等处理,因此数据的质量高,而且帧间的拓扑结构非常类似,甚至几乎完全一样。这种独特的数据模式,决定了几何序列压缩一般具有极高的压缩率和独特的处理手段。任何高效的算法都离不开处理对象自身的结构和表示方式,而紧凑表示与几何序列的表示方式密切相关。传统的、用于计算机动画的几何序列主要由三角形面网格或四边形面网格构成。因此,形状的紧凑表示可以转化为对多边形网格序列的预测(在传输前的预处理阶段,一般无法避免由量化造成的精度损失),基本思想是利用帧内的空间连续性、帧间的时间连续性来估计顶点的运动轨迹。最近,针对网格质量度量的一些研究指出,重构的绝对误差并不是决定网格视觉质量的最重要因素,换句话,在相同视觉误差的条件下,基于视觉感知的压缩技术能够达到更高的压缩比。因此,如何将视觉感知等心理学范畴的概念用数学进行建模,并最终在工程上实现,将成为未来又一重大挑战。

网格压缩技术的基本思想主要有两点:数据预测和数据量化。在预测阶段,提取源网格的子集,并利用该子集对其补集使用某种预测方法进行估计,得到对源数据的逼近。完毕后,由估计数据和源数据做差得到的余项将采用熵编码对其进行压缩。预测方法的好坏,将影响后续余项量化的效率,当预测方法适合数据自身的特点,那么余项的熵值较小,相反,则需要花费更多的比特存贮余项。预测一般分为两种:姿态的运动预测和几何细节的预测。当运动和几何细节在相邻两帧中不发生明显变化时,序列将体现较强的时空连续性。

现有很多关于网格重建质量的评估手段,用于压缩,滤波和水印等的几何处理应用。这些评估手段着眼于形状的扭曲程度。早期的方法直接计算两个待比较网格之间的几何距离,而目前的工作主要聚焦于感知角度。尽管静态网格的评估方法能够直接应用至动态网格,但也有工作专门针对动画网格序列。在这些评估方法当中,KG错误和STED错误成功地、广泛地用于动态几何压缩之中,成为最常用的评估方法。这两种方法成为常用标准的原因,是考虑了边长变化对视觉感知的影响——KG错误考虑了单个模型内部每个顶点的欧氏距离误差及其一邻域的平滑程度;STED错误则考虑了单个模型内部每个顶点的邻域边集之长度变化,以及连接相邻帧对应顶点之间的虚拟边之长度变化。

发明内容

本发明针对早期压缩工作中并没有考虑不同刚性块的不同运动对整个网格上所有顶点轨迹线的相关性影响的缺陷,提出了提出一种基于低秩顶点轨迹子空间提取的动画网格序列压缩算法,使得通过刚性变换后的顶点轨迹位于维度更低的子空间中,提高压缩率。

为实现上述目的,本发明所提供的技术方案为:一种基于低秩顶点轨迹子空间提取的压缩算法,包括以下步骤:

1)刚性块聚类

将运动物体分割为若干接近于刚性运动的块;计算每个顶点在帧间的刚性变换,并对这些刚性变换进行K-means聚类,使得每个顶点即轨迹位于相应的刚性块中;刚性块表示为其中,NS是块的数目;

2)低秩刚性块对齐

对步骤1)进行刚性变换后的新轨迹进行低秩分析,目的是估计可以令到所有轨迹位于低秩子空间的刚性变换;

记这些变换序列的集合为用来表示对齐后的网格序列,其中,是第f帧中新的三维空间嵌入;类似地,采用Pf以及来分别表示对齐后的顶点位置、形状矩阵以及形状序列矩阵;根据上述记号,建立关系:其中,j(i)表示顶点i所在刚性块的索引;

3)主成分分析

对步骤2)对齐后的形状序列矩阵进行主成份分析,计算对应的主成份方向和混合系数;在这个阶段,处理的数据不再是轨迹本身,而是每条顶点轨迹相对于平均网格的偏移轨迹;

4)预测与量化

对步骤3)产生的数据进行进一步的预测和量化;这个阶段主要利用网格自身的几何信息以及运动时的连贯性来预测既得数据,从而得到与既得数据非常接近的预测数据;其后,保存的是预测数据及其与既得数据之间的残差;残差通常是用过浮点数来表示;最终,通过算术编码器量化浮点数并得到残差的整数即近似表达,以二进制文件的方式保存;

5)解压与重构处理

解压端将利用步骤4)保存好的整数数据,包括PCA基、PCA混合系数以及锚点,通过泊松方程重构对齐后序列;紧接着,解压刚性变换并将其作用到对齐序列,最终重构原始的动画网格序列;由于涉及泊松方程,需要为原始数据寻找锚点,一方面用于使得该方程有唯一解,另一方面用于补偿由于PCA和量化过程引起的拉普拉斯轨迹误差所导致变形;

新的压缩算法的计算框架可以用下面的公式来大致描述:

其中,M是给定的数据矩阵,是作用到M上的刚性变换,Φ是主成份向量矩阵,其取值取决于变换后的M,L则是作用至主成份系数矩阵的线性预测算子,代表预测后的残差。

在步骤1)中,所述的刚性块聚类,其方法为:

通过计算每个顶点一邻域包含顶点本身的刚性变换,作为该顶点在某一时间段内的变形;具体地,对于顶点i的位置向量拟合旋转与平移变换参数最小化以下能量:

其中,表示第i个顶点的一邻域;根据帧的先后顺序,将第i个顶点的刚性变换参数排成一个序列:这个序列可以看作顶点i的刚性变换轨迹;

变换参数确定下来后,应用K-means方法对顶点进行聚类以获得近似刚性运动块;除了考虑运动的相似性外,在刚性块分割时还考虑空间上的近邻关系;

因此,给定顶点i和顶点j,定义两点间的距离如下:

d(i,j)=dm(i,j)+λ1de(i,j)+λ2dg(i,j)(3)

其中,

dm(i,j)=Σf=1NF-1(||Rif-Rjf||F2+||tif-tjf||22)

dg(i,j)=1NFΣf=1NFdg(pif,pjf),de(i,j)=1NFΣf=1NFde(pif,pjf)

使用两种距离的理由有二;第一,考虑欧氏距离能够令刚性块之间的过渡更加平滑;第二,引入测地距离可以避免因为欧氏距离很近而把位于两个拓扑不连通的刚性块聚成一类的问题;分割结束后得到若干不重合的顶点集其中,NS代表物体包含的刚性块数目。

在步骤2)中,所述的低秩刚性块对齐,其方法为:

定义为对齐后的序列的平均形状矩阵,即将寻找轨迹低维子空间的问题形式化为如下的能量:

其中,A则为的低秩估计;注意到公式(4)是一个非线性优化问题,因为A依赖于未知的刚性变换;其中一种简单的求解方法,是通过块坐标下降法,对两种不同类型的变量轮流求解;当变换估计完毕,固定变换,则A能够通过收缩阈值操作来求解;当A求解完毕并固定,求解关于变换矩阵的线性方程组;当变换被约束为刚性时,即则和能够通过SVD获得;初始化为单位矩阵,为零向量;

给出替代的建模方法,能够获得较好的局部解:

其中,λ控制数据项与调整项之间的权重关系;公式(5)的调整项用于防止陷入较差的局部最优解;为了理解陷入局部次优的原因,观察不带第二项的能量(5),其实这等价于直接对源矩阵进行PCA,并取前NB个主成份;

利用平均姿态约束来进一步松弛公式(5),其形式化描述如下:

其中,NB是用户指定的参数,用以控制矩阵A的秩;将NB设为PCA基的个数;最小化能量(6)的方法与最小化能量(4)的类似,依然采用块坐标下降法迭代求解与A。

在步骤3)中,所述的主成分分析,其方法为:

对齐后的网格序列减去平均姿态,得到每个顶点相对平均姿态对应顶点的偏移量;采用类似P的组织方式,将上述的偏移量组合为一个新的残差矩阵,即寻找NB个主成即每个行向量构成一个主成份,使得下面的公式成立:

D=CΦ,(7)

其中,是PCA的混合系数所构成的矩阵。

在步骤4)中,所述的预测与量化过程中包括的刚性变换的预测结果通过混合预测器得到PCA系数矩阵与锚点矩阵Y,周期检测后得到的PCA基与稀疏矩阵H,以及平均姿态网格数据

a)刚性变换的预测:

考察相邻两个刚性块边界之间的相对位移,定义分别为第f帧的刚性块Vi、Vj的边界点矩阵,由边界点的三维笛卡尔坐标构成;假设现在已重构了前面的一些帧,并且第f帧的刚性快Vi的所有顶点位置已重构,即近似地恢复至原始时的位置包括现在须要估计第f帧的刚性块Vj所对应的变换;该估计由两个变换插值得到,而这两个变换分别是:第f帧前k帧的刚性变换以及前1帧Vi与Vj的相对位置关系;具体如下式:

其中,分别是COBRA的预测函数,即当前时刻变换参数能够使用前k帧的对应变换参数来预测;k的取值视乎预测函数的阶数,当k=1时,使用前1帧变换参数的值;当k=2,使用前1帧变换参数的速度即由前2帧的参数差分得到;当k=3时,使用前1帧变换参数的加速度即由前3帧的参数二次差分得到,依此类推;与分别由公式(9)得到:

(q^jf,t^jf)=argminR^jf,t^jf||Gifbjf-1+sif-R^jfbjf-t^jf||F2,s.t.R^jf(R^jf)T=I,

(Gif,sif)=argminGif,sif||Gifbif-1+sif-bif||F2,s.t.Gif(Gif)T=I.---(9)

在公式(9)中,和代表从到的刚性变换,并将该变换作用至中,目的是将和的相对位置关系“迁移”至与之间;公式(8)中的参数并不是常数,而是视预测结果与真实变换之间的偏离程度而定;具体来说,根据偏离程度修正自身,分别使得与尽可能接近与修正后的两个参数参与下一帧的预测;两个参数在第一帧的初始值都设为1;通过刚性变换预测得到的残差记为

b)PCA系数矩阵与锚点矩阵Y

需要对PCA混合系数矩阵C进行预测;C看作定义在平均姿态网格上的向量场,而拉普拉斯矩阵也能够认为是每个顶点上的向量基于局部空间的线性预测器,因为该向量能够用其一邻域的其他向量进行线性混合来估计;设计一种混合了多种矩阵、具有拉普拉斯矩阵相似结构的混合预测器L;

矩阵L由余切拉普拉斯矩阵、均值拉普拉斯矩阵与最优权重矩阵三者混合而成;具体地,对平均姿态模型的每个顶点,最小化以下能量:

其中,γ是调整系数,用于调整数据项和最优化权重ωij的范数,硬约束使权重具有仿射不变性,即平均网格的第i个顶点及其一邻域进行了仿射变换,相关的ωij不变;能量(10)的第一项使权重在邻接点上均匀分布,一方面是为了得到唯一解,另一方面是限制权重过大而导致所做的预测存在较大的偏差;第二项是令到第i个顶点能够用其一邻域的顶点通过线性混合得到;当所有的ωij求解完毕,得到一个具有与经典拉普拉斯矩阵结构相同、但非零项取值不同的最优化权重矩阵;由于最小化过程在平均姿态网格上执行,当待预测数据的分布恰好与平均姿态网格顶点位置的分布相同时,预测才会与真实数据相同,因此称ωij为最优化权重;预测的准确程度与待预测数据的分布与平均姿态网格顶点位置的分布的相似程度有关;在实际应用中,只用一部分最优化权重矩阵的行向量来填充混合预测矩阵,而后者所剩下的行则由经典拉普拉斯矩阵的对应行来填充;

混合方法包括两步;首先,分别使用余切拉普拉斯矩阵、均值拉普拉斯矩阵与最优权重矩阵作用至PCA的混合系数矩阵C,得到三个新的微分系数矩阵;混合矩阵L的计算如下:分别计算每一个微分系数矩阵第i行的l2范数,取能够产生最小范数的预测矩阵的第i行作为L的第i行元素;采用上述的混合方法,其目的在于将L作用到C之后,使得到的微分系数矩阵的Frobenius范数尽可能最小;这样做能够使得后续的量化编码效率更高;

定义微分系数矩阵锚点矩阵的第i行Yi来源于C的某一行;锚点的数量NA和选择方法可参考Sorkine等人的工作;

C)周期检测后得到的PCA基与稀疏矩阵H

在给出形式化描述前,须要指出的是:原始网格动画的周期性运动,在对齐操作后依然被保留下来,并存在于残差矩阵内;当使用PCA对残差矩阵进行逼近后,周期性运动的信息将迁移至PCA基之中;换言之,只要对PCA基进行稀疏编码,即能找到潜在的重复模式;周期检测的稀疏编码的形式化描述如下:

minH||ΨH-Ψ||2+η||H||1(11)

其中,的每一列由Φ的每一列归一化所得,即每一列除以该列的模长;H是一个稀疏方阵,η则是权重调节系数,取值固定为0.01;归一化Φ能够排除模长对稀疏性的影响;一方面,当Φ存在两个具有相同朝向但长度不同的列向量时,认为两者依然具有相同运动模式,只是振幅不同;另一方面,某个列向量有可能由单个其他列向量表示,也可能由其他若干个列向量混合表示,如果第一种情况得到的系数绝对值大于第二种情况的系数绝对值的总和,那么最小化能量(11)将得到稠密解,而归一化能避免出现这种情况;

若H的第i列只有一个非零值1,且该值位于第i行,则表明不存在与Φ的第i列相同的其它列向量;若多于一个非零值,则表明可能存在相同列,这时须要判断非零值的行索引在H中对应的各列是否相同;当两个列向量夹角小于给定阈值的时候,认为它们相同;获得重复模式后,削减Φ的部分列向量,得到3NK是没有重复模式的轨迹长度;注意,随着阈值增大,NK会减少,但重建误差也会增大;另外,即使在阈值很小的情况下,并不总能保证任意动画序列都能找到重复模式;最后,采用COBRA算法来渐进式地预测和量化中的浮点数;

d)平均姿态网格数据

平均网格采用现有的静态网格压缩方法,主要分为两部分:顶点的连结关系压缩和顶点的几何位置压缩;前者使用基于顶点价驱动的连接关系压缩算法;后者采用网格高通滤波来完成。

在步骤5)中,所述的解压与重构处理,其方法为:

解码平均姿态模型后,计算得到混合预测矩阵通过求解泊松方程来重构系数矩阵具体地,给定混合矩阵微分系数矩阵以及锚点矩阵希望找到使得其微分坐标尽可能与相等;注意到不满秩,其零向量空间的维度等于网格的连通分量个数,对于封闭网格,至少需要一个已知顶点作为边界条件,泊松方程才有唯一解;在实际应用中,泊松重构的稳定性受边界条件影响,须要选择多个锚点共同构成边界条件,因此,PCA系数矩阵的泊松重构描述为如下优化问题:

minC||L~C~-C^~||F2+λΣi=1NA||Y~i-C~i||F2,s.t.λ>0,---(12)

其中,λ是控制边界条件约束程度的系数;优化上述能量等价于求解线性方程组:

U~TU~C~=U~TV~---(13)

和分别是对和的增广;增广方法是:对于在其最后一行后插入如下矩阵

对于则将添加至的末尾;λ设置为100。

本发明与现有技术相比,具有如下优点与有益效果:

1、压缩率更高、扭曲率更低

图7列出了图6例子中采用不同策略时的码率和STED扭曲值,其中包括本文算法结果以及通过实现文献等人的算法所得的结果;没有采用刚性块对齐策略、采用刚性块策略以及文献等人算法的比较结果显示,我们的算法对刚性运动比较明显的形状序列压缩效果较好;在图7中间三个例子中,本文算法性能与文献等人的互有优劣,但不明显;而在最后一个例子中,本文算法有微弱优势;

2、对刚性运动的模型压缩效果更好

我们的方法混合拉普拉斯(有对齐)对刚性运动比较明显的形状序列压缩效果较好,对于具有刚性运动特征的物体,例如Humanoid模型,能达到非常高的压缩率(码率越低越好),而且扭曲也比其他方法小。而对于表面小尺度范围充满非刚性运动的物体,例如图7中的Squat2和CowHeavy序列,在集成了局部微分坐标刚性变换预测器后,也能得到接近于L等人的结果。

附图说明

图1为本发明的压缩算法流程图。

图2为本发明实验的应用K-means方法对顶点进行聚类的结果图。

图3为本发明展示的一个为了说明陷入局部次优解的例图。

图4为本发明的刚性聚类结果图。

图5为本发明的解码流程图。

图6为本发明的测试的各类模型图。

图7为本压缩算法的码率与质量比较图。

图8为本压缩算法的所有例子的计算耗时比较图。

图9为本压缩算法中刚性块数目与重构质量的关系图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

本实施例所述的基于低秩顶点轨迹子空间提取的动画网格序列压缩算法,其具体情况如下:给定待压缩的原始动画网格序列,通过运动分析,姿态对齐,主成分分析,进一步预测得到了若干准备送入二进制编码器的残差数据,使用上下文适应二进制算术编码器(CABAC)来完成所有量化结果的编码压缩,以及后面的解码中基于泊松方程的曲面重建方法。以此为基础,本发明提出编码框架(如图1所示),解码框架(如图5所示)。

新的压缩算法的计算框架可以用下面的公式来大致描述:

其中,M是给定的数据矩阵,是作用到M上的刚性变换,Φ是主成份向量矩阵,其取值取决于变换后的M,L则是作用至主成份系数矩阵的线性预测算子,代表预测后的残差;

从概念上看,上述计算框架所产生的待压缩数据,主要包括公式(1)中除M以外的所有量。其中,含有大量的浮点数,值一般很接近0,因此可以高效地对其进行编码压缩;尽管的熵不一定随着浮点数值的减小而下降,但在实践中发现,如果的Frobenius范数越小,则减少其熵的可能性就越高。假设量化系数不变,当范数减少到一定程度,的码值会出现较多的重复;

本实施例上述的基于低秩顶点轨迹子空间提取的动画网格序列压缩算法,算法流程如图1所示,包括以下步骤:

1)刚性块聚类(运动分析)

对于输入的原始动画网格序列,通过计算每个顶点一邻域(包含顶点本身)的刚性变换,作为该顶点在某一时间段内的变形;具体地,对于顶点i的位置向量拟合旋转与平移变换参数(本节这对符号用来表示第f帧第i个点到第f+1帧的局部刚性变换,而其它节,这对符号都表示第f帧,第i个刚性块到第f+1帧相应块的刚性块变换矩阵)最小化以下能量:

其中,表示第i个顶点的一邻域;根据帧的先后顺序,将第i个顶点的刚性变换参数排成一个序列:这个序列可以看作顶点i的刚性变换轨迹;

变换参数确定下来后,我们应用K-means方法对顶点进行聚类以获得近似刚性运动块;除了考虑运动的相似性外,在刚性块分割时我们还考虑空间上的近邻关系。因此,给定顶点i和顶点j,我们定义两点间的距离如下:

d(i,j)=dm(i,j)+λ1de(i,j)+λ2dg(i,j)(3)

其中,

dm(i,j)=Σf=1NF-1(||Rif-Rjf||F2+||tif-tjf||22)

dg(i,j)=1NFΣf=1NFdg(pif,pjf),de(i,j)=1NFΣf=1NFde(pif,pjf)

分割结束后得到若干不重合的顶点集其中,NS代表物体包含的刚性块数目;

2)低秩刚性块对齐(姿态对齐)

我们对进行刚性变换后的新轨迹进行低秩分析,目的是估计可以令到所有轨迹位于低秩子空间的刚性变换,利用矩阵低秩分析方法,求出相邻帧间对应刚性块的刚性变换,以便把所有姿态对齐。对于有NF帧的序列来说,每个刚性块会对应NF个刚性变换,这些变换构成一个变换序列;NS个刚性块,就有NS个这样的变换序列。记这些变换序列的集合为用来表示对齐后的网格序列,其中,是第f帧新的三维空间嵌入;类似地,采用Pf以及来分别表示对齐后的顶点位置、形状矩阵以及形状序列矩阵;根据上述记号,我们可以建立以下关系:

其中,j(i)表示顶点i所在刚性块的索引;

定义为对齐后的序列的平均形状矩阵,即我们将寻找轨迹低维子空间的问题形式化为如下的能量:

其中,已在前面描述,A则为的低秩估计;注意到公式(4)是一个非线性优化问题,因为A依赖于未知的刚性变换;其中一种简单的求解方法,是通过块坐标下降法,对两种不同类型的变量轮流求解;当变换估计完毕,固定变换,则A可以通过收缩阈值操作(Shrinkage thresholding operator)来求解;当A求解完毕并固定,求解关于变换矩阵的线性方程组;当变换被约束为刚性时,即则和可以通过SVD获得;对于初始化,并没有严格的要求,我们初始化为单位矩阵,为零向量;

注意,当α选取“适合”于具体应用的值时,优化上述能量得到的解才是符合要求的低秩解;如果α选取不当,得到的解很有可能是次优解;我们希望α的值尽可能大,同时希望A的秩不变;但是,如果采用试错的方法寻找α,例如二分法,计算代价较大,另一方面,难以找到一种高效的确定α值的方法;因此,我们给出替代的建模方法,该方法不含与具体例子十分相关的参数,但同时能够获得较好的局部解(如图4):

其中,λ控制数据项与调整项之间的权重关系;公式(5)的调整项用于防止陷入较差的局部最优解;为了理解陷入局部次优的原因,观察不带第二项的能量(5),其实这等价于直接对源矩阵进行PCA,并取前NB个主成份;在图3中,所有的模型均具有相同的姿态,如果完全对齐,那么除去少量的数值误差,得到对齐结果秩应该为1,但通过PCA取少量的前NB个主成份,无法满足这样的要求;如果一定要使用PCA达到如下效果,有两种可能的方案;第一种,只能在迭代开始时,设置NB为一个非常大的值,然后随着迭代次数增多,慢慢将NB减少,但这样做会存在迭代次数多,计算量大的问题,而且当减少速度过快时,也可能被困于局部次优;第二种,在源序列中选定一个参考帧,计算其他帧到参考帧的刚性变换,并作为初始化结果;但这种方法存在潜在的问题,由于我们无法预先知道某个参考帧的姿态就是使得能量(5)获得局部最优的姿态,当采用选定某帧作为目标姿态时,无形中限制了解空间的范围;

调整项包含所有姿态的两两相互合,其计算量较大;为了简化计算,我们利用平均姿态约束来进一步松弛公式(5),其形式化描述如下:

其中,NB是用户指定的参数,用以控制矩阵A的秩;在我们的实验中,总是将NB设为PCA基的个数;最小化能量(6)的方法与最小化能量(4)的类似,依然采用块坐标下降法迭代求解与A;

3)主成份分析

对对齐后的形状序列矩阵进行主成份分析,计算对应的主成份方向和混合系数;在这个阶段,我们处理的数据不再是轨迹本身,而是每条顶点轨迹相对于平均网格的偏移轨迹;

将对齐后的网格序列减去平均姿态,得到每个顶点相对平均姿态对应顶点的偏移量;我们可以采用类似P的组织方式,将上述的偏移量组合为一个新的残差矩阵,即我们寻找NB个主成(每个行向量构成一个主成份),使得下面的公式成立:

D=CΦ,(7)

其中,是PCA的混合系数所构成的矩阵;

4)预测与量化

对上述步骤产生的数据进行进一步的预测和量化,目标是获得刚性变换的预测结果通过混合预测器得到PCA系数矩阵与锚点矩阵Y,周期检测后得到的PCA基与稀疏矩阵H,以及平均姿态网格数据这个阶段主要利用网格自身的几何信息以及运动时的连贯性来预测既得数据,从而得到与既得数据非常接近的预测数据;其后,我们保存的是预测数据及其与既得数据之间的残差;残差一般是用过浮点数来表示;最终,通过算术编码器量化浮点数并得到残差的整数(近似)表达,以二进制文件的方式保存;

具体过程如下:

a)刚性变换的预测

我们考察相邻两个刚性块边界之间的相对位移,定义分别为第f帧的刚性块Vi、Vj的边界点矩阵,由边界点的三维笛卡尔坐标构成;假设现在我们已重构了前面的一些帧,并且第f帧的刚性快Vi的所有顶点位置已重构,即(近似地)恢复至原始时的位置(包括),现在须要估计第f帧的刚性块Vj所对应的变换;该估计由两个变换插值得到,而这两个变换分别是:第f帧前k帧的刚性变换以及前1帧Vi与Vj的相对位置关系;具体如下式:

其中,分别是COBRA的预测函数,即当前时刻变换参数可以使用前k帧(时刻)的对应变换参数来预测;k的取值视乎预测函数的阶数,当k=1时,使用前1帧变换参数的值;当k=2,使用前1帧变换参数的速度(由前2帧的参数差分得到);当k=3时,使用前1帧变换参数的加速度(由前3帧的参数二次差分得到),依此类推;(对应旋转矩阵)与分别由公式(9)得到:

(q^jf,t^jf)=argminR^jf,tjf||Gifbjf-1+sif-R^jfbjf-t^jf||F2,s.t.R^jf(R^jf)T=I,

(Gif,sif)=argminGif,sif||Gifbif-1+sif-bif||F2,s.t.Gif(Gif)T=I.---(9)

在公式(9)中,和代表从到的刚性变换,并将该变换作用至中,目的是将和的相对位置关系“迁移”至与之间;公式(8)中的参数并不是常数,而是视预测结果(由公式(8)得到)与真实变换之间的偏离程度而定;具体来说,根据偏离程度修正自身,分别使得与尽可能接近与修正后的两个参数参与下一帧的预测;两个参数在第一帧的初始值都设为1;通过刚性变换预测得到的残差记为

b)PCA系数矩阵与锚点矩阵Y

我们需要对PCA混合系数矩阵C进行预测;为了达到更高的压缩率,我们设计一种混合了多种矩阵、具有拉普拉斯矩阵相似结构的混合预测器L;

矩阵L由余切拉普拉斯矩阵、均值拉普拉斯矩阵与最优权重矩阵三者混合而成;前两种矩阵在可以参考其他资料,这里只介绍最优权重矩阵的构造;具体地,对平均姿态模型的每个顶点,我们最小化以下能量:

其中,γ是调整系数,用于调整数据项和最优化权重ωij的范数,硬约束使权重具有仿射不变性,即平均网格的第i个顶点及其一邻域进行了仿射变换,相关的ωij不变;一般情况下,当所有的ωij求解完毕,得到一个具有与经典拉普拉斯矩阵结构相同、但非零项取值不同的最优化权重矩阵;由于最小化过程在平均姿态网格上执行,当待预测数据的分布恰好与平均姿态网格顶点位置的分布相同时,预测才会与真实数据相同,因此称ωij为(估计平均姿态网格的)最优化权重;但一般情况下,这是不可能的,因此,预测的准确程度与待预测数据的分布与平均姿态网格顶点位置的分布的相似程度有关;在实际应用中,我们只用一部分最优化权重矩阵的行向量来填充混合预测矩阵,而后者所剩下的行则由经典拉普拉斯矩阵的对应行来填充;

混合方法包括两步;首先,分别使用余切拉普拉斯矩阵、均值拉普拉斯矩阵与最优权重矩阵作用至PCA的混合系数矩阵C(此操作可参看公式(1)),得到三个新的微分系数矩阵;混合矩阵L的计算如下:分别计算每一个微分系数矩阵第i行的l2范数,取能够产生最小范数的预测矩阵的第i行作为L的第i行元素;采用上述的混合方法,其目的在于将L作用到C之后,使得到的微分系数矩阵的Frobenius范数尽可能最小

定义微分系数矩阵锚点矩阵的第i行Yi来源于C的某一行;锚点的数量NA和选择方法可参考Sorkine等人的工作;

c)周期检测后得到的PCA基与稀疏矩阵H

周期检测的稀疏编码的形式化描述如下:

minH||ΨH-Ψ||2+η||H||1(11)其中,的每一列由Φ的每一列归一化所得,即每一列除以该列的模长;H是一个稀疏方阵,η则是权重调节系数,在我们的实验中取值固定为0.01;归一化Φ能够排除模长对稀疏性的影响;一方面,当Φ存在两个具有相同朝向但长度不同的列向量时,可以认为两者依然具有相同运动模式,只是振幅不同;另一方面,某个列向量有可能由单个其他列向量表示,也可能由其他若干个列向量混合表示,如果第一种情况得到的系数绝对值大于第二种情况的系数绝对值的总和,那么最小化能量(11)将得到稠密解,而归一化能避免出现这种情况;

最小化能量(11)是经典的LASSO问题,由于H的规模较小,可以通过内点法来求解;若H的第i列只有一个非零值1,且该值位于第i行,则表明不存在与Φ的第i列相同的其它列向量;若多于一个非零值,则表明可能存在相同列,这时须要判断非零值的行索引在H中对应的各列是否相同;当两个列向量夹角小于给定阈值的时候,认为它们相同;获得重复模式后,我们可以削减Φ的部分列向量,得到 3NK是没有重复模式的轨迹长度;注意,随着阈值增大,NK会减少,但重建误差也会增大;另外,即使在阈值很小的情况下,并不总能保证任意动画序列都能找到重复模式;最后,我们采用COBRA算法来渐进式地预测和量化中的浮点数;

d)平均姿态网格数据

平均网格采用现有的静态网格压缩方法,主要分为两部分:顶点的连结关系压缩和顶点的几何位置压缩;前者使用基于顶点价驱动的连接关系压缩算法;后者采用网格高通滤波来完成;

5)解压与重构

解压端将利用保存好的整数数据,包括PCA基、PCA混合系数以及锚点;

解码平均姿态模型后,计算得到混合预测矩阵我们通过求解泊松方程(Poisson's equation)来重构系数矩阵具体地,给定混合矩阵微分系数矩阵以及锚点矩阵我们希望找到使得其微分坐标尽可能与相等;注意到不满秩,其零向量空间(Null space)的维度等于网格的连通分量个数,对于封闭网格,至少需要一个已知顶点作为边界条件,泊松方程才有唯一解;在实际应用中,泊松重构的稳定性受边界条件影响,一般须要选择多个锚点共同构成边界条件,因此,PCA系数矩阵的泊松重构可描述为如下优化问题:

minC||L~C~-C^~||F2+λΣi=1NA||Y~i-C~i||F2,s.t.λ>0,---(12)

其中,λ是控制边界条件约束程度的系数;优化上述能量等价于求解线性方程组:

U~TU~C~=U~TV~---(13)

和分别是对和的增广;增广方法是:对于在其最后一行后插入如下矩阵

对于则将添加至的末尾;λ设置为100;

综上所述,在采用以上方案后,本发明提出了一种新的、基于低秩顶点轨迹子空间提取的动画网格序列压缩算法,使得通过刚性变换后的顶点轨迹位于维度更低的子空间中,提高压缩率。本动画网格序列压缩算法的技术特点在于:

a)基于对大多数物体形状在运动过程中一般表现出近似分块刚性的特点,我们考虑了不同刚性块的不同运动对整个网格上所有顶点轨迹线性相关性的影响,通过使刚性变换后的顶点轨迹位于维度更低的子空间中,从而提高压缩率。

b)首先根据运动序列的运动方式对物体进行分割并据此估计从而使变换后的顶点轨迹位于低秩子空间上;接着,计算对齐后序列的平均网格,继而求出每帧的顶点相对于平均网格对应顶点的偏移,将每帧每顶点的偏移按照M的方式来排列,得到偏移轨迹矩阵并对其进行PCA;然后,为了进一步减少PCA混合系数的存储量,设计了一个基于混合拉普拉斯矩阵的线性预测器;

本实验经过实验验证其可行性,能广泛用于各种网格序列的压缩。实验测试的各类模型如图6所示(其中Humanoid模型刚性程度最高,即使在关节处变形也不明显;Horse模型到Squat2模型的刚性程度较低,关节处有比较明显的变形,除此之外,其他区域基本为刚性运动;CowHeavy非刚性程度比较明显的数据,基本上不存在严格意义上的刚性块),实验结果如图7所示(图7中列出了没有采用刚性块对齐与采用刚性对齐两种策略的码率与质量比较,扭曲采用STED算法来评估,码率则是每帧每个顶点的比特率;Humanoid模型刚性程度最高,即使在关节处变形也不明显;Horse模型到Squat2模型的刚性程度较低,关节处有比较明显的变形,除此之外,其他区域基本为刚性运动;CowHeavy非刚性程度比较明显的数据,基本上不存在严格意义上的刚性块;列出了上述例子采用不同策略时的码率和STED扭曲值,其中包含我们压缩算法结果以及通过实现文献等人的算法所得的结果;没有采用刚性块对齐策略、采用刚性块策略以及文献等人算法的比较结果显示,我们的算法对刚性运动比较明显的形状序列压缩效果较好;在图7中间三个例子中,本文算法性能与文献等人的互有优劣,但不明显;而在最后一个例子中,我们的算法有微弱优势;),我们的方法混合拉普拉斯(有对齐)对刚性运动比较明显的形状序列压缩效果较好,对于具有刚性运动特征的物体,能达到非常高的压缩率(码率越低越好),而且扭曲也比其他方法小。而对于表面小尺度范围充满非刚性运动的物体,在集成了局部微分坐标刚性变换预测器后,也能得到接近于等人的结果。从结果可以看出,本发明具有压缩效率高,扭曲变形小,鲁棒性强的特点,在处理大尺度刚性变换时更有优势。

图8展示每个例子在压缩应用的各个阶段的运行时间,全部数据均是单帧在不同处理阶段的平均耗时,时间的单位是毫秒;注意到刚性运动分析、聚类和解码过程并不耗时,相比之下,编码时间的影响最为严重;另外,编码阶段包含了若干子过程,其中的低秩对齐是个中计算量最大的子过程,这是由于每次迭代需要对整个数据矩阵进行SVD以及分块刚性矩阵变换拟合,而且需要比较多次的迭代才能收敛到理想的程度。

如图9所示,刚性块的数目对网格序列重建精度有影响,但并非显著;图9能量一列中,括号外的数据是没有对齐前的能量,括号中的数字是对齐后的能量;扭曲一列采用STED评估;最后一列是压缩码率;以Squat2序列为例,随着刚性块数从5到40增加,STED误差会依次下降,当块数超过20时,STED误差下降不明显;可见,单纯增加刚性块的数目对改善误差的作用有限,尤其在运动物体局部细节变化不明显的情况下,过多的刚性块不仅对改善网格质量没有帮助,反而令到码率出现上升,减低压缩性能。

以上所述之实施例子只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号