NEXT Studios的故事——虛擬數字人Siren的誕生(下)

遊資網發表於2019-04-19
作者簡介:顧煜,騰訊互動娛樂新體驗與技術部助理總經理,專家工程師。

本文為系列文章第2篇,點選回顧上篇內容

Project Siren Episode 4

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

上回說到渲染開發和人臉建模。那兩塊雖然也複雜,但還不是整個專案中風險最大的部分。風險,總在於整個專案中的短板。

恐怖谷效應

真正的難點,在於臉部表情。

這麼多年來,實時數字人技術,無法跨越恐怖谷,非常重要的原因,就在於臉部表情難以模擬。在靜態畫面層面,已經有很多遊戲,做到極其逼真的人像渲染。而逼真的畫面,在動起來以後,就有讓觀眾微妙的不適感。這不適感,來自於表情動畫。

下圖來自Uncharted4。

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

人類太熟悉人類的表情,一顰一笑,即使是臉上最細微的表情,我們都可以感知到。而計算機視覺打造出來的表情,缺乏靈氣。這個靈氣,就是計算機視覺最難跨過的門檻。

如果對錶情捕捉有了解,大家會說:不對啊,近年來類似的捕捉技術很多。相當多技術,可以做到實時捕捉真實表情,運用到卡通臉、甚至是動物臉上。比如Facerig的技術,就可以在消費級別的Webcam上,捕捉人臉表情,讓畫面中的卡通角色做出“一樣”的表情。

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

我們日常使用的iPhoneX,也可以有Animoji,捕捉表情,應用在卡通角色。

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

如此看來,似乎表情捕捉也並不複雜?

其實不然。很多團隊已經可以把表情用在卡通模型上,但他們還是需要很大的勇氣,才能把類似的技術用到真人模型上。因為使用卡通或者是不精確的模型,這些技術都回避了難點問題:精準的表情識別。

卡通角色,由於和真人有巨大的差異,所以人類對他們表情有很大的寬容性。卡通臉的表情,如果和真人捕捉的表情有出入——事實上一直有巨大的出入,你也不會留心到,反正卡通角色的表情怎麼做都可愛。但真人角色就不一樣的,如果表情有差別,根本不需要把兩個表情放在一起做兩兩對比,你也馬上就可以感受到。當然你不會看出這個嘴角少上翹了3度,而是會覺得表情說不出的僵硬和古怪。

換句話說,這就是恐怖谷。

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

在上圖中,橫軸代表模型逼真度,左面是完全不像真人,右面代表完全真實。縱軸代表人類對這樣模型的好感度,下面是沒有好感,上面是有好感。

卡通模型處在座標軸的左側,所以表情的誤差,並不會導致人類的好感度下降。隨著卡通模型的越來越逼真,人類的好感度也在逐漸上升。

當模型質量開始逼近完美的時候,我們會發現,隨著質量的微小提升,好感度反而出現了巨大的下降。而隨著模型進一步完美,人類的好感度才會逐漸提升。這個曲線形成了一個小山谷,這就是通常意義上的恐怖谷。

我們專案的目標物件質量,已經接近真人,所以在虛擬世界中,微小的誤差,也變得無法忍受,換言之,就是進入了恐怖谷。

表情捕捉

面對恐怖谷,並不是沒有辦法克服技術的不足。傳統電影行業就做到了。他們依賴的是更高的採集精度,更多的計算資源,以及手工精修。電影的大量合成畫面,都是經過動畫製作人員手工一幀幀調整來做到的。

但具體到我們實時領域,就不能採用如此暴力的手段。相比於電影行業,實時是我們的優勢,也是最大的詛咒。我們不能引入後期的手工精修環節,所有的計算都必須在當時發生。我們也缺少計算資源,虛擬人的程式以60幀每秒執行,而電影畫面的渲染,一幀動輒幾小時渲染,計算能力差距是天差地別。所有的計算都必須在16毫秒的時間段內做完,而且我們能依賴的也不是什麼高階電腦,而是民用級別的電腦。

鋪墊了這麼久的技術難度,另一個重要的合作伙伴,Cubic Motion,也要開始它的表演了。它是臉部表情捕捉的負責方,提供了從硬體到軟體的全部方案。

Cubic Motion在這個行業也已經耕耘多年。2016年,他們就和Epic有過合作,做出了Hellblade的動捕表情實時方案,當時質量已經相當驚豔,但可惜的是模型都還是遊戲的質量。這次再度合作,他們希望挑戰更真實的人臉捕捉。

Cubic Motion的第一個切入點,是從頭盔開始。他們醞釀多時,思考了過往種種不足,展望未來各種可能。所有的技術,都要從“頭”開始,於是,他們使用3D列印,按照模特的頭型,列印了一個假頭…...

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

這個邏輯有些奇怪,但也合理,列印假頭是為了製作頭盔,不知道頭的尺寸,怎麼製作精確尺寸的頭盔呢?而且頭盔也需要地方存放,有一個假頭,豈不是上好的支撐架子?雖然這個架子有一點點小貴。

他們使用頭盔上的攝像頭,捕捉模特的各種表情,拍成視訊,進行人工標註,生成Solver。這個Solver可以實時檢測臉部表情,生成驅動臉部Rig的資料,驅動真實的人臉。

整套技術的核心問題,都已經走通多時,這次要做的,無非就是更精準,更高效。原理已經成熟,目標也很清晰,只是到達目標的路徑,還是格外艱難。

顯而易見的問題是,這套系統依賴於其他各個模組,並不穩定。如果我們修改了基本的模型,或者修改了Rig,那幾乎可以想到,Cubic Motion的同學們又要熬夜訓練Solver了,因為Solver高度依賴其他模組,所有的細微改動,都會引起他們的變動。偏偏可悲的是,整個研發週期中,所有的模組都在瘋狂調整,沒有什麼東西是穩定的,這就總讓他們在最後一刻拼死加班調整Solver。每次演示前,大家把所有模組都除錯完了,所有資料都收集齊了,就留下Cubic Motion的人,在那裡熬夜標註。

即使沒有外部問題,這套系統的內部問題也不少,它本身也不穩定。Cubic Motion是一個上進的公司,每次演示,都在迭代自己的解決方案,每次都想玩出一些新的東西。Hellblade演示的時候使用了單目攝像頭,到Meet Mike Demo時候使用了雙目攝像頭,Siren版本中,他們又嘗試了Side Camera,就是從側面再加一個攝像頭去拍攝模特的側面。每個新的模式,單獨來看都不是大問題,但在一個複雜工程環境中,就成了巨大的問題。多地合作的時間延遲很大,每次他們調整技術,就需要重新採集表情資源去除錯自己的Solver,偏偏3D列印的攝像頭盔,並沒有多餘備份,我們這一側沒有裝置,就很難及時提供測試資料。

拋開軟體層面的問題不說,硬體層面問題也很大,頭盔的舒適度有嚴重問題。為了保證臉部表情取樣的絕對精準,這頭盔需要非常精準的固定在頭上,不能鬆動,每次的位置都要一樣。為了防止頭盔滑動,就要用力固定緊,這就造成了頭盔的舒適度不佳,會造成頭部疼痛,模特很難有長時間的續航。這個問題在後續導致了史詩級的災難,暫時按下不表。

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

為了提高合作效率,在專案中後期,我們就嘗試把幾家公司的人,全部拉到Epic辦公室,進行高強度的整合工作。每天節奏基本是半天進行各種系統除錯,資料採集,然後反饋問題給遠端的3Lateral,後面半天Cubic Motion除錯他們的系統環境。

整合的過程並不順利,由於模型也只是剛做完,3Lateral每幾天都會發更新版本過來,於是Cubic Motion的工作被時時清零,隨時要重做。我們的渲染工作倒是進展順利,和Epic的高階TA一起工作,效率很高,我們也抓緊機會,學習了更多的技術和思路。

在美國的集中整合,很快結束了,效果還是不夠理想,然而距離我們的內部彙報,時間所剩無幾了。


最終整合

雖然不理想,但時間一分一秒過去,轉眼就到了2017年底,約定好的彙報日子。

為了做這次彙報,我們要在騰訊內部辦公室搭建一個動捕棚,把所有裝置搬過去。我們團隊先是買了十幾個巨大無比的支架,做動捕鏡頭支撐,寄送到深圳,再買了無數的線材、電腦裝置。看起來並不複雜,只是對於做慣軟體開發的我們,突然去做各種佈線工程,還是非常不適應。

Epic、Cubic Motion的同學們也早早到了深圳,開始了下一輪整合。

此時的基礎模型和Rig已經相當完善,在我們分開的幾周裡面,Solver演算法質量也得到了長足的進步,渲染增強等各方面都接近了最終的質量。

故人相見,分外激動,但閒話少說,大家三下五除二,便把系統除錯完成。剩下的時間,自然還是要留給苦命的Cubic Motion,讓他們進一步提升面部捕捉質量。

這次Cubic Motion非常給力,我們在臨近彙報的前三天,已經看見了非常高質量的Solver,表情的精準度等都已經達到了很高的水準。姜冰潔的表演,可以很精準地被還原,明顯質量已經超越了以往的所有版本。這已經是一個非常好的彙報備選版本,後面還有幾天,可以慢慢除錯,進一步增強效果,看上去這次彙報的質量可以保證了。

從這個聯合專案開始算起,大半年已經過去。我們克服了各種困難,終於接近大功告成。

我們以為這就是全部挑戰了,一切盡在掌握,但後續的問題,才真讓人猝不及防。

Project Siren Episode 5

NEXT Studios的故事——虛擬數字人Siren的誕生(下)

一帆風順都只是幻想,通往目標的路途總有坎坷。

在專案將近尾聲的時候,最大的挑戰,不期而遇。

下馬威

命運先給我們來了一個小的下馬威。演示現場需要高質量的電視機做演示。我們在公司內部借了一臺Sony 85‘的電視機。我們找人把電視機搬上來後,一開機,就傻眼了,電視螢幕壞了,應該是搬動過程中,碰到了什麼地方,螢幕角落碎裂,畫面糊作一團,液晶在螢幕內慢慢暈開。

大家當時就眼前一黑,不知如何是好。上網查查,這款電視要將近5萬,怎麼看都不是一個小數目,大家一邊吃著晚飯,味如嚼蠟,一邊討論如何處理電視的問題,以及怎麼再去搞一臺電視。

好在我們很快發現,之前有誤解,那個我們以為是85’的電視,其實只有75‘。於是我們有了一種賺了3萬多的錯覺。查好網上商店的同款電視備貨情況,第二天一早衝到家電賣場,搶購了一臺同型號電視,先應付彙報,再還給其他部門。

至於那臺壞電視,也不能放過它。我們將它細心打包,寄回上海,修好以後繼續為公司服務。

這是另一場修煉。我們經歷過產品研發、上線流程,倒從來沒有做過這樣的系統工程,每個環節都會出錯,每個硬體都會損壞,每個裝置都會買錯。雖然當時是身心俱疲,但的確也是從未經歷過的寶貴體驗。

熱完身,終於,我們迎來了最大的挑戰。


歸零

臨近彙報前兩天,模特姜冰潔突發高燒,40度,渾身無力,無法再繼續工作。

起因是複雜的。那幾天工作繁忙,頭盔舒適度低,她一直覺得頭疼,但由於裝置穿脫、校準特別麻煩,即使中場休息,她也不脫裝備。外加歐美人喜歡把室內空調溫度開到巨低,亞洲人不習慣,就著涼了。眼看到了最後一刻彙報關頭,她就病倒了。

為了得到最好的精度,最大幅度還原真實演員的表現,我們一直打算用姜冰潔自己來驅動自己的模型,這樣效果會最理想。然而模特臨場病倒,即使她再敬業,發燒到站不起來,肯定是不能再用她來驅動模型了。

雖然我這個系列文章強調為了敘事,不惜歪曲事實,但這一次的事件確乎是事實無疑。只能說,真實的生活,比虛構的小說更無情。我們的幾個月的資料積累,在最後一刻,被清零了。

我深深感到自己的無能為力,無數事情想做卻又無從做起。從未覺得如此孤單,身邊的一切都在加速遠去,伸出雙手想要挽留,卻抓不住什麼。命運開了個小小的玩笑,碾壓過我們的希望,那些疲憊掙扎的夜,那些彷徨徘徊的路,又有什麼意義。

老司機們之所以是老司機,主要還是心理承受能力夠好。聯合團隊都有多年開發經驗,經歷過各種大風大浪,既然意外總難避免,大家也就只能從容應對。

臨近彙報,已經不可能修改時間了,一方面高層領導時間不好約,另一方面聯合團隊要再湊到深圳,也很難,都是商務人士,行旅匆匆,分分鐘幾十萬上下。

團隊做兩手準備,一面派人照顧模特,寄希望於她在最後一刻會康復,另一方面,開始考慮如何換模特,在最後兩天訓練新的Solver。

團隊的PM妹子在最後一刻頂上,剩下的二天多的時間,配合採集資料,做動作捕捉。由於兩人身材差別比較大,對動作捕捉等都造成了不少的影響,但最大的影響,還是在面部表情捕捉。

最高質量的表情捕捉Solver,在換演員以後,效果出現了退步。苦命的Cubic Motion又開始了訓練新Solver的過程,採集資料,從頭再來一遍。其中甘苦,不必多言,在過去大半年的合作中,臉部表情捕捉質量進一步,退兩步,再進三步,始終呈現不規則震盪,但在那一刻,我們無路可退。

團隊壓力巨大,各種不同文化團隊,出現了爭執、爭論和爭吵。我們為每一個細碎的不順利爭吵,戴上放大鏡看彼此的過失,團隊遠遠沒有磨合好,脆弱的信任和感情,支撐不起絕望的情緒。

極端的壓力,造成至深的裂痕,大家的委屈、鬱悶,都暴露出來,文化的差異,對專案的理解,甚至對食物的抱怨,都是一個個導火索,引燃一場場爭執。不知為什麼,相敬如賓的聯合團隊,在那幾天,都把最不堪那一面展示給了合作伙伴。好在隨著版本的一步步進展,大家又慢慢恢復了職業化的冷靜剋制,共同面對最大的挑戰,追求最好的成果。

沒日沒夜忙了幾天,效果被調整到了一個可以見人的水準,但還是沒有恢復到之前最好的狀態。

彙報

終於到了彙報那天。彙報的場景頗有戲劇性,充滿了各種精心設計的過場,在一次性體驗中,爭取給別人最好的印象。整個流程經過了多輪設計,儘可能自然順暢。

我們先播放視訊,看虛擬人的各種渲染細節,以及一段預製視訊。雖然畫面質量不錯,但大家平日見多了CG影視,也沒啥感覺。

突然螢幕上,視訊電話響起,虛擬人來電。於是我們假模假樣接起電話,和實時互動的虛擬人進行視訊會議。電視螢幕上的虛擬人,是由隔壁動捕房的模特實時驅動,我們會議室的一舉一動,被攝像頭同步到動捕房,而動捕房的模特反饋,則通過複雜系統,被實時捕捉、串流、編碼、視訊傳輸到我們房間。相當於我們做了個視訊聊天系統,只是和我們聊天的物件,是一個被真人驅動的虛擬人。

這個概念很繞,但效果確實很震撼。那些不瞭解我們工作的人,開始以為螢幕上只是一個普通的CG製作的人,突然她就開口和你說話了。於是你修正了自己的判斷,以為團隊做了個視訊聊天系統,和真人聊天。隨後團隊喊出了芝麻開門的咒語,隔壁線人得到指示,輸入Cheat code,螢幕裡面人物的衣服瞬間就變色了,怎麼看都是視訊遊戲裡面的Avatar換裝。你定神再看,螢幕上的人又線框化,變成一個Sci-Fi感十足的線框人。大家正在詫異,不敢相信,突然視訊視窗不爭氣的Crash了,大家恍然大悟,連連擊節讚歎,須知程式崩潰,方是開發常態,又知演示瑕疵,才顯技術本色。

視訊對話期間穿插各種渲染細節展示,特性宣講,隔壁動捕房有專業導播和主持,控制虛擬的Camera,進行直播,隨時Zoom in到合適的細節,進行細緻講解。

聊了幾分鐘後,模特便邀請大家去動捕房看看幕後場景。一行人來到了動捕房,動捕現場網線如蛛網阡陌,模特彷彿鋼鐵俠轉生,渾身纏滿電線和裝備。一整個好萊塢級別的工作團隊嚴陣以待,介紹幕後技術細節。

參觀完幕後,就開始進入傳統的商務畫餅,談起技術定位,未來前景,自不必多言。

圓滿結束彙報工作,但一切還沒完。我們追查Crash原因,這麼多天研發整合過程,從來沒有出過問題,此事必有蹊蹺。後來才知道,導播人員在現場切換各種Camera,純熟使用快捷鍵,好不得意。只是他在切換Alt-4鏡頭的時候,小手一抖,Alt-4時手指伸遠了一點,按到了Alt-F4,直接關閉了視窗。

真相水落石出,結果啼笑皆非,然而結果不錯,大家一笑而過。

當晚月明星稀,團隊相聚酒吧,一場豪飲,幾聲唏噓,道聲珍重,各奔東西。

尾聲

數月後的GDC 2018,進一步打磨的技術得以正式釋出,動捕技術嘗試和Vicon合作,臉部捕捉進一步進化,找了英國的專業演員,嘗試使用不同的模特驅動,達到了更好的效果。這也就是外部所知的Siren虛擬人。

而我們進行的人物渲染增強,也被整合進了後續4.20的Unreal官方庫中,正式貢獻給行業。

堅持過、奮鬥過的每個團隊,繼續在自己的路上探索、前行。大路朝天,各走一方,也許,將來還會有再交匯的一天。

虛擬人部分全文終。NEXT Studios的故事還將繼續。

作者:顧煜
來源:騰訊遊戲學院
原地址:https://mp.weixin.qq.com/s/aLhpYHxrvbWWSjdPapsdAQ

相關文章