虛擬現實(VR)和增強現實(AR)背後的核心技術是什麼?
顛覆人類未來,「Magic Leap」實在太太太酷了!
看著很酷炫,應該很有應用前景。背後用的是計算機視覺(computer vision)和深度學習的技術么?還是用的3D建模的技術?
首先,VR得益於三維遊戲的發展,而AR收益於影視領域的跟蹤技術(video tracking)的發展。從技術門檻的角度來說,VR、AR和移動端重合的技術有:顯示器、運動感測器、處理器、儲存記憶、無線連接……所以在硬體上,這些都不是技術難點。VR、AR的難點都在感知和顯示,感知是一種mapping,VR mapping的是一個lighthouse的空間或者PS camera mapping的一個交叉;在顯示上,VR如何精準地匹配用戶的頭部產生相應的畫面,AR則在這基礎上算出光照、遮擋等情況並讓圖像通透不干擾現實中的視線。
- 而VR硬體的難點在於光學的鏡片技術和位置追蹤技術,因為以前的移動端不涉及這些技術。
- 而AR的硬體難點在於顯示和感知,顯示最大的難點在於accommodation,因為用戶看見虛擬物體固定在2-3米的位置,而現實物體卻可以前後聚焦,如果這時虛擬物體放在現實物體上,則會引發輻輳→用戶聚焦錯亂;而在感知上,即使是有Kinect是十幾年積累的hololens,它已經做到世界第一了,可它的spatial mapping仍需要花費很多時間去掃描去建模,至限在狹小的室內走來走去,而在室外就完全失效了。
當然,也因為這些技術的門檻,導致硬體價格居高不下。
正因為此,AR行業一片冷寂,而VR行業非常火爆,因為VR的技術門檻比AR低一個數量級,VR更容易成功。—————————————————————————————————————而從軟體角度來說,現階段視覺上的難點比較多:VR的核心技術是tracking(追蹤)和CG(計算機圖形)。三自由度的方向追蹤,六自由度的位置追蹤(見《追蹤設備的使用場景和覆蓋範圍有哪些局限?是否會影響VR可交互的空間的設計?》)而AR的核心技術主要是計算機視覺(computer vision)區域識別
AR要把虛擬物體整合(integrate)到現實環境中來,它需要攝像頭來建立現實空間的坐標系。
三種圖像配准(image registration):1. interest points(興趣點)—————————————————————————————————————
2. fiducial markers(基準標記)
—————————————————————————————————————
3. optical flow(光流)
都讓開!都讓開!都讓開!VR與AR的核心技術不是你們這樣瞎掰的。VR的核心價值是沉浸,把虛擬變的越真實越牛逼,而AR的核心技術是讓虛擬的與真實的混在一起,越分不清越有牛逼。既然這樣那麼各自的發展路線就出來了。VR的終極方向是打通神經網路的生物工程技術,讓人類獲得強大的沉浸體驗。AR讓人類獲得強大的現實擴展體驗。現實擴展估計業餘的人聽起來比較悲劇,那我解釋一下,現實擴展就是現實世界所表達的信息不夠用了,採用虛擬現實對現實進行擴展。讓人類可以獲得更多的有效信息。所以VR所需要的是生物工程技術,AR需要的是研發新型的計算平台。最終這兩個玩意都會變成隱形眼鏡,帶上去之後可以同時體驗虛擬現實也可以體驗增強現實,千萬不要發火燒了隱形眼鏡哦。
好吧,改題了,那就來補充一下。
AR 和 VR 是兩個不同的概念。題主說的Magic Leap自己提了個HR還是MR的概念,就是混合現實。個人以為——「別以為你換個馬甲我就不認識你了!」 本質上其實就是AR。首先說一個基本概念,如果說VR硬體製造的難度等同造汽車,那麼AR硬體的製作難度就等同於造宇宙飛船。為啥等我慢慢細說~
VR主要的核心點在於三個
1. 全視角的虛擬畫面。這個就像你用IPHONE拍全景圖一樣,要生成一個實時動態的360度可見的世界,所謂的虛擬世界就是這麼個基礎。這個目前來說,通過既有的3D遊戲引擎可以輕鬆實現。2. 虛擬世界和現實世界的同步。這個東西聽起來比較玄妙,其實原理不難。首先了解用戶頭部或者眼部的旋轉動作,如果有偵測行走的,還需要偵測行走距離,然後快速、準確的反應到虛擬世界中去。比如腦袋轉了半圈,那麼虛擬世界中畫面也要轉相應的角度,這個是目前VR領域最最重要的。人們常說戴上VR頭盔、眼鏡時候有眩暈感,這個眩暈感就來自於不同步。但技術並不是什麼高大上的技術,綜合來講,就是九軸動作感應器和相應的演算法,難的是快、准。
3. 控制。這個各家有各路,有些是遊戲手柄,有些是體感手柄,不細說了~
當然還有一些顯示部分的,屏幕解析度與放大鏡片,但因為不需要考慮太多現實環境制約,各家沒什麼大區別。還有一些物理尺寸制約什麼的。就不講了。
轉到AR,就是個技術巨坑了,AR的重點在於和現實世界疊加的顯示。那麼
STEP1:
感知和分析現實世界,要在對的位置顯示對的內容,那就涉及到計算機視覺,深度感測器,gps等等,目的就是要讓機器看懂你看到的絕大部分環境。這個就是微軟Hololens和Magic Leap比最早google glass的高明之處。STEP2:
基於第一步之後的近眼現實疊加,那麼就有兩個點,AR設備不可能像VR設備一樣不再介意個頭大小。那麼就帶來一系列的問題,在最短的距離里實現虛擬畫面。光學反射,早期的Google glass就是基於光學反射,有點混合了投影、反射式望遠鏡的原理,基本能實現3米外40寸左右的畫面,但也只能在這個大小和距離,那就無法真正把信息疊加到對的位置。這是目前唯一有量產的技術,這個也是O.S.G 開源智能眼鏡的光學顯示起點。
光柵衍射,這個是Lumus的技術,通過分割畫面後多次反射,實現更薄更小的顯示。但製造精度要求高。至今也沒有量產。
光場技術,光場技術簡單通俗的來說。就是通過運算出不同景深的圖像。通過對人眼焦距的分析,通過投射的方式讓用戶看到的虛擬畫面跟真實畫面在視覺上看起來是一致的。簡單的來說,就是類似昆蟲複眼的成像方式。目前只有nvidia的研究項目pinlights display有演示過。
還有一些其他的技術,就不細談了我覺得是聯網,就是VR頭盔想一台電腦那樣,相互聯網
從不裝逼的角度解釋一下:
VR是虛擬的世界,漫畫書、遊戲、小說都傳統意義的VR
AR是人感知的真實世界的增強,打火機、手電筒、望遠鏡都是傳統意義的AR
VR的世界一直存在,但是局限於視覺、聽覺兩層感受。(人的五感中的2/5)
——從計算機出現之後,遊戲作為一個強勁的虛擬世界出現了,比電影還要有參與感(因為能參與其中玩出不同的結局,也能很多人一起創造不可預測的結果)。這算是一個很大的技術變化;
——最近熱潮發展出的新技術內核是「不頭暈模擬真實的顯示屏」,以及能夠支撐其運轉的家用計算能力,配合了動作的捕捉設備。在體感關聯真實視覺上達到了新高度,從框內視覺模擬了開放視覺,所以讓虛擬世界更加讓人身臨其境。
AR的的技術一直存在,也一直將人作為核心進行改進和服務(各種人使用的工具)
——從計算機出現之後,工具不局限於可見可觸摸的菜刀了(讓人的柔軟的手增強鋒屬性利切割物品),計算力通過各種形式在人類的現實世界中進行增強;比如讓我的現實世界的臉增強美麗屬性(美顏相機),虛擬世界的內容被設備疊加到了現實世界,包括谷歌地圖也是一種AR。
——最近熱潮發展出的新技術並沒有特別吊炸天的,但是手持移動設備硬體的進步,會讓現實世界疊加信息更豐富(因為現實世界變為了可移動,這樣虛擬和現實的疊加組合場景基數就變大了),信息類AR目前的應用主要變化是基於倆技術的改變:1.電子地圖的完整和定位精度 2.手機計算能力運行更富媒體的信息實時接入(以前是平面的文字、圖片,結合在鏈接和按鈕上,現在是視頻、動畫結合在動態的現實世界)。也有比手持設備(手機)更高級的頭戴設備開始出現,比如微軟的hololens,這些硬體設備的進步也是一種突破。
VR和AR以後發展如何,屬於我們這代年輕的互聯網狂熱分子。
2016年,又一個「虛擬現實元年」, 自從2014年3月 Facebook宣布以20億美元收購Oculus之後,每一年都成了「虛擬現實元年」。
同樣,自2013年12月14新三板擴容至全國後,便出現了井噴式的發展,2014年由此也被稱為「新三板元年」,自此之後的每一年也都被稱之為「新三板元年」。
互聯網元年、大數據元年、雲計算元年… 科技圈好像特別偏愛「元年」這個詞。至少有兩個原因:1. 第一總是好的,凡事都要搶第一,這是我們的傳統。人生的第一桶金,過年的頭一炷香,連宴席上第一個動筷子的人都是身份地位的象徵。2. 革命思想作祟,我們內心深處都是希望革命的,都希望做每個時代的革命者,能當上君王最好,說不定我運氣好了,趕上這撥兒了呢!VR界的BAT,聽著就那麼振奮人心鼓舞士氣。當然,這都是我意淫的,在當下浩浩蕩蕩的造詞營(hu)銷(you)運動面前,不是心理學就能簡單解釋的清楚的,而且我也沒學過心理學…
在科學技術領域不能簡單粗暴的以革命的辦法來定義某一年是「元年」。1801年,被譽為「無機化學之父」的英國人漢弗里·戴維Humphry Davy就將鉑絲通電發光,7年後他又用2000節電池和兩根炭棒,製成世界上第一盞弧光燈。漢弗里·戴維死後的第25年,生於德國人亨利·戈培爾Heinrich G?bel用一根炭化的竹絲,放在真空的玻璃瓶下通電發光,發明了第一個白熾燈,並且可以維持400小時。又過了25年英國人約瑟夫·威爾森·斯旺JosephWilson Swan以真空下用碳絲通電的燈泡在英國申請並獲得了專利,並與1875年把專利賣給了美國人托馬斯·愛迪生Thomas Edison。1880年愛迪生造出的炭化竹絲燈泡曾成功在實驗室維持1200小時。請問,哪一年是電燈泡的元年?
以上參考資料來自維基百科,好了我裝完X了,我們來聊聊虛擬現實吧。
幾年前提到虛擬現實,大部分人第一反應還都會想到好萊塢的科幻電影,而現在大家都知道了Oculus頭盔,虛擬現實似乎和頭戴式顯示器HMD划上了等號。當然,這對於一個行業的發展是好事,將虛擬現實符號化更加有利於傳播。
對於虛擬現實的通俗解釋是:利用計算機技術從空間和位置上來模擬人類視覺、聽覺、觸覺甚至是嗅覺的感受,從而達到身臨其境的效果。現在被廣泛用來推廣和宣傳的虛擬現實頭盔就是視覺上的模擬,當然視覺上的模擬還有很多種形式,一會我們展開來聊。
配合光學捕捉系統和數據手套使用的頭戴式顯示器聽覺上的模擬早在上個世紀就已經出現了。1957年美國Audio Fidelity Records公司就第一次將立體聲引入商業唱片領域,1957年可視為唱片錄音史上Mono與Stereo的重要分水嶺,許多在1957年前便過世的音樂家,都因而很遺憾未能留下Stereo的錄音資料。此後在1960年代,大多數唱片公司都陸續放棄單聲道,全面性地轉向雙聲道立體聲錄音。到了1985年,日本電子機械工業會(EIAJ)也對環繞立體聲制定了技術標準(STC-020)。
早些年的立體聲收錄機觸覺上為了得到真實的觸覺反饋,就要提到利用高精度機械馬達的反作用力和各種感測器配合完成的力反饋ForceFeedback技術;利用紅外光學實時反射或陀螺儀感測器或超聲波感測器對人體動作的捕捉完成的動作捕捉Motioncapture技術(好萊塢電影中已有廣泛應用,請自行Google詹姆斯卡梅隆的阿凡達拍攝技術);還有數據手套Data Glove;甚至是眼動追蹤Eye Tracking技術,Google就曾經用眼動追蹤技術來測試網頁的可用性,而蘋果公司更是在2010年戰略投資了瑞典眼動追蹤技術公司Tobii。這個領域的技術其實也發展的如火如荼,而且很多都是真正的狂拽酷炫的黑科技,如果大家感興趣,回頭單獨寫一篇跟大家討論。
桌面型力反饋設備電影阿凡達Avatar中的光學動作捕捉設備電影猩球崛起Rise of the Planet of theApes中的光學面部動作捕捉設備嗅覺技術上我沒研究過,但是以我國人民對各種化學用品以及食品添加劑廣泛應用,這項技術的突破指日可待。
近些年來我國在嗅覺和味覺模擬領域有著突破性的進展我們回過頭來聊聊最近這些年火熱的視覺模擬技術。 大約在公元前400年左右,希臘的數學家歐幾里德Euclid發現了人類之所以能洞察立體空間,主要是因左右眼所看到的景物不同而產生,這種現象被叫做雙眼視差Binocular Parallax。再後來1838年的查爾斯·惠斯通Charles Wheatstone和1849 年的大衛·布儒斯特David Brewster也是利用雙眼視差Binocular Parallax原理髮明出了的各種可以看出立體畫面的設備。
1838年查爾斯·惠斯通Charles Wheatstone發明的立體鏡Stereoscope1849年大衛·布儒斯特David Brewster以凸透鏡取代立體鏡中的鏡子發明了改良型的立體鏡1901年出版的用雙眼視差設備觀看的立體圖畫時至今日,我們時下最流行的3D立體視覺模擬技術也是基於雙眼視差Binocular Parallax原理,無論是各大影院的3D電影,還是自己家中的3D電視,以及引領虛擬現實元年的虛擬現實頭盔或者VR眼鏡,都是通過計算機技術和顯示成像技術對左右眼分別提供一組視角不同的畫面,提供一個雙眼視差的環境,從而讓人感覺到立體畫面。所以我經常跟朋友們開玩笑說,如果電影加勒比海盜中的Ragetti去看3D電影,他是感覺不到立體的。因為他一隻眼睛帶著眼罩,只能看到一組畫面,無法感知雙眼視差,所以他會要求退票的!
麥肯錫·克魯克Mackenzie Crook在電影加勒比海盜中飾演的Ragetti在全世界範圍內應用的較為廣泛的3D立體顯示技術主要依靠投影技術和顯示器技術來實現的,而投影系統和顯示器又分為了主動立體和被動立體兩種立體模式。如何理解主動立體和被動立體,主要看顯示設備是主動分成兩組畫面還是被動分成兩組畫面。
主動立體顯示系統的投影機或者顯示器可以主動顯示兩組畫面,一般都具有較高的刷新頻率,至少要達到120Hz,這樣當平均分成兩組畫面進行交替的時候,才能讓每隻眼鏡看到的畫面不低於60Hz的刷新率,保證畫面的流暢度。主動立體顯示系統還必須要有刷新頻率信號發射設備和可接收信號的液晶快門眼鏡。當顯示設備開啟主動立體模式,會經過信號發生器發射同步刷新信號,液晶快門眼鏡在接收到信號後會根據顯示系統的刷新頻率同步交替開啟左右眼鏡片,這樣就能保證兩隻眼睛可以分別看到兩組不同的畫面。
主動立體通過顯示系統和液晶快門眼鏡配合刷新顯示兩組不同畫面主動立體的優勢在於立體顯示效果明顯,沉浸感強,觀者的頭部移動不受限制,而且主動立體投影系統不受場地熒幕的限制。缺點就是成本較高,而且由於立體顯示效果依靠顯示設備和眼鏡的刷新頻率,所以會有眩暈的感覺不適合長時間佩戴。
NVIDIA公司出品的3D VISION2液晶快門眼鏡及發射器套裝被動立體顯示系統的顯示設備本身並不能主動顯示兩組畫面,是通過後期處理成兩組畫面。常見被動立體顯示器就是在顯示設備上疊加偏振光片將顯示畫面進行拆分,同時在偏振光片眼鏡的配合下從而達到立體顯示效果,一般被動立體顯示器所用的是圓偏振光片。如何區分自己家裡買的3D電視是主動立體還是被動立體,最直接的辦法就是看隨機配送的眼鏡,如果是需要安裝電池的,就是主動立體,如果僅僅是一個塑料材質的眼鏡無需安裝電池,就是被動立體。
被動立體顯示器的工作原理示意圖而被動立體投影系統一般則是需要兩台投影機上下疊加,並且在每台投影機前防止一個偏振光片,通常是將兩個線偏振光片以90°的角度差分別放置在兩台投影機前,同時,將3D眼鏡也以兩個線偏振光片以90°的角度差分別安裝,這樣就能保證兩隻眼睛可以分別看到兩組不同的畫面。而且如果是被動立體投影系統還需要配備一個高增益的金屬投影幕,因為普通物體反射的光是偏振光,也就是只能反射一個方向的偏振光,這樣就不能把兩個畫面都反射回來。而金屬可以將兩個畫面的光線全部反射回來,這樣才能保證看到兩組畫面。
被動立體的優勢在於顯示設備價格親民,而且不會產生佩戴眩暈感,所以大部門電影院的3D電影用的都是被動立體投影系統。缺點在於對場地熒幕有特殊要求,而且如果是線偏振片的眼鏡,還需要保證觀者頭部不能向左或向右垂直偏轉,有較高的限制性。
被動立體投影系統常見配置當然,隨著科技的發展,這些對於概念、定義上的局限也都會逐漸被模糊。早在2006年瑞士的Barco公司在北京展出的Galaxy+ 系列投影機就做到了一台投影機既能做到不需要金屬熒幕的被動立體投影也能變成一台主動立體投影機。其運用的Infitec+ 技術使用高品質顏色過濾技術,將傳統的主動立體信號轉換成同樣刷新率的、感覺更舒適的光譜立體圖像輸出,相繼為左眼和右眼生成圖像。該技術克服了傳統主動立體和被動立體技術的缺點,在實用性和顯示效果方面表現更出色,其主要特點為對屏幕沒有偏振特性的要求,提供與主動立體一樣的系統圖像拼接質量。而其光譜分離技術的立體眼鏡不需要配備電源和複雜的電路,因此舒適感和沉浸感更好、眼鏡輕便、由於不需信號同步發射器所以頭部可隨意移動,可以滿足有大量觀眾場合的應用。同時Galaxy+也可以輸出主動立體或普通的非立體圖像。
Dolby光譜分離立體(INFITEC)眼鏡Barco公司採用Infitec技術的Galaxy NW-12 EX型號投影機概念和定義是幫助人們對某項事物進行認知和學習的,對於發展和創新則不能拘泥於此。當下如火如荼叱吒風雲的虛擬現實頭盔或者VR眼鏡就不能簡單地給劃分成主動立體還是被動立體。其實對於這一類設備有一個較為專業的統稱:頭戴式顯示器Head MountedDisplay,這種設備在上個世紀中期也已經有了雛形。
全世界公認的圖形圖像學之父——伊凡·愛德華·蘇澤蘭Ivan EdwardSutherland在1968年設計了一個在現在看來非常笨重的頭戴式顯示器。這套設備不僅配有顯示器,而且還配備了視角定位設備,當用戶改變他們的頭部的位置時,吊臂關節的移動就傳輸到計算機中,計算機則相應地更新屏幕顯示。但是由於其顯示設備以及用於反饋用戶視角的感測器設備的重量大大超出了正常人的承受能力,所以不得不將整個設備懸掛吊裝在天花板上。而這第一台頭戴式顯示器因此也贏得了一個綽號「達摩克利斯之劍」!
1968年Ivan Sutherland 設計的頭戴式顯示器從上個世紀六十年代開始戰鬥機飛行員的戰鬥機操作技術複雜性日益增加,各種在那時人民看來的黑科技也相繼出現。托馬斯·弗內斯Thomas A.Furness III一個不是創造虛擬現實概念卻被稱為「虛擬現實之父」的人,從1966年開始為設在美國俄亥俄州的Wright-Patterson空軍基地的飛行員們開發了一系列用於戰鬥機駕駛模擬的設備,直到1986年的The SuperCockpit達到了一個不小的技術巔峰。其配備的6自由度感測器不但能夠讓飛行員們完全沉浸在虛擬世界中,以及在那個時代絕對的黑科技:3D地圖,紅外和雷達圖像,頭部位置跟蹤,手勢控制和語音控制,甚至是眼動追蹤技術。
托馬斯·弗內斯為美國空軍設計的頭戴式顯示器托馬斯·弗內斯為美國空軍設計的頭戴式顯示器The Super Cockpit而世界上第一個商用的頭戴式顯示器出現在1995年,由美國Forte Technologies Incorporated.發布的Forte VFX-1 ,售價$ 599美元。而日本Sony公司在1997年也在美國市場上發布了一款名為Glasstron的頭戴式顯示器,距今已有近20年。不知道Sony公司前不久將Project Morpheus正式命名為PlayStation VR的頭戴式顯示器效果有大的飛躍?
世界上第一台商用頭戴式顯示器Forte VFX-1 Forte VFX-1配備的手持控制器1997年Sony公司發布的Glasstron2014年Sony公司發布的Project Morpheus最近這兩年各種VR眼鏡、虛擬現實頭盔如智能手機一般不斷地推陳出新,如Google推出的 Cardboard,更是將VR眼鏡的體驗門檻拉倒了貧困線以下!估計國內的硬紙板的造紙市場也跟著迎來了一批投資熱吧?
Google公司推出用紙板做的Cardboard VR眼鏡其實我們從Sony公司這近20年間隔的兩代產品可以看出來,頭戴式顯示器的發展除了名字變成了「VR眼鏡」和「虛擬現實頭盔」之外,在交互方式上並沒有重大突破,無非也就是顯示器的解析度更高一些,感測器精度更高一些。那麼究竟是什麼又開啟了「VR元年」呢?是用戶需求已經到了呼喚下一代交互方式了嗎?還是當下資本市場的滾滾熱錢在尋覓下一個互聯網、B2B、SNS、O2O?
資本市場的介入其實對於一個行業都是一支強心劑,甚至說是興奮劑,能加速行業發展的同時,也能加速淘汰行業中的「差品」和「偽需求」。成功的案例比比皆是,失敗的案例更是哀鴻遍野。
那麼虛擬現實行業的「真需求」是什麼?在什麼樣的情況下人類會需要去虛擬一個現實的世界?我個人總結應該有以下這幾類的世界:要麼暫時無法達到,要麼太過危險,要麼付出成本太高。
暫時無法達到的世界,比如遊戲中的世界、科幻電影中的世界;還有只是空間上我們暫時無法到達的世界,比如探索一下太空,或者在中國觀看一場美國正在進行的NBA比賽(當然NBA比賽從1994年在中國就開始直播了)。當然還有推動互聯網向前發展的色情行業,不過不知道是不是也應該把這個也列入危險或者高成本一類呢?
NextVR 在2015年開始用雙攝像頭VR技術開始轉播體育賽事和演唱會等娛樂活動通過雙攝像頭拍攝和傳輸,佩戴VR眼鏡可以得到身臨其境的立體觀賽效果去年Apple Music與VR工作室VRSE聯合為U2樂隊打造了一款360度虛擬現實音樂視頻《Song for Someone》。用戶通過佩戴VR頭盔可以體驗U2樂隊的現場表演,同時,佩戴立體聲耳機甚至可以體驗不同位置視角的聲音效果變化。
VRSE支持谷歌Cardboard VR眼鏡體驗360°全景現場 U2樂隊在VRSE中為觀眾呈現一場真實的現場表演太過於危險的世界,比如煤礦、油田、天然氣、電力和化工等領域;這一類行業的工作環境和工作設備一般都具有較高的危險性,一旦有任何的操作失誤或疏忽都容易引發重大事故。所以利用虛擬現實技術幫助這一類行業用戶進行新工人的技術培訓、模擬設備操作維修、編製模擬應急預案等工作,能讓工人在幾近真實的環境下熟練操作,將會大大降低實際工作中的危險係數。
比如還有士兵的戰爭訓練,如果跳傘,作戰模擬等這些在真實戰場具有很大危險性,如果藉助虛擬現實技術,既可以沉浸式的體驗真實戰場環境,又能保證士兵的人身安全。
士兵佩戴VR眼鏡在鼠籠式裝置中進行作戰訓練士兵佩戴VR眼鏡進行傘降作戰訓練需要付出成本過高成本的世界,製造業中生產一個物理模型的成本高昂的行業,如航空、航天、軍工、汽車等大型製造業;這些企業的共同特點就是生產物理樣機和生產時間都非常的寶貴,航空飛行器、飛機、輪船或汽車在量產前,都要進行各種可靠性驗證,可是如果真的製造一台真實的物理樣機的經濟成本和時間成本都是非常巨大的。這個時候引入虛擬現實技術來幫助進行一些科學化的驗證工作,既可以大大減少這一類物理樣機製作,又能在生產之前對產品進行全方位驗證和評估,從而降低成本,縮短產品的研發周期。
利用虛擬現實技術進行人機工程學驗證實際上,早在上個世紀波音777飛機的設計研發過程中就引入了全程無紙化設計的理念,所有的飛機設計內容都採用3D立體繪圖,也就是我們所說的CAD,只不過他用的是法國達索集團的工業設計軟體CATIA。所以說,波音 777 飛機的設計過程就是 VR 技術的應用典型實例。波音 777 飛機由 300 萬個零件組成,所有的設計在一個由數百台工作站組成的虛擬環境中進行,設計師戴上VR頭盔後,可以在虛擬的「飛機」中進行漫遊體驗,審視「飛機」的各項設計指標。
波音777飛機的3D模型再後來隨著計算機技術的發展,CAD計算機輔助設計、CAE計算機輔助分析、CAM計算機輔助製造,早已在這些行業有著深入的應用。汽車製造業也是同樣的道理,有很多汽車設計,都是藉助虛擬現實技術來進行前期樣機的設計評測的。這些技術也和虛擬現實技術有著千絲萬縷的聯繫。
法國PSA Peugeot Citroen公司利用虛擬現實技術驗證汽車設計在看過這麼多行業的應用之後,我們不難發現,其實虛擬現實硬體技術早在很多年前就已經較為成熟,只是沒有在民用市場被大規模的應用罷了,所以早些年提到虛擬現實、VR技術,往往都被打上「黑科技」(那個時候還沒「黑科技」這個詞吧?)的標籤。那黑科技什麼時候才能走進尋常百姓家呢,關鍵要看內容!3D電視發展了這麼久,也走進尋常百姓家了,請問在家經常使用3D電視功能,帶3D眼鏡看電視的同學請舉手,看沒人舉手吧!沒有內容,看什麼?
之前還看到知乎上有人說:「內容倒是不急,因為現在硬體平台和內容分發渠道都還沒有建立起來,你內容太早做出來也沒用。」關於這個說法,我是持相反意見的,雖然不能說這個觀點本末倒置,但是你看電影行業發展這麼多年,從業者們在最開始是等著電影院線和熒幕數量發展起來才開始拍電影的嗎?有了內容自然就會去找更適合內容體驗的硬體設備。
如果說早些年跟虛擬現實沾邊兒的技術如野草般肆意瘋長,那麼經過這些年的技術發展和經驗的積澱,如今跟虛擬現實沾邊兒的詞兒都如同用飛機撒了化肥的野草,請自行腦補吧!其實無論我們談什麼行業的發展都繞不開技術導向還是需求導向的問題,一項技術的發展在其初期,一定是技術導向的,因為技術成熟了,很多天馬行空的想法可以落地了,站在風口浪尖的技術弄潮兒們百家爭鳴獻計獻策。但是,想要讓一項技術落地,生根發芽,必須就要回到需求導向。你的技術再牛,我沒需求,他沒需求,你給誰用?
所以說在科技圈生辰八字也很重要,生早了技術不成熟,資源匱乏,或者趕上個瘟疫霍亂大饑荒,要麼直接餓死病死,要麼苟延殘喘幾年後夭折。早些年出生的PDA就是這樣的命運。而「虛擬現實」是一個早產兒,出生了這麼多年一直在數九隆冬臘月天中營養不良的活著,最近這些年春天來了,開始過上好日子了,吃得飽穿得暖了,我們擦亮眼等著看吧!
我個人因為只會一些皮毛,所以只能大致的說說。
建模是需要的,各種優化措施和貼圖材質都是很關鍵的。
但是模型及美術不是關鍵,關鍵的是輸出這些畫面的硬體和其內部的各類檢測演算法。目前看來Magic Leap的硬體設備是一個移動主機加眼鏡,移動主機的出現使得眼鏡的設計更為輕鬆,不像Hololens那樣高科技的設計。VR和AR背後的核心都是計算機圖形學,您說的建模也是屬於這其中的。AR是人工智慧和人機交互的交叉學科,基礎技術包括CV(計算機視覺)、機器學習、多模態融合等,借凌老師去年的一篇文章簡單科普AR技術。
作者亮風台信息科技首席科學家凌海濱
一、從現實到增強現實
增強現實(AugmentedReality,簡稱AR)和虛擬現實(VirtualReality,簡稱VR)概念的出現已經有了幾十年的歷史了,然而VR/AR大量出現在科技媒體上吸引各方眼球也就是最近的事情。
AR中的R是真實的R,相比之下,VR中的R就是個山寨版的。那麼A這個增強的概念就比較廣大虛了:籠統的說,凡是能對R有附加額外的信息的都算。再次強調的是,AR裡面的信息是疊加到真實的場景裡面的,而不是虛擬的場景(即VR)裡面的。一個有意思的小眾研究方向是將一部分真實場景中的內容疊加到虛擬場景中,學名AugmentedVirtualization,簡稱AV。
圖2中的例子也許能更好地反映AR和VR的區別。上方顯示的是典型的VR設備和人眼接收到的VR影像,下方則是AR設備和AR影像。簡而言之VR和AR的區別是:VR是趨近現實;AR是超越現實。
接下來我們主要討論AR,重點討論AR和VR不同的那一部分。
二、AR中的視覺技術
增強現實技術流程
按照Ronald Azuma在1997年的總結,增強現實系統一般具有三個主要特徵:虛實結合,實時交互,和三維配准(又稱註冊、匹配或對準)。近二十年過去了,AR已經有了長足的發展,系統實現的重心和難點也隨之變化,但是這三個要素基本上還是AR系統中不可或缺的。
上圖描繪了一個典型的AR系統的概念流程。從真實世界出發,經過數字成像,然後系統通過影像數據和感測器數據一起對三維世界進行感知理解,同時得到對三維交互的理解。3D交互理解的目的是告知系統要「增強」的內容。
在AR的技術流程中,中間的對於環境和交互的精準理解就是目前的瓶頸了。上圖中間的基於多模態(簡單說就是影像+感測器)的環境和交互理解,是兩個充滿了各種或明或暗的坑的領域,足以讓很多假的猛士知難而退。
環境和交互理解的難點和機會
那麼,真的猛士將會直面什麼樣慘淡和淋漓的坑群呢?下面我們來共同賞析幾個常見坑型:
1、環境坑:據說人的腦細胞裡面大多數都是用來處理和理解雙眼所獲取的視覺信息的,很多我們驚鴻一瞥就能理解和感知的東西得益於我們強大的腦處理能力。各種環境變化對視覺信息的影響我們不但能輕鬆應對,有時還能加以利用。比如我們的認知能力對光照明暗的變化相當的魯棒;比如我們可以通過陰影來反推三維關係。而這些對於計算機(確切些說是計算機視覺演算法)來說都是不折不扣的坑或者大坑。總的來說,成像環境的變化常常計算機視覺演算法以及AR帶來很大的挑戰,所以我把相關的坑統稱環境坑。
2、學術坑:對於環境和交互的理解重建基本上屬於計算機視覺的範疇,計算機視覺是一個有著半個世紀積累的領域,和AR相關的學術成果可以成噸來計。誇張一點的說,每篇都有坑,區別只在大小深淺明暗。從實用的解決方案的角度來看學術論文,尤其是新的論文,一定要小心其中的設定和有些話外的信息,多想一下諸如該演算法是否對光照敏感,是否可能在手機端達到實時,等等。簡單的建議是:對於一篇計算機視覺的論文,未有相關經驗的觀眾請在有相關訓練的成熟觀眾陪伴下謹慎觀看。
3、上帝坑:上帝是誰?當然就是用戶了。上帝的坑當然得長得有創意,常常激起開發者靈光一動恍然大哭的慾望。比如上帝說,要能判別視頻中人的性別,80%的準確度,100萬。哇,你是不是感動的熱淚盈眶(仁慈的上帝啊),用各種時髦的方法輕鬆超額10%搞定。可是,交貨的時候上帝說你這個系統咋認不出我們家小baby的性別啊!Oh my God,你是不是又激動得想哭了。和環境坑比較像,CV的演算法很多時候是需要有假設的,強烈的假設。那怎麼辦呢?上帝總是正確的,所以唯一的辦法就是儘早教育上帝讓他更加正確:需要苦口婆心地儘早和用戶科普以及盡量明確定義需求,防範坑於未成。還不行的話咋辦?上帝啊,請再加點工錢吧。
其實還有其他類型的坑,比如開源代碼坑,這裡就不詳述了。那麼,這麼一個充滿憂患的領域,為什麼又會有那麼多追隨呢?最重要的原因就是巨大的應用前景和錢景了。往小了說,很多具體的應用領域(比如遊戲)都已經成功地引入了AR的元素;往大了說,AR的終極形態可能從根本上改變當前的非自然人機交互模式(請腦補微軟Win95的成功和現在的HoloLens)。上面說的那些坑,在很多是應用上,是可能避免的或者可能填得不那麼深的。總的來說,一個好的AR應用往往是需要演算法工程實現、產品設計、內容製作等方面的深度結合。
AR跟蹤配准技術發展
三維配準是鏈接虛實的最核心技術,沒有之一。大致說來,在AR中配準的目的是對影像數據進行幾何上的精確理解。這樣一來,就決定了要疊加的數據的定位問題。比如說,在AR輔助導航中如果想把導航箭頭「貼在」路面上,就一定要知道路面在哪裡。在這個例子中,每當手機攝像頭獲取到新一幀圖像,AR系統首先需要將圖像中的路面定位,具體的說就是在某個事先設定的統一的世界坐標系下確定地面的位置,然後將要貼的箭頭虛擬地放在這個地面上,再通過與相機相關的幾何變換將箭頭畫在圖像中相應的位置(通過渲染模塊完成)。
如前所述,三維跟蹤配准在技術上存在很多挑戰,尤其在考慮到移動設備有限的信息輸入和計算能力的情況下。鑒於此,在基於視覺AR的發展歷程中,經歷了從簡單定位到複雜定位的幾個階段,下面簡單介紹一下這個發展過程,更多的技術細節在下一節討論。
- 二維碼:和大家如今廣為使用的微信二維碼原理一樣,二維碼主要的功能在於提供穩定的快速的識別標識。在AR中,除了識別以外,二維碼還兼職提供易於跟蹤和對於平面進行定位的功能。因為這個原因,AR中的二維碼比一般的二維碼來說模式顯得簡單以便於精確定位。下圖給出了AR二維碼的例子。
- 二維圖片:二維碼的非自然人工痕迹很大得局限了它的應用。一個很自然的拓廣是使用二維圖片,比如紙幣、書本海報、相片卡牌等等。聰明的小白朋友一定已經發現:二維碼本身也是二維圖片,那為啥不把二維碼的方法直接用到二維圖片上呢?哦,是醬紫:二維碼之所以簡單就是因為它上面的圖案是設計出來的讓視覺演算法可以迅速的識別定位的,一般的二維圖片則不具備這種良好的性質,也需要更強大的演算法。並且,不是所有的二維圖片都可以用來進行AR定位的。極端情況下,一個純色的沒有任何花紋的圖片是無法用視覺的方法定位的。下圖例子中,兩張卡牌用來定位兩個對戰重點的虛擬戰士。
- 三維物體:二維圖片的自然擴展當屬三維物體。一些簡單的規則三維物體,比如圓柱狀可樂罐,同樣可以作為虛實結合的載體。稍微複雜一些的三維物體通常也可以用類似的方法處理或分解成簡單物體處理,如在工業修理中的情況。但是,對於一些特定的非規則物體,比如人臉,由於有多年的研究積累和海量的數據支持,已經有很多演算法可以進行實時精準對齊。然而,如何處理通用的物體仍然是一個巨大的挑戰。
- 三維環境:在很多應用中我們需要對整個周圍3D環境的幾何理解,很長時間以來和可預期的一段時間以內,這一直是個充滿挑戰的問題。近年來,三維環境感知在無人車和機器人等領域的應用取得了成功的效果,這讓人們對在其在AR中的應用充滿憧憬。然而,相比無人車等應用場景,AR中可以使用的計算資源和場景先驗常常捉襟見肘。受此影響,AR中的三維場景理解研發主要有了兩個顯而易見的思路,一是多感測器的結合,而是對於應用的定製。兩個思路的結合也是實用中常見的手段。
在以上提到的技術中,二維碼和二維圖片的識別跟蹤技術已基本上成熟,也已經有了廣泛的應用。技術方面的發展目標主要是進一步提高穩定性以及拓寬適用範圍。相比而言,三維物體和三維場景的識別理解還有很大的探索空間,即使是目前火爆的HoloLens所展現的令人驚艷的跟蹤穩定性,從追求完美的角度還有很多可以提升的空間。
三、單目AR識別跟蹤簡介
由於識別跟蹤的重要性,下面簡單介紹一下AR中的二維圖片跟蹤和三維環境理解。二維碼的技術已經很成熟而應用有較受限制,三維物體識別的技術大致上介於二維圖片和三維場景之間,所以就偷懶不提了。
二維平面物體的AR跟蹤
一般情況下, AR中二維平面物體的跟蹤可以歸結為如下問題:給定一個模板圖片R,在視頻流中時刻檢測該圖片的(相對相機的)三維精確位置。比如在下圖的例子中,R是實現知道的人民幣圖片,視頻是從手機端實時獲取的,通常記為It (表示在時間t獲得的視頻圖像),而需要得到的是R在It 中的幾何姿態(通常包括三維旋轉和平移),記為Pt。換句話說,模板圖片R通過由Pt表示的三維變換就可以被貼到它在圖像It中的位置。跟蹤結果的用途也很顯然,既然知道了這個姿態Pt,我們可以用一個美元的圖片以同樣的姿態疊加到視頻中來替換人民幣,從而達到6倍以上的炫富效果。好吧,例子中沒有那麼俗氣,而是疊加了一個莊嚴的視頻。
那麼,上面例子中的跟蹤定位是如何做到的呢?主流的方法大致有兩類,一類是直接法(directmethod,有時也稱為全局法),另一類叫控制點法(keypoint-based)。
- 直接法:直接法里的「直接」是說直接用優化方法去找最好的目標,即姿態Pt。這裡牽涉到三個主要元素:(1)怎麼定義好和不好,(2)在哪裡找Pt,(3)怎麼找。對於(1),一個直觀的辦法是:假設模板圖按照姿態Pt變換後對應圖像It上的一個小區域,那麼這個區域可以摳出一個圖像T,T(經過歸一化以後)應該和模板R長得越像越好。對於(2),我們可以在所有可能的姿態中去找Pt。不過這個策略顯然是很費時的,考慮到在視頻中相鄰圖像幀的變化有限,所以我們通常是在上一時刻的姿態(通常記為Pt-1)附近去尋找。至於怎麼找,這就轉化成一個優化問題了,簡單的說,就是要在Pt-1的一個鄰域裡面找一個Pt,使得通過Pt摳出來得圖像塊T和R最相似。
當然,實際操作時候上面三個部分都各有講究。比如(1)中對於T和R是否相似可能要考慮光照的變化,(2)中如何定義姿態空間的鄰域以及合理的鄰域大小,(3)中具體用什麼樣的優化演算法來盡量對抗局部極值的干擾而又不能太耗時。不同的處理方式產生出了不同的跟蹤演算法,其中典型的代表工作之一是ESM演算法和它的一些變種。
ESM是EfficientSecond-order Minimization的縮寫,源自Benhimane和Malis在2004年在IROS上發表的工作。該演算法採用重構誤差平方作為衡量R和T相似性的指標,然後對於姿態空間進行了在李群(Lie Group)上的重新構建使得搜索的步長更為理性,在尋優上面使用的二階近似的快速演算法。這個演算法的結構清晰,各模塊都可以比較容易的獨立擴展,所以在其基礎上衍生出了不少改進演算法,通常是針對實用場景中不同的調整(比如處理強光照或者運動模糊)。
- 控制點法:基於控制點的方法由於其實時高效成為目前業內主流方法。控制點類的方法並不直接對姿態Pt進行尋優,而是通過控制點匹配的方法來計算Pt。控制點法的一個典型流程參見圖9。其基本出發點在於使用圖像中特別的點(通常是角點)來建立模板R和視頻圖像It的之間的映射,通過該映射建立方程組,然後求解出姿態Pt。比如說模板是一張人物的相片,那麼我們在視頻中定位的時候並不需要對於臉上的所有點進行匹配,而可以通過一些控制點(眼角,鼻尖,嘴角等)迅速定位。
稍微數學一點的解釋是這樣的:由於姿態Pt是由若干參數(一般是8個)控制的,那麼求解Pt的一個辦法是弄一個方程組出來,比如說8個線性的方程,那麼我們就可以求出Pt了。那麼這些方程怎麼來呢?我們知道,Pt的作用是把模板R變到圖像It中,也就是說R中的每個點經過一個由Pt決定的變換就可以得到它在圖像中的位置。那麼,反過來,如果我們知道圖像中的一個點(比如眼角)和模板中就是同一個點(就是說他們匹配上了),我們就可以用這一對匹配點給出兩個方程(X、Y坐標各一個),這樣的點就是所謂的控制點。當我們有了足夠多的控制點對以後,就可以求解姿態Pt了。
總結起來,控制點法包括三個主要元素:(1)控制點提取和選擇,(2)控制點匹配,(3)姿態求解。控制點的基本要求一是要能從周圍環境中脫穎而出(減少位置上的歧義),而是要經常而且穩定地出現(易於找到)。各種圖像中的角點因此閃亮登場,各種PK。比較知名的有SIFT、SURF、FAST等。注意,上述排名分先後的:按照能力來說越往前越好,按照速度來說越往後越好。實際應用中可以根據用戶機型做決定。那麼,這些點提取後就可以用了嗎?No,一般來說還需要進行取捨:一是要去掉沒用的點(即outlier),二是使選取後的點盡量均勻以降低不必要的誤差,同時也要防止點太多帶來的大量後續計算。控制點匹配的目的是在兩個圖像的控制點集間找到匹配的點對(鼻尖對鼻尖,眼角對眼角)。通常這個由控制點之間的相似性和空間約束協同完成。簡單的方法有緊鄰匹配,複雜的基本上二分匹配的各種變種(bipartitematching or two-dimensional assignment)。完成了匹配之後,就可以求解得到姿態Pt了:由於通常使用的點數遠多於最小需求(為了穩定性),這裡的方程數目遠大於未知變數的數目,所以最小二乘法之類的解法在這裡會派上用場。
以上三個步驟初看起來涇渭分明,實際使用時卻經常是交織在一起的。主要原因是很難保證得到精確無誤的控制點。有用的可靠控制點常常夾雜在各種真假難辨的山寨們一起到來,所以經常需要往返迭代在三個步驟之間,比如用RANSAC之類的方法選擇控制點來得到服從大多數的姿態。相比直接法,控制點法的基本演算法框架比較成熟,工程實現上的細節很大程度上決定了演算法的最終效果。
這兩類方法的優缺點根據具體實現略有不同,大致上可以總結如下:
這兩類方法的優缺點有很明顯的互補性,所以一個自然的想法就是二者的結合,具體的方式也有不同變種,這裡就不羅嗦了。
三維環境的AR跟蹤
對於三維環境的動態的實時的理解是當前AR在技術研究方面最活躍的問題。其核心就是最近火熱的「即時定位與地圖構建」(SLAM,SimultaneouslyLocalization And Mapping),在無人車,無人機和機器人等領域也起著核心作用。AR中的SLAM比其他領域中一般難度要大很多,主要是因為AR賴以依存的移動端的計算能力和資源比起其他領域來說要弱很多。目前在AR中還是以視覺SLAM為主,其他感測器為輔的局面,儘管這個情況正在改變。下面的討論主要局限於視覺SLAM。
標準的視覺SLAM問題可以這麼描述為:把你空投到一個陌生的環境中,你要解決「我在哪」的問題。這裡的「我」基本上等同於相機或者眼睛(因為單目,即單相機,請把自己想像成獨眼龍),「在」就是要定位(就是localization),「哪」需要一張本來不存在的需要你來構建的地圖(就是mapping)。你帶著一隻眼睛一邊走,一邊對周邊環境進行理解(建圖),一邊確定在所建地圖中的位置(定位),這就是SLAM了。換句話說,在走的過程中,一方面把所見到(相機拍到)的地方連起來成地圖,另一方面把走的軌跡在地圖上找到。下面我們看看這個過程大致需要哪些技術。
從圖像序列反算出三維環境的過程,即mapping,在計算機視覺裡面屬於三維重建的範疇。在SLAM中,我們要從連續獲取的圖像序列來進行重建,而這些圖像序列是在相機的運動過程中採集的,所以相關的技術就叫基於運動的重建(SfM,Structurefrom Motion)。題外話,SfX是視覺中泛指從X中進行三維重建的技術,X除了運動以外還可以有別的(比如Structurefrom Shading)。如果相機不動怎麼辦?很難辦,獨眼龍站著不動怎麼能知道周圍三維的情況呢?原理上來說,一旦獲取的兩張圖像之間有運動,就相當與有兩個眼睛同時看到了場景(注意坑,這裡假設場景不動),不就可以立體了嗎?這樣一來,多視幾何的東西就派上用場了。再進一步,運動過程中我們得到的實際是一系列圖像而不只是兩張,自然可以用他們一起來優化提高精度,這就是令小白們不明覺厲的集束約束(BundleAdjustment)啦。
那麼localization又是怎麼回事呢?如果有了地圖,即有了一個坐標系,定位問題和前述2D跟蹤在目的上基本一致(當然更複雜一些)。讓我們考慮基於控制點的方法,那麼現在就需要在三維空間找到並跟蹤控制點來進行計算了。很巧的是(真的很巧嗎?),上面的多視幾何中也需要控制點來進行三維重建,這些控制點就經常被共用了。那麼可不可以用直接法呢?Yes wecan!但是,如後面會講到的,由於目前AR中計算資源實在有限,還是控制點法經濟實惠些。
從三維重建的方法和結果,SLAM大致可以分為稀疏、半稠密和稠密三類。下圖中給出的典型的示例。
- 稠密SLAM:簡單的說,稠密SLAM的目的是對所相機所採集到的所有信息進行三維重建。通俗的說,就是對看見的每一個空間上的點算出它到相機的方位和距離,或者知道它在物理空間的位置。在AR相關的工作裡面最近的影響力較大的有DTAM和KinectFusion,前者是純視覺的,後者則使用了深度相機。由於需要對幾乎所有採集到的像素進行方位計算,稠密SLAM的計算量那是杠杠的,所以不是平民AR(比如一般的手機,手握6S/S7/Mate8的朋友不要側漏傲氣,這些統統都算「一般」)。
- 稀疏SLAM:稀疏SLAM的三維輸出是一系列三維點雲。比如三維立方體的角點。相對於實心的三維世界(比如立方體的面和中腹),點雲所提供的對於三維環境的重建是稀疏的,是以得名。實際應用中,在這些點雲的基礎上提取或推理出所需要的空間結構(比如桌面),然後就可以根據這些結構進行AR內容的渲染疊加了。和稠密SLAM版本相比,稀疏SLAM關心的點數低了整整兩個維度(從面墮落到點),理所當然地成為平民AR的首選。目前流行的稀疏SLAM大多是基於PTAM框架的一些變種,比如最近被熱捧的ORB-SLAM。
- 半稠密SLAM:顧名思義,半稠密SLAM的輸出密度在上述二者之間,但其實也沒有嚴格的界定。半稠密SLAM最近的代表是LSD-SLAM,不過對於在AR中的應用,目前還沒有稀疏SLAM熱門。
由於稀疏SLAM在AR中的流行度,下面我們簡單介紹一下PTAM和ORB-SLAM。在PTAM之前,由A. Davison在2003年提出的單目SLAM開創了實時單目SLAM的先河。這個工作的基本思想還是基於當時機器人等領域的主流SLAM框架的。簡單地說,對於每一幀新到來的圖像,進行「跟蹤-匹配-製圖-更新」的流程。然而這個框架在移動端(手機)上的效果和效率都不盡人意。針對移動端AR的SLAM需求,Klein和Murray在 2007年的ISMAR(AR領域的旗艦學術會議)展示了效果驚艷的PTAM系統,從而成為單目視覺AR SLAM的最常用框架,暫時還是之一。
PTAM的全稱是ParallelTracking And Mapping,上面已經暗示過了,PTAM和之前的SLAM在框架是不同的。我們知道,SLAM對每一幀同時(Simultaneously)進行兩個方面的運算:定位(Localization)和建圖(Mapping)。由於資源消耗巨大,這兩種運算很難實時的對每一幀都充分地實現。那我們一定要每一幀都同時定位和建圖嗎?先看定位,這個是必須每幀都做,不然我們就不知道自己的位置了。那麼製圖呢?很幸運,這個其實並不需要每幀都做,因為隔上幾幀我們仍然可以通過SfM來感知場景。試想一下,把你扔到一個陌生的場景,讓你邊走邊探索周邊環境,但是每秒鐘只讓你看10眼,只要你不是在飛奔,相信這個任務還是可以完成的。PTAM的核心思想就在這裡,不是simultaneously定位和製圖,而是把他們分開,parallel地各自奔跑。這裡的定位以逐幀跟蹤為主,所以就有了tracking。而製圖則不再逐幀進行,而是看計算能力而定,啥時候處理完當前的活,再去拿一幀新的來看看。在這個框架下,再配合控制點選取匹配等各項優化組合,PTAM一出場就以其在華麗麗的demo亮瞎觀眾(這可是近10年前啊)。
故事顯然沒有這樣結束。我們都知道,demo和實用是有差距滴,何況還是學術界的demo。但是在PTAM思想的指引下,研究人員不斷的進行改進和更新。這其中的佼佼者就有上面提到的ORB-SLAM。ORB-SLAM由Mur-Artal,Montiel和Tardos在2015年發表在IEEETransaction on Robotics上,由於其優異的性能和貼心的源碼迅速獲得工業界和學術界兩方面的青睞。不過,如果打算通讀其論文的話,請先做好被鬱悶的心理準備。不是因為有太多晦澀的數學公式,恰恰相反,是因為基本上沒有啥公式,而是充滿了讓人不明覺厲的名詞。為什麼會這樣?其實和ORB-SLAM的成功有很大關係。ORB-SLAM雖然仍然基於PTAM的基本框架,不過,做了很多很多改進,加了很多很多東西。從某個角度看,可以把它看作一個集大成的且精心優化過的系統。所以,區區17頁的IEEE雙欄論文是不可能給出細節的,細節都在參考文獻裡面,有些甚至只在源碼里。在眾多的改進中,比較大的包括控制點上使用更為有效的ORB控制點、引入第三個線程做迴環檢測矯正(另外兩個分別是跟蹤和製圖)、使用可視樹來實現高效的多幀優化(還記得集束約束嗎)、更為合理的關鍵幀管理、等等。
有朋友這裡會有一個疑問:既然ORB-SLAM是基於PTAM的框架,那為啥不叫ORB-PTAM呢?是醬紫的:儘管從框架上看PTAM已經和傳統SLAM有所不同,但是出於各種原因,SLAM現在已經演變成為這一類技術的統稱。也就是說,PTAM一般被認為是SLAM中的一個具體演算法,確切些說是單目視覺SLAM的一個演算法。所以呢,ORB-PTAM就叫ORB-SLAM了。
儘管近年來的進展使得單目SLAM已經能在一些場景上給出不錯的結果,單目SLAM在一般的移動端還遠遠達不到隨心所欲的效果。計算機視覺中的各種坑還是不同程度的存在。在AR中比較刺眼的問題包括:
- 初始化問題:單目視覺對於三維理解有著與生俱來的歧義。儘管可以通過運動來獲得有視差的幾幀,但這幾幀的質量並沒有保證。極端情況下,如果用戶拿著手機沒動,或者只有轉動,演算法基本上就掛掉了。
- 快速運動:相機快速運動通常會帶來兩方面的挑戰。一是造成圖像的模糊,從而控制點難以準確的獲取,很多時候就是人眼也很難判斷。二是相鄰幀匹配區域減小,甚至在極端情況下沒有共同區域,對於建立在立體匹配之上的演算法造成很大的困擾。
- 純旋轉運動:當相機做純旋轉或近似純旋轉運動時,立體視覺無法通過三角化來確定控制點的空間位置,從而無法有效地進行三維重建。
- 動態場景:SLAM通常假設場景基本上是靜止的。但是當場景內有運動物體的時候,演算法的穩定性很可能會受到不同程度的干擾。
對AR行業動態有了解的朋友可能會有些疑惑,上面說的這麼難,可是HoloLens一類的東西好像效果還不錯哦?沒錯,不過我們上面說的是單目無感測器的情況。一個HoloLens可以買五個iPhone6S+,那麼多感測器不是免費的。不過話說回來,利用高質量感測器來提高精度必然是AR SLAM的重要趨勢,不過由於成本的問題,這樣的AR可能還需要一定時間才能從高端展會走到普通用戶中。
四、SMART:語義驅動的多模態增強現實和智能交互
單目AR(即基於單攝像頭的AR)雖然有著很大的市場(想想數億的手機用戶吧),但是如上文所憂,仍然需要解決很多的技術難題,有一些甚至是超越單目AR的能力的。任何一個有理想有追求有情懷的AR公司,是不會也不能局限於傳統的單目框架上的。那麼除了單目AR已經建立的技術基礎外,AR的前沿上有哪些重要的陣地呢?縱觀AR和相關軟硬方向的發展歷史和事態,橫看今天各路AR諸侯的技術風標,不難總結出三個主要的方向:語義驅動,多模態融合,以及智能交互。遵循業界性感造詞的慣例,我們將他們總結成:
SMART:SemanticMulti-model AR inTeraction
即「語義驅動的多模態增強現實和智能交互」。由於這三個方面都還在飛速發展,技術日新月異,我下面就勉強地做一個粗淺的介紹,表意為主,請勿鑽牛角尖。
語義驅動:語義驅動在傳統的幾何為主導的AR中引入語義的概念,其技術核心來源於對場景的語義理解。為什麼要語義信息?答案很簡單,因為我們人類所理解的世界是充滿語義的。如下圖所列,我們所處的物理世界不僅是由各種三維結構組成的,更是由諸如透明的窗、磚面的牆、放著新聞的電視等等組成的。對於AR來說,只有幾何信息的話,我們可以「把虛擬菜單疊加到平面上」;有了語義理解後,我們就可以「把虛擬菜單疊加到窗戶上」,或者邪惡地「根據正在播放的電視節目顯示相關廣告」。
相比幾何理解,對於視覺信息的語義理解涵蓋廣得多的內容,因而也有著廣得多的應用。廣義的看,幾何理解也可以看作是語義理解的一個子集,即幾何屬性或幾何語義。那麼,既然語義理解這麼好這麼強大,為啥我們今天才強調它?難道先賢們都沒有我們聰明?當然不是,只是因為語義理解太難了,也就最近的進展才使它有廣泛實用的可能性。當然,通用的對任意場景的完全語義理解目前還是個難題,但是對於一些特定物體的語義理解已經在AR中有了可行的應用,比如AR輔助駕駛和AR人臉特效(下圖)。
多模態融合:隨著大大小小的AR廠家陸續推出形形色色的AR硬體,多模態已經是AR專用硬體的標配,雙目、深度、慣導、語音等等名詞紛紛出現在各個硬體的技術指標清單中。這些硬體的啟用顯然有著其背後的演算法用心,即利用多模態的信息來提高AR中的對環境和交互的感知理解。比如,之前反覆提到,作為AR核心的環境跟蹤理解面臨著五花八門的技術挑戰,有些甚至突破了視覺演算法的界限,這種情況下,非視覺的信息就可以起到重要的補充支持作用。比如說,在相機快速運動的情況下,圖像由於劇烈模糊而喪失精準性,但此時的姿態感測器給出的信息還是比較可靠的,可以用來幫助視覺跟蹤演算法度過難關。
智能交互:從某個角度來看,人機交互的發展史可以看作是追求自然交互的歷史。從最早的紙帶打孔到如今窗口和觸屏交互,計算機系統對使用者的專業要求越來越低。近來,機器智能的發展使得計算機對人類的自然意識的理解越來越可靠,從而使智能交互有了從實驗室走向實用的契機。從視覺及相關信息來實時理解人類的交互意圖成為AR系統中的重要一環。在各種自然交互中,基於手勢的技術是目前AR的熱點。一方面由於手勢的技術比較成熟,另一方面也由於手勢有很強的可定製性。關於手勢需要科普的一個地方是:手勢估計和手勢識別是兩個緊密相關但不同的概念。手勢估計是指從圖像(或者深度)數據中得到手的精確姿勢數據,比如所有手指關節的3D坐標(下圖);而手勢識別是指判斷出手的動作(或姿態)說代表的語義信息,比如「打開電視」這樣的命令。前者一般可以作為後者的輸入,但是如果手勢指令集不大的情況下,也可以直接做手勢識別。前者的更準確叫法應該是手的姿勢估計。
五、結語
增強現實的再度興起是由近年來軟硬體的進展決定的,是科學和技術人員幾十年努力的推動成果。一方面,很幸運我們能夠趕上這個時代提供的機會;另一方面,我們也應該警惕過度的樂觀,需要腳踏實地得趟過每一個坑。
VR硬體硬體硬體AR演算法演算法演算法
對了,magic leap 公司是一家電影特效公司。
增強現實AR主要可以分為兩種實現方式
- 基於位置:主要根據AR設備的地理位置,輔助自身感測器陀螺儀,計算出目標點與自身的方位角,從而在AR屏幕上顯示。可以參考的例子是apple的pARk。
- 基於圖像:通過計算機視覺演算法,定位實時圖像中的目標,從而對屏幕中圖片進一步渲染。常用的庫像是高通的Vuforia。
實際項目中,可以可以將兩者相互結合,從而提供完整的AR體驗。
虛擬現實VR的話,則是在上述內容基礎上,將真實環境替換為了虛擬環境。基本原理 是 光學成像 原理,很簡單,可以認為是核心,但 已經解決,所以不算核心原理。
現階段:
vr的核心技術:是 輸入設備及其應用;對 商家來說,核心是 內容。
ar的核心技術 除了 輸入處理,還得 包含 輸出處理,因為它要疊加 內容到現實世界!vr不存在這個問題(不需要,vr的輸出問題已經被解決)。
有識之士都知道,"滑鼠的發明改變了電腦,觸摸屏改變了智能手機,VR 也需要一個這樣的東西。沒有好的交互,虛擬現實就無法被大眾接受。沒人知道那是什麼,直到有人發明出來。"vr目前核心技術還是oculus的反畸變演算法和延遲演算法,ar自我感覺可能更加涉及光學方面的知識,目前vr技術已經可以市場推廣,但是ar技術仍然不成熟。
核心技術是市場推動,vr技術非常消耗運算量,如果推開了,計算機市場又是一波高潮,推動全球GDP提高一兩個百分點沒有問題,前期嘛,估計還是色誘吧,性推動文明發展嘛。
虛擬現實,是一項融合了計算機圖形學、人機介面技術、感測技術、心理學、人機工程學及人工智慧的綜合技術。它要創建一個由多維信息所構成的可操縱的空間。
幾年前,就有人預測,2016年是虛擬現實年。現實世界的更好版本與新的人造虛擬世界,這兩種世界你更喜歡哪個呢?在回答這個問題之前,我們還是把虛擬現實究竟是什麼先弄清楚吧。
虛擬現實是從英文「Virtual Reality」翻譯而來,是一項融合了計算機圖形學、人機介面技術、感測技術、心理學、人機工程學及人工智慧的綜合技術。它們帶給人們的共同感受是:虛擬和現實間已沒有明顯界限。
人在現實世界中是通過眼睛、耳朵、手指等器官來實現視覺、聽覺、觸覺等功能的,人們可以通過視覺觀察到色彩斑斕的外部環境,通過聽覺感知豐富多彩的音響世界,通過觸覺了解物體的形狀和特性。20世紀20年代,誕生了電視機,這種以聲音和影像並茂的虛擬現實,打開了人類視覺空間,使人們足不出戶,遍覽天下大事。
然而這遠非真正意義上的虛擬現實。真正的虛擬現實直接將我們投入到虛擬的三維空間中去,與交互的環境融為一體。在這個虛擬的世界裡,我們能夠自由的運動,觀看風景,就和真實的世界一樣,我們有著足夠的自主性,甚至可以撿起一塊石頭攻擊敵人。可以說,虛擬現實是人們利用計算機生成一個逼真的三維虛擬環境,將模擬環境、視景系統和模擬系統合三為一,並利用人機交互設備,把操作者與計算機生成的三維虛擬環境連結在一起。操作者通過人機交互設備,以自然的方式(如頭的轉動、手的運動等)向計算機送入各種動作信息,並且通過視覺、聽覺以及觸覺等多種感知獲得三維感覺世界。
隨著人們不同的動作,這些感覺也隨之改變。目前,與虛擬現實相關的內容已經擴大到了與之相關的許多方面,像「人工現實」、「遙現」、「虛擬環境」、「賽伯空間」等,都可以認為是虛擬現實的不同術語或形式。事實上,虛擬現實要創建一個酷似客觀環境又超越客觀時空、能沉浸其中又能駕馭其一的和諧人機環境,也就是由多維信息所構成的可操縱的空間。
虛擬現實技術有哪些重要特徵呢?
首先,它具有多感知性。所謂多感知性,就是說除了一般計算機所具有的視覺感知外,還有聽覺感知、力覺感知、觸覺感知、運動感知、甚至包括味覺感知、嗅覺感知等。理想的虛擬現實就是應該具有人所具有的感知功能。
其次,虛擬現實技術具有很強的存在感。存在感,又稱臨場感,它是指用戶感到作為主角存在於模擬環境中的真實程度。理想的模擬環境應該達到使用戶難以分辨真假的程度。
再次,這項技術還有較強的交互性。交互性是指用戶對模擬環境內物體的可操作程度和從環境得到反饋的自然程度(包括實時性)。例如,用戶可以用手去直接抓取環境中的物體,這時手有握著東西的感覺,並可以感覺物體的重量,視場中的物體也隨著手的移動而移動。
最後,不能不提一下虛擬現實技術的自主性。即虛擬環境中物體依據物理定律動作的程度。例如,當受到力的推動時,物體會向力的方向移動、或翻倒、或從桌面落到地面等。
背後都必須有強大的技術驅動,必須包含幾種關鍵技術:
1、環境建模
即虛擬環境的建立,目的是獲取實際三維環境的三維數據,並根據應用的需要,利用獲取的三維數據建立相應的虛擬環境模型。
2、立體聲合成和立體顯示技術
在虛擬現實系統中消除聲音的方向與用戶頭部運動的相關性,同時在複雜的場景中實時生成立體圖形。
3、觸覺反饋技術
在虛擬現實系統中讓用戶能夠直接操作虛擬物體並感覺到虛擬物體的反作用力,從而產生身臨其境的感覺。
4、交互技術
虛擬現實中的人機交互遠遠超出了鍵盤和滑鼠的傳統模式,利用數字頭盔、數字手套等複雜的感測器設備,三維交互技術與語音識別、語音輸入技術成為重要的人機交互手段。
5、系統集成技術
由於虛擬現實系統中包括大量的感知信息和模型,因此系統的集成技術為重中之重:包括信息同步技術、模型標定技術、數據轉換技術、識別和合成技術等等。
我想來回答一下AR技術與VR技術的相關產品內容。一款AR技術主導的步行導航軟體-隨便走它改寫了導航就必須有地圖的一貫模式,顛覆了手機導航領域的固有格局。你可以跟著它找你周邊的任何一個地方,無論是美食、酒店、公交、廁所、景點等等。隨便走無疑是通過AR技術透視周邊生活的最佳工具,是當前移動互聯網本地生活領域的APP。新版本探索●覺醒更是加入了周邊生活探索功能、商家簽到、用戶角色等級趣味性功能。探索周邊,掃描周邊商家即可升級以及獲得勳章。這也是AR技術的一大特點之一!這也代表著隨便走向用戶開放AR交互遊戲功能,在趣味中發現生活。而VR 眼鏡
相比原版的Google Cardboard,暴風魔鏡增加了一些舒適化改進。比方說硅膠式接觸層、可調節式頭帶、屈光度調節鈕(用於適應近視眼用戶)和瞳距調節鈕(用於適應不同尺寸手機),應該說相比原版的Google Cardboard,暴風魔鏡的整體舒適度要遠好於它。
而且我覺得它的最大亮點還在於資源上,背靠著暴風影音的海量資源庫,暴風魔鏡在這一點上要遠超Google Cardboard。360度全景音樂會、全3D電影大片、沉浸式3D遊戲等等,至少不需要用戶再東奔西跑地找來找去了。最關鍵的是它的價格也僅僅不過99元,想一想這個價格還是很值的!
沒什麼技術吧。
VR相當於你把顯示器掛在臉上,滑鼠綁在腦袋上,鍵盤綁在手上,扣掉WASD鍵用腳踩。
玩CS的時候,左手點一下B43,旁邊站個妹子遞給你一個拖布。玩真實女友,扒拉一下滾輪,旁邊妹子跪在你身前給你……核心的技術就是動作與眼球捕捉、陀螺儀和感應器。
隨著優化、降低成本和內容完善,就可以忽悠著往外賣了,同時捆綁銷售飛機杯。現在就是太貴,別的都好說。AR相當於你弄個大玻璃掛在臉上,旁邊弄個投影儀把圖像打到玻璃上。然後你手上拿個雙色激光筆,紅光可以穿透玻璃指向現實物體,旁邊站個妹子在你的角度看過去,發現你是透過玻璃上的圓圈點到了一個茶杯,然後妹子告訴你,那個叫茶杯,可以盛水。綠光無法穿透玻璃,直接點在了玻璃上的[解開胸罩]選項上,然後妹子臉就紅了……
你低頭一看,硬體設備都有了,就差個妹子。很奇怪的一點,VR 和 AR,翻譯為:虛擬現實和增強現實。這是兩個名詞而非兩個產品。很多答案確是針對具體產品技術上來回答的。
·····························
其實無論怎麼發展,VR AR的意義就已經奠定了它們的技術核心,即:感受與交互。
無論是通過人眼,耳朵接收信息還是直接通過神經連接,都包含於「感受」這一詞中。
即目的在於能夠把不存在的東西讓人感覺到它是真實的。
交互一詞更好理解,一顆小樹苗,你觸碰一下它,它會搖晃一下,這才能被人理解為真實的。
虛擬現實技術(有時也被稱為沉浸式計算技術)提供了與日益增長的數字世界進行交互的獨特方式。虛擬現實也常描述為一組技術,能使人感知參與者的位置和動作,替代或增強一種或多種感官反饋,從而產生一種精神沉浸於或出現在模擬環境(虛擬世界)中的感覺。虛擬現實應用計算機技術創造出了一個包含三維物體的三維環境,對用戶而言,三維環境中的物體具有強烈的空間存在感,用戶與三維物體之間的交互感和對圖片或電影的感知是完全不同的。 背後的核心點應該是用戶通過輸入感測器與計算機中的三維虛擬世界進行交互,虛擬世界發生改變後,再通過感測器反饋給用戶,形成閉環系統。
推薦閱讀:
※有什麼讓你瞬間覺得體驗提升的電腦或平板周邊外設產品?
※有哪些美國的大學的HCI碩士比較好?
※智能硬體交互有什麼發展趨勢?
※認知科學和設計領域中的 Affordance 是什麼?
※人機交互和人因工程研究方向有何不同?