詹慧菁,黃 宇
(1.福建工程學院數(shù)理學院,福建 福州 350118;2.成都理工大學工程技術學院,四川 成都 614000)
姿態(tài)捕捉即為檢測目標運動時的動作或表情,并將其變換為數(shù)字化的抽象技術,捕捉結果展現(xiàn)了不同時間點上目標的姿態(tài)。隨著計算機和圖形學技術的飛快發(fā)展,運動捕捉技術已經(jīng)廣泛應用在動畫制作、康復訓練以及電影特效制作等眾多領域[1]。一些學者也紛紛投入到此項研究中。例如,有學者利用雙Kinect傳感器實現(xiàn)姿態(tài)捕捉。通過關節(jié)點自由度向量描述運動姿態(tài),使用卡爾曼濾波算法跟蹤姿態(tài),建立基于Kinect傳感器的姿態(tài)捕捉系統(tǒng)。蔡興泉[2]等人為改善傳統(tǒng)姿態(tài)捕捉過程中數(shù)據(jù)采集容易受環(huán)境干擾的問題,提出基于少量關鍵序列幀的姿態(tài)捕捉算法。篩選初始序列,利用運動軌跡取極值的方式建立關鍵幀序列,使用馬爾科夫模型得到初始概率矩陣和狀態(tài)轉移矩陣,將概率最大的姿態(tài)作為捕捉結果。
但上述方法僅限于在簡單場景下完成姿態(tài)捕捉,且只對單一運動姿態(tài)捕捉具有良好的效果。因此,本文面向混合運動姿態(tài)捕捉[3],深入研究了李代數(shù)算法。李代數(shù)算法由李群算法[4]衍生而來,李群屬于一種具備連續(xù)特征的變換群,是微分幾何和映射幾何的有機結合[5]。李代數(shù)則是分析李群幾何變換的工具,通過該算法分析目標運動學與動力學,可獲得更加明確的物理意義,降低復雜度。本文通過李代數(shù)描述目標剛體運動[6],得到姿態(tài)估計結果,再將估計結果映射在投影矩陣中,即可得到剛體的幀間運動,實現(xiàn)混合運動姿態(tài)捕捉。
1)噪聲點去除
在采集到的姿態(tài)捕捉原始數(shù)據(jù)中存在大量噪聲,不僅影響捕捉精度,且增加算法復雜度,所以有必要對其做預處理。由于噪聲點通常以簇的形態(tài)出現(xiàn),點和點之間的真實距離較小。因此本文利用聚類合并方式實現(xiàn)噪聲點去除[7]。
(1)
式中,Ni代表誤差向量,符合最小二乘誤差。所以將上述公式改寫為
(2)
2)缺失點補償
目標在運動過程中有可能被障礙物遮擋,或出現(xiàn)標記點重合現(xiàn)象,這些因素均會導致標記點缺失,不僅降低捕捉精度,還會造成重構圖像失真。所以缺失點補償[8]是數(shù)據(jù)預處理的另一個關鍵問題。
針對缺失點補償?shù)乃惴ㄝ^多,為最大程度滿足實時性需求,本文結合標記點間的關聯(lián)特征完成缺失點重構,具體方法如下。
針對某幀上的待處理數(shù)據(jù)Q,滿足?qi∈Q,計算qi的ε-球形鄰域,分析在該鄰域內(nèi)是否有除qi之外的數(shù)據(jù)點。若存在,表明qi周圍有缺失點,這時將鄰域內(nèi)全部點的核心坐標當作新數(shù)據(jù)點坐標,通過下述公式彌補缺失點
(3)
式中,q是合并后的特征點。經(jīng)過上述處理后缺失點基本被彌補,改善姿態(tài)捕捉數(shù)據(jù)質(zhì)量,更有利于后續(xù)數(shù)據(jù)處理。
目標特征提取是整個捕捉過程的最底層,為后續(xù)各類高級處理做準備。現(xiàn)有的特征提取方法包括非模型與模型法,其中非模型法必須基于一定假設,若假設和真實情況不符,會降低特征提取效果。為此,本文利用單高斯模型完成背景建模,再通過背景差分方式提取目標方位、形狀等信息[9]。
(5)
(6)
利用上述方法對所有像素點進行判斷,即可區(qū)分背景和前景像素,建立背景模型。
區(qū)分背景和前景后,利用背景差分法去除背景信息,圖像和背景模型相減即為目標運動區(qū)域。差分算法的主要思路如下:設定It(x,y)表示當前幀圖像,Bt(x,y)代表背景灰度值,T′是分割閾值,Dt(x,y)描述差分圖像,因此有
Dt(x,y)=|It(x,y)-Bt(x,y)|
(7)
此種方式實現(xiàn)過程簡便,能夠完整提取目標運動信息,且不會受到天氣、光照等因素影響。
姿態(tài)估計是姿態(tài)捕捉的前提,通常情況下,在一套運動中可能包括走、跳、跑等姿態(tài),如何將這些運動有效連接,是混合姿態(tài)估計的關鍵,本文利用對準曲線法完成數(shù)據(jù)驅(qū)動混合。
如果目標要完成a個指定運動M1,…,Ma,則運動混合過程如下:
步驟一:找出與骨架姿態(tài)較為相似的圖像幀,針對這些圖像幀做時間彎曲處理,建立時間彎曲曲線S(u)描述相對幀集合;
步驟二:建立調(diào)節(jié)曲線A(u),通過二維變換方式排序A(u)上所有點的相對幀,同時以旋轉的方式調(diào)節(jié)相對幀的路徑[12];
步驟三:將運動約束引入到曲線S(u)上,定義全局時間幀,判斷約束是否匹配,若匹配獲得最終混合運動結果。
該方法的混合效果不會受到運動相似性的影響,即使運動姿態(tài)非常相似,混合后依舊會獲得很好的效果,若姿態(tài)相似性較小,混合結果會更加理想。
目標運動通常利用結構化表示方式,將每個部位看作剛性物體。在混合運動中,由于姿態(tài)變化復雜,對剛體的準確描述提出更高要求。為此,利用李代數(shù)法表示剛體運動,便于估計目標運動姿態(tài)。
在連續(xù)的圖像幀間,相機和目標之間的剛體運動可利用下述歐式變換矩陣m表示
(8)
式中,R′和t′分別屬于3×3矩陣和3×1矩陣,它們實際表示的意義為相對旋轉和平移。
矩陣m的李代數(shù)表示形式如下
(9)
矩陣m可表示兩個連續(xù)幀的物體運動情況,當幀與幀之間剛體運動較小時,m的李代數(shù)表達式如下
(10)
上述操作實現(xiàn)了剛體運動的李群分解[13],將相機和剛體運動之間的坐標變換映射在李群中,能夠達到對運動目標姿態(tài)估計的目的。
利用下述公式表示三維點透視投影過程[14]
(11)
式中,P屬于一個3×4的相機投影矩陣,(x,y,z,1)是三維齊次坐標,(u,v,w)表示投影得到的圖像坐標。進而得到真實二維圖像坐標
(12)
基于李代數(shù)姿態(tài)捕捉算法其實就是結合目標姿態(tài)估計結果,通過投影矩陣P的不斷更新,確定剛體六維向量,完成姿態(tài)捕捉。將該矩陣分解成內(nèi)、外參數(shù)矩陣K和E之間的乘積[15]。內(nèi)參數(shù)矩陣描述焦距f、扭曲參數(shù)s以及核心點位置(u0,v0),表達式為
(13)
通常情況下,s=0。
外參數(shù)矩陣描述相機和目標之間的方位c和角度φ,表達式如下
E=[cφ]
(14)
若相機和運動目標發(fā)生相對運動,此時外參數(shù)出現(xiàn)變化,能夠獲取投影矩陣P新的外參數(shù)矩陣E。矩陣P的更新公式如下
(15)
式中,α、χ和θ分別代表以x、y和z軸為旋轉中心的旋轉角度。
假設SE(3)代表六維李群,而m矩陣是剛體運動SE(3)的描述公式,則此群存在的六個基表示為
(18)
此李群中的基可表示沿著x,y,z方向做平移運動(G1,G2,G3)與繞x,y,z軸做旋轉運動(G4,G5,G6)。李群在導數(shù)空間內(nèi)即可生成對應的李代數(shù)。
通過投影矩陣的不斷更新,計算出李群中六維剛體向量,生成對應李代數(shù),描述出目標運動姿態(tài),即可實現(xiàn)姿態(tài)捕捉。
仿真中,姿態(tài)測量系統(tǒng)使用STM32F103作為圖像采集裝置,采樣頻率設置為100Hz,利用藍牙實現(xiàn)仿真系統(tǒng)的上位機通信,仿真系統(tǒng)的結構組成如圖1所示。
圖1 仿真系統(tǒng)模塊架構
由于姿態(tài)圖像采集系統(tǒng)需利用攝像機,因此實驗開始前需完成攝像機定標,通過尺規(guī)在實驗場地中粘貼若干個距離相同的標志塊,在同一坐標系中估計攝像機內(nèi)部參數(shù)。此外,為增強實驗公平性,還需設定如下假設:
目標運動假設:目標始終在規(guī)定區(qū)域內(nèi)運動;攝像機以設定方式運動,且總能采集到目標完整圖像;運動目標沒有遮擋;混合運動的類型已知。
環(huán)境假設:光照強度始終不發(fā)生改變;攝像機參數(shù)固定,背景顏色統(tǒng)一;所有方法均在相同硬件配置下進行實驗。
目標假設:目標所穿衣物與背景區(qū)分明顯;已知目標的初始運動姿態(tài)和幾何參數(shù)。
數(shù)據(jù)處理效果影響著最終捕捉結果,假設目標為行走狀態(tài),利用本文方法、雙Kinect傳感器算法和少量關鍵序列幀算法處理初始數(shù)據(jù),得到的處理結果分別如圖2所示。
圖2 不同算法數(shù)據(jù)預處理結果
由圖2能夠看出,初始數(shù)據(jù)點非常雜亂,經(jīng)過雙Kinect傳感器算法處理后,能夠大概看清人體姿態(tài),但是下半身數(shù)據(jù)點依舊混亂;少量關鍵幀序列方法的處理效果較差,冗余數(shù)據(jù)點較多;而本文針對噪聲點和缺失點均進行處理,重構后的數(shù)據(jù)已經(jīng)可以清晰看出是人體行走姿態(tài),為姿態(tài)捕捉奠定良好基礎。
由于本文研究是面向混合運動的,因此,仿真中選取正面行走、正面站立和側面站立三種不同姿態(tài),動作變換順序如圖3所示。分別利用上述三種算法捕捉人體運動姿態(tài),捕捉結果分別如圖4-6所示。
圖3 實際混合運動姿態(tài)圖
圖4 李代數(shù)算法混合運動捕捉結果
圖5 雙Kinect傳感器算法混合運動捕捉結果
圖6 少量關鍵幀序列方法混合運動捕捉結果
觀察圖4-6可知,李代數(shù)的捕捉結果與實際人體運動姿態(tài)相符,對于三種混合姿態(tài)均表現(xiàn)出精準的捕捉效果;雙Kinect傳感器算法的捕捉順序與實際人體姿態(tài)變換順序不同,這是因為姿態(tài)2和姿態(tài)3較為相似,該方法對相似動作的特征提取效果不佳,因此影響捕捉結果;而少量關鍵幀序列算法在捕捉姿態(tài)3時受到背景噪聲影響,得到的結果并不是想要捕捉的姿態(tài)。
本文算法之所以表現(xiàn)出超高的捕捉能力,是因為通過李代數(shù)方式表示剛體運動可準確描述不同幀間變化情況,同時使用線性運動混合算法,即使動作特征十分相似,也能很好地識別出姿態(tài)特征,提高捕捉精度。
利用圖像序列捕捉目標運動姿態(tài)已經(jīng)成為學術界研究焦點。如何處理采集的數(shù)據(jù),提高混合運動姿態(tài)捕捉效果是本文探究的關鍵問題。通過對冗余點的去除和缺失點修復,得到姿態(tài)捕捉的關鍵信息,利用李代數(shù)算法描述剛體運動,再將表示結果映射在投影矩陣中,計算李群分解系數(shù),即可捕捉到幀間剛體運動情況實現(xiàn)姿態(tài)捕捉。但是,本次研究依舊存在很多不足,實驗中的混合姿態(tài)較為簡單,在今后研究中應面向更加復雜的混合運動姿態(tài)。