本發(fā)明屬于計(jì)算機(jī)應(yīng)用領(lǐng)域,對(duì)三維骨架的修復(fù)問題。本發(fā)明介紹了一個(gè)凸的低秩矩陣恢復(fù)模型,提出了一種新的基于低秩矩陣分析的三維運(yùn)動(dòng)恢復(fù)方法,能夠糾正并恢復(fù)不合理的以及被嚴(yán)重毀壞的運(yùn)動(dòng)信息。
背景技術(shù):
對(duì)人體運(yùn)動(dòng)的研究一直是計(jì)算機(jī)圖形學(xué)及計(jì)算機(jī)視覺領(lǐng)域的熱點(diǎn)問題。也因此衍生了很多的研究方向如:三維運(yùn)動(dòng)重建,人體姿態(tài)估計(jì),三維物體運(yùn)動(dòng)捕捉,人體骨骼追蹤,三維模型變形等等。
三維骨架修復(fù)是三維物體運(yùn)動(dòng)捕捉領(lǐng)域的一個(gè)重要問題,在計(jì)算機(jī)圖形學(xué)和計(jì)算機(jī)視覺領(lǐng)域都有著廣泛且實(shí)用的重要應(yīng)用。傳統(tǒng)的運(yùn)動(dòng)捕捉系統(tǒng)由于造價(jià)高、操作困難等缺陷,一直難以推廣使用。近年來,以Kinect為代表的深度相機(jī)可以方便快捷地采集三維物體的運(yùn)動(dòng)信息,得到了十分廣泛的應(yīng)用。然而,對(duì)于一些復(fù)雜的尤其是有遮擋的運(yùn)動(dòng),Kinect并不能十分準(zhǔn)確地重建出運(yùn)動(dòng)信息,采集到的骨架必須經(jīng)過修復(fù)才可以使用。這就使得我們需要一個(gè)可以良好地重建出三維物體,尤其是人體運(yùn)動(dòng)的算法。
三維物體運(yùn)動(dòng)信息的重建,通常而言,需要采集到良好的三維物體的運(yùn)動(dòng)數(shù)據(jù),在此基礎(chǔ)上進(jìn)行重建。然而,由于采集設(shè)備的限制,哪怕是如Kinect等的新興流行相機(jī),也很難采集到完整無誤的運(yùn)動(dòng)信息。這就需要很多后期的處理和優(yōu)化工作。有很多已有的算法可以根據(jù)RGB(彩色)圖像或者深度圖像來估計(jì)三維物體的運(yùn)動(dòng)。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.)提出了用稀疏表示的方法來估計(jì)三維姿態(tài)和相機(jī)位置。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.)提出了用深度學(xué)習(xí)的框架來估計(jì)骨架的方法。他們將人為破壞的骨架信息放入深度神經(jīng)網(wǎng)絡(luò)中,讓網(wǎng)絡(luò)自我學(xué)習(xí)骨架特點(diǎn),然后再用有損的骨架進(jìn)行測(cè)試。然而由于深度神經(jīng)網(wǎng)絡(luò)需要預(yù)先訓(xùn)練,這種方法在得到很好結(jié)果的同時(shí)也十分耗時(shí)。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.)通過一個(gè)深度相機(jī)整合了深度數(shù)據(jù)、人體幾何數(shù)據(jù)等信息,建立了一個(gè)自動(dòng)的運(yùn)動(dòng)捕捉系統(tǒng),可以捕捉并重建出人體的相應(yīng)運(yùn)動(dòng)。然而,這個(gè)系統(tǒng)對(duì)于修復(fù)有遮擋的骨架來說,還存在很多有待改進(jìn)的空間。如何從破損的骨架中恢復(fù)出三維物體的運(yùn)動(dòng)信息,仍然是一個(gè)具有挑戰(zhàn)性的問題。
技術(shù)實(shí)現(xiàn)要素:
由于人體骨架的運(yùn)動(dòng)具有很高的時(shí)間相關(guān)性,因此,三維運(yùn)動(dòng)流形應(yīng)存在于一個(gè)低維度的子空間之中。這也就是說,將骨架信息整合到一個(gè)矩陣中時(shí),此矩陣應(yīng)為低秩矩陣。
為了更好地從破損的骨架中恢復(fù)出三維物體的運(yùn)動(dòng)信息,同時(shí)最小化時(shí)間成本,本發(fā)明采取的技術(shù)方案是,基于低秩矩陣分析的三維骨架修復(fù)方法,利用凸低秩矩陣恢復(fù)模型,通過最小化L1范數(shù)和核范數(shù)的和,來糾正低秩矩陣中的錯(cuò)誤元素,從而得到一個(gè)理想的矩陣,從而修復(fù)毀壞的骨架,實(shí)現(xiàn)對(duì)復(fù)雜運(yùn)動(dòng)的準(zhǔn)確、光滑的重建。
所述凸低秩矩陣是將破損的骨架信息整合得到的一個(gè)低秩矩陣D,低秩矩陣D的每一列,分別表示骨架的21個(gè)節(jié)點(diǎn);低秩矩陣D的行代表各幀骨架節(jié)點(diǎn)的三維全局坐標(biāo)位置;然后對(duì)矩陣進(jìn)行SVD分解進(jìn)行低秩驗(yàn)證。
利用凸低秩矩陣恢復(fù)模型,通過最小化L1范數(shù)和核范數(shù)的和,得到一個(gè)理想的矩陣,具體步驟是,將骨架修復(fù)問題建模:
D=A+E (1)
其中,D為破損的骨架信息整合構(gòu)成的矩陣,A是經(jīng)過矩陣修復(fù)之后得到的修復(fù)好的骨架三維坐標(biāo)構(gòu)成的矩陣,E是差錯(cuò)矩陣;
min rank(A)+γ‖E‖0 s.t.D=A+E (2)
其中,rank(A)是矩陣A的秩,‖E‖0是矩陣E的L-0范數(shù),γ是一個(gè)平衡A與E之間的比重的權(quán)重項(xiàng),γ>0,由于上述方程是NP-難解問題,所以將上述方程重新描述為,
min ‖A‖*+λ‖E‖1 s.t.D=A+E (3)
其中,‖A‖*是矩陣A的核范數(shù),σi是矩陣A的奇異值,‖E‖1是矩陣E的L1范數(shù),λ>0,是一個(gè)權(quán)重系數(shù);利用增廣拉格朗日方法進(jìn)行最終求解。
利用增廣拉格朗日方法進(jìn)行最終求解具體步驟是,引入縮小變量和門限變量,并求解低秩矩陣的線性方程,再分別求解凸優(yōu)化方程:
方程(3)的拉格朗日方程為:
其中,A-problem:E-problem:Y-problem:Yk+1=Y(jié)k+μ(D-Ak+1-Ek+1),μk+1=ρμk,ρ>1;
其中||·||F表示的是矩陣的F范數(shù),E-problem中的Sδ(x)是縮小變量,其中Sδ(x)=sgn(x)max(|x|-δ,0);A-problem中的Mδ(x)是奇異值門限變量,其中Mδ(x)=USδ(Λ)V,U,V分別是對(duì)x進(jìn)行奇異值分解后的左、右特征向量矩陣,Λ是對(duì)角矩陣,對(duì)角線上的元素為x的奇異值;λ和μ都是正的常數(shù),Y是拉格朗日乘子,〈·,·>表示將兩個(gè)矩陣看成長(zhǎng)向量的內(nèi)積;
再分別求解凸優(yōu)化方程:
在增廣拉格朗日解法的框架下,λ,μ和Y可以有效更新,對(duì)變量E、A進(jìn)行迭代最小化,更新拉格朗日乘子Y,最終得到修復(fù)矩陣A。
本發(fā)明的特點(diǎn)及有益效果是:
本發(fā)明用低秩矩陣恢復(fù)的算法修復(fù)了毀壞的骨架運(yùn)動(dòng)信息,在此基礎(chǔ)上完成了骨架的三維重建目標(biāo)。它具有以下特點(diǎn):
1、簡(jiǎn)單易懂,復(fù)雜度相對(duì)較低,易于實(shí)現(xiàn)。
2、利用低秩矩陣恢復(fù)的方法建模,實(shí)現(xiàn)時(shí)間相對(duì)較短,效果良好。
3、矩陣的秩不易定義,因此用矩陣核范數(shù)來做替代。約束性最好的L0范數(shù)具有非凸性,這使得求解變得非常困難。所以我們采用L0范數(shù)的最優(yōu)凸近似L1范數(shù)進(jìn)行約束,L1范數(shù)最小化是凸優(yōu)化問題,可以進(jìn)行線性方程的求解。
4、用增廣拉格朗日的方法來求解低秩矩陣的線性方程。
附圖說明:
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解:
圖1為本發(fā)明方法的方法流程圖;
圖2為應(yīng)用低秩矩陣分析方法修復(fù)后的骨架對(duì)比圖;
圖2(a)為Kinect采集的彩色圖;
圖2(b)為Kinect采集的骨架顯示圖;
圖2(c)為經(jīng)過低秩矩陣恢復(fù)處理之后的骨架顯示圖。
具體實(shí)施方式
本發(fā)明利用低秩矩陣分析的方法,對(duì)采集到的毀壞骨架信息進(jìn)行修復(fù),從而實(shí)現(xiàn)三維運(yùn)動(dòng)信息的重建。請(qǐng)審核看可否按這樣的文本遞交申請(qǐng)。
為了更好地從破損的骨架中恢復(fù)出三維物體的運(yùn)動(dòng)信息,同時(shí)最小化時(shí)間成本,本發(fā)明采取的技術(shù)方案是,利用凸低秩矩陣恢復(fù)模型,通過最小化L1范數(shù)和核范數(shù)的和,來糾正低秩矩陣中的錯(cuò)誤元素,從而得到一個(gè)理想的矩陣,從而修復(fù)了毀壞的骨架,現(xiàn)對(duì)復(fù)雜運(yùn)動(dòng)的準(zhǔn)確、光滑的重建。具體方法包括以下步驟:
1)將破損的骨架信息整合到矩陣D中。其中,D的每一列,分別表示了骨架的21個(gè)節(jié)點(diǎn),D的行,代表了各幀骨架節(jié)點(diǎn)的三維全局坐標(biāo)位置。
2)驗(yàn)證矩陣低秩性:
對(duì)矩陣進(jìn)行SVD分解進(jìn)行低秩驗(yàn)證。
3)將骨架修復(fù)問題建模:
D=A+E (1)
其中,D為毀壞的骨架三維坐標(biāo)信息構(gòu)成的矩陣,A是經(jīng)過矩陣修復(fù)之后得到的修復(fù)好的骨架三維坐標(biāo)構(gòu)成的矩陣,E是差錯(cuò)矩陣。根據(jù)骨架運(yùn)動(dòng)信息的時(shí)間相關(guān)性,矩陣A也應(yīng)該是低秩的。
min rank(A)+γ‖E‖0 s.t.D=A+E (2)
其中,rank(A)是矩陣A的秩,‖E‖0是矩陣E的L-0范數(shù),γ是一個(gè)平衡A與E之間的比重的權(quán)重項(xiàng),γ>0。由于上述方程是NP-難解問題,所以將上述方程重新描述為,
min ‖A‖*+λ‖E‖1 s.t.D=A+E (3)
其中,‖A‖*是矩陣A的核范數(shù),σi是矩陣A的奇異值?!珽‖1是矩陣E的L-1范數(shù),λ>0,是一個(gè)權(quán)重系數(shù)。這樣做的目的是,核范數(shù)可以較好地替代矩陣A的秩,相對(duì)于矩陣E的L-0范數(shù)而言,矩陣E的L-1范數(shù)是凸函數(shù),方程求解過程更方便。
4)利用增廣拉格朗日方法進(jìn)行最終求解
利用增廣拉格朗日方法進(jìn)行最終求解具體步驟是,引入縮小變量和門限變量,并求解低秩矩陣的線性方程,再分別求解凸優(yōu)化方程。
方程(3)的拉格朗日方程為:
其中,A-problem:E-problem:Y-problem:Yk+1=Y(jié)k+μ(D-Ak+1-Ek+1),μk+1=ρμk,ρ>1。
其中||·||F表示的是矩陣的F范數(shù),E-problem中的Sδ(x)是縮小變量,其中Sδ(x)=sgn(x)max(|x|-δ,0);A-problem中的Mδ(x)是奇異值門限變量,其中Mδ(x)=USδ(Λ)V,U,V分別是對(duì)x進(jìn)行奇異值分解后的左、右特征向量矩陣,Λ是對(duì)角矩陣,對(duì)角線上的元素為x的奇異值;λ和μ都是正的常數(shù),Y是拉格朗日乘子,<·,·>表示將兩個(gè)矩陣看成長(zhǎng)向量的內(nèi)積;
再分別求解凸優(yōu)化方程:
在增廣拉格朗日解法的框架下,λ,μ和Y可以有效更新,對(duì)變量E、A進(jìn)行迭代最小化,更新拉格朗日乘子Y,最終得到修復(fù)矩陣A。
下面結(jié)合附圖和具體實(shí)施方式進(jìn)一步詳細(xì)說明本發(fā)明。
本發(fā)明利用凸低秩矩陣恢復(fù)模型,通過最小化L1范數(shù)和核范數(shù)的和,來糾正低秩矩陣中的錯(cuò)誤元素,從而修復(fù)了毀壞的骨架,現(xiàn)對(duì)復(fù)雜運(yùn)動(dòng)的準(zhǔn)確、光滑的重建。在附圖中可以看出,經(jīng)過算法處理之后,原毀壞的骨架得到了很好的修復(fù)。
1)將破損的骨架信息整合到矩陣中。其中,D的每一列,分別表示了骨架的21個(gè)節(jié)點(diǎn),D的行,代表了各幀骨架節(jié)點(diǎn)的三維全局坐標(biāo)位置。
2)驗(yàn)證矩陣低秩性:
由于人體骨架的運(yùn)動(dòng)具有很高的時(shí)間相關(guān)性,因此,整合的骨架矩陣D應(yīng)為低秩矩陣。對(duì)矩陣進(jìn)行SVD分解進(jìn)行低秩驗(yàn)證。
3)將骨架修復(fù)問題建模:
D=A+E (1)
其中,D為毀壞的骨架三維坐標(biāo)信息構(gòu)成的矩陣,A是經(jīng)過矩陣修復(fù)之后得到的修復(fù)好的骨架三維坐標(biāo)構(gòu)成的矩陣,E是差錯(cuò)矩陣。根據(jù)骨架運(yùn)動(dòng)信息的時(shí)間相關(guān)性,矩陣A也應(yīng)該是低秩的。
min rank(A)+γ‖E‖0 s.t.D=A+E (2)
其中,rank(A)是矩陣A的秩,‖E‖0是矩陣E的L-0范數(shù),γ是一個(gè)平衡A與E之間的比重的權(quán)重項(xiàng),γ>0。由于上述方程是NP-難解問題,所以將上述方程重新描述為,
min ‖A‖*+λ‖E‖1 s.t.D=A+E (3)
其中,‖A‖*是矩陣A的核范數(shù),σi是矩陣A的奇異值?!珽‖1是矩陣E的L-1范數(shù),λ>0,是一個(gè)權(quán)重系數(shù)。這樣做的目的是,核范數(shù)可以較好地替代矩陣A的秩,相對(duì)于矩陣E的L-0范數(shù)而言,矩陣E的L-1范數(shù)是凸函數(shù),方程求解過程更方便。
4)利用增廣拉格朗日方法進(jìn)行最終求解
利用增廣拉格朗日方法進(jìn)行最終求解具體步驟是,引入縮小變量和門限變量,并求解低秩矩陣的線性方程,再分別求解凸優(yōu)化方程。
方程(3)的拉格朗日方程為:
其中,A-problem:E-problem:Y-problem:Yk+1=Y(jié)k+μ(D-Ak+1-Ek+1),μk+1=ρμk,ρ>1。
其中||·||F表示的是矩陣的F范數(shù),E-problem中的Sδ(x)是縮小變量,其中Sδ(x)=sgn(x)max(|x|-δ,O);A-problem中的Mδ(x)是奇異值門限變量,其中Mδ(x)=USδ(Λ)V,U,V分別是對(duì)x進(jìn)行奇異值分解后的左、右特征向量矩陣,Λ是對(duì)角矩陣,對(duì)角線上的元素為x的奇異值;λ和μ都是正的常數(shù),Y是拉格朗日乘子,〈·,·〉表示將兩個(gè)矩陣看成長(zhǎng)向量的內(nèi)積;
再分別求解凸優(yōu)化方程:
在增廣拉格朗日解法的框架下,λ,μ和Y可以有效更新,對(duì)變量E、A進(jìn)行迭代最小化,更新拉格朗日乘子Y,最終得到修復(fù)矩陣A。