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

恐怖谷效應

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

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

下圖來自Uncharted4。

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

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

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

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

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

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

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

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

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

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

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

表情捕捉

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最終整合

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

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

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

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

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

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

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

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

待續,下回大結局。

小廣告

NEXT 004:Unheard--疑案追聲。一起踏上音探追兇之旅。就是這款聽覺探案遊戲,把騰訊和B站湊在了一起_網路遊戲-官方_新浪遊戲_新浪網?

games.sina.com.cn
圖標

推薦閱讀:
相关文章