當游戲行業(yè)仍在聚焦探討如何讓AI真正落地、協助游戲的工業(yè)化制作時,網易互娛AI Lab已基于游戲研發(fā)制作中的痛點交出了一份令人驚艷的答卷。
在游戲中,各個角色存在大量動作動畫資源制作的需求,而讓游戲角色獲得如同真人一般流暢自然的動作歷來是制作者們孜孜不倦追求的目標。近年來,伴隨著游戲工業(yè)化的趨勢,光學動捕憑借其真實性和效率替代了傳統的關鍵幀制作方式,成為許多大制作端游和手游的首選方案。然而,光學動捕最大的弊端之一便是動捕數據清理所帶來的巨大工作量,該過程需要依賴人工完成,因此在整個流程中成本占比也最高。盡管此前已有學者提出了基于深度人工神經網絡的光學動捕數據自動清洗和解算方案,但該方法的性能還無法滿足實際生產環(huán)境的要求,且針對動作細節(jié)的保真度也存在一定問題。
針對這一實際生產環(huán)境中的痛點,網易互娛AI Lab提出了一種針對光學動捕數據的自動清洗和解算方法,可以直接從包含錯誤和噪音的raw markers中預測出與之對應的clean markers和骨骼動畫數據。算法精度和魯棒性都超越育碧研究院(Ubisoft La Forge)發(fā)表在SIGGRAPH 2018的方法,技術創(chuàng)新性處于國際領先水平。利用該方法,傳統光學動捕流程中所需的人工工作量可以被大幅降低。近日,網易互娛AI Lab與清華大學合作對該方案進行了系統性技術梳理,并撰寫論文《MoCap-Solver:A Neural Solver for Optical Motion Capture Data》,該文章已被SIGGRAPH 2021收錄。
技術背景
運動捕捉(Motion Capture),簡稱動捕(MoCap),指的是將真實演員的肢體動作轉換為三維虛擬角色骨骼動畫的技術。相比于傳統的關鍵幀動畫制作方式,運動捕捉技術有著巨大的優(yōu)勢,既提升了三維動作資源的真實度,又提升了其生產效率,也因此成為了當前影視、游戲行業(yè)三維人形動畫的標準制作方式。
從技術原理上劃分,運動捕捉設備可以分成兩種類型,慣性動捕設備和光學動捕設備。其中慣性動捕設備利用固定在演員關節(jié)上的加速度傳感器來獲取演員各個關節(jié)的相對運動量;而光學動捕設備則通過大量不同視角的高速相機同步拍攝演員動作,并利用多視角三維重建技術計算貼在演員身上的一批特殊標記點(marker)的三維坐標,之后再基于這些坐標解算出演員每個關節(jié)點的位置和旋轉信息。慣性動捕設備成本較低,但是由于受到慣性傳感器的精度限制,其動作捕捉的精度也明顯低于光學動捕設備。此外,由于慣性動捕設備記錄的是每個關節(jié)相對于上一時刻的相對值,無法獲取演員在三維空間中的絕對坐標,這一特性導致慣性動捕設備無法應用于多人同時動捕的場景,因為其無法定位不同演員之間的相對位置關系。由于以上原因,雖然光學動捕設備成本高昂,但卻在運動捕捉領域占據絕對統治地位。
利用光學動捕設備進行動捕的流程分為以下幾個步驟:
1.演員裝扮:演員穿著緊身動捕服裝,并在衣服表面需要捕捉的關節(jié)附近粘貼一定數量的marker點(標記點),marker點總數以及每個marker點粘貼的位置構成一套marker configuration;
2.演員標定:構建一個與演員體型相適配的人形模版模型,并獲取粘貼在真實演員衣服上的每個marker在該人形模版模型上的位置,模版模型的骨架結構叫template skeleton。構建方式一般為捕捉一小段該演員的簡單動作,然后用算法自動去擬合模版模型和marker位置,這個過程也叫range of motion(ROM)標定。當然也可以在motion builder等軟件中人工進行這種標定。
3.動作捕捉:演員在被一圈高速紅外相機圍繞的動捕場景內按照劇本表演出規(guī)定的動作,所有相機同步進行拍攝,然后動捕軟件利用多視角幾何和目標跟蹤算法,計算出每一個時刻演員身上每個marker點在三維空間中的坐標;
4.動捕數據清洗:由于遮擋、傳感器測量誤差、重建和跟蹤算法本身的誤差等原因,上一步動捕軟件輸出的marker坐標中往往存在很多錯誤,需要人工對這些錯誤進行修復,這個步驟也叫動捕數據清洗。清洗過程需要耗費大量人力,因此該步驟也是傳統光學動捕流程中成本最高的部分。
5.動捕解算:利用動捕解算軟件、基于步驟2中的演員標定信息,從捕捉到的marker序列中恢復人體各個骨骼關節(jié)的位置和旋轉信息,從而得到三維骨骼動畫數據(也叫skeletal motion或簡稱motion)。下圖對比了從不經過人工清洗的marker數據(左,也叫raw markers)和經過人工清洗的marker數據(右,也叫clean markers)中解算得到的骨骼動畫的差別。
6.動作重定向:將解算得到的骨骼動畫數據重定向到不同體型的三維虛擬角色上,變成對應角色的動畫資源。
目前業(yè)界對光學動捕數據的清洗和解算主要依賴vicon blade、vicon shogun、autodesk motionbuilder等商業(yè)軟件提供內置工具,處理流程與前文技術背景中描述一致,其特點為高度依賴人工對動捕marker數據中的錯誤進行修正,否則解算出的骨骼動畫數據會存在明顯的缺陷。典型的處理流程為,先對raw markers進行自動解算得到存在缺陷的骨骼動畫,人工對得到對動畫進行逐幀預覽,尋找存在問題的區(qū)間,然后人工糾正該區(qū)間內導致解算結果異常的marker點。不斷重復這一過程,直到整個動捕動作序列都能被正確解算。
為了解決這一實際生產環(huán)境中的痛點,育碧研究院(ubisoft la forge)的研究員Daniel Holden在2018年首次提出了一種基于深度人工神經網絡的光學動捕數據自動清洗和解算方案,并發(fā)表在圖形學頂級期刊TOG上(在SIGGRAPH 2018展示)。然而,育碧的方案雖然可以自動清洗和解算,但是該方法的性能還無法滿足實際生產環(huán)境的要求。一方面,該方法的魯棒性不足。該方法高度依賴粘貼在演員軀干上(環(huán)繞胸部和腹部的兩圈)的少量關鍵marker(也叫參考marker)的質量。一旦輸入的raw markers中包含參考marker的錯誤,該方法的解算結果就會出現明顯錯誤。而在實際動捕環(huán)境下,這些參考marker很容易因為被四肢遮擋而導致捕捉錯誤。另一方面,該方法對動作細節(jié)的保真度也存在一定問題。本質上來說,該方法基于逐幀處理的算法框架,沒有考慮相鄰動作幀之間在時間和空間上的連續(xù)性,導致其輸出的動畫存在明顯的抖動。為了解決這個問題,該方法引入了一個后處理操作對輸出的動畫進行平滑、從而抑制抖動。但是,這個平滑操作在消除抖動的同時也會抹去動作本身的運動細節(jié),降低保真度。
技術思路
針對育碧方案存在的問題,我們提出了一種全新的算法框架。由于clean markers在三維空間中的位置是由演員體型、動捕marker在演員身體(貼在動捕服)上的分布和演員的動作三方面因素決定的,得到這三個信息,我們就可以通過前向動力學(forward kinematics, FK)和線性蒙皮運算(linear blend skinning, LBS)完全恢復出對應的clean markers。
基于這一觀察,我們的核心思路為:利用大量動捕數據,訓練一個從raw markers預測上述三方面信息的深度人工神經網絡。為了更好的實現這一目標,我們首先設計了一個自編碼器(MoCap-Encoders)結構,該自編碼器包含template skeleton、marker configuration和motion三個分支,分別對應了演員的體型、marker在動捕服裝上的分布、以及演員動作。在大量動捕數據上進行訓練后,該自編碼器可以將將 template skeleton、marker configuration和motion三種數據編碼成低維空間的隱向量,也可以從隱向量中恢復出對應的原始數據。也就是說,MoCap-Encoders從大量數據中學習出了一種關于這三方面數據的更為高效、緊湊的表達。之后,我們再訓練一個從raw markers預測這三個分支隱向量的網絡(MoCap-Solver),從預測出的隱向量中可以解碼出對應的 template skeleton、marker configuration和motion。其中的motion就是需要解算的骨骼動畫,再通過前向動力學(forward kinematics, FK)和線性蒙皮運算(linear blend skinning, LBS)就可以計算出對應的清洗后的clean markers。
此外,我們還從真實數據中訓練了一個對關鍵參考marker的質量進行評估的深度人工神經網絡,利用該網絡挑選raw markers中參考marker可靠性高的幀做剛體對齊,有效避免了算法精度過渡依賴少量參考marker質量的問題,大幅提升了算法的魯棒性。
技術實現
本方法包含訓練階段和預測階段,預測階段直接以光學動捕的raw markers為輸入,自動輸出清洗后的clean markers和解算出的骨骼動畫。這里主要介紹訓練階段的做法,訓練階段包含三個重點步驟:數據準備、數據規(guī)范化(normalization),以及深度人工神經網絡結構搭建和訓練。
1.數據準備
2.數據規(guī)范化
由于真實運動包含很多人物根骨骼的全局位移和全局旋轉,這極大增加了后續(xù)人工神經網絡學習的復雜度。例如,同樣的動作在不同的位置、朝著不同的方向做,會導致捕捉的marker點三維坐標存在巨大差距。此外,由于遮擋原因,真實動補數據中包含很多跟蹤失敗的點,其表現為保持在最后一次被成功跟蹤的位置不動,隨著人物遠離該位置,這些點就會變成毫無規(guī)律的離群點,也會給后續(xù)網絡的學習造成干擾。所以數據規(guī)范化的目標有兩個:離群marker的處理和坐標系規(guī)范化。
為了處理離群marker,我們首先提取序列中每一幀所有marker之間的距離矩陣(如上圖),該矩陣記錄了所有marker兩兩之間的歐式距離,然后選擇距離矩陣最接近所有幀的距離矩陣平均值的那一幀作為序列的參考幀。之后,將每一幀與參考幀的距離矩陣進行對比,所有導致該幀的距離矩陣與參考幀的距離矩陣存在30厘米以上差異的marker點都被標記為離群marker點。離群marker點的坐標會被替換成新的位置,新的位置可以使對應幀的距離矩陣與參考幀的盡量接近。這些新的位置可以通過簡單的數學優(yōu)化方法得到。
坐標系規(guī)范化的目的是消除根骨骼全局平移和旋轉,因此需要marker的坐標由世界坐標系轉換到局部坐標系。為此,我們參考了[1]中的做法,以軀干附近(環(huán)繞胸部和腹部的兩圈)的一批marker為參考marker(如下圖),然后對序列整體的全局平移和旋轉進行修正。方法為在序列中選定一個參考幀,計算一個剛體變換使得參考幀的這批參考marker的位置與T-pose下的參考marker的位置盡量對齊(也叫剛體對齊)。通過這個操作,序列中所有幀的坐標系就由世界坐標系變換到了由T-pose定義的局部坐標系。
但是,這個操作高度依賴參考幀中的那批參考marker的質量,一旦參考幀的參考marker中存在噪音和錯誤,坐標系規(guī)范化的效果就會大打折扣,整套算法的精度和魯棒性都會大幅降低。為了解決這個問題,本發(fā)明訓練了一個對參考marker的質量進行評估的深度人工神經網絡,并利用這個網絡挑選參考marker可靠性高的幀做參考幀進行剛體對齊。該網絡的結構如下:
3.深度人工神經網絡結構搭建和訓練
接下來,我們利用上述數據和規(guī)范化方法訓練一個深度人工神經網絡結構,該網絡包含兩個模塊,如下圖所示:
其中MoCap-Encoders為一個自編碼器,包括三個分支,分別對應template skeleton、marker configuration和motion。訓練完成的自編碼器既可以將 template skeleton、marker configuration和motion三種數據編碼成低維空間的隱向量,也可以從隱向量中恢復出對應的原始數據。MoCap-Encoders的網絡結構如下圖所示:
應用/效果展示
本項目的訓練數據來源于公司采集的大規(guī)模真實動捕數據,可以大于30fps的速度對光學動捕數據進行自動清洗和解算,滿足了工業(yè)上速度要求,解算得到的骨骼動畫的骨骼點平均位置誤差小于1cm,平均旋轉誤差小于4度,滿足了游戲動畫制作的精度要求。相比于目前業(yè)界領先算法,本項目算法在動作保真度和重構marker點精度上領先,統計得到本算法的預測結果只有低于1%的幀出現了工業(yè)生產不可接受的視覺瑕疵,而目前業(yè)界領先算法則為10%。另外,本算法的魯棒性優(yōu)于業(yè)界領先算法,實驗結果表明本算法對演員軀干附近關鍵marker點精度的魯棒性比目前業(yè)界領先方法好。目前本項目算法已經集成在公司動捕數據處理的工作流中。
(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )