導讀:本文將從圖形角度介紹數位人建模和動畫關鍵技術的相關研究工作,例如人臉建模、頭髮編輯、虛擬服裝等,主要包括以下幾大部分:
在ACM Multimedia2021 上發表了影片肖像胖瘦調整的口頭報告論文,主要是調整影片中人臉的胖瘦,達到從視覺上看不出明顯修整的自然效果。
##雙下巴去除是發表在Siggraph 2021 的論文。人臉編輯中去雙下巴是比較難的,既涉及紋理又涉及幾何。如果所示,第一排是原始的影像,透過調節參數可以使雙下巴逐漸消失(第二排)。
給肖像畫去頭髮就是將給定的照片中人物的頭髮去掉。可以做頭髮的編輯,例如幫人物換一套頭髮,如果保留原來的頭髮會對合成的結果產生幹擾。在數位人的立體重建中,如果保留原始頭髮的話,會對紋理產生幹擾。我們的方法可以獲得沒有頭髮紋理幹擾的三維重建結果。
#這是元宇宙裡面的新時尚,提供一張照片,將虛擬衣服合成到人的身上,可以隨心所欲的穿新衣服。
在永續發展當中,時尚產業存在著大量問題。虛擬服裝提供了一個很好的解決方案。
例如,左邊是真實衣服,右邊是虛擬衣服。可以看出,虛擬衣服和真實衣服是非常相近的。
2022 百度世界大會中數字人希加加的衣服模型和動畫都是由我們提供的。 #
上圖是電影中的數位人,以及虛擬整形的工作。
我們要研究的是如何建立高精度的三維人臉重建方法。一類方法是採集使用者照片,使用 MVS 來重建三維模型,但這種方法對睫毛處理效果較差。因為睫毛部分有幾何訊息,會對重建造成乾擾,眼部區域不精確。
相關的研究工作非常多,例如人臉幾何和毛髮重建、眼瞼眼球重建等,但是沒有一個可行方法可以準確地編輯睫毛。
① 基於三分圖的摳圖方法
要編輯睫毛,可以使用摳圖把睫毛摳出來,摳圖其實是解一個病態方程,如下圖所示,這是一個基於三分圖的自然摳圖範例,能得到很好的結果。但這個方法有一個缺點,需要輸入一個三分圖,而要建立三分圖,是非常困難的。
② 摳圖資料集
對於摳圖資料集近年來工作也很多,例如下圖的CVPR2009 的一個資料集。
③ 藍幕摳圖
藍幕摳圖在電影特效裡面用的非常多,通常會用綠幕或藍幕,然後透過一些三角測量方法計算前景蒙版的值。
① 資料集合基線方法介紹
我們要解決的是睫毛的摳圖。左邊輸入的是包含眼睫毛的照片,透過摳圖網EyelashNet,把mask的數值算出來。
② 研究動機
睫毛區域存在幾何紋理,在三維重建參數化的時候,對結果產生很大的干擾,效果非常不好,如果靠美工去修就非常耗時耗力,所以需要一種方法能自動把睫毛摳出來。
#③ 主要挑戰
如果手動移除睫毛,很費時費力。使用 Gabor 濾波方法,效果也仍然不好。也可以用圖像摳圖方法,但是資料集建構非常困難。如果使用藍幕摳圖,睫毛生長在眼瞼上,使得背景圖例如眼瞼和眼皮無法被分離和替換,另外人是會眨眼的,使得睫毛採集的時候難以保持靜止,那麼想要採集多個嚴格對齊而顏色不同的睫毛是很困難的。
④ 睫毛資料採集
我們將睫毛塗上螢光劑,打開UVA閃光燈,就能看到螢光效果,進而得到睫毛的分割結果。但這還是不夠的,還需要進一步處理。
⑤ 睫毛蒙版計算
#我們使用上一個步驟獲得的資料集作為輸入,用摳圖網路去預測真正的摳圖結果。但如果只用原始資料集,效果也不是很好,而且我們沒有 ground truth。我們設計了虛擬合成的方法 Render EyelashNet 進行預熱,再用實驗結果去預測得到一個估計的結果,結合人工,把那些不好的結果篩選剔除,最終得到了帶有初始蒙版的資料集。之後就可以用這個資料集去訓練,得到一個細化的結果,細化的結果放入資料集,再去訓練,經過迭代最後得到一個比較好的資料集。
① 採集裝置
我們搭建了一套採集系統,包括16 個相機、365 奈米的紫外線閃光燈、補光系統等,具體參數可以參考截圖。
② 睫毛上色和眼部定位
我們邀請了許多浙大的同學,在睫毛上色圖上螢光劑,人們要保持不動,然後用雷射定位眼睛。
開啟和關閉紫外線閃光燈的結果比較:
##③ 矯正對齊############理想的情況下輸入的兩個對照圖是沒有偏移的,但是人的眼皮很容易動的,會有偏差,我們使用FlowNet2得到一個光流場,使用光流場結果對螢光睫毛進行偏移矯正,進而得到一個嚴格對齊的圖片,這樣就獲得了分割結果。 ##########
① GCA 網路
推理階段我們主要用的發表於2020 年AAAI 的GCA 網路。
GCA 網路的輸入是RGB 影像和一個三分圖,輸出是睫毛蒙版,我們前面的分割結果可以作為初始的三分圖結果,從而解決了睫毛三分圖的人工構建困難的問題。
② 蒙版推理網路
這裡把三分圖換為睫毛遮罩影像和原RGB 影像作為輸入,透過漸進式訓練的方式,結合RenderEyelashNet 訓練預熱網絡,得到一個遮罩結果,然後把這個結果再加入到輸入作為訓練集,透過人工篩選得到視覺上正確的睫毛摳圖資料集,這樣既有虛擬資料也有真實資料。用這個資料集再去訓練和推理,最後得到預測版的睫毛蒙版。然後再放入訓練集,再迭代,通常兩次就能打到所期望的結果。
③ 人工選擇
使用再先進的軟硬設備也無法保證睫毛採集的準確性,我們透過人工選擇把一些不好的結果去掉,確保訓練資料的準確性。
④ 基準網路
訓練基線網路後,輸入一張圖片進行測試,得到比較好的結果。對於未知的圖像,我們並不知道它的三分圖是怎麼樣的,我們直接輸入一個灰階圖,一樣可以得到很好的睫毛預測結果。
① 訓練資料集
我們對12 個眼睛表情和15 個視圖進行睫毛數據的捕捉。
② 測試資料集
為了驗證我們的方法,在測試的時候,既使用了我們自己採集的數據,同時也使用了網路上的一些圖片數據。
#我们通过渐进式迭代两次后,得到的结果已经非常好了,和真值比较接近。
③ 方法对比
我们和目前最好的几种方法做了对比,不管是视觉上还是定量上,我们的方法都显著地好过以前的方法。
④ 消融实验
我们也做了消融实验,验证我们的方法各个部分是不可或缺的。
⑤ 结果展示
我们用了互联网上的一些照片进行验证,这些照片是没有 Ground Truth 的。但对于这些照片,我们的方法仍然能计算出比较好的睫毛抠图结果。
⑥ 应用
我们与腾讯 NEXT 工作室合作,把该方法用于高精度三维人脸重建,睫毛区域已经高度逼真。
另外一个应用是睫毛的美化编辑。获得睫毛后,可以改变其颜色或把睫毛变长。但这个方法应用在戴眼镜、光线强弱明显的地方,结果会有偏差。
我们提出了 EyelashNet,这是第一个高质量的睫毛抠图数据集,包含 5400 个高质量捕获的睫毛抠图数据和 5272 个虚拟睫毛抠图数据。
我们提出了一个专门设计的荧光标记系统来捕捉高质量睫毛图像和遮罩。
我们的方法在睫毛抠图上实现了当前最先进的性能。
这项工作是为了模拟宽松衣服。我们和马里兰大学、腾讯 NEXT 工作室合作,相关论文发表在 Siggraph2022 上。这个工作提出基于深度学习的宽松衣服实时预测方法,可以很好地处理大幅度动作,并支持可变的模拟参数。
這項工作的一項核心技術是虛擬骨骼,這是一組使用剛性變換與線性混合模擬方法控制服裝變形的模擬骨骼。利用虛擬骨骼,我們可以有效率地模擬寬鬆服裝的複雜形變,而且這些骨骼可以作為輸入,引導服裝細節的生成。
#讓服裝動起來一般有兩類方法,一種是物理方法,這種方法計算起來費資源;另一種方法是數據驅動的,它通過從真實的數據中學習並去驅動,這種方法相對較快,有著很好的性能。
近年來,機器學習和深度學習的方法越來越多,但這些方法,要不是預測靜態情況下的服裝形變,或是預測緊身衣服的動態形變。但實際上,像裙子之類的服裝很多都是寬鬆的,儘管有些方法能預測寬鬆衣服形變,但對於大幅度動作的形變預測不太好。而且目前方法都無法支援可變參數的。
我們的研究主要有兩點貢獻,第一個是使用深度學習方法預測寬鬆衣服的複雜形變,我們將服裝形變拆解為兩部分-低頻部分和高頻部分。使用虛擬骨骼表示低頻部分的形變,並使用它來推斷高頻部分;第二個貢獻是使用身體的動作結合物理模擬參數作為輸入,使用該方法處理兩種輸入的異質性。
① 虛擬骨骼產生方法
先用模擬方法得到一個ground truth 的訓練集,對這些訓練集做拉普拉斯順滑處理,得到低頻的Mesh,然後做Skin Decomposition 處理,得到虛擬骨骼和權值。
② 運動網路
透過身體的運動序列得到虛擬骨骼的運動序列,透過運動網路預測低頻形變訊息,使用低頻的資訊預測高頻的信息,最後得到模擬結果(最右邊圖形)。
③ 模擬參數變數
我們想要針對不同參數變數都能做評估,透過RBF 網路預測出我們沒看到的模擬參數結果,這樣就能使用一套網路即使參數不同也能做預測。
#① 資料準備
首先要產生真值數據,我們使用 Houdini Vellum Solver 解算器,大約模擬了四萬幀的動畫。我們沒有採用真人的動捕結果,而是採用了網路的視訊動作。這是因為我們希望模擬大幅度動作,但真人的動作其動作比較小。
② Skin Decomposition
#低頻形變序列我們使用蒙皮分解來獲取虛擬骨骼,得到結果是一個線性混合蒙皮的模型,這個模型包括一個Rest Pose 和每根骨骼對應的蒙皮權重。也得到了每一幀虛擬骨骼的平移和旋轉。虛擬骨骼沒有層次關係,沒有父骨骼和子骨骼這樣的關係,而且每個骨骼有自己的旋轉和平移。
另外,虛擬骨骼是沒有真正的現實意義的,虛擬骨骼是每個特定動畫中獲取的。我們使用 Motion Network 處理身體的輸入,每個網路對應不同的身體模擬參數,輸入只有關節的旋轉和角色的平移,輸出是對應物理參數的 Mesh 推斷結果。
③ 動作網路
#動作網路依序推斷低頻和高頻部分。
#低頻部分使用循環神經網絡GRU 將輸入的身體動作轉換為虛擬骨骼的旋轉和平移,使用循環神經網路有個好處是能夠獲得之前幀的信息,這樣更好捕獲動態效果,低頻形變可以用虛擬骨骼線性混合蒙皮來獲取。
動作網路可以用來預測高頻部分,一個是GRU 獲取高頻特徵,一個是GNN 獲得低頻部分特徵,把兩部分特徵透過MLP 來得到高頻資訊。將高頻和低頻結果相加後得到最終結果。
為了處理物理模擬參數輸入,我們訓練了許多不同動作的Motion Network,相同動作的輸出對應的參數模擬結果,我們使用RBF神經網路把這些結果加起來,加權係數取決於模擬參數和對應網路的模擬參數的距離,並在計算距離之前使用多層感知機將參數投影到一個空間。
6、結果
#在即時模擬時,在不改變模擬參數的情況下,寬鬆衣服都可以模擬得非常好。############################### ###左側的模擬結果和ground Truth 是非常接近的,右邊是處理可變參數的。 ##########
另一個問題是如何選取虛擬骨骼的數目。我們實驗發現,低頻部分,數目太少效果不好,太多也沒多大幫助,80 是比較好的結果。但對於高頻部分,虛擬骨骼的數量是越多越好,這樣可以更好地表現細節。
#寬鬆是指衣服離人體的距離,紅色部分錶示更遠,藍色表示緊身部分,可以看出我們的結果(最右邊)更好。
這是低頻和高頻情況下和真值的對比圖,我們的方法和ground truth 更接近。
從視覺上看不同方法的對比,我們的效果雖然和ground truth 有一點點差異,但相對更好,不管高頻還是低頻部分,都比較接近。
同時也做了定量的分析,例如RMSE、STED 等指標,結果顯示明顯好於以前的方法,即使對於緊身衣服和傳統方法也相當。
#RBF 消融實驗
7、未來展望與總結
在動作非常大的情況下,模擬結果上的腿可能穿過衣服,這是因為碰撞避免是透過能量網加進去的,以後也可以採用其他skinning method 獲得更好的結果。
##################高精度人臉重建和動畫在許多應用程式中很重要,例如遊戲、虛擬人、元宇宙,都需要即時的處理,也是一個很大的挑戰。另外服裝涵蓋了人體 80% 以上,也是數位人重要的組成部分。在圖形應用中,近距離我們可能會比較關注人臉,但距離稍微遠一點,我們更關注服裝。我覺得以後的發展方向是用低成本方法來建構高度逼真、即時的數位人應用。 ##########
A1:虛擬骨骼是算出來的,換一套衣服需要重新生成新的骨骼,數目和變換也不一樣。在推理的時候是即時的計算出來的。
A2:還是很方便的,之前沒學過的人經過訓練很快就會學會。即使從無到有設計一套衣服,可能一兩個小時就能設計一件很複雜的衣服。
#以上是數位人建模和動畫關鍵技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!