基于低秩矩阵分析的三维骨架修复方法与流程

文档序号:12367046阅读:223来源:国知局
基于低秩矩阵分析的三维骨架修复方法与流程

本发明属于计算机应用领域,对三维骨架的修复问题。本发明介绍了一个凸的低秩矩阵恢复模型,提出了一种新的基于低秩矩阵分析的三维运动恢复方法,能够纠正并恢复不合理的以及被严重毁坏的运动信息。



背景技术:

对人体运动的研究一直是计算机图形学及计算机视觉领域的热点问题。也因此衍生了很多的研究方向如:三维运动重建,人体姿态估计,三维物体运动捕捉,人体骨骼追踪,三维模型变形等等。

三维骨架修复是三维物体运动捕捉领域的一个重要问题,在计算机图形学和计算机视觉领域都有着广泛且实用的重要应用。传统的运动捕捉系统由于造价高、操作困难等缺陷,一直难以推广使用。近年来,以Kinect为代表的深度相机可以方便快捷地采集三维物体的运动信息,得到了十分广泛的应用。然而,对于一些复杂的尤其是有遮挡的运动,Kinect并不能十分准确地重建出运动信息,采集到的骨架必须经过修复才可以使用。这就使得我们需要一个可以良好地重建出三维物体,尤其是人体运动的算法。

三维物体运动信息的重建,通常而言,需要采集到良好的三维物体的运动数据,在此基础上进行重建。然而,由于采集设备的限制,哪怕是如Kinect等的新兴流行相机,也很难采集到完整无误的运动信息。这就需要很多后期的处理和优化工作。有很多已有的算法可以根据RGB(彩色)图像或者深度图像来估计三维物体的运动。Li等(K.Li,J.Yang,and J.Jiang,“Nonrigid structure from motion viasparse representation.”IEEE Transactions on Cybernetics,vol.45,no.8,pp.1401–1413,2015.)提出了用稀疏表示的方法来估计三维姿态和相机位置。Toshev等(A.Toshev and C.Szegedy,“Deeppose:Human pose estimation via deep neural networks,”in Proc.IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2013,pp.1653–1660.)提出了用深度学习的框架来估计骨架的方法。他们将人为破坏的骨架信息放入深度神经网络中,让网络自我学习骨架特点,然后再用有损的骨架进行测试。然而由于深度神经网络需要预先训练,这种方法在得到很好结果的同时也十分耗时。Wei等(X.Wei,P.Zhang,and J.Chai,“Accurate realtime full-body motion capture using a single depth camera,”ACM Transactions on Graphics,vol.31,no.6,pp.439–445,2012.)通过一个深度相机整合了深度数据、人体几何数据等信息,建立了一个自动的运动捕捉系统,可以捕捉并重建出人体的相应运动。然而,这个系统对于修复有遮挡的骨架来说,还存在很多有待改进的空间。如何从破损的骨架中恢复出三维物体的运动信息,仍然是一个具有挑战性的问题。



技术实现要素:

由于人体骨架的运动具有很高的时间相关性,因此,三维运动流形应存在于一个低维度的子空间之中。这也就是说,将骨架信息整合到一个矩阵中时,此矩阵应为低秩矩阵。

为了更好地从破损的骨架中恢复出三维物体的运动信息,同时最小化时间成本,本发明采取的技术方案是,基于低秩矩阵分析的三维骨架修复方法,利用凸低秩矩阵恢复模型,通过最小化L1范数和核范数的和,来纠正低秩矩阵中的错误元素,从而得到一个理想的矩阵,从而修复毁坏的骨架,实现对复杂运动的准确、光滑的重建。

所述凸低秩矩阵是将破损的骨架信息整合得到的一个低秩矩阵D,低秩矩阵D的每一列,分别表示骨架的21个节点;低秩矩阵D的行代表各帧骨架节点的三维全局坐标位置;然后对矩阵进行SVD分解进行低秩验证。

利用凸低秩矩阵恢复模型,通过最小化L1范数和核范数的和,得到一个理想的矩阵,具体步骤是,将骨架修复问题建模:

D=A+E (1)

其中,D为破损的骨架信息整合构成的矩阵,A是经过矩阵修复之后得到的修复好的骨架三维坐标构成的矩阵,E是差错矩阵;

min rank(A)+γ‖E‖0 s.t.D=A+E (2)

其中,rank(A)是矩阵A的秩,‖E‖0是矩阵E的L-0范数,γ是一个平衡A与E之间的比重的权重项,γ>0,由于上述方程是NP-难解问题,所以将上述方程重新描述为,

min ‖A‖*+λ‖E‖1 s.t.D=A+E (3)

其中,‖A‖*是矩阵A的核范数,σi是矩阵A的奇异值,‖E‖1是矩阵E的L1范数,λ>0,是一个权重系数;利用增广拉格朗日方法进行最终求解。

利用增广拉格朗日方法进行最终求解具体步骤是,引入缩小变量和门限变量,并求解低秩矩阵的线性方程,再分别求解凸优化方程:

方程(3)的拉格朗日方程为:

<mrow> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>,</mo> <mi>&mu;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>A</mi> <mo>|</mo> <msub> <mo>|</mo> <mo>*</mo> </msub> <mo>+</mo> <mi>&lambda;</mi> <mo>|</mo> <mo>|</mo> <mi>E</mi> <mo>|</mo> <msub> <mo>|</mo> <mn>1</mn> </msub> <mo>+</mo> <mo>&lt;</mo> <mi>Y</mi> <mo>,</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>-</mo> <mi>E</mi> <mo>&gt;</mo> <mo>+</mo> <mfrac> <mi>&mu;</mi> <mn>2</mn> </mfrac> <mo>|</mo> <mo>|</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>-</mo> <mi>E</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,A-problem:E-problem:Y-problem:Yk+1=Yk+μ(D-Ak+1-Ek+1),μk+1=ρμk,ρ>1;

其中||·||F表示的是矩阵的F范数,E-problem中的Sδ(x)是缩小变量,其中Sδ(x)=sgn(x)max(|x|-δ,0);A-problem中的Mδ(x)是奇异值门限变量,其中Mδ(x)=USδ(Λ)V,U,V分别是对x进行奇异值分解后的左、右特征向量矩阵,Λ是对角矩阵,对角线上的元素为x的奇异值;λ和μ都是正的常数,Y是拉格朗日乘子,〈·,·>表示将两个矩阵看成长向量的内积;

再分别求解凸优化方程:

<mrow> <msub> <mi>argmin</mi> <mi>A</mi> </msub> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>S</mi> <mfrac> <mi>&lambda;</mi> <mi>&mu;</mi> </mfrac> </msub> <mrow> <mo>(</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>+</mo> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>argmin</mi> <mi>E</mi> </msub> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>M</mi> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> </msub> <mrow> <mo>(</mo> <mi>D</mi> <mo>-</mo> <mi>E</mi> <mo>+</mo> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

在增广拉格朗日解法的框架下,λ,μ和Y可以有效更新,对变量E、A进行迭代最小化,更新拉格朗日乘子Y,最终得到修复矩阵A。

本发明的特点及有益效果是:

本发明用低秩矩阵恢复的算法修复了毁坏的骨架运动信息,在此基础上完成了骨架的三维重建目标。它具有以下特点:

1、简单易懂,复杂度相对较低,易于实现。

2、利用低秩矩阵恢复的方法建模,实现时间相对较短,效果良好。

3、矩阵的秩不易定义,因此用矩阵核范数来做替代。约束性最好的L0范数具有非凸性,这使得求解变得非常困难。所以我们采用L0范数的最优凸近似L1范数进行约束,L1范数最小化是凸优化问题,可以进行线性方程的求解。

4、用增广拉格朗日的方法来求解低秩矩阵的线性方程。

附图说明:

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解:

图1为本发明方法的方法流程图;

图2为应用低秩矩阵分析方法修复后的骨架对比图;

图2(a)为Kinect采集的彩色图;

图2(b)为Kinect采集的骨架显示图;

图2(c)为经过低秩矩阵恢复处理之后的骨架显示图。

具体实施方式

本发明利用低秩矩阵分析的方法,对采集到的毁坏骨架信息进行修复,从而实现三维运动信息的重建。请审核看可否按这样的文本递交申请。

为了更好地从破损的骨架中恢复出三维物体的运动信息,同时最小化时间成本,本发明采取的技术方案是,利用凸低秩矩阵恢复模型,通过最小化L1范数和核范数的和,来纠正低秩矩阵中的错误元素,从而得到一个理想的矩阵,从而修复了毁坏的骨架,现对复杂运动的准确、光滑的重建。具体方法包括以下步骤:

1)将破损的骨架信息整合到矩阵D中。其中,D的每一列,分别表示了骨架的21个节点,D的行,代表了各帧骨架节点的三维全局坐标位置。

2)验证矩阵低秩性:

对矩阵进行SVD分解进行低秩验证。

3)将骨架修复问题建模:

D=A+E (1)

其中,D为毁坏的骨架三维坐标信息构成的矩阵,A是经过矩阵修复之后得到的修复好的骨架三维坐标构成的矩阵,E是差错矩阵。根据骨架运动信息的时间相关性,矩阵A也应该是低秩的。

min rank(A)+γ‖E‖0 s.t.D=A+E (2)

其中,rank(A)是矩阵A的秩,‖E‖0是矩阵E的L-0范数,γ是一个平衡A与E之间的比重的权重项,γ>0。由于上述方程是NP-难解问题,所以将上述方程重新描述为,

min ‖A‖*+λ‖E‖1 s.t.D=A+E (3)

其中,‖A‖*是矩阵A的核范数,σi是矩阵A的奇异值。‖E‖1是矩阵E的L-1范数,λ>0,是一个权重系数。这样做的目的是,核范数可以较好地替代矩阵A的秩,相对于矩阵E的L-0范数而言,矩阵E的L-1范数是凸函数,方程求解过程更方便。

4)利用增广拉格朗日方法进行最终求解

利用增广拉格朗日方法进行最终求解具体步骤是,引入缩小变量和门限变量,并求解低秩矩阵的线性方程,再分别求解凸优化方程。

方程(3)的拉格朗日方程为:

<mrow> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>,</mo> <mi>&mu;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>A</mi> <mo>|</mo> <msub> <mo>|</mo> <mo>*</mo> </msub> <mo>+</mo> <mi>&lambda;</mi> <mo>|</mo> <mo>|</mo> <mi>E</mi> <mo>|</mo> <msub> <mo>|</mo> <mn>1</mn> </msub> <mo>+</mo> <mo>&lt;</mo> <mi>Y</mi> <mo>,</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>-</mo> <mi>E</mi> <mo>&gt;</mo> <mo>+</mo> <mfrac> <mi>&mu;</mi> <mn>2</mn> </mfrac> <mo>|</mo> <mo>|</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>-</mo> <mi>E</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,A-problem:E-problem:Y-problem:Yk+1=Yk+μ(D-Ak+1-Ek+1),μk+1=ρμk,ρ>1。

其中||·||F表示的是矩阵的F范数,E-problem中的Sδ(x)是缩小变量,其中Sδ(x)=sgn(x)max(|x|-δ,0);A-problem中的Mδ(x)是奇异值门限变量,其中Mδ(x)=USδ(Λ)V,U,V分别是对x进行奇异值分解后的左、右特征向量矩阵,Λ是对角矩阵,对角线上的元素为x的奇异值;λ和μ都是正的常数,Y是拉格朗日乘子,<·,·>表示将两个矩阵看成长向量的内积;

再分别求解凸优化方程:

<mrow> <msub> <mi>argmin</mi> <mi>A</mi> </msub> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>S</mi> <mfrac> <mi>&lambda;</mi> <mi>&mu;</mi> </mfrac> </msub> <mrow> <mo>(</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>+</mo> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>argmin</mi> <mi>E</mi> </msub> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>M</mi> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> </msub> <mrow> <mo>(</mo> <mi>D</mi> <mo>-</mo> <mi>E</mi> <mo>+</mo> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

在增广拉格朗日解法的框架下,λ,μ和Y可以有效更新,对变量E、A进行迭代最小化,更新拉格朗日乘子Y,最终得到修复矩阵A。

下面结合附图和具体实施方式进一步详细说明本发明。

本发明利用凸低秩矩阵恢复模型,通过最小化L1范数和核范数的和,来纠正低秩矩阵中的错误元素,从而修复了毁坏的骨架,现对复杂运动的准确、光滑的重建。在附图中可以看出,经过算法处理之后,原毁坏的骨架得到了很好的修复。

1)将破损的骨架信息整合到矩阵中。其中,D的每一列,分别表示了骨架的21个节点,D的行,代表了各帧骨架节点的三维全局坐标位置。

2)验证矩阵低秩性:

由于人体骨架的运动具有很高的时间相关性,因此,整合的骨架矩阵D应为低秩矩阵。对矩阵进行SVD分解进行低秩验证。

3)将骨架修复问题建模:

D=A+E (1)

其中,D为毁坏的骨架三维坐标信息构成的矩阵,A是经过矩阵修复之后得到的修复好的骨架三维坐标构成的矩阵,E是差错矩阵。根据骨架运动信息的时间相关性,矩阵A也应该是低秩的。

min rank(A)+γ‖E‖0 s.t.D=A+E (2)

其中,rank(A)是矩阵A的秩,‖E‖0是矩阵E的L-0范数,γ是一个平衡A与E之间的比重的权重项,γ>0。由于上述方程是NP-难解问题,所以将上述方程重新描述为,

min ‖A‖*+λ‖E‖1 s.t.D=A+E (3)

其中,‖A‖*是矩阵A的核范数,σi是矩阵A的奇异值。‖E‖1是矩阵E的L-1范数,λ>0,是一个权重系数。这样做的目的是,核范数可以较好地替代矩阵A的秩,相对于矩阵E的L-0范数而言,矩阵E的L-1范数是凸函数,方程求解过程更方便。

4)利用增广拉格朗日方法进行最终求解

利用增广拉格朗日方法进行最终求解具体步骤是,引入缩小变量和门限变量,并求解低秩矩阵的线性方程,再分别求解凸优化方程。

方程(3)的拉格朗日方程为:

<mrow> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>,</mo> <mi>&mu;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>A</mi> <mo>|</mo> <msub> <mo>|</mo> <mo>*</mo> </msub> <mo>+</mo> <mi>&lambda;</mi> <mo>|</mo> <mo>|</mo> <mi>E</mi> <mo>|</mo> <msub> <mo>|</mo> <mn>1</mn> </msub> <mo>+</mo> <mo>&lt;</mo> <mi>Y</mi> <mo>,</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>-</mo> <mi>E</mi> <mo>&gt;</mo> <mo>+</mo> <mfrac> <mi>&mu;</mi> <mn>2</mn> </mfrac> <mo>|</mo> <mo>|</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>-</mo> <mi>E</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,A-problem:E-problem:Y-problem:Yk+1=Yk+μ(D-Ak+1-Ek+1),μk+1=ρμk,ρ>1。

其中||·||F表示的是矩阵的F范数,E-problem中的Sδ(x)是缩小变量,其中Sδ(x)=sgn(x)max(|x|-δ,O);A-problem中的Mδ(x)是奇异值门限变量,其中Mδ(x)=USδ(Λ)V,U,V分别是对x进行奇异值分解后的左、右特征向量矩阵,Λ是对角矩阵,对角线上的元素为x的奇异值;λ和μ都是正的常数,Y是拉格朗日乘子,〈·,·〉表示将两个矩阵看成长向量的内积;

再分别求解凸优化方程:

<mrow> <msub> <mi>argmin</mi> <mi>A</mi> </msub> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>S</mi> <mfrac> <mi>&lambda;</mi> <mi>&mu;</mi> </mfrac> </msub> <mrow> <mo>(</mo> <mi>D</mi> <mo>-</mo> <mi>A</mi> <mo>+</mo> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>argmin</mi> <mi>E</mi> </msub> <mi>L</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>E</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>M</mi> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> </msub> <mrow> <mo>(</mo> <mi>D</mi> <mo>-</mo> <mi>E</mi> <mo>+</mo> <mfrac> <mn>1</mn> <mi>&mu;</mi> </mfrac> <mi>Y</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

在增广拉格朗日解法的框架下,λ,μ和Y可以有效更新,对变量E、A进行迭代最小化,更新拉格朗日乘子Y,最终得到修复矩阵A。

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