羿閣 發自 凹非寺
量子位 | 公眾號 QbitAI
有了這個發明,以後演員拍戲再也不用摳圖了?
答:可以直接一鍵合成。(手動狗頭)
讓我們趕緊來看看,這個由蘋果最新研發的NeuMan框架:
只需輸入一段10s左右的人物視訊,就能合成該人物在新場景下做著各種新動作的影像。
前空翻?so easy!
跳舞那也是不在話下。
這妖嬈的舞姿,看來NeuMan心裡也有一個舞魂~
有網友看完就表示:喔~簡直是電影界未來的發展方向。

目前,有關NeuMan的研究論文已被ECCV’22收錄,並且已在GitHub上開源。

全新場景渲染
在介紹NeuMan的原理之前,讓我們再來欣賞幾個酷炫的例子~
如下圖所示,左上角是輸入的訓練視訊,左下角是新的背景,右邊則是合成後小哥在新背景下跳躍的效果。
不僅是跳躍這種常規操作,廣播體操也完全沒問題。
更厲害的是,NeuMan還可以將上面例子中的兩個人合成到一起。
再加上一個人,立馬變成魔性的廣場舞視訊。
這微笑的小表情,真的很難解釋不是本人親自跳的(手動狗頭)。
那麼話說回來,這個神奇的NeuMan背後的原理是什麼呢?
基於NeRF的新突破
事實上,自從柏克萊和谷歌聯合打造的NeRF(Neural Radiance Fields神經輻射場)橫空出世,各種重建三維場景的研究層出不窮。
NeuMan原理也是基於此,簡單來說,就是用單個視訊訓練一個人物NeRF模型和一個場景NeRF模型,然後再合成在一起生成新的場景。

首先,在訓練場景NeRF模型時,我們先從輸入的視訊中提取相機姿態、稀疏場景模型和多視角-立體深度圖。
對於原視訊中被人體遮擋的部分,則使用Mask R-CNN進行圖像實體分割,將人體掩模膨脹4倍,以確保人體被完全遮蔽。此時,就能做到僅在背景上訓練場景NeRF模型。
至於人體NeRF模型訓練,研究人員引入了一種端到端的SMPL最佳化(end-to-end SMPL optimization)和糾錯神經網路(error-correction network)。
SMPL(Skinned Multi-Person Linear Model)是一種基於頂點的人體三維模型,能夠精確地表示人體的不同形狀和姿態。
如下圖所示,使用端到端的SMPL最佳化的人體模型,能夠更好地表現人體的典型體積。

糾錯神經網路則是用來彌補SMPL模型無法表達的細節。值得一提的是,它只在訓練過程中使用,在進行全新場景渲染時會被放棄,以免造成過度擬合。
接下來,在兩個模型對齊的階段,研究人員先使用COLMAP解決任意尺度下的對齊問題。然後通過假設人類始終與地面有至少一個接觸點,來進一步估計該場景的比例。

最後,再應用SMPL網格和場景的點雲疊加,就形成了新圖像的渲染效果。

最終成品顯示,該場景NeRF模型方面模型能夠有效地去除場景中的人類,並在有限的場景覆蓋下生成高質量的新背景渲染圖像。

人物NeRF模型方面也能很好的捕捉人體的細節,包括袖子、衣領甚至衣服拉鍊,甚至在渲染新動作時,能執行難度極大的側翻動作。

值得一提的是,不同於現行的其他NeRF模型對訓練視訊要求很高,比如需要多個機位拍攝、曝光要保持不變、背景要乾淨等等,NeuMan的最大亮點是僅通過使用者隨意上傳的單個視訊就能達到同款效果。

並且,在分別輸入六組不同的視訊後,資料顯示,與此前方法相比,NeuMan的方法生成的視訊渲染質量最佳。

不過,研究團隊也承認,NeuMan的設計目前還存在一些缺陷。
例如,由於人在活動時手勢的變化細微又多變,因此生成視訊中對手部細節的把握還不是很準確。
另外,在NeRF模型渲染時,由於系統假設人類始終與地面有至少一個接觸點,因此NeuMan不能適用於人與地面接觸為零的視訊,比如人做後空翻的視訊。
要想解決這個問題,需要更智慧的幾何推理知識,這也是未來研究的一個發展方向。
研究團隊
這項研究由蘋果機器學習研究中心和英屬哥倫比亞大學合作完成。
第一作者Wei Jiang,是英屬哥倫比亞大學電腦科學專業的一名四年級博士生,目前在蘋果機器學習研究中心實習。
主要研究方向是新視角合成、視覺定位和三維視覺。

他還是英屬哥倫比亞大學計算機視覺實驗室的一員,導師是Kwang Moo Yi 教授。
碩士畢業於波士頓大學電腦科學專業,本科畢業於浙江工業大學軟體工程專業。
參考連結:
[1]https://twitter.com/anuragranj/status/1559606408789708800
[2]https://arxiv.org/abs/2203.12575
[3]https://machinelearning.apple.com/research/neural-human-radiance-field
[4]https://github.com/apple/ml-neuman
[5]https://jiangwei221.github.io/