Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

2020 年 1 月 14 日 灼见

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

Jan.

7

胡淵鳴,這又是一位從少年時代起就熠熠閃光的“大神級”選手。

來源 | AI新媒體量子位(QbitAI)

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

只用99行代碼,你也可以像《冰雪奇緣》裏的艾莎公主一樣擁有冰雪魔法。

雖然你不能在現實世界中肆意變出魔法,但卻能在計算機的虛擬世界揮灑特效。

或許你不知道,電影和動畫中特效有時僅僅短短的一秒,卻可能需要高性能計算機演算一周,花費驚人。

《冰雪奇緣》沒有真人出演,預算卻高達1.5億美元,每一秒的鏡頭都是經費在燃燒。一般人想用電腦做出CG特效簡直不可想象。

然而,最近一位來自中國的MIT博士,開發了一種新的CG特效編程語言Taichi(太極),大大降低了門檻。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

△白色:雪;紅色:果凍;藍色:水

一個簡單的物理場景,普通PC僅需幾分鍾即可渲染完成,相比TensorFlow提速了188倍、比PyTorch快13.4倍,代碼長度只有其他底層方法的十分之一。

安裝它就像TensorFlow一樣容易,使用起來也是差不多:

import taichi as ti

甚至,Taichi的發明者胡淵鳴同學還爲此編寫了完整使用教程。

關于Taichi,胡同學已經發表了多篇文章,分別被SIGGRAGH 2018、ICRA 2019、NeurIPS2019、ICLR 2020等頂會收錄。

計算機圖形學知名學者、北大教授陳寶權給出很高的評價:

給胡淵鳴同學點贊!一己之力開發了物理模擬編程語言 Taichi!

像淵鳴這樣如此投入寫有影響力的開源代碼實在是難能可貴。

像SIGGRAPH這樣的,可能要投入1~2年才會有成果,論文接受率低,即使能發表出來,引用率也不高。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

網友們在圍觀之後也紛紛表示:淵鳴大神太強了。

圖形+系統+編譯,真是創世的快樂。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

01 88行代碼模擬真實物理環境

正如胡同學本人所說,99行代碼很短,背後的技術故事卻很長。

故事的開頭,要從Material Point Method(物質點法)說起。

MPM是一種在影視特效領域廣受青睐的模擬連續介質方法,迪士尼的《冰雪奇緣》就用到了這項技術。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

但在早期,MPM的運行速度非常慢,比如《冰雪奇緣》裏安娜過雪地的鏡頭,據說要在集群上跑整整一個星期。

爲了提高MPM的運行速度和性能,在大四畢業的那個暑假,胡淵鳴投入了Moving Least Squares MPM(MLS-MPM)的研究。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

胡淵鳴的靈感是,用移動最小二乘法統一APIC(The Affine Particle-In-Cell Method)中的仿射梯度場(affine velocity field)和MPM中的變形梯度更新(deformation gradient update)兩種離散化。

在賓夕法尼亞大學蔣陳凡夫教授的指導下,胡淵鳴等人完成了移動最小二乘物質點法(MLS-MPM)方法的研究,不僅實現了新的應力散度離散化,使MPM的運行速度快了兩倍,還成功模擬了MPM此前並不支持的各種新現象。

比如材料切割:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

剛性體的雙向耦合:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

這項成果最終發表在了SIGGRAPH 2018上。

爲了進一步證明MLS-MPM的簡易性,胡淵鳴用88行C++代碼實現了MLS-MPM的demo。(代碼詳情請戳文末 taichi_mpm 項目鏈接)。

這個88行版本後來也成爲了入門MPM的必備參考實現。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

02 乾坤(ChainQueen)可微物理引擎

2017年的夏天結束之後,胡淵鳴正式進入MIT讀博。

這時候,胡淵鳴又迸發了新的靈感:求出MLS-MPM的導數。有了導數,就能只用梯度下降來優化神經網絡控制器。

在這一思想的指導下,ChainQueen誕生了。

胡淵鳴解釋說,chain是爲了紀念他在求導過程中被鏈式法則折磨的經曆,而ChainQueen則與乾坤諧音。

乾坤基于MLS-MPM,是一種針對可變形對象的、實時的可微混合拉格朗日-歐拉物理模擬器。該模擬器在前向仿真和反向梯度計算中均實現了高精度。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

這項研究發表在了ICRA 2019上,胡淵鳴也以此完成了碩士論文。

03 DiffTaichi

隨後,胡同學將工作又推進一步,提出了可微分編程DiffTaichi,被ICLR 2020收錄。

在這篇文章的代碼中,胡同學創建了10個不同的物理模擬器,並根據現有基准對其性能進行基准測試。

Taichi中的可微分編程,可以通過蠻力的梯度下降有效地優化神經網絡控制器,而不必使用強化學習。

10種可微分模擬器中的大多數模型可以在2-3小時內實現,而且大部分不需要GPU。這些示例中,彈性體、剛體、流體、光線的折射、彈性碰撞,常見物理環境應有盡有。

第一個示例可微分彈性對象模擬器,經過我們的實測,在2017版13寸的MacBook Pro上也能運行,而且完成優化只需不到十分鍾的時間:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

不僅是2D,更複雜的3D彈性體也能模擬:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

還有可微分的3D流體模擬器,經過450步的梯度下降叠代,已經非常逼真:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

DiffTaichi模擬水對光線折射的渲染器,一張圖片經過它的渲染,甚至能騙過圖像分類器。經過測試,VGG16將帶有水波紋的松鼠圖片當做金魚,而且認爲概率爲99.91%。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

在強化學習的模擬環境中,剛體機器人很常見,DiffTaichi也能模擬:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

DiffTaichi還能模擬多個物體的複雜場景,比如台球:

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

用Taichi語言編寫的模擬器大大簡化了代碼,可微分彈性對象模擬器只用了110行代碼,而直接用CUDA編寫則需要490行。

同時,Taichi的速度還很快,相比CUDA版本幾乎沒有什麽損失,比TensorFlow快了188倍,比PyTorch快13.4倍。

而且神經網絡控制器一般只需要幾十次叠代,即可完成優化。

04 爲何做Taichi

談到爲何要做Taichi,計算機圖形學一直缺乏像TensorFlow那樣的通用工具,每個要從事開發的人都必須了解基本原理,才能去做編程。

這和深度學習領域形成了鮮明的對比。

近年來,甚至有中學生,利用TensorFlow或者PyTorch,寫一點代碼,優化幾個模型,就可以在一些頂會上發表論文,許多人看來,這是件壞事,因爲讓深度學習論文的含金量大大降低。

但胡淵鳴看到了另一面。他認爲,深度學習這些年之所以能發展快、門檻低,就是因爲有簡單易用的好工具,計算機圖形學讓人望而卻步,就是因爲缺乏類似的工具,因此他開發了Taichi。

本來Taichi要做成一種單獨的編程語言,但是爲了方便大家使用,胡淵鳴用了一句import taichi as ti把Taichi語言假裝成Python。

改成基于Python,這樣做的好處不僅是降低學習門檻,還能使用很多現成的Python IDE,與numpy、matplotlib等工具庫無縫銜接。

經過幾個月的努力,胡淵鳴終于把Taichi改成了pypi安裝包,讓不同配置不同操作系統的機器都能順利運行圖形學的程序。

05 高一保送清華,博一6篇paper

說起胡淵鳴,這又是一位從少年時代起就熠熠閃光的“大神級”選手。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

高一保送清華,競賽生涯中,拿下APIO 2012、NOI 2012、ACM-ICPC 2013長沙區域賽、ACM-ICPC上海區域賽四塊金牌,其中APIO 2012成績是全場第一名。

2013年進入清華姚班,胡淵鳴與陳立傑、範浩強等人成爲同班同學,這群年輕人的才華在這裏彙聚、碰撞,與“姚班”二字相互成就。

本科期間,胡淵鳴先後前往東京大學、斯坦福大學訪學,並曾于微軟亞洲研究院實習,從事深度學習和計算機圖形學研究。本科便有多篇論文中選CVPR、SIGGRAPH等國際頂會。

2017年,胡淵鳴進入MIT讀博。入學13個月後,完成碩士論文ChainQueen,拿到MIT碩士學位。博一期間,共發表6篇頂會論文。

清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神厲害了!創世的快樂

最後,如果想了解這99行代碼背後更多的研究曆程,不妨讀一讀胡淵鳴本人的知乎專欄文章。大神不僅代碼寫得好,碼字和蒸雞蛋也是好手呢~

注:胡淵鳴知乎原文:

https://zhuanlan.zhihu.com/p/97700605

論文地址:https://arxiv.org/abs/1910.00935

太極項目地址:https://github.com/yuanming-hu/taichi

taichi_mpm項目地址:https://github.com/yuanming-hu/taichi_mpm

— THE END —

☀本文選自AI新媒體量子位(ID: QbitAI),邊策 魚羊 發自 凹非寺,本文原標題《清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神碉堡!創世的快樂》。灼見經授權發布。

相關文章:

  • 清華姚班畢業生開發新特效編程語言,99行代碼實現《冰雪奇緣》,網友:大神碉堡
  • 少年的你、冰雪奇緣、霹雳嬌娃……11月電影院包住嗎?
  • 吉林霧凇“冰雪奇緣”中國四大氣象奇觀之一
  • 赤道降雪,坡坡上演真實版“冰雪奇緣”
  • 華爲P40欲上演手機圈《冰雪奇緣》,HMS能否解決谷歌缺失困境?
  • 免費的不能Let It go啦!濱海灣絕美Frozen燈光秀,一定驚掉你的下巴!
科技

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們