胡思翔 孟 偉
(廣東工業(yè)大學 自動化學院,廣東 廣州510006)
動作捕捉技術(shù)在影視行業(yè)中的使用比較成熟和普遍,捕捉系統(tǒng)把專業(yè)演員的動作數(shù)據(jù)捕捉下來并做特定處理后,再與影視作品中的角色模型綁定,可以得到三維虛擬動畫。目前使用的姿態(tài)捕捉系統(tǒng)主要分為傳感器捕捉和光學捕捉兩大類。前者使用更為成熟,其特點是傳輸速度快、獲得的姿態(tài)數(shù)據(jù)更準確,缺點是成本較高、而且穿戴設(shè)備使用起來不太方便。相比之下光學捕捉剛好相反,光學捕捉也有兩種:無標記的和有標記的。本文的研究對象是無標記的捕捉系統(tǒng),即普通的2D 圖像或視頻作為輸入,用目標檢測和特征提取的方法來捕捉人體的關(guān)節(jié)點數(shù)據(jù)[1]。雖然因其性能不穩(wěn)定還沒有廣泛使用,但是其易用性、靈活性和低成本等優(yōu)勢是不應(yīng)被忽略的。
人體姿態(tài)估計是計算機視覺中一個重要且具有挑戰(zhàn)性的任務(wù),長久以來都受到關(guān)注。近幾年國內(nèi)外的眾多學者提出了相當可觀的卷積神經(jīng)網(wǎng)絡(luò)模型和其他輔助方法來進行人體姿態(tài)估計,涵蓋了單人到多人,二維到三維,圖片到視頻[2]。不過人體姿態(tài)是一個復雜的非線性模型,環(huán)境噪聲、遮擋、空間深度歧義性是這一任務(wù)的主要阻礙。如果輸入對象是視頻數(shù)據(jù),要輸出幀率高、平滑穩(wěn)定的姿態(tài)也是一個難點?,F(xiàn)有的方法多是基于圖像的三維姿態(tài)估計[3],或者是對于單人視頻的估計[4]。實際的動作捕捉應(yīng)用對象很多時候面對的是多人場景,而且角色必須要與虛擬的物理空間有所接觸,因此我們提出從視頻中的三維多人估計模型,以滿足實際需求。
圖1 本文提出基于矯正單元的多人動作捕捉網(wǎng)絡(luò)結(jié)構(gòu)原理圖。輸入是二維RGB視頻,在每秒9 幀的幀率下可以穩(wěn)定輸出三維姿態(tài),經(jīng)過數(shù)據(jù)格式變換和綁定,最后可以得到三維動畫
三維姿態(tài)估計一般分為兩種:一種是回歸式——直接從二維數(shù)據(jù)里回歸關(guān)節(jié)點的三維坐標,這要求數(shù)據(jù)要有三維標注,這往往難以獲得。另一種是提升式[5]——先獲取二維的姿態(tài),然后在二維的基礎(chǔ)上訓練一種映射方法提升到三維空間。本文的工作將圍繞提升式展開,目前的二維估計方法比較成熟,我們將重點放在三維估計的實現(xiàn)特別是多人目標上。時域卷積充分利用視頻流不同時間點的關(guān)鍵信息來推斷三維姿態(tài),將人體關(guān)鍵點連接關(guān)系看作圖結(jié)構(gòu)是實現(xiàn)圖卷積的先決條件,然后可以從全局和局部共同提取骨骼的三維關(guān)系。之前的方法將重點放在對像素空間的特征學習和大規(guī)模數(shù)據(jù)訓練上,沒有很好利用人體運動學、空間物理關(guān)系、人體拓撲結(jié)構(gòu)等先驗信息[6],對于單目三維姿態(tài)推測僅僅依靠神經(jīng)網(wǎng)絡(luò)的學習是不夠的。從一些模型的實際使用中會發(fā)現(xiàn)多目標的空間相對位置錯誤、與地面接觸有穿透和騰空、姿態(tài)不自然的傾斜和相互遮擋等一些常見問題。因此本文針對上述問題提出在時域圖卷積神經(jīng)網(wǎng)絡(luò)模型下的校正單元,利用人體運動先驗知識輔助網(wǎng)絡(luò)的訓練,提高姿態(tài)捕捉的準確性。將輸出的三維姿態(tài)數(shù)據(jù)進行格式轉(zhuǎn)換,可以導入到三維動畫設(shè)計軟件中與各種虛擬角色模型綁定,最后實現(xiàn)簡便高效的捕捉系統(tǒng),模型結(jié)構(gòu)設(shè)計如圖1。
目前的單人三維估計和多人二維估計方法比較成熟,而多人三維估計還有諸多挑戰(zhàn)。文獻[7]提出多視角的方法,雖然有良好的效果,但是需要專門的數(shù)據(jù)集,而且難以從日常場景中采集數(shù)據(jù)。本文立足于單目視頻數(shù)據(jù),以更低成本實現(xiàn)多人動作捕捉。當前時域卷積和圖卷積是實現(xiàn)姿態(tài)估計的兩種重要方法,結(jié)合這兩種方法的優(yōu)點也成為了熱門的研究方向[8]。真實世界中不同目標距離相機遠近各不同,反映在圖像中就是目標所占像素不同,因此需要從二維空間里推斷多目標的三維分布,本文采用的方法是深度估計,將深度信息反饋到時域圖卷積可以實現(xiàn)多人三維估計,這是多人與單人的不同之處。
文獻[5]提出的時域卷積網(wǎng)絡(luò)利用姿態(tài)在時域上的連續(xù)性,從二維姿態(tài)輸入中進行時域的空洞卷積提升到三維空間。時域卷積源自于RNN 和LSTM,文獻[4]避開RNN 網(wǎng)絡(luò)在時域上不能并行處理,并且在輸入與輸出之間的梯度長度是固定的,這樣對于不同的長度的輸入序列都可以穩(wěn)定訓練而不至于梯度消失和爆炸。網(wǎng)絡(luò)還采用了空洞卷積以獲得長時域信息,而不局限于上下兩幀。模型對視頻中的三維估計效果很好,但不適用于多人情況。從文獻[9]和[8]中得到啟發(fā),將圖卷積應(yīng)用到時域卷積,能夠獲取更好的關(guān)節(jié)點空間信息。骨骼關(guān)節(jié)點數(shù)據(jù)形式就是一種圖結(jié)構(gòu),在文獻[9]之前的圖卷積方法基本都是學習卷積層的權(quán)重參數(shù),而對于從二維關(guān)鍵點到三維空間的復雜非線性變換,理解關(guān)節(jié)點之間的空間關(guān)系以及每個關(guān)節(jié)點對其他關(guān)節(jié)點的影響是不能忽視的另一個重點。人體骨骼動態(tài)是一種非規(guī)則的復雜結(jié)構(gòu),利用圖卷積進行三維姿態(tài)估計可以克服這一限制,模型同時提取局部和全局姿態(tài)信息以適應(yīng)遮擋情況。局部與全局優(yōu)化如圖2 所示。由于視頻流中的人體姿態(tài)具有連續(xù)性,同時具有局部動態(tài)與局部靜態(tài)以及暫時性遮擋需要同時依賴上下幀的輔助和圖卷積對姿態(tài)空間的推測,本文提出的網(wǎng)絡(luò)結(jié)構(gòu)中圖卷積與時域卷積是同時進行的。為了適應(yīng)多人估計,針對時域卷積和圖卷積分別做了相應(yīng)改進。類似于文獻[4]的網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建四個時域卷積模塊,每一個由批歸一化、殘差連接、ReLU 損失函數(shù)與隨機失活等卷積層組成。每兩個時域模塊之間有一個圖卷積模塊,考慮到多人估計的要求,在時域圖卷積的基礎(chǔ)上結(jié)合目標的深度信息,使得多人姿態(tài)有真實的空間分布和相對位置關(guān)系。
圖2 人體姿態(tài)局部優(yōu)化與全局優(yōu)化結(jié)構(gòu)示意圖
文獻[10]采用自上而下的方法先檢測圖像中的所有關(guān)鍵點,然后按照PAF(partaffinityfield)原理將同屬一個目標的關(guān)節(jié)點組合在一起,可以適應(yīng)視頻流的多人二維姿態(tài)估計。在人體姿態(tài)估計之前,還有一個分支任務(wù)——使用MaskRCNN[11]先對視頻中人物預先采樣,在靜止伸展的狀態(tài)下進行二維姿態(tài)估計,以獲得每個目標的標準骨骼模型,用于三維姿態(tài)估計和校正單元,然后檢測視頻流中每一幀所有人體目標,輸出人物標記與邊框。對目標的深度估計是在二維估計關(guān)節(jié)點坐標和目標檢測與邊框回歸等基礎(chǔ)上進行的,對于每個由回歸邊框分割出的目標,選擇骨盆關(guān)鍵點P 為人體基準,根據(jù)[12]提出的方法,以針孔相機的成像原理來計算目標到相機的距離。P=(xp,yp,zp),其中Zp表示到相機的距離。僅僅從二維圖像估計距離缺乏支持條件,于是設(shè)計了一個新的測量尺度k:
其中αx,αy分別表示焦距除以X 軸與Y 軸的距離因子,Areal,Aimg分別表示人體在真實空間(單位:mm2)與圖像空間(單位:pixel2)的面積。在給定相機參數(shù)情況下,k 用實際空間面積與成像空間面積的比值來近似表示目標到相機的絕對深度。然后根據(jù)成像原理可以得到距離d:
從單目視頻中的三維人體姿態(tài)估計,因為多人情況下的相互遮擋/自遮擋、空間歧義性、人物動作快慢變化和環(huán)境噪聲導致的抖動,直接從姿態(tài)估計網(wǎng)絡(luò)中輸出的數(shù)據(jù)是不準確的,這種錯誤是分為兩個層次的: 一個是關(guān)節(jié)點坐標輸出及其連接為主的姿態(tài)本身的錯誤,另一個是姿態(tài)整體在三維空間上的錯誤。提出的校正單元就是為了系統(tǒng)解決上述問題的。
對于第一種錯誤,空間歧義性是其最大的障礙,因為一種二維姿態(tài)可以由多種三位姿態(tài)映射得到。而且人體姿態(tài)的不同關(guān)鍵點,其計算復雜度是不同的。頭部和軀干容易檢測推斷,而四肢特別是腕關(guān)節(jié)、肘關(guān)節(jié),膝關(guān)節(jié)和踝關(guān)節(jié)是最容易出現(xiàn)歧義的。因此,姿態(tài)校正單元分局部和全局兩個尺度進行優(yōu)化,如圖2 所示。
三維姿態(tài)的歧義性具體表現(xiàn)在關(guān)節(jié)點的坐標和骨骼的長度與方向上。在第二章中提到,姿態(tài)估計之前需要采集每個角色的標準模型,從標準模型的二維姿態(tài)輸出中主要獲取骨骼長度,標準骨長成為優(yōu)化三維輸出的有力參考,這種方法叫做人體測量學[13]。
圖3 人體姿態(tài)父子關(guān)節(jié)關(guān)聯(lián)與對稱結(jié)構(gòu)圖子節(jié)點與父節(jié)點的關(guān)聯(lián)姿態(tài)軌跡空間
根據(jù)預先定義的骨骼拓撲結(jié)構(gòu)和標準模型,關(guān)節(jié)連接限定和軌跡空間的限定(如圖3 所示)可以用來優(yōu)化骨骼方向[14]。
之前的姿態(tài)估計方法和基于此的動作捕捉方法主要目的是為了得到更加準確的以關(guān)節(jié)點空間坐標為核心的姿態(tài)數(shù)據(jù),他們主要聚焦于人體本身。本文的重點除了姿態(tài)準確外,還需要考慮姿態(tài)本身在空間中的分布狀態(tài)是否正確,比如身體某種不自然的傾斜,多個目標之間的相對位置關(guān)系,還考慮與地面的接觸關(guān)系是否正確,比如足部與地面不正常的穿透和騰空。上述問題還沒有受到太多關(guān)注,但是在實際使用時經(jīng)常會出現(xiàn)這些問題。與地面的接觸校正不僅僅是優(yōu)化足部關(guān)節(jié)點坐標,應(yīng)該把姿態(tài)模型看作與真實世界類似的動量體,除了要優(yōu)化整個姿態(tài)與地面的距離,還要考慮足部與地面的作用力關(guān)系,因為這種作用力關(guān)系是非線性的,無論是與地面的接觸距離還是接觸狀態(tài)都不是單一的、固定的,而且人體是非剛體結(jié)構(gòu),為了避免最終的虛擬角色動作不過于僵硬,需要考慮這些因素。
圖4 人體運動學與力學簡化模型結(jié)構(gòu)圖
在二維姿態(tài)估計的同時需要獲取初始的地面表示。因為對所有的訓練數(shù)據(jù)標注很困難,此外假設(shè)目標所處平面是沒有起伏的平坦區(qū)域,因此只標注一部分數(shù)據(jù),一方面用來獲取初始地面,另一方面可以提高校正單元對與地面接觸狀態(tài)的調(diào)整。相較于姿態(tài)的估計任務(wù),對地面的獲取相對簡化容易些。足部與地面的接觸判斷,直接的方式是檢查足部關(guān)節(jié)點坐標與初始地面之間的距離d。而根據(jù)動力學分析,地面對人體的作用力大于零時,足部與地面是接觸的。如果從二維估計的接觸標記輸出有誤,或者標記正確,但是輸出的三維姿態(tài)與地面是穿透或騰空狀態(tài),此時結(jié)合動力學的條件需要對姿態(tài)空間位置進行校正。所有的關(guān)節(jié)點坐標都需要上或下平一個偏移距離△d。
在與地面接觸校正的基礎(chǔ)上,進一步提出位姿平衡校正——主要針對人體不自然傾斜。對于人體平衡狀態(tài),有靜態(tài)的更有動態(tài)的。靜態(tài)情況只需要考慮地面支持力與重力的作用,而重點是動態(tài)的平衡。人體的每個關(guān)節(jié)點都會產(chǎn)生動量、加速度、旋轉(zhuǎn)力矩,相互之間還有復雜的作用力,與地面之間除了壓力外還有摩擦力,這些合力構(gòu)成了人體的平衡或者失衡。為了保持姿態(tài)平衡,文獻[16]提出通過動量計算來控制人體平衡。在這些方法的激勵下,本文提出了基于幾何的平衡控制法。
結(jié)合3.2 對人體質(zhì)心的預測,采用人體幾何學的方法校正人體平衡狀態(tài)。首先還是判斷人體是否失衡,判斷的先決條件是當前姿態(tài)處于與地面接觸狀態(tài),暫不考慮本身處于騰空狀態(tài)的動作。通過下面的模型可以分析人體平衡需要的條件,質(zhì)心C所處的位置應(yīng)該在地面對雙腳作用力frfl的合力f 的延長線附近,O 是f 與地面的交點。通過對一定數(shù)據(jù)的測量發(fā)現(xiàn),質(zhì)心、O與f 形成的夾角θ 在閾值之內(nèi),從失衡姿態(tài)所得的θ 會明顯偏離這個閾值。根據(jù)測量,取這個閾值為50。
圖5 人體力學分析與平衡矯正
由齊次方程組:
可求得向量k。原關(guān)節(jié)點到O 點構(gòu)成的向量為P,其圍繞k的單位向量u 旋轉(zhuǎn) θ后得到新的關(guān)節(jié)點,設(shè)為p':
Human3.6M 數(shù)據(jù)集是人體姿態(tài)估計任務(wù)最常用的數(shù)據(jù)集,它包含了360 萬張由動作捕捉系統(tǒng)在室內(nèi)環(huán)境下捕捉到的單人視頻幀,有11 位專業(yè)動作演員展現(xiàn)15 種日常行為(比如行走、站立、交談等)可以適應(yīng)單人姿態(tài)估計和相機中心坐標預測任務(wù)。根據(jù)之前的經(jīng)驗,數(shù)據(jù)集中的1,5,6,7,8 部分用來訓練,9和11 用來測試。MuPoTS-3D 數(shù)據(jù)集是一個多人三維姿態(tài)估計的數(shù)據(jù)集,包含了室內(nèi)和室外二十多種場景。視頻中每個人的真實3D 動作來自于多視角的無標記捕捉,可以適應(yīng)以人為中心和以相機為中心的坐標系。MuCo-3DHP 是另一套多人三維估計的數(shù)據(jù)集,它是通過對MPI-INF-3DHP 3D 單人數(shù)據(jù)集組合而來。MuPoTS-3D 數(shù)據(jù)集用來測試,MuCo-3DHP 用來訓練。
評估協(xié)議——目前有兩種評估協(xié)議使用較廣泛:第一種是計算預測的姿態(tài)與真實姿態(tài)關(guān)節(jié)點坐標平均誤差(MPJPE),第二種是配準之后的平均誤差[18],這種機制被稱為PA MPJPE。
本文使用的Mask R-CNN 公開的模型在編碼數(shù)據(jù)集上預先訓練,用于目標檢測和邊框回歸。對于時域圖卷積網(wǎng)絡(luò),它們的主干部分用公開發(fā)布的ResNet-50 初始化,ResNet-50 在ImageNet 數(shù)據(jù)集上預先訓練,其余部分的權(quán)重用σ=0.001 的高斯分布初始化。權(quán)重由Adam 優(yōu)化器更新,最小批量大小為128。初始學習速率設(shè)置為1x10-3,并在第17 輪訓練時減小10 倍。使用256×256 大小的輸入圖像,在訓練中進行數(shù)據(jù)增強,包括旋轉(zhuǎn)(±30°)、水平飛行、顏色抖動和合成遮擋。
姿態(tài)估計網(wǎng)絡(luò)的訓練分為兩個階段: 第一階段使用human3.6M 數(shù)據(jù)集,每段視頻中的第5 幀和第64 幀用來測試,除了human3.6M 數(shù)據(jù)集,還使用MPII 數(shù)據(jù)集,每一組訓練數(shù)據(jù)中兩種數(shù)據(jù)集各占一半。第二階段使用MuCo-3DHP 和MuPoTS-3D 數(shù)據(jù)集,為了增強數(shù)據(jù)集,每一批的數(shù)據(jù)中有一半是COCO 數(shù)據(jù)。實驗使用4 個英偉達1080ti-gpu 對時域圖卷積網(wǎng)絡(luò)進行了20 輪次的訓練。
在公開數(shù)據(jù)集上的實驗結(jié)果顯示,本文模型輸出的姿態(tài)準確性達到了單人視頻估計的水平,輸出的精度與平滑性跟目標數(shù)量和幀率有關(guān)。表1 的數(shù)據(jù)顯示,本文提出的單目多人視頻估計模型的精度與當前單人估計模型的精度相當。
三個校正單元在多個評估協(xié)議上的消融結(jié)果對比,使用兩種評估協(xié)議。數(shù)據(jù)顯示姿態(tài)矯正對于準確率提高的貢獻最大,平和矯正和接觸矯正的貢獻有限,但是對于動作捕捉的實際應(yīng)用卻至關(guān)重要,各個部分對于最終結(jié)果的效果如表2 所示,多人動作捕捉效果如圖6 所示,校正單元如圖7 和圖8 所示。
表2 在MuPoTS-3D 數(shù)據(jù)集上的預測精度量化
本文動作捕捉模型在非限定性的環(huán)境中可以對多人進行動作采集,人體姿態(tài)經(jīng)過校正之后基本符合真實的人體動作,用于三維的虛擬角色中效果良好,在不需要專業(yè)拍攝裝備和標記及其他輔助設(shè)備的情況下,可以在日常生活中獲取素材,基本實現(xiàn)了動作捕捉系統(tǒng)的簡易化設(shè)計。不過本文提出的方法只是實驗性的,取得的數(shù)據(jù)比較有限。只能采集人體主干部分的關(guān)鍵點,對于表情以及手的動作還無法有效捕捉;而且如果捕捉對象的動作速度過快、過于復雜和遮擋較多的動作都不能得到有效的輸出結(jié)果。此外,還缺乏專用于影視行業(yè)的動作數(shù)據(jù)集,神經(jīng)網(wǎng)絡(luò)能夠識別捕捉的動作基本限于日常生活范圍。這些難點將是下一步的工作內(nèi)容,同時期望本文的工作會為姿態(tài)估計和動作捕捉進一步的研究帶來啟發(fā)。
表1 使用Human3.6M 數(shù)據(jù)集在MPJPE 評估標準下與其他方法的對比
圖6 在COCO 2017 數(shù)據(jù)集上的動捕視覺效果
圖7 接觸矯正效果圖
圖8 平衡矯正效果圖