1. 何謂魔幻現(xiàn)實主義
Diana Hu首先通過四本書來介紹何謂魔幻現(xiàn)實主義。
例如,《百年孤獨》的作者是加西亞·馬爾克斯,一位諾貝爾文學(xué)獎獲得者。他來自哥倫比亞,而這本書與馬孔多鎮(zhèn)有關(guān),同時涉及大量關(guān)于哥倫比亞的歷史。它敘述了一個家庭的日常生活,一段關(guān)于孤獨的旅程。這本書的有趣之處在于,它以新聞和世俗的方式講述了一系列故事,但其中的角色經(jīng)歷了很多看似普通的神奇經(jīng)歷。例如,有會變老的鬼魂,有能夠飛行的飛毯,而這對于那里的角色來說似乎是最普通不過的事情。
第二本書是弗蘭茲·卡夫卡的《變形記》。它講述了一個年輕工作狂的故事。突然有一天,這個年輕人變成一只昆蟲,然后從昆蟲的視角來感受現(xiàn)實和社會。這本書的有趣之處在于故事的敘述方式,這種昆蟲變形十分奇異,但在故事中,這聽起來十分正常,仿佛只是剛剛發(fā)生的一件普通事情。你醒來,你變成了昆蟲,就這樣而已。
第三本書的作者是村上春樹。他是一位日本作家,這本書的書名是《奇鳥行狀錄》。這是一個關(guān)于岡田亨尋找妻子失蹤的貓咪的偵探故事。這聽起來同樣十分正常,但有趣的是,隨著故事的開展,他開始在東京發(fā)現(xiàn)了一系列奇幻的事情。這個故事同時是以一種非常實事求是式的方法來敘事故事,令這一切看似十分魔幻的事情是可以出現(xiàn)在我們的日常生活之中。
最后第四本書改編成了電影,由蘿拉·艾斯齊維撰寫的《巧克力情人》,它講述了一位禁止婚戀的女人在制作巧克力時能夠釋放魔法的故事。同樣,這樣戲劇化的事件在故事中是非常平常的事情。
她說道:“上面提到的書籍及作者有什么共同之處呢?所有這一切都遵循一種名為魔幻現(xiàn)實主義的文學(xué)寫作方式,不是科幻作品或幻想作品,而是魔幻現(xiàn)實主義。對于幻想主義,一個關(guān)鍵的要點是它需要一個完全不同于現(xiàn)世的世界,如《權(quán)力的游戲》,《哈利波特》或《星球大戰(zhàn)》。一個不存在于現(xiàn)世的,完全不同的世界??苹米髌吠瑯硬皇悄Щ矛F(xiàn)實主義,它主要描述了一個變樣的世界誒,其中科學(xué)帶來了瘋狂的進步?!?/p>
魔幻現(xiàn)實主義的有趣之處在于,其虛構(gòu)的元素發(fā)生在我們的現(xiàn)世世界中。它們可能發(fā)生在你的鄰居身上,可能是我向你講述的故事,或者是你奶奶向你講述的故事。它對魔幻元素有一個有趣的介紹,而魔幻元素在很多時間都可以作為升華故事和敘述故事,或者批判現(xiàn)實社會所發(fā)生的事情,如卡夫卡和《變形記》對社會孤立的批判。
2. 映照現(xiàn)實的魔幻啟示
上面所提的內(nèi)容有什么關(guān)系呢?對于這種映照現(xiàn)實的魔幻啟示,它經(jīng)常是都以類似新聞報道的,不帶任何感情色彩的方式來敘述故事,比如說“是的,有一條飛毯,但那又如何?”正是這種仿佛是在敘述事實一樣的方式來講述包含在日常世界中的魔幻元素,但請注意,這種想象力是用于豐富現(xiàn)實而不是像科幻作品或幻想作品那樣逃避現(xiàn)實。它依然是基于現(xiàn)實,因為如果它只是魔幻,這將是純粹的奇思妙想。通過將其植根于現(xiàn)實世界中,這會以一種意想不到的方式構(gòu)建出令現(xiàn)實更加美好的維度。
對于大多數(shù)這樣的故事和書籍的敘述方式,一個重要的地方是它以一種引人入勝的,現(xiàn)世所無法實現(xiàn)的方式來敘述故事,但同時又令這一切顯得逼真可信,以至于你相信飛毯確實能夠飛行,鬼魂確實會變老,而且因為相關(guān)的敘事方式,它們看起來是十分普遍的事情。
這與增強現(xiàn)實又有什么關(guān)系呢?Diana Hu對增強現(xiàn)實的定義是:一種能夠?qū)⒛Щ迷匕谖锢硎澜缰小DЩ玫念惐葘φ帐菙?shù)字化元素,是數(shù)字角色,它們可以顯示出現(xiàn)并無縫融合至物理世界,并且遵循物理定律和人類的行為感知方式,但同時用奇幻元素作為佐料,因為有了數(shù)字,你可以用更有趣的方式來表示信息。
3. 增強現(xiàn)實
你如何構(gòu)建這樣的現(xiàn)實呢?其中有什么要素呢?
對于魔幻現(xiàn)實主義,其構(gòu)成是魔幻+現(xiàn)實。至于增強現(xiàn)實,其對應(yīng)的是數(shù)字+物理。Diana Hu指出,構(gòu)建這樣的現(xiàn)實有三個原則:探索;鍛煉和社交。
探索是指更多地探索我們周圍的世界。這意味著到處都有很多故事和冒險等待被發(fā)現(xiàn)。諸如《Ingress》或《Pokemon Go》會在你的社區(qū)呈現(xiàn)一次冒險之旅,而你將會找到一些自己所不了解的歷史地標信息。
鍛煉是一個方面,我們都需要一點推動力量,而這種類似于嵌入其中的,遵循其物理,遵循身體自然節(jié)奏的元素能夠增加AR的可信度。
另一方面是社交,我們天生是社交動物。創(chuàng)建你能夠與朋友一起參與至現(xiàn)實世界的體驗,以及創(chuàng)建一種我們可以結(jié)交新朋友的方式,不僅僅只是社交網(wǎng)絡(luò)意義上的朋友,而是某種能夠在真正意義上與你建立聯(lián)系的朋友。
Diana Hu繼續(xù)指出,數(shù)字世界應(yīng)該遵循與現(xiàn)實世界類似的規(guī)則,從而維持真實感。作為現(xiàn)實的一部分,世界十分多樣化,其存在諸如天氣這樣的元素,它會下雨,它會出太陽,又或者會下雪等等,所以Niantic希望游戲能夠?qū)⑵潴w現(xiàn)出來。這是《Pokemon Go》中的一項功能。當下雨時,你會看到相應(yīng)的效果會正確得呈現(xiàn)在手機的數(shù)字屏幕之中。
4. 實現(xiàn)可信的數(shù)字元素
如果實現(xiàn)可信的數(shù)字元素呢?Diana Hu表示我們可以向魔幻現(xiàn)實主義大師學(xué)習,因為他們已經(jīng)編織了所有這些可信的故事,當你閱讀它們時,你能夠完全沉醉其中。對于AR,我們?nèi)绾巫龅竭@一點呢?
這主要涉及三個元素:理解世界;視覺;創(chuàng)造。
為了實現(xiàn)優(yōu)秀的AR體驗,首先你需要理解世界,然后才能用數(shù)字增強世界。這意味著你必須主要利用所有不同的傳感器,比如說攝像頭。你需要開始理解和解釋它的意義,語義,并且標記你所看到的內(nèi)容。理解世界與SLAM和Vince等算法息息相關(guān),其中你利用不同的攝像頭捕獲位置來進行三角測量,并且通過基于時間的立體視覺來建立3D理解,然后進行特征提取和使用一系列其他組件來構(gòu)建用于AR的世界表示。為什么AR需要它們呢?因為為了顯示數(shù)字角色,你需要將它們鎖定于世界。你如何鎖定它們呢?你必須大致了解你的相干系統(tǒng),而SLAM具備構(gòu)建它的能力。
另一點是視覺的需要。為了顯示可信的數(shù)字對象和數(shù)字角色,它們需要融入至真實世界。你需要創(chuàng)建中合理存在于3D空間中的角色。這是一個充滿圖形,3D動畫或諸如此類的世界。
第三點是創(chuàng)造。你擁有了所有這些組成要素,‘好,我理解了世界?,F(xiàn)在,我可以渲染一些角色’,接下來你應(yīng)該如何創(chuàng)建角色呢?增強現(xiàn)實之所以適合游戲的原因是,游戲開發(fā)者一直以來都是以在3D中感覺自然的方式來創(chuàng)建世界和體驗。用于構(gòu)建體驗的工具有諸如Unity和Unreal及其他。
4.1 為人類感知設(shè)計AR系統(tǒng)
Diana Hu討論了構(gòu)成AR的一些要素。她同時提到與AR相關(guān)的重要方面:人類。你必須構(gòu)建能夠響應(yīng)人類的AR系統(tǒng)。上文提到的很多算法都與自動駕駛汽車相似,而這是兩者產(chǎn)生不同的地方,因為AR系統(tǒng)需要為人類提供非常高的交互性。
Diana Hu提到了米勒響應(yīng)時間測試。這個研究的核心是,對于任何不足100毫秒的響應(yīng),你會感覺它是瞬間或?qū)崟r發(fā)生,或者感覺自然。
一秒左右足夠快,但不是瞬時,這樣的速度足夠獲得響應(yīng),但不夠好。如果它超過10秒,也許當你看到加載欄時你就會失去用戶,因為用戶將失去耐心。所以,你需要設(shè)計小于100毫秒的系統(tǒng)。這是創(chuàng)建難以置信的真實感或令一切成為支持物理世界支持我們感官的事實的關(guān)鍵。
右圖的研究是關(guān)于心理學(xué)場景感知期間的眼球運動和視覺編碼,它說明視網(wǎng)膜需要看著圖像80毫秒左右才能完全登記完成,并理解它是什么。
4.2 提高響應(yīng)時間
要構(gòu)建可信的AR,我們需要在移動設(shè)備的限制內(nèi)構(gòu)建足夠迅速的AR系統(tǒng)。它們只能提供小量的計算,它們的續(xù)航不長,攝像頭質(zhì)量不夠好,而且大多數(shù)傳感器相較于機器人或自動駕駛汽車系統(tǒng)都有點低端。對于后者,你或許可以把GPU放到汽車尾箱。但對于移動設(shè)備,你顯然不想這樣做,因為在未來當我們發(fā)展到頭顯時代時,你不會希望燒著用戶的頭發(fā)。有很多諸如此類的約束,所以你必須為低計算和低續(xù)航進行優(yōu)化,同時實現(xiàn)非常非??斓捻憫?yīng)速度。
我們?nèi)绾巫龅侥兀?/p>
Niantic采取了上面這兩個設(shè)計原則。一個是你希望盡可能實現(xiàn)超級高效的網(wǎng)絡(luò);另一個要素是并行編程。
Diana Hu說道:“世界正在越來越多地朝多核發(fā)展,而非單個越來越快的大核,所以我們需要可以利用這一點,令更多的核心而非單個大核來負責處理。一個例子是iPhone的處理器,甚至是三星設(shè)備的處理器,四個大核心和四個小核心的設(shè)計。四個小核心負責快速簡單的計算,四個大核心負責計算負載更高的任務(wù),所以你需要聰明地利用它們,而隨著時間的發(fā)展,這種設(shè)計將會越來越普遍?!?/p>
她進一步指出,我們的生活是實時進行。當你和朋友說話時你沒有加載條,你希望與包含角色的AR體驗同樣沒有加載條,它們應(yīng)該要感覺自然。
傳統(tǒng)云架構(gòu)服務(wù)的當前限制之一是,對于大多數(shù)基于云端的應(yīng)用程序,一系列的機器都是托管在遠處。如果你經(jīng)常逛亞馬遜,弗吉尼亞州或俄勒岡州的亞馬遜,當你在世界其他地方付款時,潛在的往返將是幾百毫秒。單單這個數(shù)字已經(jīng)超過我之前提到的低于100毫秒的人類感知。如果是幾百毫秒并且你嘗試渲染你朋友的AR位置,你將大致是每秒渲染一個位數(shù)的幀,而這是非常糟糕的事情。
Diana Hu接下來列出了四個象限:實時;非實時;可靠信息;不可靠信息。顯然,逼真可信的AR需要位于左上象限。
我們?nèi)绾芜_到我們想要的象限?事實上,沒有一種神奇的解決方案能夠真正結(jié)合兩者。當然,是有一些新的網(wǎng)絡(luò)協(xié)議或一些巧妙的解決方案。
Diana Hu解釋說,Niantic用自己的網(wǎng)絡(luò)協(xié)議來建立AR技術(shù)的實時P2P技術(shù)。她指出:“你可以把它想象成WebSockets,但效果更好,不是非常笨重,但對包,對計算機視覺進行了優(yōu)化。如果你嘗試利用云端領(lǐng)域,你手機撥號一次,信號進入一個手機信號塔,然后進入云端,然后云端又傳到手機信號塔,最后再傳到另一個手機。整個往返是幾百毫秒,而屆時你不會看到你的朋友被虛擬角色所包裹。畫面會不和諧,因為存在偏差。它將發(fā)送先前的位置,而不是當前的位置。”
“我們所做的事情是砍掉將往返云端的過程,而是直接與手機信號塔對話。這是一種有趣的方法,因為在5G的世界中,數(shù)據(jù)傳輸速度變得更快。這是另一項定律,計算存在各種各樣的定律,埃德霍姆帶寬定律表明無線通信在某個時候?qū)⑴c有線通信一樣快。存在可以做到這一點的物理定律和數(shù)據(jù)傳輸方法。”
“圍繞邊緣計算的概念正在推動業(yè)界將計算放在手機信號塔上,由于我前面提到的所有原因,這對AR而言將非常有趣。你可以開始聚合一些計算并在信號塔中執(zhí)行它們?,F(xiàn)在,我們所做的實際上只是在手機進行操作,并消耗多一點你的電池電量,但稍后我們可以減少這一點。這是行業(yè)發(fā)展的有趣之處,同時是我們押寶的地方?,F(xiàn)在,你可以從幾百毫秒減少到幾十毫秒,然后你就達到了人類響應(yīng)時間方面的神奇預(yù)算。”
4.3 加速計算
另一個設(shè)計考慮因素是加速計算這個概念,目前行業(yè)正在實現(xiàn)更多的內(nèi)核而非更大的內(nèi)核。我們?nèi)绾巫龅竭@一點?
Diana Hu首先從High Level入手講述傳統(tǒng)的增強現(xiàn)實SLAM管道。對于High Level,你有這四個階段。你有來自像素和IMU的原始傳感器輸入,亦即陀螺儀加速度計,然后它們用于特征提取,以更有用的方式提取數(shù)據(jù)。
Diana Hu提到我們不應(yīng)該使用原始圖像。她舉例道:對于攝像頭,如果你面對的是1080P,想象一下你獲得的是一個1080×720再乘以3的矩陣,因為是RGB。這未進行壓縮,所以是很大,10的6次方或10的8次方,速度是每秒30到60赫茲。你的手機很難處理所有這一切并一直予以支持。
然后你還有其他數(shù)據(jù),而它們都是用于慣性測量單元的高分辨率數(shù)據(jù),慣性測量單元基本上是陀螺儀和加速度計,它們能夠說明X,Y,Z旋轉(zhuǎn)加速度,同時可以說明你在世界中的位置。這是有損的數(shù)據(jù)。從技術(shù)上你可以根據(jù)它們知道你在這個世界中的位置,但由于這些都是非常廉價的傳感器,所以會積累很多的錯誤。
所以,Niantic致力于特征提取。所謂的特征提取是,你將這個原始矩陣(1080×720)分為3個通道,這里只是一個灰度通道,然后提取基于場景紋理的特征。
Diana Hu進一步解釋說:“我們采用了傳統(tǒng)的計算機視覺算法,當實現(xiàn)原始版本時,比如說每秒單位數(shù)的幀數(shù),他們能夠達到每秒60幀。我們沒有對算法進行任何改動,這基本上只是一種新的編程范式。這是一個新的并發(fā)編程框架,名為角色模型。在High Level層面,“角色”是完全孤立的原始計算單元,并使用內(nèi)部狀態(tài)進行某種計算。它們不會妨礙任何人,它們有自己的內(nèi)存trunk?!保ㄗⅲ航巧P?Actor Model是一種并發(fā)運算上的模型?!敖巧笔且环N程序上的抽象概念,被視為并發(fā)運算的基本單元:當一個角色接收到一則消息,它可以做出一些決策、創(chuàng)建更多的角色、發(fā)送更多的消息、決定要如何回答接下來的消息。角色模型在1973年于Carl Hewitt、Peter Bishop及Richard Steiger的論文中提出)。
這里的關(guān)鍵字是異步。你沒有妨礙其他人或等待其他人,因為如果你開始基準測試和運行這些SLAM系統(tǒng),有一半的時間你只是忙著循環(huán)和等待,而你正改變是情景的成本十分昂貴?!敖巧毕到y(tǒng)擺脫了這一點,因為它們都是完全獨立的計算塊。
5. 總結(jié)
作為總結(jié),Diana Hu主要討論了AR中的魔幻現(xiàn)實主義;我們可以做些什么來實現(xiàn)這一點;如何令數(shù)字元素可信;以及我們?nèi)绾螢槿祟惛兄獦?gòu)建AR系統(tǒng)感等等。她認為,至少對于AR來說,實現(xiàn)高響應(yīng)速度并為之優(yōu)化非常重要。
評論