郭瑾,高偉,劉德山,王林松
在動畫技術方面,三維人體動畫是具有挑戰性的課題之一。它具有廣泛的應用前景,在仿真訓練、影視制作、娛樂游戲、虛擬現實等諸多領域有著重要的應用。目前運動捕獲方法由于其數據逼真度高、細節豐富,已經成為高質量的人體運動數據的主要來源,在動畫制作中被廣泛采用[1-6]。但是該方法存在三個問題。第一是使用不便。以Vicon運動捕獲系統為例,它要求運動者身著緊身衣并在各關節處貼上反光小球[7-8]。這對技術型的體育運動如滑冰、體操等,易造成動作變形,影響技術分析。第二是捕獲數據的造價高、代價昂貴。運動捕獲的本質是記錄運動數據再重放,不同運動都要重新采集,十分耗時耗力。第三是捕獲數據量龐大、缺少結構化信息和運動數據實時性差等缺點。需對數據進行預處理才能符合人們的需求。相比起運動捕獲設備,各種二維視頻是記錄運動的主要載體,它們更容易獲得并且其記錄過程不會對運動者造成影響。如果能夠重用已有的二維視頻運動數據,根據視頻內容合成出三維虛擬人體的運動,將能夠大大降低動畫制作成本。同時這種方法將提高運動生成的實時性,使即時交互的三維視頻游戲成為可能,具有廣闊的應用前景。
要根據二維視頻內容驅動實現三維虛擬人動畫,需要在二維視頻和三維運動數據間建立映射關系,這種映射關系中包括二維視頻的關鍵幀提取、二維人體姿態的建立、二維數據的三維化以及三維虛擬人動畫的實現等。因此,基于二維視頻提取出決定人體運動姿態的關鍵幀、二維數據的三維化等關鍵問題的解決是實現二維視頻內容驅動實現三維虛擬人動畫的關鍵。
本文提出了一個新的二維視頻驅動的三維虛擬人動畫的實現方法。首先,基于動態幀的關鍵幀提取算法從二維視頻中構建二維關鍵幀集合。其次,基于二維關鍵幀構建二維人體骨骼模型。最后,利用小孔成像原理和勾股定理計算得到關節特征點的深度坐標,從而得到了反映人體動畫的三維數據。本文以NOBODY二維視頻為實驗數據,不僅解決了利用運動捕獲方法存在數據造價高、存儲空間龐大、數據重用性差等缺點,又保證實現的三維虛擬人動畫具有高度逼真性和實時處理能力,驗證了該方法的有效性。
基于動態幀的關鍵幀提取算法,首先確定動態幀中每個像素的代表灰度集合,然后通過計算視頻中每一幀和動態幀之間的距離來確定關鍵幀,基于此從二維視頻中提取出決定人體運動的二維關鍵幀集合[9]。
動態幀中某一像素的代表灰度集合記錄了最有可能代表該像素的灰度集合,像素(i,j)的代表灰度集合g(i,j)具有如下特征:(1)g(i,j)中各灰度值能代表鏡頭中像素(i,j)處更多的灰度值;(2)g(i,j)中各相鄰灰度值的差別較大。
動態幀像素(i,j)處代表灰度集合(i,j)的構造方法如下:
(1)計算鏡頭中每一幀的各像素(i,j)的灰度值,第n幀中像素(i,j)的灰度值計算如式(1)所示。

其中,Rn(i,j),Gn(i,j),Bn(i,j)分別為該像素的紅、綠、藍分量.為了加快計算速度,同時考慮到一個鏡頭持續時間一般不會超過20 min(1 min不超過3000幀),所以直方圖縱坐標未歸一化,縱坐標為橫坐標對應的灰度級在該像素出現的次數,直方圖Hb(i,j)的計算如式(2)所示。

式中:N是該鏡頭中幀的總個數;B是直方圖的顏色灰度級個數。為加快計算速度,顏色灰度級設為128級。δ(·)為沖激函數。
(2)按照直方圖中像素的灰度值進行排序,如果第m個灰度值 gm(i,j)與相鄰灰度值差的絕對值 dm(i,j)=︱gm(i,j)-gm+1(i,j)︱很小,則選取它們中較大的一個灰度值作為代表,而將另一個灰度值去掉。
最后得到的灰度值可能有多個,這些灰度值作為像素(i,j)的代表灰度集合g(i,j),如圖2所示,就存在兩個代表灰度值。通過以上步驟,可以得出整個鏡頭在各個像素的代表灰度集合,這樣,動態幀的每個像素對應于它的代表灰度集合。
計算鏡頭所有幀和動態幀之間的距離,幀間距離的定義如式(3)所示:

式中:fi為鏡頭的第i幀;fk為鏡頭對應的動態幀;W為幀的寬度;H為幀的高度。由此得到整個鏡頭與動態幀之間的距離曲線D(fi,fk),曲線上的最大值表明了所對應的幀與動態幀的差別較大,這是由于出現了新的對象引起的,最小值通常代表了視頻的背景,所以取曲線上的極值點所對應的幀作為關鍵幀。
鏡頭的關鍵幀提取算法如下:
(1)讀入鏡頭當前幀,根據式(1)計算每個像素的灰度值,同時根據式(2)修改各像素在灰度直方圖中對應的值,并將修改后的值存儲到三維數組中;
(2)判斷當前幀是否是鏡頭的最后一幀,如果不是,則將下一幀設為當前幀,轉向(1),否則轉向(3);
(3)根據上節介紹,計算該鏡頭的動態幀;
(4)根據式(3)計算關鍵幀;
(5)算法結束。
NOBODY機器人舞蹈視頻利用本節基于動態幀的關鍵幀提取算法得到的二維關鍵幀截圖,如圖1所示:

圖1 NOBODY機器人舞蹈二維關鍵幀截圖
通過上一節方法獲取的二維關鍵幀包含了三維虛擬人動畫的關鍵運動信息,本文中人體運動數據通過多自由度層次結構骨骼模型來表示,其結構模型,如圖2所示:

圖2 多自由度的層次結構模型
該模型由14個關節點組成,各關節點采用樹形結構組織,root(胯)關節點為樹形人體骨架的根結點,從根關節點向人體骨架的各個末端關節逐層延伸形成根結點的各個子樹。考慮到人體骨架四肢部分在人體運動中變化最明顯,本文將描述運動的方法從關節層上升到骨骼層,將人體骨架中四肢部分的8 段骨骼作為運動特征表示對象,提取14個關節點和這8 段骨骼信息作為三維虛擬人的運動特征。
本文采用的是一種通過人體運動圖片序列進行數據處理的方法采集運動數據,并根據二維圖像進行人體三維運動的重構,從而建立三維虛擬人運動數據庫。本文對運動數據的捕獲是根據傳統的屏幕取點方式進行的。在多層次骨架模型的基礎上,先獲取NOBODY機器人的骨骼信息已確定骨骼長度。通過數據輸入單選框選擇要輸入的關節點的名稱,在圖中相應的位置雙擊就可得點的坐標。首先選擇一幅人體動作圖像作為標準圖像,根據標準圖像的信息獲取骨骼長度。可以作為標準圖像的圖片的要求是:身體各個骨骼自然面向觀眾,這樣所有骨骼的正面都與圖片平行,因此骨骼兩點的距離就是骨骼的長度。然后取一系列動作序列圖像,逐個將每幅運動圖像用相同的方法即屏幕取點方式實現二維特征點的輸入。非標準圖像的骨骼角度往往呈各種方向,而不是與圖片法向量垂直的,標準圖像和非標準圖像的二維關節點信息。完成圖像序列的輸入的同時也就完成了三維虛擬人的二維關鍵幀動作庫的構建,如圖3所示:

圖3 標準圖像和非標準圖像的二維關節點信息
基于二維骨骼數據,進一步計算反映人體運動的三維數據。這里采用了小孔成像原理和勾股定理,根據骨骼長度及其在圖片上的投影長度計算出各骨骼與圖片平面之間的夾角,從而計算出深度信息,再利用骨骼的樹狀結構,通過計算得到骨骼在空間中的深度坐標。
設任意相鄰兩關節特征點的二維坐標為(x1,y1)和(x2,y2),即其在圖像平面上的投影點坐標。設該相鄰特征點之間骨骼的長度為h。由勾股定理,此骨骼與X-Y平面的夾角?為:

由此得到深度信息:

為了消除關節點深度信息可能出現的二義性,本文設計使用了三維觀察界面和控制面板,采用人機交互的方法來手動調整骨骼的深度坐標。于是用完成了三維虛擬人的三維關鍵幀動作庫的構建。
本文基于NOBODY舞蹈機器人的二維視頻構建了三維虛擬人的三維關鍵幀動作庫,利用三維虛擬人的最小骨骼模型實現了NOBODY舞蹈機器人的三維虛擬人動畫。三維虛擬人最小骨骼模型的 NOBODAY舞蹈機器人的關鍵幀截圖,如圖4所示:


圖4 NOBODY機器人舞蹈骨骼模型三維關鍵幀
本文提出了一種基于二維視頻驅動實現三維人體動畫的方法。首先基于動態幀的關鍵幀提取算法從二維視頻中構建了二維關鍵幀集合;其次基于二維關鍵幀構建二維人體骨骼模型;接著利用小孔成像原理和勾股定理計算得到關節特征點的深度坐標,從而得到了反映人體動畫的三維數據,最后基于NOBODY舞蹈機器人的二維視頻驅動實現了三維虛擬人最小骨骼模型的三維動畫,表明了本文采用方法的正確性和有效性。進一步的研究工作將集中處理屏幕取點方式以減小誤差以及消除關節點深度信息可能出現的二義性問題。
[1]Dasgupta A, Nakamura Y.Making feasible walking motion of humanoid robots from human motion capture data[c].Proceedings of IEEE International Conference on Robotics and Automation ,Detroit , MI, 1999, 2: 1044- 1049.
[2]Delaney B.On the trail of the shadow woman: the mystery of motion capture [J]. IEEE Computer Graphics and Applications,1998, 18(5):14-19.
[3]Pullen K,Bregler C.Motion capture assisted animation :texturing and synthesis[C].The 29th annual conference, San Antonio,2002:501-508.
[4]Lee J, Chai JX, Reitsma PSA, Hodgins JK, Pollard NS. Interactive control of avatars animated with human motion data[C].ACM Trans. on Graphics, 2002, 21(3): 491-500.
[5]Chai J X, Hodgins J K. Performance animation from low-dimensional control signals [J]. ACM Transactions on Graphics, 2005.24(3): 686-696.
[6]Ran L, Shakhnarovich G, Hodgins J, et al.Learning silhouette features for control of human motion data [J].ACM Transactions on Graphics. 2005,24(4): 1303- 1331.
[7]Hirose M ,Ogawa K. Honda humanoid robots development[J].Philosophical Transactions of the Royal Society A: Mathematical Physical and Engineering Sciences,2007,365(1850):ll-19.
[8]Nakaoka s, Nakazawa A. Task model of lower body motion for a biped humanoid robot to imitate human dances[C]//Proc of 2005 IEEE/RSJ Interna- tional Conference on Intelligent Robots and Systems. Edmonton: IEEE, 2005:3157-3162.
[9]李玉峰.基于動態幀的視頻關鍵幀提取算法研究[J].天津科技大學學報,2009,24(4):69-72.